DirectShow DirectShow 레퍼런스 인터페이스 IOverlay   [목차열람] [주소복사] [슬롯비우기]
IOverlay 인터페이스
 
Microsoft DirectX 9.0

IOverlay 인터페이스

IOverlay 인터페이스는, 비디오를 올바른 윈도우 위치에 배치한 상태로, 필터로부터 비디오 메모리에 직접 기입하기 위해서(때문에) 필요한 정보를 제공한다. 이 인터페이스는, 비디오 렌더러의 입력 핀상에 처리 되어 업 스트림 필터 (주로 비데오디컴프레서)의 IOverlayNotify 메서드를 호출해, 비디오 윈도우에의 변경을 통지하는 것으로써, 그 필터와 통신한다.

이 인터페이스는, DirectDraw® 의 오버레이 능력과는 무관하다. Microsoft 의 비디오 렌더러는,IMemInputPin 인터페이스를 통해서 받은 데이터를, DirectDraw 오버레이를 사용해 드로잉(Drawing) 한다 (다만 이용 가능한 경우). 이 인터페이스는,IMemInputPin 대신에 사용되어 렌더러의 드로잉(Drawing) 능력을 우회도로 하지만, 디스플레이의 그 외 프로퍼티의 통지를 받을 필요가 있는, 모든 업 스트림 필터에, 통지의 지원을 제공하는 것을 목적으로 하고 있다.

IOverlay 인터페이스와 IOverlayNotify 인터페이스의 제휴의 더 자세한 정보는, 「IOverlayNotify 」의 레퍼런스 페이지를 참조할것.

렌더링 윈도우에의 변경의 비동기 통지의 더 자세한 정보는, 「IOverlayNotify2 인터페이스」를 참조할것.

이 인터페이스는, Microsoft® DirectShow® 비디오 렌더링 필터에 처리 된다. 또, 필요에 따라서, 대체 비디오 렌더링 필터에 처리 할 수도 있다. 그 경우에는, 이 인터페이스를 처리 해, frame buffer에 직접 기입하는 필터, 또는 오버레이를 배치하려고 하는 필터에, 비디오를 어디에 표시하면 좋은가를 알린다. 이 인터페이스를 처리 하려면 , 비디오 프로퍼티의 변경의 통지도 포함해 드로잉(Drawing)를 실시하고 있는 필터의 IOverlayNotify 인터페이스 또는 IOverlayNotify2 인터페이스의 메서드를 사용할 준비가, 렌더러로 할 수 있고 있을 필요가 있다.

DirectShow 의 윈도우 베이스의 렌더러는,IMemInputPin 인터페이스와 IOverlay 인터페이스의 양쪽 모두를 지원 한다. 이것들 2 개의 인터페이스는 서로 배타이다. 필터에서는, 접속중에 서브 타입이 MEDIASUBTYPE_Overlay 의 미디어 타입을 제공하는 것에 의해,IOverlay 트랜스포트 의 사용을 선택한다. 접속 후, 필터는 문제 없고 IOverlay 인터페이스를 취득 및 사용 가능하다. 필터가 다른 비디오 포맷 (MEDIASUBTYPE_RGB8 등)으로 접속하는 경우,IOverlay 를 통해서 호출하려고 하면, VFW_E_NOT_OVERLAY_CONNECTION 가 반환된다.

비디오 오버레이의 프로퍼티를 제어할 필요가 있어, 비디오 데이터 자체의 표시를 처리하려고 하는 업 스트림 필터로부터는, 이 함수의 메서드를 사용하는 것. 이 메서드는, 보통, 비디오 하드웨어에의 대체 접속을 가지는 하드웨어 비디오 디코더로 사용된다.

IOverlay 인터페이스는,IUnknown 로부터 계승하는 메서드 이외에 이하의 메서드도 공개한다.

메서드 설명
GetPalette 현재의 팔레트를 얻어온다.
SetPalette 팔레트를 설정한다.
GetDefaultColorKey 디폴트의 컬러 키를 얻어온다.
GetColorKey 현재 액티브한 컬러 키의 식별자를 돌려준다.
SetColorKey 컬러 키를 변경한다.
GetWindowHandle 윈도우 핸들을 돌려준다.
GetClipList 클립 리스트를 얻어온다.
GetVideoPosition 현재의 비디오의 전송원직사각형 및 목적지 직사각형을 얻어온다.
Advise 오버레이 이벤트용의 아드바이즈린크를 설정한다.
Unadvise 아드바이즈린크를 종료한다.

↑TOP