From 0f9b247122314e51f06d848b7801dbfcacab3de7 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sun, 16 May 2010 11:00:52 +0200 Subject: [PATCH] Fixed a problem with external Dolby Digital processing via the '-a' option in live mode and with TS recordings --- CONTRIBUTORS | 4 ++++ HISTORY | 2 ++ audio.c | 4 ++-- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 9a6ab5de..80e43803 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -2601,3 +2601,7 @@ Paul Menzel Radek Stastny for translating OSD texts to the Czech language + +Christopher Reimer + for reporting a problem with external Dolby Digital processing via the '-a' option + in live mode and with TS recordings diff --git a/HISTORY b/HISTORY index edb3d6b9..a92ed18f 100644 --- a/HISTORY +++ b/HISTORY @@ -6456,3 +6456,5 @@ Video Disk Recorder Revision History - Implemented handling of HD resolution subtitles according to v1.3.1 of ETSI EN 300 743, chapter 7.2.1 (thanks to Rolf Ahrenberg). - The EPG data now handles stream components 5 (H.264-video) and 6 (HEAAC-audio). +- Fixed a problem with external Dolby Digital processing via the '-a' option in live + mode and with TS recordings (reported by Christopher Reimer). diff --git a/audio.c b/audio.c index 66430d54..2c8e4f72 100644 --- a/audio.c +++ b/audio.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: audio.c 2.1 2008/07/06 11:42:58 kls Exp $ + * $Id: audio.c 2.2 2010/05/16 11:00:52 kls Exp $ */ #include "audio.h" @@ -56,6 +56,7 @@ cExternalAudio::cExternalAudio(const char *Command) { command = strdup(Command); mute = false; + cDvbDevice::SetTransferModeForDolbyDigital(2); } cExternalAudio::~cExternalAudio() @@ -68,7 +69,6 @@ void cExternalAudio::Play(const uchar *Data, int Length, uchar Id) if (command && !mute) { if (pipe || pipe.Open(command, "w")) { if (0x80 <= Id && Id <= 0x87 || Id == 0xBD) { // AC3 - cDvbDevice::SetTransferModeForDolbyDigital(2); int written = Data[8] + 9; // skips the PES header if (Id != 0xBD) written += 4; // skips AC3 bytes