Modified handling of audio packets in cDvbPlayer for better sync with external AC3 replay

This commit is contained in:
Klaus Schmidinger 2003-05-24 08:48:49 +02:00
parent a28e2ef5b5
commit 24bbaa277c
4 changed files with 20 additions and 9 deletions

View File

@ -236,6 +236,8 @@ Werner Fink <werner@suse.de>
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 <hakenes@hippomi.de>
for providing 'libdtv' and adapting the EIT mechanisms to it

View File

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

View File

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

View File

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