Proyecto movido a GitHub
Miér 7 Abr 2021 - 19:23 por bittor
Proyecto movido a GitHub:
https://github.com/bittor7x0/VDR-M7x0
Con muchos cambios y correcciones, Más información
También incluye el plugin epgfixer para corregir la EPG usando expresiones regulares y el plugin xmltv2vdr para descargar la EPG de internet
https://github.com/bittor7x0/VDR-M7x0
Con muchos cambios y correcciones, Más información
También incluye el plugin epgfixer para corregir la EPG usando expresiones regulares y el plugin xmltv2vdr para descargar la EPG de internet
Comentarios: 0
Buscar
VDR to XBMC
5 participantes
Página 2 de 3.
Página 2 de 3. • 1, 2, 3
Re: VDR to XBMC
OK, no problem, you can add log lines inside cXVDRChannels::Lock, so know if error is in cRwLock::Lock, Get()->Lock or cRwLock::Unlock.
Also you can enable strace in .config file (CONFIG_STRACE = y) and recompile for run vdr with strace and detect problem.
Here you have any examples, but basically would be:
channels.conf format is different and this could be the problem.
Also you can enable strace in .config file (CONFIG_STRACE = y) and recompile for run vdr with strace and detect problem.
Here you have any examples, but basically would be:
- Código:
kill-vdr
strace /usr/bin/vdr -E /var/vdr/epg.data -c /etc/vdr -L /var/vdr/lib -v /var/vdr/video0 -s /etc/vdr/shutdownvdr -P* -i `/usr/sbin/pic_tool start-mode` -l 3
channels.conf format is different and this could be the problem.
Re: VDR to XBMC
Hi Bittor,
I followed your proposal and have strace enabled. Last error is "Segmentation fault", but I have no idea about the reason.
I followed your proposal and have strace enabled. Last error is "Segmentation fault", but I have no idea about the reason.
- Código:
...
time([1359744657]) = 1359744657
open("/etc/TZ", O_RDONLY) = 16
read(16, "CET-1CEST,M3.5.0,M10.5.0/03:00:0"..., 68) = 34
read(16, "", 34) = 0
close(16) = 0
write(3, "<14>Feb 1 19:50:57 vdr: [350] X"..., 82) = 82
rt_sigaction(SIGPIPE, {SIG_DFL, ~[HUP INT QUIT ILL TRAP IOT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM USR1 USR2 CHLD PWR WINCH URG IO STOP TSTP CONT TTIN TTOU VTALRM PROF XCPU XFSZ RT_0 RT_1 RT_2 RT_3 RT_4 RT_5 RT_6 RT_7 RT_8 RT_9 RT_10 RT_11 RT_12 RT_13 RT_14 RT_15 RT_16 RT_17 RT_18 RT_19 RT_20 RT_21 RT_22 RT_23 RT_24 RT_25 RT_26 RT_27 RT_28 RT_29 RT_30 RT_31 RT_32 RT_33 RT_34 RT_35 RT_36 RT_37 RT_38 RT_39 RT_40 RT_41 RT_42 RT_43 RT_44 RT_45 RT_46 RT_47 RT_48 RT_49 RT_50 RT_51 RT_52 RT_53 RT_54 RT_55 RT_56 RT_57 RT_58 RT_59 RT_60 RT_61 RT_62 RT_63 RT_64 RT_78], 0}, NULL, 16) = 0
gettid() = 350
rt_sigaction(SIGPIPE, {SIG_DFL, [], SA_STACK|SA_INTERRUPT|0x2cae9c0}, {SIG_DFL, ~[HUP INT QUIT ILL TRAP IOT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM USR1 USR2 CHLD PWR WINCH URG IO STOP TSTP CONT TTIN TTOU VTALRM PROF XCPU XFSZ RT_0 RT_1 RT_2 RT_3 RT_4 RT_5 RT_6 RT_7 RT_8 RT_9 RT_10 RT_11 RT_12 RT_13 RT_14 RT_15 RT_16 RT_17 RT_18 RT_19 RT_20 RT_21 RT_22 RT_23 RT_24 RT_25 RT_26 RT_27 RT_28 RT_29 RT_30 RT_31 RT_32 RT_33 RT_34 RT_35 RT_36 RT_37 RT_38 RT_39 RT_40 RT_41 RT_42 RT_43 RT_44 RT_45 RT_46 RT_47 RT_48 RT_49 RT_50 RT_51 RT_52 RT_53 RT_54 RT_55 RT_56 RT_57 RT_58 RT_59 RT_60 RT_61 RT_62 RT_63 RT_64 RT_78], 0}, 16) = 0
time([1359744657]) = 1359744657
open("/etc/TZ", O_RDONLY) = 16
read(16, "CET-1CEST,M3.5.0,M10.5.0/03:00:0"..., 68) = 34
read(16, "", 34) = 0
close(16) = 0
write(3, "<14>Feb 1 19:50:57 vdr: [350] X"..., 91) = 91
rt_sigaction(SIGPIPE, {SIG_DFL, ~[HUP INT QUIT ILL TRAP IOT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM USR1 USR2 CHLD PWR WINCH URG IO STOP TSTP CONT TTIN TTOU VTALRM PROF XCPU XFSZ RT_0 RT_1 RT_2 RT_3 RT_4 RT_5 RT_6 RT_7 RT_8 RT_9 RT_10 RT_11 RT_12 RT_13 RT_14 RT_15 RT_16 RT_17 RT_18 RT_19 RT_20 RT_21 RT_22 RT_23 RT_24 RT_25 RT_26 RT_27 RT_28 RT_29 RT_30 RT_31 RT_32 RT_33 RT_34 RT_35 RT_36 RT_37 RT_38 RT_39 RT_40 RT_41 RT_42 RT_43 RT_44 RT_45 RT_46 RT_47 RT_48 RT_49 RT_50 RT_51 RT_52 RT_53 RT_54 RT_55 RT_56 RT_57 RT_58 RT_59 RT_60 RT_61 RT_62 RT_63 RT_64 RT_78], 0}, NULL, 16) = 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++
Segmentation fault
guybrush- Cantidad de envíos : 24
Fecha de inscripción : 24/01/2013
Re: VDR to XBMC
Are there a problem with date?
Can you upload plugin source code for M7x0 in any free server?
Can you upload plugin source code for M7x0 in any free server?
Re: VDR to XBMC
Please find sources here http://guybrush.bugs3.com/
You will also find my vdr-m7x0-folder, because I made changes to:
receiver.h
channels.h
si.h (libsi)
config.h
tools.h
All changes are labeled with "//marcus"
You will also find my vdr-m7x0-folder, because I made changes to:
receiver.h
channels.h
si.h (libsi)
config.h
tools.h
All changes are labeled with "//marcus"
guybrush- Cantidad de envíos : 24
Fecha de inscripción : 24/01/2013
Re: VDR to XBMC
Hi,
There is some problems with changes in the source code.
The first problem is in modified vdr-m7x0 code, inside libsi/si.h now is defined "EnhancedAC3DescriptorTag" (before it was called "EAC3DescriptorTag"), but it's not updated in pat.c, then vdr doesn't compile.
This is fixed changing "EAC3DescriptorTag" with "EnhancedAC3DescriptorTag" in pat.c (it's necessary change it too in channelscan and streamdev plugins).
The segmentation fault was in plugin when calling to "XVDRChannels" because object file wasn't generated nor included in binary plugin. Neither is generated object for streaminfo, so calls to it will fail.
This is fixed adding object files to Makefile in OBJS section (src/xvdr/xvdrchannels.o and src/demuxer/streaminfo.o).
Others errors exist in Makefile, use "?=" in CXXFLAGS and DVBDIR, and change "g++" with "$(CXX)".
By default, timeshift dir is in /video, you must edit src/live/livequeue.c and change:
You have done any changes to plugin "dangerous" as remove packet payload length and in vdr code only have changed headers files for have a plugin's compilation without errors, but exist same error that with "XVDRChannels", for example Utf8CharLen, AddPid or SetPids only are defined, so you'll get other segmentation fault when they are called.
It's necessary add functionality in .c files too.
For add UTF-8 support, I think is better use defines as in EPGSearch plugin:
With these changes xvdr plugin should start correctly, but I doubt that work completly with XBMC because a code's piece for process packets is commented, perhaps work timers, channels, disk usage, ... but you'll not be able to play recordings nor live streaming.
I'll add support for VDR 1.7.x TS recordings and then some commented lines in plugin would work without problems.
There is some problems with changes in the source code.
The first problem is in modified vdr-m7x0 code, inside libsi/si.h now is defined "EnhancedAC3DescriptorTag" (before it was called "EAC3DescriptorTag"), but it's not updated in pat.c, then vdr doesn't compile.
This is fixed changing "EAC3DescriptorTag" with "EnhancedAC3DescriptorTag" in pat.c (it's necessary change it too in channelscan and streamdev plugins).
The segmentation fault was in plugin when calling to "XVDRChannels" because object file wasn't generated nor included in binary plugin. Neither is generated object for streaminfo, so calls to it will fail.
This is fixed adding object files to Makefile in OBJS section (src/xvdr/xvdrchannels.o and src/demuxer/streaminfo.o).
Others errors exist in Makefile, use "?=" in CXXFLAGS and DVBDIR, and change "g++" with "$(CXX)".
By default, timeshift dir is in /video, you must edit src/live/livequeue.c and change:
- Código:
cString cLiveQueue::TimeShiftDir = "/video";
- Código:
cString cLiveQueue::TimeShiftDir = "/var/vdr/video0";
You have done any changes to plugin "dangerous" as remove packet payload length and in vdr code only have changed headers files for have a plugin's compilation without errors, but exist same error that with "XVDRChannels", for example Utf8CharLen, AddPid or SetPids only are defined, so you'll get other segmentation fault when they are called.
It's necessary add functionality in .c files too.
For add UTF-8 support, I think is better use defines as in EPGSearch plugin:
- Código:
#if APIVERSNUM < 10503
#define Utf8BufSize(s) ((s) * 4)
#define Utf8StrLen(s) strlen(s)
#define Utf8Strn0Cpy(d, s, n) strn0cpy(d, s, n)
#endif
With these changes xvdr plugin should start correctly, but I doubt that work completly with XBMC because a code's piece for process packets is commented, perhaps work timers, channels, disk usage, ... but you'll not be able to play recordings nor live streaming.
I'll add support for VDR 1.7.x TS recordings and then some commented lines in plugin would work without problems.
Re: VDR to XBMC
Hi bittor,
your weekend starts early :-)
Thanks for reviewing and leading us into the right directions.
Regards,
Rainer
your weekend starts early :-)
Thanks for reviewing and leading us into the right directions.
Regards,
Rainer
RainerW- Cantidad de envíos : 38
Fecha de inscripción : 31/01/2010
Edad : 68
Re: VDR to XBMC
Hi bittor,
Thank You for your comments. I know I did very dirty coding. My first goal was to compile xvdr plugin without errors and establish a stable connection between XBMC and m740av even when I disable almost all functionallity (that's why the commented lines). Next I would try to get back the functionality step by step...
What is your opinion? Do you think it's worth "wasting" a lot of time trying to get xvdr-plugin partly working?
Thank You for your comments. I know I did very dirty coding. My first goal was to compile xvdr plugin without errors and establish a stable connection between XBMC and m740av even when I disable almost all functionallity (that's why the commented lines). Next I would try to get back the functionality step by step...
What is your opinion? Do you think it's worth "wasting" a lot of time trying to get xvdr-plugin partly working?
guybrush- Cantidad de envíos : 24
Fecha de inscripción : 24/01/2013
Re: VDR to XBMC
A plugin partly working is easy if you follow my instructions, hard work is in support PES-TS recordings because it have changed completely but I have a lot of work done in VDR and this will be used by plugin.
You can try to connect XBMC and m740 only with timers or channels list (for example) and if it work, wait to I finish new TS recordings format.
Any change neccesary by plugin for streaming or records will be easier then.
You can try to connect XBMC and m740 only with timers or channels list (for example) and if it work, wait to I finish new TS recordings format.
Any change neccesary by plugin for streaming or records will be easier then.
Re: VDR to XBMC
Hi bittor,
i followed your instructions and my first quick test with XBMC (Openelec 2.99.1 generic, xvdr-plugin 0.98) was successful. Although XBMC mentioned for 1 second: "Lost connection to VDR server" following functions seem to work:
- XBMC is showing channel list
- XBMC is showing timers
- XBMC can create timers
- XBMC is showing EPG timeline
- XBMC is showing recordling list
- XBMC is playing recordings
NOT working:
- TV live streaming (as bittor mentioned)
i followed your instructions and my first quick test with XBMC (Openelec 2.99.1 generic, xvdr-plugin 0.98) was successful. Although XBMC mentioned for 1 second: "Lost connection to VDR server" following functions seem to work:
- XBMC is showing channel list
- XBMC is showing timers
- XBMC can create timers
- XBMC is showing EPG timeline
- XBMC is showing recordling list
- XBMC is playing recordings
NOT working:
- TV live streaming (as bittor mentioned)
guybrush- Cantidad de envíos : 24
Fecha de inscripción : 24/01/2013
Re: VDR to XBMC
Excellent news!
I think that this work should be in SVN, for it commented code in plugin would go enclosure with a macro, for example "#ifdef XVDR_PLUGIN_TODO", so enabling this macro we can test functionality to do.
This macro could be too in new vdr code for trace quickly these changes.
You can sign in in assembla and commit these changes in trunk (Do not break anything! ) or can upload them in your page and I'll upload them.
I think that this work should be in SVN, for it commented code in plugin would go enclosure with a macro, for example "#ifdef XVDR_PLUGIN_TODO", so enabling this macro we can test functionality to do.
This macro could be too in new vdr code for trace quickly these changes.
You can sign in in assembla and commit these changes in trunk (Do not break anything! ) or can upload them in your page and I'll upload them.
Re: VDR to XBMC
Good idea, i will add for currently commented (disabled) code #ifdef XVDR_PLUGIN_TODO and for changes outside xvdr-plugin #ifdef XVDR_PLUGIN_ENABLE. What would be the right file to define those macros (xvdr.h or xvdr.c)?
guybrush- Cantidad de envíos : 24
Fecha de inscripción : 24/01/2013
Re: VDR to XBMC
The right file would be Make.config from VDR because plugins include it, so it's best to use the same name for macro (vdr and xvdr-plugin), for example:
- Código:
DEFINES += -DXVDR_PLUGIN_TODO
Re: VDR to XBMC
Sorry, you were right and 2 macros are necessary, one for vdr because it will be always enabled and other for plugin that will be disabled by default.
Re: VDR to XBMC
NOT working:
- TV live streaming (as bittor mentioned)
VDR-1.7.21
Die Subtitle PIDs werden nun in der channels.conf gespeichert als Erweiterung der TPID
- TV live streaming (as bittor mentioned)
VDR-1.7.21
Die Subtitle PIDs werden nun in der channels.conf gespeichert als Erweiterung der TPID
det- Cantidad de envíos : 12
Fecha de inscripción : 05/02/2013
Re: VDR to XBMC
@bittor: Do you have the code available I uploded to my site? I would like to review the old code, because in my latest code something strange is going on ... :-(
guybrush- Cantidad de envíos : 24
Fecha de inscripción : 24/01/2013
Re: VDR to XBMC
Did you forget the link?
guybrush- Cantidad de envíos : 24
Fecha de inscripción : 24/01/2013
Re: VDR to XBMC
No, link is in "here" text:
https://sites.google.com/site/bittor7x0/xvdr-m7x0.zip?attredirects=0&d=1
https://sites.google.com/site/bittor7x0/xvdr-m7x0.zip?attredirects=0&d=1
Re: VDR to XBMC
I have cleaned up the code and xvdr-plugin and modified vdr files can be downloaded here:
http://guybrush.bugs3.com/m740av/vdr-ng-em-2013-02-22-release.tar.gz
I did testing with a fresh toolshain and applied the changes from archive above.
Working in XBMC:
- EPG
- create timer from EPG and manually
- delete non-active Timer
- record movies, etc.
- watch recordings
- watch recordings with active timer (e.g. 10s timeshift)
- delete recordings
NOT working in XBMC
- livestreaming
- special German characters (ä, ö, ü, ß)
- delete active timer
KNOWN problems
- sometimes VDR is restarting due to xvdr-plugin crashes
@bittor: Could you upload the files to svn or give me a short teaching how to do this? (I did a registration already)
http://guybrush.bugs3.com/m740av/vdr-ng-em-2013-02-22-release.tar.gz
I did testing with a fresh toolshain and applied the changes from archive above.
Working in XBMC:
- EPG
- create timer from EPG and manually
- delete non-active Timer
- record movies, etc.
- watch recordings
- watch recordings with active timer (e.g. 10s timeshift)
- delete recordings
NOT working in XBMC
- livestreaming
- special German characters (ä, ö, ü, ß)
- delete active timer
KNOWN problems
- sometimes VDR is restarting due to xvdr-plugin crashes
@bittor: Could you upload the files to svn or give me a short teaching how to do this? (I did a registration already)
Última edición por guybrush el Sáb 23 Feb 2013 - 11:10, editado 1 vez
guybrush- Cantidad de envíos : 24
Fecha de inscripción : 24/01/2013
Re: VDR to XBMC
Here are some examples from strace when VDR crashes (due to xvdr plugin). If somebody has an idea how to fix this or how to figure out the root cause, please let me know.
- Código:
stat("/var/vdr/video0/.update", 0x7fff7970) = -1 ENOENT (No such file or directory)
open("/var/vdr/video0", O_RDONLY|O_NONBLOCK|O_DIRECTORY) = 38
fstat(38, {st_mode=S_IFDIR|0777, st_size=0, ...}) = 0
fcntl(38, F_SETFD, FD_CLOEXEC) = 0
getdents64(38, /* 14 entries */, 16384) = 488
--- SIGBUS (Bus error) @ 0 (0) ---
+++ killed by SIGBUS +++
Bus error
- Código:
stat("/var/vdr/video0/.update", 0x7fff7970) = -1 ENOENT (No such file or directory)
open("/var/vdr/video0", O_RDONLY|O_NONBLOCK|O_DIRECTORY) = 33
fstat(33, {st_mode=S_IFDIR|0777, st_size=0, ...}) = 0
fcntl(33, F_SETFD, FD_CLOEXEC) = 0
getdents64(33, /* 14 entries */, 16384) = 488
close(33) = 0
time(NULL) = 1361612120
gettid() = 264
accept(37, 0x7fff6a50, [16]) = -1 EAGAIN (Resource temporarily unavailable)
gettimeofday({1361612120, 550000}, NULL) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [RT_0], 16) = 0
rt_sigprocmask(SIG_UNBLOCK, [RT_0], [RT_0], 16) = 0
gettimeofday({1361612120, 560000}, NULL) = 0
nanosleep({0, 990000000}, NULL) = -1 EINTR (Interrupted system call)
--- SIGBUS (Bus error) @ 0 (0) ---
+++ killed by SIGBUS +++
Bus error
- Código:
time(NULL) = 1361612222
time([1361612222]) = 1361612222
open("/etc/TZ", O_RDONLY) = 33
read(33, "CET-1CEST,M3.5.0,M10.5.0/03:00:0"..., 68) = 34
read(33, "", 34) = 0
close(33) = 0
accept(37, 0x7fff6a50, [16]) = -1 EAGAIN (Resource temporarily unavailable)
gettimeofday({1361612222, 100000}, NULL) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [RT_0], 16) = 0
rt_sigprocmask(SIG_UNBLOCK, [RT_0], [RT_0], 16) = 0
gettimeofday({1361612222, 110000}, NULL) = 0
nanosleep({0, 240000000}, NULL) = -1 EINTR (Interrupted system call)
--- SIGBUS (Bus error) @ 0 (0) ---
+++ killed by SIGBUS +++
Bus error
guybrush- Cantidad de envíos : 24
Fecha de inscripción : 24/01/2013
Re: VDR to XBMC
Thanks, this is a good work and documented.
I have seen changes in VDR for TS support, but this is in conflict with changes that I had pending for support new 1.7.x recording format.
This is my problem, but if you wait for the weekend, I'll can synchronize our work in VDR.
As you is registered in assembla, I'll give you a short teaching for upload plugin in SVN.
I have seen changes in VDR for TS support, but this is in conflict with changes that I had pending for support new 1.7.x recording format.
This is my problem, but if you wait for the weekend, I'll can synchronize our work in VDR.
As you is registered in assembla, I'll give you a short teaching for upload plugin in SVN.
Página 2 de 3. • 1, 2, 3
Temas similares
» Plugin vdr xbmc
» XBMC, streamdev y iPad 3
» Directorios de grabación .rec e integración con XBMC
» [SOLUCIONADO] Mediatomb y XBMC (via Raspbmc)
» XBMC, streamdev y iPad 3
» Directorios de grabación .rec e integración con XBMC
» [SOLUCIONADO] Mediatomb y XBMC (via Raspbmc)
Página 2 de 3.
Permisos de este foro:
No puedes responder a temas en este foro.