Я получаю ошибку E_POINTER от вызова ReadSample, и, насколько я могу судить, ни один из указателей недействителен.См. Фрагмент ниже (обратите внимание, это приложение на 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).Но, увы, я не знаю, как отследить и найти источник, так как все COM-вызовы в цепочке команд, которые создали mSourceReader, возвращали S_OK.
Большое спасибо за любые советы.