当前位置: 代码迷 >> 多媒体/流媒体开发 >> 修改Directshow例子“PushSource"后出现的有关问题
  详细解决方案

修改Directshow例子“PushSource"后出现的有关问题

热度:3874   发布时间:2013-02-26 00:00:00.0
修改Directshow例子“PushSource"后出现的问题
PushSource是SDK中一个Source Filter的例子,里面以FPS_5的帧率抓取桌面的截图,然后配合Avi Mux Filter和File Writer Filter保存成AVI文件,默认情况下是全屏,而且保存之后的文件也正常,情况是:
我修改Source Filter,并且改变了截屏的区域,比如大小定义为400*300,之后再保存AVI文件的时候,文件的时间轴就会出问题,若程序运行了10S,则生成的AVI在一分半钟左右,请问还需要修改哪些东西才能让时间正常?

FillBuffer函数里面时间戳是这样写的:
C/C++ code
REFERENCE_TIME rtStart = m_iFrameNumber * m_rtFrameLength;    REFERENCE_TIME rtStop  = rtStart + m_rtFrameLength;        pSample->SetTime(&rtStart, &rtStop);    m_iFrameNumber++;    // Set TRUE on every sample for uncompressed frames    pSample->SetSyncPoint(TRUE);

其中,m_rtFrameLength等于(10 ^ 7)/5, 这都是没有改动过的。

------解决方案--------------------------------------------------------
如果仅改变大小应该不会影响输出的侦率。

你是否包括了audio?

你是如何修改大小的?
  相关解决方案