Fixed a problem with external Dolby Digital processing via the '-a' option in live mode and with TS recordings

This commit is contained in:
Klaus Schmidinger 2010-05-16 11:00:52 +02:00
parent 225f7ab641
commit 0f9b247122
3 changed files with 8 additions and 2 deletions

View File

@ -2601,3 +2601,7 @@ Paul Menzel <paulepanter@users.sourceforge.net>
Radek Stastny <dedkus@gmail.com>
for translating OSD texts to the Czech language
Christopher Reimer <reimer.christopher@freenet.de>
for reporting a problem with external Dolby Digital processing via the '-a' option
in live mode and with TS recordings

View File

@ -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).

View File

@ -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