Ms media foundation 源读取器ReadSample(),IMFSourceReaderCallback::OnReadSample()内存泄漏?

Ms media foundation 源读取器ReadSample(),IMFSourceReaderCallback::OnReadSample()内存泄漏?,ms-media-foundation,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::OnReadSa

首先,执行

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
     )
{
     .....

}

您没有指定源读取器的创建方法,但是从
ReadSample
代码看,您似乎是在异步模式下工作的(因为除了
dwStreamIndex
之外的所有参数都是空的)。因此,当调用
OnReadSample
callback时,您将获得就绪帧—占用3MB内存。因此,它看起来像预期的行为。
请参阅中的
ReadSample
函数的备注部分