我从 ReadSample 调用中收到 E_POINTER 错误,据我所知,没有一个指针是无效的。请参见下面的片段(注意,它是一个 C++/CLI 应用程序):
IMFSample* sample = NULL;
pin_ptr<IMFSample*> pinnedSample = &sample;
LONGLONG timeStamp;
HRESULT hr = mSourceReader->ReadSample(
(DWORD)MF_SOURCE_READER_FIRST_VIDEO_STREAM,
0,
NULL,
NULL,
&timeStamp,
pinnedSample
);
我怀疑问题在于 mSourceReader(一个 IMFSourceReader 实例,从 IMFMediaSource 创建)的构造。但是,唉,我不知道如何回溯并找到源,因为创建 mSourceReader 的命令链中的所有 COM 调用都返回了 S_OK。
非常感谢任何提示。