이벤트 알림 코드
[이 페이지와 연결된 기능인 DirectShow는 레거시 기능입니다. MediaPlayer, IMFMediaEngine 및 Media Foundation의 오디오/비디오 캡처로 대체되었습니다. 이러한 기능은 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드에서 DirectShow 대신 MediaPlayer, IMFMediaEngine 및 오디오/비디오 캡처를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]
이 섹션에서는 DVD와 관련이 없는 DirectShow 이벤트를 나열합니다. DVD와 관련된 이벤트는 DVD 이벤트 알림 코드를 참조하세요.
필터는 IMediaEventSink::Notify 메서드를 호출하여 필터 그래프 관리자로 이벤트를 보냅니다. Filter Graph Manager는 일부 이벤트를 처리하고 애플리케이션에 대해 다른 이벤트를 큐에 대기합니다. 애플리케이션은 IMediaEvent::GetEvent 메서드를 호출하여 검색합니다.
다음 섹션에서 각 항목에는 이벤트 코드, 이벤트 매개 변수의 의미 및 이벤트에 대한 Graph 관리자 필터링의 기본 작업(있는 경우)이 나열됩니다. 기본 작업을 재정의하려면 IMediaEvent::CancelDefaultHandling을 호출합니다. 이벤트 코드는 헤더 파일 Evcode.h 및 Audevcod.h에 정의됩니다. 기본 작업이 없는 경우 Filter Graph Manager는 이벤트 큐를 통해 애플리케이션에 이벤트를 자동으로 전달합니다.
사용자 지정 이벤트
필터는 EC_USER 이상의 범위에서 이벤트 코드를 사용하여 사용자 지정 이벤트를 정의할 수 있습니다. 필터 그래프 관리자는 이벤트 큐에 직접 배치합니다. 그러나 다음 주의 사항이 적용됩니다.
- Filter Graph Manager는 일반 IMediaEvent::FreeEventParams 메서드를 사용하여 이벤트 매개 변수를 해제할 수 없습니다. 애플리케이션은 이벤트 매개 변수와 연결된 모든 메모리 또는 참조 수를 해제해야 합니다.
- 필터는 이벤트를 처리할 준비가 된 애플리케이션 내에서만 이벤트를 보내야 합니다. (애플리케이션이 필터에서 사용자 지정 속성을 설정하여 이벤트를 안전하게 보낼 수 있음을 나타낼 수 있습니다.)
이벤트 알림 코드 | Description |
---|---|
EC_ACTIVATE | 비디오 창이 활성화되거나 비활성화되고 있습니다. |
EC_BANDWIDTHCHANGE | 지원되지 않습니다. |
EC_BUFFERING_DATA | 그래프가 데이터를 버퍼링하거나 데이터 버퍼링을 중지했습니다. |
EC_BUILT | 그래프가 작성되었을 때 Video Control에서 보냅니다. 애플리케이션에 전달되지 않습니다. |
EC_CLOCK_CHANGED | 참조 클록이 변경되었습니다. |
EC_CLOCK_UNSET | 클록 공급자의 연결이 끊어졌습니다. |
EC_CODECAPI_EVENT | 인코더에서 인코딩 이벤트를 신호로 보냅니다. |
EC_COMPLETE | 특정 스트림의 모든 데이터가 렌더링되었습니다. |
EC_CONTENTPROPERTY_CHANGED | 지원되지 않습니다. |
EC_DEVICE_LOST | 플러그 앤 플레이 디바이스가 제거되었거나 다시 사용할 수 있게 되었습니다. |
EC_DISPLAY_CHANGED | 디스플레이 모드가 변경되었습니다. |
EC_END_OF_SEGMENT | 세그먼트의 끝에 도달했습니다. |
EC_EOS_SOON | 지원되지 않습니다. |
EC_ERROR_STILLPLAYING | 그래프를 실행하는 비동기 명령이 실패했습니다. |
EC_ERRORABORT | 오류로 인해 작업이 중단되었습니다. |
EC_ERRORABORTEX | 오류로 인해 작업이 중단되었습니다. |
EC_EXTDEVICE_MODE_CHANGE | 지원되지 않습니다. |
EC_FILE_CLOSED | 예기치 않은 이벤트로 인해 원본 파일이 닫혔습니다. |
EC_FULLSCREEN_LOST | 비디오 렌더러가 전체 화면 모드에서 전환되고 있습니다. |
EC_GRAPH_CHANGED | 필터 그래프가 변경되었습니다. |
EC_LENGTH_CHANGED | 원본의 길이가 변경되었습니다. |
EC_LOADSTATUS | 네트워크 파일을 열 때 애플리케이션에 진행 상황을 알 수 있습니다. |
EC_MARKER_HIT | 지원되지 않습니다. |
EC_NEED_RESTART | 필터가 그래프를 다시 시작하라는 요청입니다. |
EC_NEW_PIN | 지원되지 않습니다. |
EC_NOTIFY_WINDOW | 비디오 렌더러 창의 필터에 알립니다. |
EC_OLE_EVENT | 필터가 텍스트 문자열을 애플리케이션에 전달합니다. |
EC_OPENING_FILE | 그래프가 파일을 열거나 파일 열기를 완료했습니다. |
EC_PALETTE_CHANGED | 비디오 팔레트가 변경되었습니다. |
EC_PAUSED | 일시 중지 요청이 완료되었습니다. |
EC_PLEASE_REOPEN | 원본 파일이 변경되었습니다. |
EC_PREPROCESS_COMPLETE | 멀티패스 인코딩을 위한 사전 처리를 완료할 때 WM ASF 기록 기 필터에서 전송됩니다. |
EC_PROCESSING_LATENCY | 구성 요소가 각 샘플을 처리하는 데 걸리는 시간을 나타냅니다. |
EC_QUALITY_CHANGE | 그래프는 품질 관리를 위해 샘플을 삭제하고 있습니다. |
EC_RENDER_FINISHED | 지원되지 않습니다. |
EC_REPAINT | 비디오 렌더러에는 다시 그려야 합니다. |
EC_SAMPLE_LATENCY | 구성 요소가 샘플 처리를 위한 일정보다 훨씬 뒤처지는 정도를 지정합니다. |
EC_SAMPLE_NEEDED | EVR(고급 비디오 렌더러) 필터에서 새 입력 샘플을 요청합니다. |
EC_SCRUB_TIME | 가장 최근 프레임 단계의 타임스탬프를 지정합니다. |
EC_SEGMENT_STARTED | 새 세그먼트가 시작되었습니다. |
EC_SHUTTING_DOWN | 필터 그래프는 삭제되기 전에 종료됩니다. |
EC_SNDDEV_IN_ERROR | 오디오 캡처 필터에서 디바이스 오류가 발생했습니다. |
EC_SNDDEV_OUT_ERROR | 오디오 렌더러 필터에서 디바이스 오류가 발생했습니다. |
EC_STARVATION | 필터가 충분한 데이터를 받지 못하고 있습니다. |
EC_STATE_CHANGE | 필터 그래프의 상태가 변경되었습니다. |
EC_STATUS | 두 개의 임의 상태 문자열을 포함합니다. |
EC_STEP_COMPLETE | 프레임 스테핑을 수행하는 필터가 지정된 수의 프레임을 밟았습니다. |
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_VIDEOFRAMEREADY | 비디오 프레임을 표시할 준비가 된 것입니다. |
EC_VMR_RECONNECTION_FAILED | 업스트림 디코더에서 동적 형식 변경 요청을 수락할 수 없는 경우 VMR-7 및 VMR-9에서 전송됩니다. |
EC_VMR_RENDERDEVICE_SET | VMR이 렌더링 메커니즘을 선택한 경우 전송됩니다. |
EC_VMR_SURFACE_FLIPPED | VMR-7의 할당자 발표자가 표시되는 표면에서 DirectDraw Flip 메서드를 호출했을 때 전송됩니다. |
EC_WINDOW_DESTROYED | 비디오 렌더러가 그래프에서 제거되거나 제거되었습니다. |
EC_WMT_EVENT | WM ASF 판독기 필터가 DRM(디지털 권한 관리)으로 보호되는 ASF 파일을 읽을 때 전송됩니다. |
EC_WMT_INDEX_EVENT | 애플리케이션이 WM ASF 기록기를 사용하여 Windows Media Video 파일을 인덱싱할 때 전송됩니다. |
관련 항목