summaryrefslogtreecommitdiff
path: root/dvbplayer.c
diff options
context:
space:
mode:
authorKlaus Schmidinger <kls (at) cadsoft (dot) de>2003-04-27 18:00:00 +0200
committerKlaus Schmidinger <kls (at) cadsoft (dot) de>2003-04-27 18:00:00 +0200
commit0686038af36be65b666bce669957c4d94c13f409 (patch)
tree50c5bc80b5f49e0bc14b6846f1f53794c5da6f65 /dvbplayer.c
parent21a52ccb6d43cce35f7a381f55ea291195416f33 (diff)
downloadvdr-patch-lnbsharing-0686038af36be65b666bce669957c4d94c13f409.tar.gz
vdr-patch-lnbsharing-0686038af36be65b666bce669957c4d94c13f409.tar.bz2
Version 1.1.29vdr-1.1.29
- Fixed detecting broken connection to the LIRC daemon (thanks to Ludwig Nussel). - Now sending CA descriptors to the CAM in the same sequence as they were originally received (thanks to Stefan Huelswitt). - The PCR PID can now be set separately from the video PID. The syntax in the 'channels.conf' file is, for example, ...:164+17:..., where 164 is the video PID and 17 is the PCR PID. The separator is a '+' sign, not a comma or semicolon as with the audio PIDs, because this is not an alternate PID, but rather an additional, necessary PID. In order to use this feature you need a driver version dated 2003-04-27 or higher (setting the PCR PID didn't work in earlier versions). - Fixed deleting the last recording in the "Recordings" menu, which started pausing live video (thanks to Christoph Friederich for reporting this one). - Now setting the "broken link" flag for GOPs at the beginning of a new video sequence, which avoids artefacts when cutting (thanks to Stefan Huelswitt). - Removed the Mute() call from cDvbDevice::StillPicture() (suggested by Andreas Schultz). - Updated 'channels.conf.terr' for Berlin (thanks to Andreas Brachold). - Extended logging info when starting/stopping timers to show the channel number, start/stop time and the file name (suggested by Manuel Hartl). - Added a note regarding non-VDR files in the /videoX directories to INSTALL (suggested by Benjamin Harling). - Skipping keys that come in too fast from LIRC (thanks to Christian Jacobsen). - Avoiding short display of the main menu if a plugin displays its own OSD and is started through a user defined key macro (thanks to Andreas Mair for reporting this one). - Reduced the time to wait for EPG data when starting a recording to 3 seconds. - The new SVDRP command STAT can be used to request information about the disk usage (thanks to Thomas Koch). - Fixed faulty calculation of section length in eit.c (thanks to Teemu Rantanen).
Diffstat (limited to 'dvbplayer.c')
-rw-r--r--dvbplayer.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/dvbplayer.c b/dvbplayer.c
index f71c69c..afd4278 100644
--- a/dvbplayer.c
+++ b/dvbplayer.c
@@ -4,12 +4,13 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: dvbplayer.c 1.19 2003/03/30 12:51:51 kls Exp $
+ * $Id: dvbplayer.c 1.20 2003/04/27 09:55:53 kls Exp $
*/
#include "dvbplayer.h"
#include <stdlib.h>
#include "recording.h"
+#include "remux.h"
#include "ringbuffer.h"
#include "thread.h"
#include "tools.h"
@@ -190,6 +191,7 @@ private:
bool eof;
bool active;
bool running;
+ bool firstPacket;
ePlayModes playMode;
ePlayDirs playDir;
int trickSpeed;
@@ -197,7 +199,7 @@ private:
bool canToggleAudioTrack;
uchar audioTrack;
cFrame *readFrame;
- const cFrame *playFrame;
+ cFrame *playFrame;
void TrickSpeed(int Increment);
void Empty(void);
void StripAudioPackets(uchar *b, int Length, uchar Except = 0x00);
@@ -240,6 +242,7 @@ cDvbPlayer::cDvbPlayer(const char *FileName)
eof = false;
active = true;
running = false;
+ firstPacket = true;
playMode = pmPlay;
playDir = pdForward;
trickSpeed = NORMAL_SPEED;
@@ -307,6 +310,7 @@ void cDvbPlayer::Empty(void)
ringBuffer->Clear();
backTrace->Clear();
DeviceClear();
+ firstPacket = true;
}
void cDvbPlayer::StripAudioPackets(uchar *b, int Length, uchar Except)
@@ -403,7 +407,7 @@ void cDvbPlayer::Action(void)
dsyslog("dvbplayer thread started (pid=%d)", getpid());
uchar *b = NULL;
- const uchar *p = NULL;
+ uchar *p = NULL;
int pc = 0;
readIndex = Resume();
@@ -510,6 +514,10 @@ void cDvbPlayer::Action(void)
if (!p) {
p = playFrame->Data();
pc = playFrame->Count();
+ if (firstPacket) {
+ cRemux::SetBrokenLink(p, pc);
+ firstPacket = false;
+ }
}
if (p) {
int w = PlayVideo(p, pc);