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

IOverlayNotify 인터페이스

IOverlayNotify 인터페이스는, 디코더등의 업 스트림 필터에, 렌더링 윈도우에의 변경의 통지를 제공한다. 이 인터페이스에는, 팔레트, 컬러 키, 윈도우 위치에의 변경, 표시되는 영역 (클립)의 변화에 관한 통지가 포함된다.

많은 소프트웨어 비디오 디코더에서는, 디코더가 렌더러의 입력 핀의 IMemInputPin 인터페이스에 미디어 샘플을 건네주어, 그 결과 생성된 압축 해제 후의 이미지를, 비디오 렌더러가 드로잉(Drawing) 한다.

다만, 일부의 비디오 디코드 필터 (주로 하드웨어 압축 해제 보드)에서는, (많은 경우 VGA 연결기를 사용해) 그 디코더내에서 이미지를 드로잉(Drawing) 한다. 이러한 필터에서는,IMemInputPin 를 사용할 필요는 없지만, 대신에, 렌더러의 입력 핀이 제공하는 IOverlay 인터페이스를 사용할 수 있다. 디코더는, 윈도우의 위치 또는 사이즈가 변화했을 때, 또는 현재의 시스템 팔레트가 변화했을 때에, 이 인터페이스를 통해서 통지를 받는 것에 의해, 컬러 키 및 팔레트의 편입이나 변경을 할 수 있다.

독자적인 드로잉(Drawing) 처리를 실시하는 디코더는,IOverlayNotify 인터페이스 및 IOverlayNotify2 인터페이스를 처리 할 필요가 있다. 렌더러는, 윈도우의 사이즈 또는 위치가 변화했을 때, 시스템 팔레트가 변화했을 때, 또는 다른 컬러 키가 사용되었을 때에 반드시 이 인터페이스를 사용해, 디코더에 통지한다. 디코더는, 렌더러의 입력 핀의 IOverlay::Advise 메서드를 호출해, 콜백을 설정할 필요가 있다. 아드바이즈린크가 확립하면 해당하는 이벤트가 발생 하면, 렌더러가 디코더의 IOverlayNotify 메서드를 호출한다. 콜백을 취소하려면 ,IOverlay::Unadvise 메서드를 사용하는 것.

비디오 렌더러는, 이 인터페이스의 메서드를 호출하는 유일한 필터이다. 이 호출은, 디폴트의 비디오 렌더러에 의해 자동적으로 행해진다. 대체 비디오 렌더러를 개발하는 경우, 그 필터로 IOverlay 를 지원 해,IOverlay::Advise 의 호출로 필터에 이 인터페이스가 건네받을 때는, 이 인터페이스의 메서드를 사용할 필요가 있다.

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

메서드 설명
OnPaletteChange 윈도우의 팔레트가 변화한 것을 나타내는 통지를 제공한다.
OnClipChange 윈도우의 표시되는 영역이 변화한 것을 나타내는 통지를 제공한다.
OnColorKeyChange chroma-key가 변화한 것을 나타내는 통지를 제공한다.
OnPositionChange 위치가 변화한 것을 나타내는 통지를 제공한다.

↑TOP