DirectShow DirectShow 레퍼런스 정수와 GUID 이벤트 통지 코드   [목차열람] [주소복사] [슬롯비우기]
이벤트 통지 코드
 
Microsoft DirectX 9.0

이벤트 통지 코드

여기에서는, DVD 고유 이벤트 이외의 DirectShow 이벤트에 대해 설명한다. DVD 에 고유의 이벤트에 대해서는, 「DVD 이벤트 통지 코드」를 참조할것.

필터는,IMediaEventSink::Notify 메서드를 호출하는 것에 의해 필터 그래프 매니저에 이벤트를 건네준다. 필터 그래프 매니저는, 일부의 이벤트를 처리해, 그 이외의 이벤트를 애플리케이션의 큐에 넣는다. 애플리케이션은,IMediaEvent::GetEvent 메서드를 호출하는 것으로, 이벤트를 얻어온다.

이하의 섹션에서는, 이벤트 코드와 이벤트 파라미터의 의미를 리스트 해, 이벤트에 대해서 필터 그래프 매니저의 기정의 동작이 있으면 그것도 리스트 한다. 기정의 동작을 오버라이드(override) 하려면 ,IMediaEvent::CancelDefaultHandling 를 호출한다. 이벤트 코드는, 헤더 파일의 Evcode.h 및 Audevcod.h 에 정의되고 있다. 기정의 동작이 설정되지 않은 경우, 필터 그래프 매니저는, 이벤트 큐를 사용해 자동적으로 이벤트를 애플리케이션에 전송 한다.

커스텀 이벤트

필터는, EC_USER 이상의 범위에서 이벤트 코드를 사용해 커스텀 이벤트를 정의할 수 있다. 필터 그래프 매니저는 이것들을 직접 이벤트 큐에 둔다. 다만, 이하의 점에 주의 해야 한다.

이벤트 통지 코드 설명
EC_ACTIVATE 비디오 윈도우가 액티브 또는 비액티브하다.
EC_BUFFERING_DATA 그래프가 데이터를 버퍼링 하고 있다, 또는 데이터의 버퍼링을 정지했다.
EC_BUILT 그래프를 생성 끝마쳤을 때에 비디오 컨트롤에 의해 송신된다. 애플리케이션에는 전송 되지 않는다.
EC_CLOCK_CHANGED 기준 클럭이 변경되었다.
EC_CLOCK_UNSET 클럭 프로바이더의 접속이 해제되었다.
EC_CODECAPI_EVENT 인코딩 이벤트를 통지하기 위해서 엔코더에 의해 송신된다.
EC_COMPLETE 특정의 스트림으로부터의 모든 데이터를 렌더링 끝마쳤다.
EC_DEVICE_LOST 플러그 앤 플레이 장치가 떼어내진, 또는 다시 사용할 수 있게 되었다.
EC_DISPLAY_CHANGED 디스플레이 모드가 변경되었다.
EC_END_OF_SEGMENT 세그먼트(segment)의 끝나에 도달했다.
EC_ERROR_STILLPLAYING 그래프를 실행하는 비동기 커멘드가 실패했다.
EC_ERRORABORT 에러이기 때문에 처리가 중지되었다.
EC_EXTDEVICE_MODE_CHANGE 지원하지 않는다.
EC_FULLSCREEN_LOST 비디오 렌더러가 풀 스크린 모드로부터 바뀌려 하고 있다.
EC_GRAPH_CHANGED 필터 그래프가 변경되었다.
EC_LENGTH_CHANGED 소스의 길이가 변경되었다.
EC_NEED_RESTART 필터가 그래프의 재개를 요구하고 있다.
EC_NOTIFY_WINDOW 필터에 비디오 렌더러의 윈도우를 통지한다.
EC_OLE_EVENT 필터가 애플리케이션에 텍스트 캐릭터 라인을 건네주고 있다.
EC_OPENING_FILE 그래프가 파일을 열고 있다, 또는 파일을 열어 끝냈다.
EC_PALETTE_CHANGED 비디오 팔레트가 변경되었다.
EC_PAUSED 포즈 요구가 완료했다.
EC_QUALITY_CHANGE 품질 컨트롤이기 때문에, 그래프가 샘플을 삭제했다.
EC_REPAINT 비디오 렌더러가 재드로잉(Drawing)를 요구하고 있다.
EC_SEGMENT_STARTED 새로운 세그먼트(segment)가 시작 했다.
EC_SHUTTING_DOWN 필터 그래프가 파기전에 셧다운 하고 있다.
EC_SNDDEV_IN_ERROR 입력 핀으로 오디오 장치 에러가 발생했다.
EC_SNDDEV_OUT_ERROR 출력 핀으로 오디오 장치 에러가 발생했다.
EC_STARVATION 필터는 충분한 데이터를 받지 않았다.
EC_STATE_CHANGE 필터 그래프가 변경되었다.
EC_STEP_COMPLETE 스탭핑(Stepping)를 실행하고 있는 필터가, 지정수의 스탭핑(Stepping)를 완료했다.
EC_STREAM_CONTROL_STARTED 스트림 제어 시작 커멘드가 유효하게 되었다.
EC_STREAM_CONTROL_STOPPED 스트림 제어 정지 커멘드가 유효하게 되었다.
EC_STREAM_ERROR_STILLPLAYING 스트림중에 에러가 발생했다. 스트림은 계속해 재생중이다.
EC_STREAM_ERROR_STOPPED 에러이기 때문에 스트림이 정지했다.
EC_TIMECODE_AVAILABLE 지원하지 않는다.
EC_UNBUILT 그래프를 파기 끝마쳤을 때에 비디오 컨트롤에 의해 송신된다. 애플리케이션에는 전송 되지 않는다.
EC_USERABORT 사용자가 재생을 강제 종료했다.
EC_VIDEO_SIZE_CHANGED 네이티브 비디오 사이즈가 변경되었다.
EC_VMR_RENDERDEVICE_SET VMR 가 렌더링 메카니즘을 선택 끝마쳤을 때에 송신된다.
EC_VMR_SURFACE_FLIPPED VMR-7 의 얼로케이터 프리젠터가, 표시하는 표면의 DirectDraw Flip 메서드를 호출했을 때에 송신된다.
EC_VMR_RECONNECTION_FAILED 업 스트림 디코더로부터 동적 포맷 변경 요구를 받아들일 수가 없었던 경우에, VMR-7 및 VMR-9 에 의해 송신된다.
EC_WINDOW_DESTROYED 비디오 렌더러가 파기 또는 그래프로부터 삭제되었다.
EC_WMT_EVENT 애플리케이션이 ASF Reader 필터를 사용해, DRM (digital rights management)에 의해 보호되고 있는 ASF 파일을 재생하는 경우에, Windows Media Format SDK 에 의해 송신된다.
EC_WMT_INDEX_EVENT 애플리케이션이 ASF Writer 를 사용해, Windows Media Video 파일에 인덱스를 붙이는 경우에, Windows Media Format SDK 에 의해 송신된다.

참조

↑TOP