Beiträge von odjosc

    Hi,


    Here is the second release of my FreeboxTv plugin. It was mainly enhanced to add EPG (Electronic Program Guide) as a new feature. This one is based on XMLTV.
    Also I made some minor changes and one modification which drastically improved the performances (thanks to vlad59).


    As before, this plugin should work with any RTSP server providing the delivered stream is in format TS MP2T-encoded.


    You can download this new release with the following link :
    http://www.panczyk.eu/vdr/vdr-freeboxtv-0.0.2.tar.bz2


    Please read the INSTALL file for instructions on installation.


    Enjoy.

    UPDATE :
    ========


    Now a significant number of people succeeded using this plugin so now we know the undefined symbol came from the pre-compiled liblivemedia-dev packages. Thus, to use the plugin, please build the liveMedia lib from source first.


    Now a good news :-))
    Contrary to what I wrote in the INSTALL file, there is no limitation about multiple audio tracks using. You can listen either track you wish if the stream provides many.

    Hello,


    I digged a bit deeper into the reported error and it seems there is a problem with the pre-compiled liblivemedia-dev package (DEBIAN-etch at least), so I suggest you use the other solution described in INSTALL file, e.g. download source from live555.com, build the lib and re-link vdr with the newly generated lib. Thus it should solve the "undefined symbol" error encountered by some of you...


    Let me now if it's OK, I'll modify the doc accordingly.

    Well, reading your post I think you only generated the plugin (that's correct anyway ;)) but not the vdr binary (or you didn't post the corresponding log did you ?)


    So now you have to build AND install the vdr binary (because freeboxtv plugin declare new classes which derive from some declared in vdr main source files).
    According to the organisation you seem to use reading your post :


    cd /usr/local/src/VDR
    rm vdr
    make
    make install (or copy the newly generated vdr binary file to the relevant directory you use).

    Hi,


    the directive "+LIBS += -L/usr/lib/live/liveMedia" should be in VDR general makefile, not in plugin makefile because liveMedia is a (static) library which should be linked with vdr binary.


    So, please add it to your $(VDRDIR)/Make.config file if not already done and build the binary again.
    e.g. :


    cd $(VDRDIR)
    rm vdr
    make
    and finally "make install"

    Hi Ronny,


    Did you re-generate (link with liveMedia library actually) vdr binary and install it ?


    Did you also add correct pathname to liveMedia library in VDR makefile (please check you created/modified Make.config file in your /usr/local/src/VDR directory) to tell the linker where to find it (LIBS += -L<whatever_dir_you_installed_lib> directive) ?


    Cheers,
    Olivier.

    Hi,


    I think it's not a big concern if there isn't any pre-built liveMedia library in gentoo because you could build it yourself with the source downloaded from www.live555.com. It's easy (configure && make && make install). Actually, I developped and tested my plugin with a self built library. I just proposed to download some deb or rpm package as a shortcut...


    Cheers.

    Hello everybody,


    Here is the (very) first release of my FreeboxTv plugin. Its purpose is to add a device making the FREEBOX (triple-play box provided by French ISP FREE) a new DVB source for VDR. Thus it's now possible to watch FreeboxTv via VDR and of course get the corresponding services (e.g. recording for example).


    As FREE provides his TV stream (to his suscribers only, sorry !) via a RTSP server which finally is a quite "standard" way to do this, my FreeboxTv plugin should also work with other providers of such streams (WebTV for example) if they conform to some requirements described in the accompagnying documentation.


    Because this is a very early release, there are some limitations :
    - If the stream has multiple audio tracks, only the first one will playback
    - No EPG is currently provided by this device
    - Configuration is not so easy as I'd like


    As it's my first coding in C++, VDR, plugin, multi-thread, etc..., please be indulgent !


    You can download this plugin with the following link :
    http://www.panczyk.eu/vdr/vdr-freeboxtv-0.0.1.tar.bz2


    I also want to thank Matthias Panczyk here for hosting my plugin on his server.


    Enjoy.

    Hi to all,


    Finally, I tried a completely new approach to make this stuff work and this one is OK :coolgr


    So now I have a very early release which seems stable. Although I developped this
    device in order to make the freebox (Triple-play box provided by Free ISP in France) a new source for VDR, it should work with most RTSP stream servers. Well, I didn't try to connect on servers differents than those provided by my ISP, but at least this plugins works with the test program (testOnDemandRTSPServer server) included in LiveMedia library archive. For now I just made tests with MP2T streams...


    Before I make this plugin available, I have to write some installation guidelines (specially to describe how to manage the plugin config file), which I'll do before end of next week...


    Besides, would someone advice me about the correct process to distribute this plugin (I never did this before and I don't own any website) ?


    Thanks in advance.

    Hi Udo,


    I checked what you sent previously but I have some problem to make it work in my environment. Actually nothing is displayed when I try to play from test server provided with liveMedia library. streamplayer plugin was compiled with DEBUG option. You'll find attached here 2 log files I get when I respectively call the RTSP stream server via streamplayer plugin and openRTSP test prog (provided with LiveMedia).


    I also tried to read the test server stream vi VLC and it works flawlessly, as with openRTSP prog so I think my server is OK.


    I don't really see why streamplayer complains about a non-existent video nor audio subsession. They do exist...
    Do you have some idea to diagnose this ?
    Thank for your help.


    Cheers,
    Olivier.

    Thanks for your information. I'll study carefully what you posted.


    You'll find attached a very basic version of my device code. Actually, I commented out all the code relating to livemedia lib to simplify reading and debugging. Please note that this code is some kind of fork of sky demo plugin which shoukd work correctly (well, I guess, I don't have any skybox). Note also that all this is very dirty as there are many unuseful code for testing purpose.


    Currently with this code, you can only read a stream from /tmp/test.m2t file and the displayed video is very choppy. Even sometimes, it doesn't display at all ("No Signal" on the screen). I noticed that if I put some printf to stderr in cFreeboxDevice::GetTSPacket function, the situation seems to be a bit better (but not much more indeed). I think the problem I have when using livemedia lib is the same as the one observed here (nothing to do with livemedia implementation but timing related). I really can't figure what happens as the code is not so different as the skydemo one...


    If you have some idea/suggestion, it would be nice...
    Cheers,
    Olivier.

    Hi Urig,


    Well, I just opened a livemedia Taskcheduler in CDevice derived class. As the stream provided by my ISP has only one subsession (MP2T stream), I use a very dirty hack to make it work : I directly access to the subsession socket number and pass this descriptor when calling the cTSBuffer constructor (I know, its bad but it works ;)).
    Here is how I made it :

    Code
    [...]
    fd_dvr = subsession->rtpSource()->RTPgs()->socketNum();
    [...]
    tsBuffer = new cTSBuffer(fd_dvr, MEGABYTE(2), CardIndex() + 1);
    [...]
    Data = tsBuffer->Get();


    Please note that all lines aboves are not in the same function.


    Anyway, as stated in my previous post, even if fd_dvr points to a local video file (in TS format of course) instead of the RTSP server, the video is not played smoothly and some (many ?) frames are dropped. So I think I have another problem with my implementation (and maybe another with the livemedia lib but I'll try to solve it, if any, after the current one).


    So, I'm interested in your code and can show you mine if you want. This way maybe we will find some solution...


    Best regards,
    Olivier.

    Hi to all,


    I'm currently writing a new plugin for VDR to add a new device corresponding to the triple-play box provided by my ISP (Freebox from FREE french ISP). With this box we can get Live-TV broadcast provided through a RTSP server.


    So I wrote a (very early) release of plugin which can read the RTSP stream with the help of the Live555 media library (please see http://www.live555.com/ for more info about this). For now is seems to work. Well only "seems" because the video I get through this plugin is very "choppy" and after a few seconds, the RTSP server gives up and closes the connection (I only get some "buffer" and "clean" messages on the console which seem not really to be errors one).


    To help debugging, I replaced the RTSP server URL with a local TS video file (correctly set as it works perfectly with VLC and.MPLAYER for example). Here again is the video very "choppy" so I think my implementation is not good enough...


    Actually, I started coding from the demo skybox plugin provided with VDR but I'm not sure how all this works. I understood I have to code a GetTSPacket. Here is how I made it :


    1- implement OpenDvr which is declaring some variables
    2- implement GetTSPacket this way :
    Create a tsBuffer to read more than 188 bytes at a time

    Code
    tsBuffer = new cTSBuffer(fd_dvr, MEGABYTE(2), CardIndex() + 1);


    Read buffer :

    Code
    Data = tsBuffer->Get();


    Make some PID conversion, if needed, before returning the data


    Did I something wrong ? I'm not sure I really understood the relationship between GetTSPacket which wants only 1 packet at a time, and the ringBuffer (implemented by the cTSBuffer class) which reads a lot of data in one shot.


    BTW: even if some frames seem to be dropped, I never get any buffer overflow message.


    Could someone help me (I can provide some code for analyze purpose if needed) or tell me what can be wrong in the implementation described above ?


    Thanks in advance.
    Olivier.