Demux 클록 동작
[이 페이지와 연결된 기능인 DirectShow는 레거시 기능입니다. MediaPlayer, IMFMediaEngine 및 Media Foundation의 오디오/비디오 캡처로 대체되었습니다. 이러한 기능은 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드에서 DirectShow 대신 MediaPlayer, IMFMediaEngine 및 오디오/비디오 캡처를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]
푸시 모드에서 MPEG-2 Demultiplexer(demux)는 IReferenceClock 인터페이스를 노출합니다. 라이브 원본 역할을 하므로 기본적으로 그래프 참조 클록으로 선택됩니다. 자세한 내용은 라이브 원본을 참조하세요.
- 전송 스트림의 경우 demux는 가장 최근에 애플리케이션에서 매핑한 오디오 또는 비디오 스트림에 해당하는 PCR 스트림에 시계를 동기화합니다. 내부적으로 demux는 PAT 및 PMT 테이블을 추적합니다. 애플리케이션이 기본 스트림 PID를 출력 핀에 매핑하면 demux는 해당 PID에 대한 PCR 스트림을 조회하고 해당 PCR 스트림을 사용합니다. (현재 애플리케이션에서 PCR PID를 직접 지정할 수 있는 방법은 없습니다.)
- 프로그램 스트림의 경우 demux는 해당 시계를 SCR 스트림과 동기화합니다.
필터 클록을 PCR 또는 SCR 스트림에 동기화하면 데이터 오버플로 또는 언더플로가 방지되며, 그래프 클록이 스트림 클록과 다를 경우 발생할 수 있습니다. 또한 demux는 PES PTS 값을 DirectShow 참조 시간으로 변환하고 이러한 값을 사용하여 미디어 샘플을 타임스탬프합니다. 타임스탬프는 다음 프레임 경계에 적용됩니다. 프레임 경계가 미디어 샘플의 시작과 일치한다는 보장은 없습니다.
demux는 타임스탬프를 단조롭게 증가시키는 것을 보장합니다. 예를 들어 전송 스트림에 기본 프로그램과 다른 클록으로 만든 광고와 같은 세그먼트가 포함된 경우 demux는 다운스트림 필터에서 시간 불연속성을 숨기도록 프레젠테이션 타임스탬프를 조정합니다.
관련 항목