MPEG-2 Demux Run-Time 모드
[이 페이지와 연결된 기능인 DirectShow는 레거시 기능입니다. MediaPlayer, IMFMediaEngine 및 Media Foundation의 오디오/비디오 캡처로 대체되었습니다. 이러한 기능은 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드에서 DirectShow 대신 MediaPlayer, IMFMediaEngine 및 오디오/비디오 캡처를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]
MPEG-2 Demultiplexer("demux")는 푸시 모드 또는 끌어오기 모드에서 작동할 수 있습니다. 푸시 모드에서 데이터는 네트워크 브로드캐스트와 같은 라이브 원본에서 가져옵니다. 끌어오기 모드에서 데이터는 로컬 파일에서 가져옵니다.
- 끌어오기 모드는 Windows XP 이상에서 프로그램 스트림에만 사용할 수 있습니다. 하위 수준 플랫폼에서 MPEG-2 분할기 필터를 사용합니다.
- 푸시 모드는 프로그램 스트림과 전송 스트림 모두에 대해 모든 플랫폼에서 사용할 수 있습니다.
따라서 demux는 끌어오기 모드의 프로그램 스트림, 푸시 모드의 프로그램 스트림 및 푸시 모드의 전송 스트림의 세 가지 가능한 모드를 지원합니다. demux는 런타임에 사용할 모드를 결정합니다. 이 모드는 입력 핀이 연결되거나 첫 번째 출력 핀이 구성된 경우(어느 것이 먼저 발생하든) 결정됩니다.
- 입력 핀이 연결되면: Windows XP 이상에서 demux는 IAsyncReader 인터페이스에 대한 업스트림 필터를 쿼리합니다. 업스트림 필터가 해당 인터페이스를 노출하는 경우 demux는 끌어오기 모드의 프로그램 스트림에 대해 자체 구성합니다. 그렇지 않으면 demux는 푸시 모드를 사용하고 미디어 유형은 스트림 유형(프로그램 스트림 또는 전송 스트림)을 결정합니다. 입력 형식 목록은 MPEG-2 Demultiplexer 미디어 형식 을 참조하세요.
- 첫 번째 출력 핀이 구성된 경우: 출력 핀을 만들고 IMPEG2PIDMap에 대해 쿼리하는 경우 demux는 푸시 모드의 전송 스트림에 대해 자체적으로 구성됩니다. IMPEG2StreamIdMap에 대한 핀을 쿼리하는 경우 demux는 푸시 모드에서도 프로그램 스트림에 대해 자체적으로 구성합니다. demux가 한 번에 두 가지 모드로 작동할 수 없으므로 다른 인터페이스에 대한 후속 쿼리는 실패합니다.
demux가 특정 모드에 대해 자체 구성되면 해당 모드로 유지됩니다. 다른 모드를 사용하려면 demux의 새 instance 만들어야 합니다.
관련 항목