summaryrefslogtreecommitdiff
path: root/device.c
diff options
context:
space:
mode:
authorKlaus Schmidinger <kls (at) cadsoft (dot) de>2008-12-14 16:54:12 +0100
committerKlaus Schmidinger <kls (at) cadsoft (dot) de>2008-12-14 16:54:12 +0100
commit1834751c4510edb66c96d0b741def5922738e74c (patch)
tree7ce12d0916803847ebec437d4c03b90338d815f6 /device.c
parentc848ab793a302dc067663ec4a06395745e443c9d (diff)
downloadvdr-patch-lnbsharing-1834751c4510edb66c96d0b741def5922738e74c.tar.gz
vdr-patch-lnbsharing-1834751c4510edb66c96d0b741def5922738e74c.tar.bz2
Version 1.7.2vdr-1.7.2
- Added a note about 'Id' being obsolete to the description of cDevice::PlayAudio(). - Switched to the new S2API driver API, which was decided to become the official DVB API in the kernel (based on patches from Igor M. Liplianin, Niels Wagenaar and Edgar Hucek). VDR now uses the S2API driver from http://linuxtv.org/hg/v4l-dvb. In order to correctly detect DVB-S2 capable devices, you need to apply the patch from ftp://ftp.cadsoft.de/vdr/Developer/v4l-dvb-s2api-add-s2-capability.diff to the driver source, because the S2API doesn't provide a way of telling whether a device can handle DVB-S2 transponders. - The cDvbTuner::IsTunedTo() function now also checks the symbol rate in case of DVB-S and DVB-C. - Improved handling PES video packets with zero length when converting from TS to PES. For good replay in Transfer Mode on full featured DVB cards you may want to apply the patch from ftp://ftp.cadsoft.de/vdr/Developer/av7110_v4ldvb_api5_audiobuf_test_1.diff to the driver (thanks to Oliver Endriss).
Diffstat (limited to 'device.c')
-rw-r--r--device.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/device.c b/device.c
index 06f6864..7d42a5e 100644
--- a/device.c
+++ b/device.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: device.c 2.3 2008/07/06 13:22:21 kls Exp $
+ * $Id: device.c 2.4 2008/12/13 14:30:28 kls Exp $
*/
#include "device.h"
@@ -1228,13 +1228,13 @@ int cDevice::PlayTsVideo(const uchar *Data, int Length)
// Video PES has no explicit length, so we can only determine the end of
// a PES packet when the next TS packet that starts a payload comes in:
if (TsPayloadStart(Data)) {
- if (const uchar *p = tsToPesVideo.GetPes(Length)) {
- int w = PlayVideo(p, Length);
- if (w > 0)
- tsToPesVideo.Reset();
- else
- return w;
- }
+ int l;
+ while (const uchar *p = tsToPesVideo.GetPes(l)) {
+ int w = PlayVideo(p, l);
+ if (w < 0)
+ return w;
+ }
+ tsToPesVideo.Reset();
}
tsToPesVideo.PutTs(Data, Length);
return Length;