Source Reader ReadSample(),IMFSourceReaderCallback :: OnReadSample()内存泄漏?

时间:2014-07-30 00:46:37

标签: ms-media-foundation

首先,执行

hr = m_pReader->ReadSample(
     (DWORD)MF_SOURCE_READER_FIRST_VIDEO_STREAM,
     0,
     NULL,   // actual
     NULL,   // flags
     NULL,   // timestamp
     NULL    // sample
     );

然后,在下面的开头,此过程使用的内存大约增加了3M:

HRESULT CCapture::OnReadSample(
     HRESULT hrStatus,
     DWORD /*dwStreamIndex*/,
     DWORD /*dwStreamFlags*/,
     LONGLONG llTimeStamp,
     IMFSample *pSample      // Can be NULL
     )
{
     .....

}

1 个答案:

答案 0 :(得分:1)

您没有指定源阅读器创建方法,但是从您的ReadSample代码看起来您​​在异步模式下工作(因为除dwStreamIndex之外的所有参数都是NULL)。因此,当调用OnReadSample回调时,您将获得准备好的帧 - 这需要3 MB的内存。所以它看起来像预期的行为 请参阅MSDNReadSample函数的备注部分。