From 24bbaa277c546857176ff1485f67f6185d4fbedb Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sat, 24 May 2003 08:48:49 +0200 Subject: [PATCH] Modified handling of audio packets in cDvbPlayer for better sync with external AC3 replay --- CONTRIBUTORS | 2 ++ HISTORY | 5 +++++ config.h | 6 +++--- dvbplayer.c | 16 ++++++++++------ 4 files changed, 20 insertions(+), 9 deletions(-) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index d31a118e..4e205ef1 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -236,6 +236,8 @@ Werner Fink for improving keyboard detection for adding some missing cAudio handling calls for replacing the 'for' loops in StripAudioPackets() with memset() calls + for modifying handling of audio packets in cDvbPlayer for better sync with external + AC3 replay Rolf Hakenes for providing 'libdtv' and adapting the EIT mechanisms to it diff --git a/HISTORY b/HISTORY index 0f46d7e5..1fbec820 100644 --- a/HISTORY +++ b/HISTORY @@ -2172,3 +2172,8 @@ Video Disk Recorder Revision History to Lars Bläser for reporting this one). - No longer waiting inside cIndexFile::CatchUp() to avoid shortly blocking replay at the end of a recording. + +2003-05-24: Version 1.1.33 + +- Modified handling of audio packets in cDvbPlayer for better sync with external + AC3 replay (thanks to Werner Fink). diff --git a/config.h b/config.h index 4d265ff7..c7c30134 100644 --- a/config.h +++ b/config.h @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: config.h 1.159 2003/05/16 12:27:58 kls Exp $ + * $Id: config.h 1.160 2003/05/19 15:27:37 kls Exp $ */ #ifndef __CONFIG_H @@ -19,8 +19,8 @@ #include "device.h" #include "tools.h" -#define VDRVERSION "1.1.32" -#define VDRVERSNUM 10132 // Version * 10000 + Major * 100 + Minor +#define VDRVERSION "1.1.33" +#define VDRVERSNUM 10133 // Version * 10000 + Major * 100 + Minor #define MAXPRIORITY 99 #define MAXLIFETIME 99 diff --git a/dvbplayer.c b/dvbplayer.c index afd42789..7224a8ab 100644 --- a/dvbplayer.c +++ b/dvbplayer.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: dvbplayer.c 1.20 2003/04/27 09:55:53 kls Exp $ + * $Id: dvbplayer.c 1.21 2003/05/19 15:23:19 kls Exp $ */ #include "dvbplayer.h" @@ -477,8 +477,8 @@ void cDvbPlayer::Action(void) } int r = nonBlockingFileReader->Read(replayFile, b, Length); if (r > 0) { - if (AudioTrack >= 0) - StripAudioPackets(b, r, AudioTrack); + if (AudioTrack == 0) + StripAudioPackets(b, r); readFrame = new cFrame(b, -r, ftUnknown, readIndex); // hands over b to the ringBuffer b = NULL; } @@ -514,9 +514,13 @@ void cDvbPlayer::Action(void) if (!p) { p = playFrame->Data(); pc = playFrame->Count(); - if (firstPacket) { - cRemux::SetBrokenLink(p, pc); - firstPacket = false; + if (p) { + if (firstPacket) { + cRemux::SetBrokenLink(p, pc); + firstPacket = false; + } + if (AudioTrack > 0) + StripAudioPackets(p, pc, AudioTrack); } } if (p) {