Freigeben über


Streamsynchronisierung

DVD-Streameingaben können aus zwei oder mehr Streams bestehen. Der Streamklassentreiber kann die Synchronisierung transparent im Auftrag des DVD-Decoder-Minidrivers verarbeiten. Weitere Informationen finden Sie unter Minidriver-Synchronisierung. Programmierer müssen sich noch über mehrere Faktoren im Klaren sein, die sich auf DVD-Streams auswirken, einschließlich:

  • Der Audiodatenstrom muss die master Uhr bereitstellen und die Uhr synthetisieren, wenn keine Daten vorhanden sind. Wenn die Audiodaten beendet werden, verwendet der Audiodatenstrom die Systemuhr basierend auf dem Ratenabgleich und der Taktfrequenz, wie von KeQueryPerformanceCounter zurückgegeben. Alle anderen Streams müssen als untergeordnete Audiodatenströme fungieren. Das heißt, sie synchronisieren ihre Leistung mit dem Audiostream.

  • Softwareaudiodecoder müssen im Benutzermodus unterstützt werden. Der DirectShow-Filter für die Uhrweiterleitung leitet die DirectShow-Uhr an den Minitreiber weiter. Dies ist für den Minitreiber transparent.

  • Der Decoder sollte nicht die Zeitstempel im PES-Header (Primary Elementary Stream) verwenden.

  • Systemuhrverweise (SCRs) werden bei der Synchronisierung nicht verwendet. Das SCR-Feld des DVD-PAKETs ist auf null festgelegt, da die DVD-Architektur von Microsoft das Paradigma "master Uhr" für die Audio- und Videosynchronisierung verwendet.

  • Der Minitreiber sieht keine Zeitstempel-Diskontinuitäten. Der DVD-Navigator/-Splitter macht alle Zeitstempel zusammenhängend.

Wenn ein Decoder Decodierungsfunktionen sowohl für Audio als auch für Video bereitstellt, kann der Decoder die Hardwaresynchronisierung nur verwenden, wenn der Audiodatenstrom als System master Uhr geöffnet wird. Wenn der Audiodatenstrom nicht die master Uhr ist, muss der Videodatenstrom die Videodecodierung mit der Streamklasse master Uhr synchronisieren.