Fixed a possible freeze in pause mode in case a device's PlayPesPacket() function permanently returns 0

This commit is contained in:
Klaus Schmidinger 2005-02-08 11:47:15 +01:00
parent 34d51f5f83
commit 8cdd705fb4
3 changed files with 8 additions and 2 deletions

View File

@ -925,6 +925,8 @@ Reinhard Nissl <rnissl@gmx.de>
for extending some buffer sizes to allow handling HDTV streams for extending some buffer sizes to allow handling HDTV streams
for adding substream handling to cDolbyRepacker for adding substream handling to cDolbyRepacker
for modifying cDolbyRepacker to make sure PES packets don't exceed the requested length for modifying cDolbyRepacker to make sure PES packets don't exceed the requested length
for fixing a possible freeze in pause mode in case a device's PlayPesPacket()
function permanently returns 0
Richard Robson <richard_robson@beeb.net> Richard Robson <richard_robson@beeb.net>
for reporting freezing replay if a timer starts while in Transfer Mode from the for reporting freezing replay if a timer starts while in Transfer Mode from the
@ -1215,6 +1217,8 @@ Dino Ravnic <dino.ravnic@fer.hr>
Olaf Titz <olaf@bigred.inka.de> Olaf Titz <olaf@bigred.inka.de>
for fixing some typos in the Makefile's 'font' target for fixing some typos in the Makefile's 'font' target
for reporting a problem and some advice in fixing a possible freeze in pause mode
in case a device's PlayPesPacket() function permanently returns 0
Darren Salt <linux@youmustbejoking.demon.co.uk> Darren Salt <linux@youmustbejoking.demon.co.uk>
for pointing out that the '-' and 'ö' characters need to be escaped in the man for pointing out that the '-' and 'ö' characters need to be escaped in the man

View File

@ -3378,3 +3378,5 @@ Video Disk Recorder Revision History
- Fixed cDvbDevice::SetAudioTrackDevice() to avoid a blank screen after switching - Fixed cDvbDevice::SetAudioTrackDevice() to avoid a blank screen after switching
back to live mode if a recording is currently active on the primary device. back to live mode if a recording is currently active on the primary device.
- Fixed a possible freeze in pause mode in case a device's PlayPesPacket() function
permanently returns 0 (thanks to Reinhard Nissl and Olaf Titz).

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: device.c 1.87 2005/02/06 14:10:37 kls Exp $ * $Id: device.c 1.88 2005/02/08 11:37:09 kls Exp $
*/ */
#include "device.h" #include "device.h"
@ -984,7 +984,7 @@ int cDevice::PlayPes(const uchar *Data, int Length, bool VideoOnly)
int w = PlayPesPacket(Data + i, l, VideoOnly); int w = PlayPesPacket(Data + i, l, VideoOnly);
if (w > 0) if (w > 0)
i += l; i += l;
else if (w < 0) else
return i == 0 ? w : i; return i == 0 ? w : i;
} }
else else