Re: [vdr] TS Play Plugin - breaks streamdev and radio plugins
Am 14.04.2010 09:24, schrieb Frank Schmirler: > I attached a patch for streamdev, making it automatically detect the tsplay > patch. Can you give it a try? > -#if VDRVERSNUM >= 10703 > +#if VDRVERSNUM >= 10703 || defined(MAXVIDEOFILESIZETS) Hey, good idea to use this #define for detection! I didn't really notice this topic until now, because of the misleading TS Play Plugin - not Patch. I already did plan to add some version detection to the tsplay patch, I just didn't do it until now. I'll upload a 0.2 version with detection plus some patches ASAP, which is hopefully on weekend. Cheers, Udo ___ vdr mailing list vdr@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
Re: [vdr] TS Play Plugin - breaks streamdev and radio plugins
On Wed, 14 Apr 2010 07:37:37 +1200, Simon Baxter wrote > Sorry Frank - definitely patched. I just tried cleaning and > recompiling everything, don't seem to be getting the IsPesRecording > function error, but am still getting the cIndexFile mismatch: > > server/recplayer.c: In member function 'uint64_t > cRecPlayer::positionFromFrameNumber(uint32_t)': > server/recplayer.c:253: error: no matching function for call to > 'cIndexFile::Get(int, uchar*, int*)' > ../../../include/vdr/recording.h:229: note: candidates are: bool > cIndexFile::Get(int, uint16_t*, off_t*, uchar*, int*) > ../../../include/vdr/recording.h:231: note: int > cIndexFile::Get(uint16_t, off_t) > make: *** [server/recplayer.o] Error 1 > > I don't get it - it's calling a Get(int, uchar*, int*), which are > defined Get(int, uint16_t*, off_t*, uchar*, int*) ?? Great - almost there. Before your cleanup, the compiler complained about no matching function for call to 'cIndexFile::Get(int, uint16_t*, off_t*)' now it's no matching function for call to 'cIndexFile::Get(int, uchar*, int*)' So this time the "#if VDRVERSNUM >= 10703" in streamdev's server/recplayer.c wasn't changed or not changed correctly. It should read "#if 1". I attached a patch for streamdev, making it automatically detect the tsplay patch. Can you give it a try? Apparently you are using a patched streamdev. According to one of your previous mails there's one '#if' more. Please modify this additional '#if' as in the patch. Regards, Frank Index: server/recplayer.c === RCS file: /var/cvsroot/streamdev/server/recplayer.c,v retrieving revision 1.1 diff -u -r1.1 recplayer.c --- server/recplayer.c 1 Jul 2009 11:00:49 - 1.1 +++ server/recplayer.c 14 Apr 2010 06:31:09 - @@ -34,7 +34,7 @@ // FIXME find out max file path / name lengths -#if VDRVERSNUM >= 10703 +#if VDRVERSNUM >= 10703 || defined(MAXVIDEOFILESIZETS) indexFile = new cIndexFile(recording->FileName(), false, rec->IsPesRecording()); #else indexFile = new cIndexFile(recording->FileName(), false); @@ -58,7 +58,7 @@ for(i = 1; i < 1000; i++) { -#if APIVERSNUM < 10703 +#if APIVERSNUM < 10703 || !defined(MAXVIDEOFILESIZETS) snprintf(fileName, 2047, "%s/%03i.vdr", recording->FileName(), i); //log->log("RecPlayer", Log::DEBUG, "FILENAME: %s", fileName); file = fopen(fileName, "r"); @@ -99,7 +99,7 @@ char fileName[2048]; -#if APIVERSNUM >= 10703 +#if APIVERSNUM >= 10703 || defined(MAXVIDEOFILESIZETS) snprintf(fileName, 2047, "%s/%05i.ts", recording->FileName(), index); isyslog("openFile called for index %i string:%s", index, fileName); @@ -222,7 +222,7 @@ { if (!indexFile) return 0; -#if VDRVERSNUM >= 10703 +#if VDRVERSNUM >= 10703 || defined(MAXVIDEOFILESIZETS) uint16_t retFileNumber; off_t retFileOffset; #else ___ vdr mailing list vdr@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
Re: [vdr] TS Play Plugin - breaks streamdev and radio plugins
Then please check VDR's recording.h. The missing IsPesRecording member function and the parameter type mismatch of cIndexFile::Get both indicate that recording.h is unpatched. In vdr-1.6.0-2-tsplay-0.1.diff you will find the modifications to recording.h starting at line 1376. Sorry Frank - definitely patched. I just tried cleaning and recompiling everything, don't seem to be getting the IsPesRecording function error, but am still getting the cIndexFile mismatch: server/recplayer.c: In member function 'uint64_t cRecPlayer::positionFromFrameNumber(uint32_t)': server/recplayer.c:253: error: no matching function for call to 'cIndexFile::Get(int, uchar*, int*)' ../../../include/vdr/recording.h:229: note: candidates are: bool cIndexFile::Get(int, uint16_t*, off_t*, uchar*, int*) ../../../include/vdr/recording.h:231: note: int cIndexFile::Get(uint16_t, off_t) make: *** [server/recplayer.o] Error 1 I don't get it - it's calling a Get(int, uchar*, int*), which are defined Get(int, uint16_t*, off_t*, uchar*, int*) ?? ___ vdr mailing list vdr@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
Re: [vdr] TS Play Plugin - breaks streamdev and radio plugins
On Tue, 13 Apr 2010 21:58:16 +1200, Simon Baxter wrote > > The tsplay patch adds this member to VDR's cRecording class. So probably > > the > > header files are not up-to-date. Try a "make include-dir" in the VDR > > source > > directory, then recompile streamdev. > > Nope, same problem: > > make include-dir > make plugins > > server/recplayer.c: In constructor 'cRecPlayer::cRecPlayer(const > cRecording*)': > server/recplayer.c:38: error: 'const class cRecording' has no member > named 'IsPesRecording' server/recplayer.c: In member function > 'uint64_t cRecPlayer::positionFromFrameNumber(uint32_t)': > server/recplayer.c:253: error: no matching function for call to > 'cIndexFile::Get(int, uint16_t*, off_t*)' > ../../../include/vdr/recording.h:215: note: candidates are: bool > cIndexFile::Get(int, uchar*, int*, uchar*, int*) > ../../../include/vdr/recording.h:217: note: int > cIndexFile::Get(uchar, int) make[1]: *** [server/recplayer.o] Error > 1 make[1]: Leaving directory `/root/vdr-1.6.0/PLUGINS/src/streamdev' Then please check VDR's recording.h. The missing IsPesRecording member function and the parameter type mismatch of cIndexFile::Get both indicate that recording.h is unpatched. In vdr-1.6.0-2-tsplay-0.1.diff you will find the modifications to recording.h starting at line 1376. Regards, Frank ___ vdr mailing list vdr@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
Re: [vdr] TS Play Plugin - breaks streamdev and radio plugins
The tsplay patch adds this member to VDR's cRecording class. So probably the header files are not up-to-date. Try a "make include-dir" in the VDR source directory, then recompile streamdev. Nope, same problem: make include-dir make plugins server/recplayer.c: In constructor 'cRecPlayer::cRecPlayer(const cRecording*)': server/recplayer.c:38: error: 'const class cRecording' has no member named 'IsPesRecording' server/recplayer.c: In member function 'uint64_t cRecPlayer::positionFromFrameNumber(uint32_t)': server/recplayer.c:253: error: no matching function for call to 'cIndexFile::Get(int, uint16_t*, off_t*)' ../../../include/vdr/recording.h:215: note: candidates are: bool cIndexFile::Get(int, uchar*, int*, uchar*, int*) ../../../include/vdr/recording.h:217: note: int cIndexFile::Get(uchar, int) make[1]: *** [server/recplayer.o] Error 1 make[1]: Leaving directory `/root/vdr-1.6.0/PLUGINS/src/streamdev' ___ vdr mailing list vdr@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
Re: [vdr] TS Play Plugin - breaks streamdev and radio plugins
On Tue, 13 Apr 2010 06:42:49 +1200, Simon Baxter wrote > yes, the streamdev compile now fails with with: > > server/recplayer.c: In constructor âcRecPlayer::cRecPlayer(const > cRecording*)â: > server/recplayer.c:38: error: âconst class cRecordingâ has no member > named âIsPesRecordingâ server/recplayer.c: In member function The tsplay patch adds this member to VDR's cRecording class. So probably the header files are not up-to-date. Try a "make include-dir" in the VDR source directory, then recompile streamdev. Regards, Frank ___ vdr mailing list vdr@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
Re: [vdr] TS Play Plugin - breaks streamdev and radio plugins
Should be fine - is it still failing? yes, the streamdev compile now fails with with: server/recplayer.c: In constructor âcRecPlayer::cRecPlayer(const cRecording*)â: server/recplayer.c:38: error: âconst class cRecordingâ has no member named âIsPesRecordingâ server/recplayer.c: In member function âuint64_t cRecPlayer::positionFromFrameNumber(uint32_t)â: server/recplayer.c:253: error: no matching function for call to âcIndexFile::Get(int, uint16_t*, off_t*)â ../../../include/vdr/recording.h:215: note: candidates are: bool cIndexFile::Get(int, uchar*, int*, uchar*, int*) ../../../include/vdr/recording.h:217: note: int cIndexFile::Get(uchar, int) make[1]: *** [server/recplayer.o] Error 1 make[1]: Leaving directory `/root/vdr-1.6.0/PLUGINS/src/streamdev' (on an off topic, I've never worked out why gcc puts â instead of ' - gcc seems to be the only thing that does it!) ___ vdr mailing list vdr@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
Re: [vdr] TS Play Plugin - breaks streamdev and radio plugins
On Mon, 12 Apr 2010 21:55:20 +1200, Simon Baxter wrote > Have I got this wrong? > > [r...@freddy server]# diff recplayer.c recplayer.c.orig > 37c37 > < #if 1 > --- > > #if VDRVERSNUM >= 10703 > 61c61 > < #if 0 > --- > > #if APIVERSNUM < 10703 > 102c102 > < #if 1 > --- > > #if APIVERSNUM >= 10703 > 138c138 > < #if 0 > --- > > #if APIVERSNUM < 10703 > 245c245 > < #if 1 > --- > > #if VDRVERSNUM >= 10703 Should be fine - is it still failing? Regards, Frank ___ vdr mailing list vdr@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
Re: [vdr] TS Play Plugin - breaks streamdev and radio plugins
in streamdev's server/recplayer.c, replacing "#if {API,VDR}VERSNUM >= 10703" by "#if 1" and "#if APIVERSNUM < 10703" by "#if 0" should do the trick. Have I got this wrong? [r...@freddy server]# diff recplayer.c recplayer.c.orig 37c37 < #if 1 --- #if VDRVERSNUM >= 10703 61c61 < #if 0 --- #if APIVERSNUM < 10703 102c102 < #if 1 --- #if APIVERSNUM >= 10703 138c138 < #if 0 --- #if APIVERSNUM < 10703 245c245 < #if 1 --- #if VDRVERSNUM >= 10703 ___ vdr mailing list vdr@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
Re: [vdr] TS Play Plugin - breaks streamdev and radio plugins
Hi, On Wed, 7 Apr 2010 18:52:20 +1200, Simon Baxter wrote > I'm trying to use Udo Richter's plugin to play .ts recordings in vdr- > 1.6.0 > (http://www.udo-richter.de/vdr/patches.en.html) but it breaks a > couple of plugins > > streamdev plugin: > > server/recplayer.c: In member function âuint64_t > cRecPlayer::positionFromFrameNumber(uint32_t)â: > server/recplayer.c:253: error: no matching function for call to > âcIndexFile::Get(int, uchar*, int*)â > ../../../include/vdr/recording.h:229: note: candidates are: bool > cIndexFile::Get(int, uint16_t*, off_t*, uchar*, int*) > ../../../include/vdr/recording.h:231: note: int > cIndexFile::Get(uint16_t, off_t) > make: *** [server/recplayer.o] Error 1 in streamdev's server/recplayer.c, replacing "#if {API,VDR}VERSNUM >= 10703" by "#if 1" and "#if APIVERSNUM < 10703" by "#if 0" should do the trick. Regards, Frank ___ vdr mailing list vdr@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr