I was using vdr-1.3.1, and getting those errors. I've just compiled 1.3.23 and don't ALTHOUGH...... I'm doing the testing via a DEBUG_OSD=1 compile and a 'shell' because I have a slow running X problem at the moment. 1) The problem _may_ not be happenning now in version 1.3.23, although until I resolve my slow x problem I can't be sure 2) The Makefile in 1.3.23 no longer has the tags for DEBUG_OSD. Has this now been removed? I added : ifdef DEBUG_OSD DEFINES += -DDEBUG_OSD NCURSESLIB = -lncurses endif to the Makefile, but the OSD shell-text OSD doesn't startup when I start vdr now??? Has this been removed?? Thanks Simon ----- Original Message ----- From: "Reinhard Nissl" <rnissl@xxxxxx> To: "Klaus Schmidinger's VDR" <vdr@xxxxxxxxxxx> Sent: Tuesday, May 03, 2005 10:06 PM Subject: Re: xine-vdr NovaT "FIXME: xineDevice.c:1160" > Hi, > > Simon Baxter wrote: > >> I've just setup my WinTV NovaT on a new (2.2Ghz) shuttle PC and built >> the xine-plugin components. >> >> I created a new channels.conf file with scan and ran up VDR >> >> On some channels I get screens and screens of information like : >> FIXME: xineDevice.c:1160 >> FIXME: xineDevice.c:970 >> FIXME: xineDevice.c:1126 >> >> I gather each specific XXXX number refers to capability needed on those >> specific channels?? >> >> any ideas? > > Hhm, each of these locations checks, whether a PES packet starts with > the byte sequence 00 00 01, and fails as the packets don't. > > If you are using a recent VDR (1.3.20 and higher), please have a look at > the attached patch. It fixes the so called class cPesAssembler. > > Does the problem disappear if you record such a channel and then play > the 001.vdr file directly with xine? > > Can you provide me a sample recording (~ 5 MB)? > > Bye. > -- > Dipl.-Inform. (FH) Reinhard Nissl > mailto:rnissl@xxxxxx > -------------------------------------------------------------------------------- > --- ../vdr-1.3.23-orig/device.c 2005-02-27 14:55:15.000000000 +0100 > +++ device.c 2005-05-01 22:59:18.869069399 +0200 > @@ -27,6 +27,7 @@ private: > uint32_t tag; > int length; > int size; > + bool hasFragment; > bool Realloc(int Size); > public: > cPesAssembler(void); > @@ -39,6 +40,7 @@ public: > void Put(uchar c); > void Put(const uchar *Data, int Length); > bool IsPes(void); > + bool HasFragment(void); > }; > > cPesAssembler::cPesAssembler(void) > @@ -57,6 +59,12 @@ void cPesAssembler::Reset(void) > { > tag = 0xFFFFFFFF; > length = 0; > + hasFragment = false; > +} > + > +bool cPesAssembler::HasFragment(void) > +{ > + return hasFragment || length > 0; > } > > bool cPesAssembler::Realloc(int Size) > @@ -67,6 +75,7 @@ bool cPesAssembler::Realloc(int Size) > if (!data) { > esyslog("ERROR: can't allocate memory for PES assembler"); > length = 0; > + hasFragment = false; > size = 0; > return false; > } > @@ -77,6 +86,7 @@ bool cPesAssembler::Realloc(int Size) > void cPesAssembler::Put(uchar c) > { > if (!length) { > + hasFragment = true; > tag = (tag << 8) | c; > if ((tag & 0xFFFFFF00) == 0x00000100) { > if (Realloc(4)) { > @@ -985,7 +997,7 @@ int cDevice::PlayPes(const uchar *Data, > return 0; > } > int Result = 0; > - if (pesAssembler->Length()) { > + if (pesAssembler->HasFragment()) { > // Make sure we have a complete PES header: > while (pesAssembler->Length() < 6 && Length > 0) { > pesAssembler->Put(*Data++); > -------------------------------------------------------------------------------- > _______________________________________________ > vdr mailing list > vdr@xxxxxxxxxxx > http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr > -------------------------------------------------------------------------------- No virus found in this incoming message. Checked by AVG Anti-Virus. Version: 7.0.308 / Virus Database: 266.11.3 - Release Date: 03/05/2005