[UPDATE] I’ve managed now to make xine-ui (xine player) to use the proper plugin libraries (1.25) and the output devices are also listed now, see here:
/usr/local/bin/xine --list-plugins | grep vdpau
vdpau, dxr3, aadxr3, xv, SyncFB, opengl, raw, xshm, aa, caca, none, sdl,
dxr3-mpeg2, vdpau_mpeg12, gdkpixbuf, vdpau_h264, mpeg2, realvdec,
Starting the sample code (with the modified
~/.xine/config-> engine.buffers.video_num_frames:22) results in this output, but still no video. Xine pops up with a black window, and it remains being black until I press Ctrl+c on the command line.
. vo_vdpau: vdpau_alloc_frame . vdpau_set_property: property=4, value=900 gui_xine_open_and_play(): mrl: '../xine-lib-vdpau/xine-vdpau/astrahd+.m2t', sub 'NONE', start_pos 0, start_time 0, av_offset 0, spu_offset 0. xine: found input plugin : file input plugin ebml: Invalid EBML length size (0x0) at position 3 ebml: invalid master element xine: found demuxer plugin: MPEG Transport Stream demuxer av_offset=0 pts spu_offset=0 pts audio_oss_out: audio rate : 48000 requested, 48000 provided by device audio_oss_out: 2 channels output Create decoder: vdp_device: 1, profile: 8, res: 1920x1080 . vdpau_h264: Decoder failure: An invalid handle value was provided .
In order to make this use the right libraries at all, I’ve removed and deinstalled all xine and xine-lib packages, what have been on my hard disk. The proper solution for compilation would be something like this:
./configure XINE_LIBS=-L/usr/local/lib XINE_CFLAGS=-I/usr/local/include , but my installation was messed up that much, so I had to remove the libs from
/usr/local/lib/xine manually. Also the libs, which were in
/usr/lib/xine-* I deleted manually. Having the libs installed I ran into linker errors, like this one:
error in file odk.c : Undefined symbol xine_get_error
Pretty simple. Just this here:
I’ve finally got it working, (not VDR yet) but it turned out, that enabled TwinView prevent my from seeing a video. The time I turned it off, the sample file stated to play.
Next step is to make VDR work. I know, it must work, since I’ve already saw a video on YouTube, where the VDR was performing with xine-vdpau. See here:
I’ve asked the author if he can tell me his little secret about the config string for the client and server part.
[UPDATE]The author (YouTube nick: antii2k) told me to use the xineliboutput plugin and start the server like this:
/usr/local/bin/vdr --lirc=/dev/lircd -L /usr/local/src/VDR/PLUGINS/lib -c /etc/vdr/ -v /var/lib/video.00/ -P'xineliboutput --local=none --remote=37890 --primary parameters'
The server isn’t started with
xine, because there is no xineplug_vdr.so yet. We have to use the xineliboutput on server’s side, but we can’t use vdr-sxfe as the client’s front-end, because there’s only one ancient patch(don’t try) available, which pretty sure won’t work.
[UPDATE]vdr-sxfe is told to work out of the box (see comment section). It’s not working for me, but that doesn’t mean, it’s not working at all, and the statement above (patching needed) is most likely wrong. Thanks for this information.
So we depend on the client side on the xine user interface again:
xine --verbose=2 "xvdr+tcp://127.0.0.1:37890#no cache;demux:mpeg_block"
Well – finally it worked for me also with VDR – err, sort of – it crashed all the way. I couldn’t hardly switch onto another channel, or had freezes. Starting in fullscreen (-f) didn’t work either.
I’m on a x86_64 system, and maybe that’s why it doesn’t behave like in the YouTube video from antii2k. Anyway. I think it’s clear that this is all quite alpha and more or less just a feasibility test. Nevertheless is was quite impressive to see the CPU usage on my Q6600 (quad-core). It was between 6 to 10%, but no equally balanced over the four cores.
I see it as a lesson about how to set up an VDR with vdpau support in combination with xine and/or xineliboutput, so if it gets stable, I can go straight forward and install it with my little documentation here.