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
函数的备注部分