DirectShow DirectShow 의 사용법 DVD 애플리케이션 C++ 에 의한 DVD 애플리케이션의 생성 DVD 필터 그래프의 생성   [목차열람] [주소복사] [슬롯비우기]
DVD 필터 그래프의 생성
 
Microsoft DirectX 9.0

DVD 필터 그래프의 생성

DVD 재생 필터 그래프를 생성 하는 방법으로서는,DVD 그래프 빌더 개체에 자동적으로 실시하게 하는 것을 추천 한다. 이 어프로치는, 이하의 설명, DVD 샘플 애플리케이션으로 나타나고 있다. DVD 필터 그래프를 수동으로 생성 할 필요가 있는 경우는, DirectShow 에 관한 다른 문서에 기재되어 있는 그래프 생성의 기본적인 규칙에 따라 생성 할 수 있다. 일반적으로, DVD 그래프 빌더에 의해 생성 된 그래프에 대해서 각각의 필터를 수동으로 추가, 삭제, 접속, 접속 해제하는 것은 추천하지 않는다. 그러한 조작을 하면, 클린 업 코드에 의한 처리로 혼란이 생길 가능성이 있다.

DVD 그래프 빌더 개체의 인스턴스를 생성 하는 경우, 애플리케이션은 개체의 IDvdGraphBuilder 인터페이스의 포인터를 받는다. IDvdGraphBuilder::GetFiltergraph 를 호출해 필터 그래프 매니저의 IGraphBuilder 인터페이스를 취득해, 다음에,IGraphBuilderQueryInterface 를 호출해 IMediaEventEx 를 얻어온다. 이 인터페이스를 사용해, 그래프의 나머지의 부분을 생성 하기 전에, 이벤트의 수신을 시작 한다. 이렇게 하는 것에 의해, DVD 네비게이터가 초기화되었을 때에, 애플리케이션이 DVD 네비게이터로부터 확실히 이벤트를 수신하게 된다. 그래프를 생성 하려면 , 단지 IDvdGraphBuilder::RenderDvdVideoVolume 메서드를 호출한다. 더 자세한 정보는, 「필터 그래프의 생성」을 참조할것.

DirectX 9 런타임을 사용하지 않는 Windows XP 에서는, 이하의 조건에 적합하지 않는 한, 그래프내에서는 DVD 그래프 빌더는 항상 Video Mixing Renderer 7 (VMR-7)을 사용한다.

소프트웨어 MPEG-2 디코더와 DirectX 9 런타임이 인스톨 되고 있는 시스템에서는, 애플리케이션은,IDvdGraphBuilder::RenderDvdVideoVolume 볼륨의 dwFlags 파라미터의 AM_DVD_VMR9_ONLY 플래그를 사용해 DVD 그래프 빌더를 생성 할 필요가 있다. 이 메서드는, DVD 그래프 빌더가 Video Mixing Renderer 9 (VMR-9)를 사용하도록(듯이) 명령한다. 이 플래그를 지정했을 경우, 다음에 나타내는 등의 이유로써 VMR-9 를 생성 할 수 없으면RenderDvdVideoVolume 는 실패하지만, 애플리케이션에는 VMR-7 또는 오버레이 믹서를 사용해 그래프의 생성을 시도한다고 하는 옵션이 있다.

VMR-9 는 비디오 포트와 아날로그 오버레이를 지원 하고 있지 않기 때문에, 필터 그래프가 (특히 비디오의 경우에) 하드웨어의 MPEG-2 디코더를 사용할 때, 애플리케이션은 반드시 오버레이 믹서를 사용할 필요가 있다.

애플리케이션은 VMR-9 인터페이스의 어느 쪽인가에 대해 IDvdGraphBuilder::GetDvdInterface 를 호출할 수도 있다. 이 호출을 실행 하면, VMR-9 가 그래프에 삽입된다. 애플리케이션에는, 그래프의 생성을 시작 하기 전에 VMR-9 를 구성할 기회가 확보된다.

↑TOP