2009-10-13 3 views

답변

1

일반적으로 디코더와 렌더러가 연결에 동의 할 수 없을 때 비디오가 ActiveMovie 창에서 재생되므로 그래프 빌더는 별도로 재생되는 RenderFile 메서드를 실행하여 그래프를 자동으로 구성하는 경우 기본 렌더러를 사용합니다. 할당 기의 InitializeDevice 메소드에서 코드를 확인하십시오. InitializeDevice가 항상 실패하면 비디오가 기본 렌더러로 렌더링됩니다.

VMR9Mode_Renderless 모드를 사용하고 있는지 확인하십시오. VMR7/9에서 믹싱을 사용하지 않는다면 SetNumberOfStreams 메서드에 대한 호출을 제거하는 것이 좋습니다.

커스텀 할당 자 사용의 좋은 예는 here입니다.

1

무엇을 의미합니까? 파일 재생을 시작하면 실제 비디오가 포함 된 창이 열립니다.

그렇다면 Video Mixing Render filter을 조사하고 싶을 것입니다. 당신은 present call을 가로 챌 수있는 own custom allocator을 만들 수 있습니다. 그러면이 비디오를 어디서든지 원하는대로 그릴 수 있습니다.

또는 개인적으로는이 방법이 더 쉽다고 생각합니다. 덤프 필터 예제를 조사한 다음이를 사용하여 자신의 렌더러를 빌드하고 싶습니다. 그런 식으로 프레임을 받으면 내부 용으로 푹 빠지지 않고 원하는대로 할 수 있습니다. 응용 프로그램 외부에서 사용할 수 없도록하려는 경우 매우 간단합니다.

편집 : QueryInterfaced the IVMRFilterConfig9 interface 및 SetRenderingMode를 VMR9Mode_Windowless로 설정 했습니까?

+0

답장을 보내 주셔서 감사합니다. 예, 실제 비디오로 새 비디오를 엽니 다. 나는 내 자신의 할당자를 만들었으며 현재 비디오를 패널에 그리는 중입니다. 일부 비디오 파일에 대한 언급에서이 비디오 창이 표시됩니다. – Firoz