Hier die Version 7. Ich habe nun einen Pat/Pmt Parser eingebaut, damit kann das Plugin externe RDS-Pids selbst erkennen und der VDR muß nicht mehr gepatched werden. Das "bitrate" diff von oben ist natürlich enthalten, und das Default für die verbosity ist von "1" auf "0" geändert - Radiotext Debuging müss nun mit "-v 1" aktiviert werden.
Sonst ist kein weiterer Patch notwendig, der v6-Extension-Patch von Post #13 kann (oder sollte?) zusätzlich auch noch angewendet werden.
Helmut
PS: Ich habe mit vdr-2.5.6 und 2.4.7 getestet, vdr-2.2.0 sollte aber auch passen.
Bekomme hier ein Fehler beim bauen des Plugins mit vdr-2.6.0 ....
*** Plugin radio:
g++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -Wno-unused-result -c -DPLUGIN_NAME_I18N='"radio"' -DGIT_REV='"2.6.0"' -I/home/pi/vdr/include -o radio.o radio.c
g++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -Wno-unused-result -c -DPLUGIN_NAME_I18N='"radio"' -DGIT_REV='"2.6.0"' -I/home/pi/vdr/include -o radioaudio.o radioaudio.c
radioaudio.c: In member function 'void cRadioAudio::HandleRdsPids(const int*, int)':
radioaudio.c:1962:22: warning: unused variable 'j' [-Wunused-variable]
1962 | for (int j = 0; !found && a[i]; i++)
| ^
radioaudio.c:1964:22: warning: unused variable 'j' [-Wunused-variable]
1964 | for (int j = 0; !found && d[i]; i++)
| ^
g++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -Wno-unused-result -c -DPLUGIN_NAME_I18N='"radio"' -DGIT_REV='"2.6.0"' -I/home/pi/vdr/include -o radioskin.o radioskin.c
radioaudio.c: In member function 'virtual void cRTplusList::Load()':
radioaudio.c:3372:62: warning: '%s' directive output may be truncated writing up to 79 bytes into a region of size between 56 and 74 [-Wformat-truncation=]
3372 | snprintf(text, sizeof(text), "%02d:%02d\t%s\t\t%s",
| ^~
3373 | ts->tm_hour, ts->tm_min, ctitle,
| ~~~~~~
radioaudio.c:3372:29: note: 'snprintf' output 9 or more bytes (assuming 88) into a destination of size 80
3372 | snprintf(text, sizeof(text), "%02d:%02d\t%s\t\t%s",
| ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3373 | ts->tm_hour, ts->tm_min, ctitle,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3374 | Convert(rtp_content.item_Artist[i]));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
radioaudio.c:3385:58: warning: '%s' directive output may be truncated writing up to 79 bytes into a region of size between 56 and 74 [-Wformat-truncation=]
3385 | snprintf(text, sizeof(text), "%02d:%02d\t%s\t\t%s", ts->tm_hour,
| ^~
3386 | ts->tm_min, ctitle,
| ~~~~~~
radioaudio.c:3385:25: note: 'snprintf' output 9 or more bytes (assuming 88) into a destination of size 80
3385 | snprintf(text, sizeof(text), "%02d:%02d\t%s\t\t%s", ts->tm_hour,
| ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3386 | ts->tm_min, ctitle,
| ~~~~~~~~~~~~~~~~~~~
3387 | Convert(rtp_content.item_Artist[i]));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
g++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -Wno-unused-result -c -DPLUGIN_NAME_I18N='"radio"' -DGIT_REV='"2.6.0"' -I/home/pi/vdr/include -o radiotools.o radiotools.c
radiotools.c: In function 'bool ParseMpaFrameHeader(const uchar*, uint32_t*, int*, char**)':
radiotools.c:250:9: warning: unused variable 'A' [-Wunused-variable]
250 | int A = (info >> 21) & 0x7FF;
| ^
radiotools.c:253:9: warning: unused variable 'D' [-Wunused-variable]
253 | int D = (info >> 16) & 0x1;
| ^
g++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -Wno-unused-result -c -DPLUGIN_NAME_I18N='"radio"' -DGIT_REV='"2.6.0"' -I/home/pi/vdr/include -o radioepg.o radioepg.c
g++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -Wno-unused-result -c -DPLUGIN_NAME_I18N='"radio"' -DGIT_REV='"2.6.0"' -I/home/pi/vdr/include -o inforx.o inforx.c
g++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -Wno-unused-result -c -DPLUGIN_NAME_I18N='"radio"' -DGIT_REV='"2.6.0"' -I/home/pi/vdr/include -o rdspatpmt.o rdspatpmt.c
rdspatpmt.c:5:10: fatal error: vdr/libsi/descriptor.h: Datei oder Verzeichnis nicht gefunden
5 | #include <vdr/libsi/descriptor.h>
| ^~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[1]: *** [Makefile:72: rdspatpmt.o] Fehler 1
make[1]: *** Es wird auf noch nicht beendete Prozesse gewartet....
inforx.c: In function 'int info_request(int, int)':
inforx.c:144:55: warning: '%s' directive output may be truncated writing up to 64 bytes into a region of size between 39 and 121 [-Wformat-truncation=]
144 | snprintf(temp[1], 2 * RT_MEL, "%02d:%02d %s: %s", ts->tm_hour,
| ^~
145 | ts->tm_min, RTP_Artist, RTP_Title);
| ~~~~~~~~~
inforx.c:144:17: note: 'snprintf' output between 10 and 156 bytes into a destination of size 130
144 | snprintf(temp[1], 2 * RT_MEL, "%02d:%02d %s: %s", ts->tm_hour,
| ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
145 | ts->tm_min, RTP_Artist, RTP_Title);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Alles anzeigen
$ ls -la
insgesamt 8
drwxr-xr-x 2 pi pi 4096 24. Jan 16:31 .
drwxr-xr-x 4 pi pi 4096 17. Jan 19:14 ..
lrwxrwxrwx 1 pi pi 24 24. Jan 16:31 descriptor.h -> ../../libsi/descriptor.h
lrwxrwxrwx 1 pi pi 21 24. Jan 16:31 headers.h -> ../../libsi/headers.h
lrwxrwxrwx 1 pi pi 21 24. Jan 16:31 section.h -> ../../libsi/section.h
lrwxrwxrwx 1 pi pi 16 24. Jan 16:31 si.h -> ../../libsi/si.h
lrwxrwxrwx 1 pi pi 18 24. Jan 16:31 util.h -> ../../libsi/util.h
$ pwd
/home/pi/vdr/include/libsi
Alles anzeigen
Edit: So klappt es:
/*
* rdspatpmt.c: PAT section filter
*/
- #include <vdr/libsi/descriptor.h>
+ #include <libsi/descriptor.h>
#include "rdspatpmt.h"
#include "radioaudio.h"
#define PMT_SCAN_TIMEOUT 2000 // ms
Gruß
Uwe