AC3 over DVB

Dolby Digital DTS

Dieser Patch gegen VDR 1.2 bietet die Möglichkeit, Dolby Digital (AC3) und DTS über die DVB-Karte wiedergeben zu können.


Prinzipielle Funktionsweise

Da die DVB-Karte die "richtigen" Dolby Digital oder DTS-Streams nicht abspielen kann, werden diese umkodiert und als PCM-Datenstrom getarnt. Mit diesem Trick gelangen die Daten-Pakete zum digitalen Audio-Ausgang S/P-DIF der DVB Karte und können so mit den meisten, aber leider nicht allen, externen DD- oder DTS-fähigen AV-Receivern abgespielt werden. Stefan Hülswitt (huels bei iname punkt com) pflegt eine Liste aller AV-Receiver, Dekoder,... bei denen AC3overDVB funktioniert bzw. bei denen es definitiv nicht funktioniert.

Aufgrund dieser Tatsache funktioniert AC3overDVB nur, wenn der Datenstrom durch VDR durchgeleitet wird. Somit ist also entweder ein Transfer-Modus oder das Abspielen einer Aufzeichnung oder einer DVD notwendig.


Technischer Hintergrund

Das Problem ist ja, dass die DVB-Karte kein richtiges DD- oder DTS-Signal ausgeben kann, weshalb VDR (mit diesem Patch) die Datenpakete als PCM-Pakete tarnt. Nur so kommt der Mehrkanalton durch die Karte.

Als der Standard für AC3inPCM festgelegt wurde, wurde (leider) von der Möglichkeit gebrauch gemacht, ein bestimmtes Bit zu setzen, das besagt, dass der PCM-Stream kein Audio-Signal enthält. Das sollte vermeiden, dass ältere Verstärker, die kein AC3 dekodieren können, das Rauschen ausgeben. Mit der DVB-Karte kann man aber genau dieses eine Bit nicht beeinflussen; Und manche ältere Verstärker nehmen die Spezifikation sehr genau und akzeptieren daher den AC3inPCM-Stream der DVB-Karte nicht :-(

Genau das gleiche Prinzip wird in der Zwischenzeit auch bei DTS-CDs verwendet. Somit kann ein normaler CD-Player mit digitalem Ausgang diese DTS-CDs wiedergeben. Als DTS ins Spiel kam wurde die Spezifikation aufgelockert, da DTS genau diese DTS-CDs im Sinn hatte, und ein CD-Player dieses Bit auch nicht setzen kann.

Somit sollte jeder aktuelle Verstärker und auch ältere Verstärker, die das DTS-Signal dekodieren können, mit der DVB-Karte zurecht kommen.


Zur Implementierung

Für Software-Entwickler sind vielleicht diese Punkte interessant:

  • Dieser Patch ist hauptsächlich nur wegen der DVB-Karte notwendig. Andere Devices können die originalen Streams evtl. abspielen. Soweit ich weiß, müsste es z.B. mit der DXR3-Karte prinzipiell funktionieren, wenn das auch im aktuellen Plugin wahrscheinlich noch nicht implementiert ist.
  • Da das Problem also nur die DVB-Karten betrifft, habe ich die Kapselung des Datenstroms als Filter in das DvbDevice integriert. Ein beliebiger Player, z.B. DvbPlayer (der in VDR die Aufnahmen abspielt) oder ein DVD-Player können die DD/DTS-Datenströme ganz normal an das ihnen zugeordnete Device senden. Das Device ist dann dafür verantwortlich, diesen Datenstrom richtig weiter zu bearbeiten.
  • Die Kapselung findet in einer eigenen Klasse cMultichannelAudio statt, so dass auch andere Devices, die das gleiche Problem wie die DVB-Karte haben, die Funktionalität mitbenutzen können.
  • Ebenfalls findet sich mit der Klasse cPES ein Stream-Scanner, der abhängig vom Pakettyp verschiedene Aktionen durchführen kann. Dies wird hier benutzt, um "falsche" Audio-Pakete aus dem Stream zu entfernen und den PrivateStream1 an cMultichannelAudio zu schicken.
  • Ein Device muss die Methode bool HasDigitalAudioOut() mit true beantworten, damit ein Player überhaupt digitale Audio-Daten an das Device schicken kann und darf.

Zu beachten

Der Patch unterstützt momentan die Kapselung sowohl von Dolby Digital als auch von DTS Datenströmen. Dabei wird jedoch keinerlei Dekodierung vorgenommen! Sie müssen also sicherstellen, dass ihr Equipment auch in der Lage ist, die entspr. Digitalen Audio-Daten zu verarbeiten. Während ein digitaler Strom wie DD oder DTS abgespielt wird, kommt aus den Analogausgängen der DVB-Karte nur Rauschen. Dieses Rauschen kann ihre Anlage (Verstärker/Boxen) zerstören, wenn sie zu laut aufgedreht ist!

Bei anderen Devices, die richtige digitale Audio-Ströme ausgeben können, sollte dieser Effekt nicht auftreten, da hier kein vermeintlicher PCM-Strom an die D/A-Wandler geschickt wird.


Bedienung

Im Menü "Einstellungen/DVB/Mehrkanalton (DD/DTS)" muss eingestellt werden, dass man Equipment hat, das DD oder DTS abspielen kann.

Ab diesem Moment kann man beim Abspielen von Aufnahmen und im Transfer-Modus auch auf die weiteren Audio-Tracks umschalten, falls vorhanden (diese werden übrigens automatisch aktiviert, sobald ein entspr. Strom detektiert wird).

Im Menü "Einstellungen/DVB/Transfermode erzwingen (LiveAC3)" kann eingestellt werden, dass VDR versucht, die Kanäle, die eine DPID hinterlegt haben, im TransferModus zu starten.

Im DVD-Player wird der AC3-Datenstrom nicht mehr dekodiert, sondern in seiner ursprünglichen Form an das Device übergeben.


Download

Stefan Hülswitt (huels bei iname punkt com) pflegt die Patchs und entwickelt sie weiter. Die Patches können von seiner Seite runtergeladen werden: http://www.muempf.de/down.html

[ Oben ] Wenn Sie noch Fragen oder Ideen für Erweiterungen haben, oder einen Bug melden möchten, dann wenden Sie sich bitte an Jan Rieger (jan bei ricomp punkt de) .