A little HOWTO on how to make VDR using the new VDPAU hardware acceleration…
[UPDATE]Read here, how to install VDR on Karmic Koala with Binary Packages.[/UPDATE] Like I wrote here, the xine developer team is working on an own implementation of Nvidia’s VDPAU video display driver, which is an H.264 hardware acceleration.
I’ve downloaded (checked out revision #106) the first alpha release here:
mkdir /usr/local/src/
svn co svn://jusst.de/xine-vdpau
I’ve used this Nvidia vdpau driver. Version >=180.16 is the minimum version you need. Read here how to install this new Beta driver on a Unbuntu 8.10.
ftp://download.nvidia.com/XFree86/Linux-x86_64/180.16/NVIDIA-Linux-x86_64-180.16-pkg2.run
I’ve tried this on a Ubuntu 8.10 (Intrepid Ibex) x86_64, but before you read ahead: I didn’t succeed. I’ve managed to compile, but I can’t see anything. Still interested? Then keep reading.
(Btw. I’ll update this post, as soon I get it completely to work)
[UPDATE]
It’s working (not VDR), but keep reeding till the very end, there is the solution.
The proposed method in the README-VDPAU is:
cd xine-vdpau
./autogen.sh --prefix=/usr
But it didn’t work for me, I only got a bunch of compilation errors:
pp.c:33:27: error: postprocess.h: No such file or directory pp.c:59: error: ‘PP_QUALITY_MAX’ undeclared here (not in a function) pp.c:79: error: expected specifier-qualifier-list before ‘pp_context_t’ . . pp.c:340: error: ‘post_plugin_pp_t’ has no member named ‘pp_mode’ mv -f .deps/xineplug_post_planar_la-denoise3d.Tpo .deps/xineplug_post_planar_la-denoise3d.Plo make[3]: *** [xineplug_post_planar_la-pp.lo] Error 1 make[3]: *** Waiting for unfinished jobs.... mv -f .deps/xineplug_post_planar_la-eq.Tpo .deps/xineplug_post_planar_la-eq.Plo mv -f .deps/xineplug_post_planar_la-eq2.Tpo .deps/xineplug_post_planar_la-eq2.Plo mv -f .deps/xineplug_post_planar_la-unsharp.Tpo .deps/xineplug_post_planar_la-unsharp.Plo mv -f .deps/xineplug_post_planar_la-noise.Tpo .deps/xineplug_post_planar_la-noise.Plo make[3]: Leaving directory `/usr/local/src/xine-lib-vdpau/xine-vdpau/src/post/planar' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/usr/local/src/xine-lib-vdpau/xine-vdpau/src/post' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/usr/local/src/xine-lib-vdpau/xine-vdpau/src' make: *** [all-recursive] Error 1
I’ve tried a lot of stupid things, and came out with an also stupid, but compiling and linking version:
./autogen.sh --prefix=/usr CPPFLAGS="-I/usr/local/src/xine-vdpau/src/libffmpeg -I/usr/local/src/xine-vdpau/src/libffmpeg/libavutil -I/usr/local/src/xine-vdpau/src/libffmpeg/libavcodec -I/usr/local/src/xine-vdpau/src/libffmpeg/libavcodec/libpostproc"
The README (not README-VDPAU) propose to use any player, like ‘xine-ui, gxine, totem, …‘, so I decided to use xine-ui. This is how I got it:
cvs -d:pserver:anonymous@xine.cvs.sourceforge.net:/cvsroot/xine login cvs -z3 -d:pserver:anonymous@xine.cvs.sourceforge.net:/cvsroot/xine co -P xine-ui
Now compilation and installation
./autogen.sh --enable-vdr-keys --prefix=/usr make && make install
I’ve downloaded one sample (astrahd+.m2t) from here:
But no matter how I tried to play it back, it didn't worked for me. There must be a little mistake I made.
I've tried the the lines below, and a few other combinations, but it didn't work. Since I'm not very familiar with xine, and didn't had time to peek into the source code, I don't have any clue how the playback have to be initiated correctly. Unfortunately there is nothing mentioned in the both READMEs and the Internet (Google) doen't either know anything. Well - I guess it's a bit too new right now.
This is what I've tried.
[UPDATE]This is wrong, leave out "-V vdpau_xxx", it's working automatically.
xine --no-logo --verbose -V vdpau_h264 astrahd+.m2t xine --no-logo --verbose -V vdpau_mpeg12 astrahd+.m2t
vdr-sxfe is usable out of the box without any problems. No need for patches.
@Rincewind
starting vdr-sxfe only doesn’t work.
Only a black window and endless error messages.
What parameter do you use?
Thanks in advance
./autogen.sh –prefix=/usr CPPFLAGS=”-I/usr/local/src/xine-vdpau/src/libffmpeg -I/usr/local/src/xine-vdpau/src/libffmpeg/libavutil -I/usr/local/src/xine-vdpau/src/libffmpeg/libavcodec -I/usr/local/src/xine-vdpau/src/libffmpeg/libavcodec/libpostproc”
./configure: line 2000: syntax error near unexpected token `”xine-lib”,’
./configure: line 2000: `AM_INIT_AUTOMAKE(“xine-lib”, $SPEC_VERSION)’
can you help me ?
@Bluray
your “autogen.sh” have to be in
/usr/local/src/xine-vdpau
or you have to update the CPPFLAGS accordingly to the location where your xine-vdpau currently on your hdd is.
But that’s only a guess.
I’m using Ubuntu 8.10 64bit, I spent the folder “xine-vdpau” to” / usr / local / src” but had to use sudo to run. / autogen.sh, because the folder where is the xine-vdpau is root
………..
/usr/share/automake-1.7/am/depend2.am: AMDEP does not appear in AM_CONDITIONAL
done.
+ Running autoconf: done.
+ Running ‘configure –prefix=/usr CPPFLAGS=-I/usr/local/src/xine-vdpau/src/libffmpeg -I/usr/local/src/xine-vdpau/src/libffmpeg/libavutil -I/usr/local/src/xine-vdpau/src/libffmpeg/libavcodec -I/usr/local/src/xine-vdpau/src/libffmpeg/libavcodec/libpostproc’:
./configure: line 2000: syntax error near unexpected token `”xine-lib”,’
./configure: line 2000: `AM_INIT_AUTOMAKE(“xine-lib”, $SPEC_VERSION)’
toni@toni-desktop:/usr/local/src/xine-vdpau$
gave the same thing
@Bluray
Hmm, difficult to diagnose this, but here are my 2cent:
1st, remove your xine installation:
2nd, install at least these pachages:
3rd, you can also check the dependencies by
4th. I'm using automake1.9, but this could be irrelevant.
5th, use Google, if all above fails. I've read something about running 'aclocal' before compilation or stuff.
Regards,
Andreas
PS: using /usr/local/src isn't really a good idea of mine, that's true. I've just wanted you to check the CPPFLAGS against your installed xine-vdpau path, that's all.
How did you get your xine-lib-1.2 libraries linked properly so the vdpau got built?
I can start xine with :
xine –verbose=2 -V vdpau -A alsa –post vdr_video –post 001.vdr
but it plays in xv “video_out_xv”
I can even start with xine –verbose=2 -V biggirlsblouse -A alsa –post
vdr_video –post vdr_audio –post upmix_mono 001.vdr
and it still plays in xv with no errors.
I’m using xine-lib-1.2 and patching with xine-lib-1.2-vdpau-r286.diff which
was configured with:
./autogen.sh –with-vdpau –enable-debug –disable-optimizations –with-mpc=no
then using xine-ui xine-ui-cvs-20090617220000 built with
./autogen.sh –enable-vdr-keys –disable-lirc
My only library plugins are now xine-lib-1.2:
ldconfig -p | grep xine
libxine.so.2 (libc6,x86-64) => /usr/local/lib/libxine.so.2
libxine.so (libc6,x86-64) => /usr/local/lib/libxine.so
ls -l /usr/local/lib/libxine*
-rwxr-xr-x 1 root root 825 2010-01-09 11:59 /usr/local/lib/libxine.la
lrwxrwxrwx 1 root root 16 2010-01-09 11:59 /usr/local/lib/libxine.so ->
libxine.so.2.0.0
lrwxrwxrwx 1 root root 16 2010-01-09 11:59
/usr/local/lib/libxine.so.2 -> libxine.so.2.0.0
-rwxr-xr-x 1 root root 1118042 2010-01-09 11:59
/usr/local/lib/libxine.so.2.0.0
Kernel is:
2.6.27.29-170.2.78.fc10.x86_64
nvidia drivers are:
kmod-nvidia-2.6.27.29-170.2.78.fc10.x86_64-180.60-1.fc10.1.x86_64
xorg-x11-drv-nvidia-libs-180.60-1.fc10.x86_64
Video card is:
00:0d.0 VGA compatible controller: nVidia Corporation GeForce 6150SE nForce
430 (rev a2) (prog-if 00 [VGA controller])
Subsystem: Giga-byte Technology Device d000
Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 22
Memory at f2000000 (32-bit, non-prefetchable) [size=16M]
Memory at e0000000 (64-bit, prefetchable) [size=256M]
Memory at f3000000 (64-bit, non-prefetchable) [size=16M]
[virtual] Expansion ROM at 50000000 [disabled] [size=128K]
Capabilities: [48] Power Management version 2
Capabilities: [50] Message Signalled Interrupts: Mask- 64bit+
Count=1/1 Enable-
Kernel driver in use: nvidia
Kernel modules: nvidia, nvidiafb
Any ideas?? What am I doing wrong?
Oh yeah, I’m also getting this…
Everything appears to compile fine, but if I do:
xine –list-plugins | grep vdpau
I get nothing.
Thanks
Simon
@Simon
I’m not building xine myself anymore, since it’s – and you know it now also – a real PITA. I’m using the “the-vdr-team” PPA repo for Ubuntu (Karmic Koala). This blog article is quite old, regarding the rapid development going on in this sector.
But I guess you suffer the same, I suffered from the first time I’ve tried to build libxine on my own. Thas was, that I had to get rid off the libxine-1.x somehow. I was always linking against the old plugin libs, and there is no vdpau plugin.
Run “xine –verpobe –no-logo” and be sure the plugins are 2.x and not 1.x or something. And check out the second page of this article carefully, especially where it comes to versions (2.0 and 1.x).
Hope I could help.
Regards,
Andreas
Hello,
see how to fix the bug syntax error near unexpected token `(‘ on tahsin’s garage.