다음을 통해 공유


스트림 동기화

DVD 스트림 입력은 둘 이상의 스트림으로 구성될 수 있습니다. 스트림 클래스 드라이버는 DVD 디코더 미니드라이버를 대신하여 동기화를 투명하게 처리할 수 있습니다. 자세한 내용은 Minidriver 동기화를 참조하세요. 프로그래머는 다음을 포함하여 DVD 스트림에 영향을 주는 여러 가지 요인을 알고 있어야 합니다.

  • 오디오 스트림은 master 클록을 제공해야 하며 데이터가 없는 경우 클록을 합성해야 합니다. 오디오 데이터가 중지되면 오디오 스트림은 KeQueryPerformanceCounter에서 반환한 속도 일치 및 클록 빈도에 따라 시스템 클록을 사용합니다. 다른 모든 스트림은 오디오에 대한 종속적인 역할을 해야 합니다. 즉, 성능을 오디오 스트림에 동기화합니다.

  • 소프트웨어 오디오 디코더는 사용자 모드에서 지원되어야 합니다. 시계 전달자 DirectShow 필터는 DirectShow 시계를 미니드라이버로 전달합니다. 이것은 미니 드라이버에 투명합니다.

  • 디코더는 PES(기본 스트림) 헤더에서 타임스탬프를 사용하면 안 됩니다.

  • SCR(시스템 클록 참조)은 동기화에 사용되지 않습니다. MICROSOFT의 DVD 아키텍처는 오디오 및 비디오 동기화에 "master 클록" 패러다임을 사용하므로 DVD 팩의 SCR 필드는 0으로 설정됩니다.

  • 미니드라이버에는 타임스탬프를 사용할 수 없습니다. DVD 탐색기/분할기는 모든 타임스탬프를 연속으로 만듭니다.

디코더가 오디오 및 비디오 모두에 대한 디코딩 기능을 제공하는 경우 디코더는 시스템 master 클록으로 오디오 스트림이 열릴 때만 하드웨어 동기화를 사용할 수 있습니다. 오디오 스트림이 master 클록이 아닌 경우 비디오 스트림은 비디오 디코딩을 스트림 클래스 master 클록과 동기화해야 합니다.