zoukankan      html  css  js  c++  java
  • vp8编解码调试(环境vs2005)

            编码之前的文件:fbt_cif352_288.yuv

            程序的输入文件:是编码以后的文件:re.ivf

                                               图1

           今天紧接着昨天的工作,调试simple_decoder。昨天simple_decoder运行的结果是图1。根据图1的结果:Failed to decode frame :Bitstream not supported by this decoder。定位到simple_decoder.c的这条语句:

    if(vpx_codec_decode(&codec, frame, frame_sz, NULL, 0))                //

                die_codec(&codec, "Failed to decode frame"); 

          在if 前加断点,启动调试,程序运行到断点处,接下来逐句调试,然后就会进入到函数vpx_codec_decode(),一直等到这个函数结束,发现它并没有满足if的条件,而是执行了下面的while循环。

          通过编码的时候我知道,这段视频一共是749帧。所以我想/* Read each frame */下面的while循环应该是循环749次的,于是我在循环里面加了断点,并把frame_cn放到了watch窗口中追踪它的变化。最终结果frame_cn递增到了749,while循环结束,解码成功!

          之前一直没有找到codec的参数传递,今天终于发现了,是函数vpx_codec_dec_init()给它传递的参数。

         问题:帧大小如何计算?

                 如何得到帧头?

                 感觉很奇怪,之前我解码的时候都是图1 的结果,为什么单步调试以后就正确了呢?

  • 相关阅读:
    iozone
    2019-11-23-WPF-使用-RawInput-接收裸数据
    2019-11-22-Roslyn-在多开发框架让-msbuild-的-Target-仅运行一次
    2019-3-1-C#-json-转-xml-字符串
    2018-11-19-visualStudio-无法登陆
    2019-4-21-Roslyn-通过-NuGet-库修改应用程序入口函数
    2019-8-31-dotnet-core-集成到-Mattermost-聊天工具
    2019-7-29-win10-UWP-使用-MD5算法
    2018-8-10-C#-TimeSpan-时间计算
    2019-6-15-WPF-触摸到事件
  • 原文地址:https://www.cnblogs.com/greenteaone/p/1783596.html
Copyright © 2011-2022 走看看