DS에 초보자가되었습니다. IMediaDet에서 처리 할 수없는 VIDEOINFOHEADER2를 처리 할 수있는 SampleGrabber가 필요했습니다.DirectShow의 SampleGrabber가 잘못된 샘플을 검색합니다.
그래서 Stockgrabber와는 달리 모든 종류의 미디어를 허용하는 DX8.1 샘플에서 SampleGrabber를 가져 왔습니다. 꽤 그대로 샘플 코드를 사용하고, 하나 개의 프레임 모두를 잡는 것은 잘 작동하는 것 같다 : 그래프가 ErrorCode가 등을 반환하지 않고 내장되어 다음과
hr = pSeeking->SetPositions(
&Seek,
AM_SEEKING_AbsolutePositioning,
NULL,
AM_SEEKING_NoPositioning);
를 호출 탐색 콜백 = 2
호출 :
HRESULT 콜백 (*의 IMediaSample pSample는 REFERENCE_TIME * 상영, REFERENCE_TIME * StopTime, BOOL TypeChanged)는
문제는 버퍼이다 : 01,235,올바른 크기 (GetSize() == 691200 = 3 바이트 * 640 * 320) 이지만 내용은 모두 "205"입니다. 그것에 대해 의심스러운
: "콜백"의 매개 변수는 = 834,168, 내가 (GraphEdit로 https://msdn.microsoft.com/en-us/library/windows/desktop/dd390650%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396 에서 그래프를 보여주는 시도했지만 성공하지 못한 = 1251251 StopTime 및 TypeChanged = 1
"응용 프로그램 상영된다 그래프 에디트에서 바쁘다 ").
어디에 문제가있을 수 있습니까?
DirectShow에 관해서는 알지 못합니다. 20 년 이상 전에 도저히 이해하지 못했습니다. 내가 본 유일한 사실은 0xCD 단서뿐입니다. 예, 동의합니다. DirectShow와 관련이없는 것으로 판명되면서 질문을 삭제하십시오. –
나는 할 것이다. 그러나 다시 한 번 지적하자면, 당신의 힌트는 참으로 도움이되었습니다. 고맙습니다! :-) – nji9