Rebuilding libxine and vdr-libxineoutput
This is a recipie for building your own libxine2 and related vdr output packages.
The goal is to enable use of a newer ffmpeg than what is included in the standard 1004. More specifically, this allows LATM AAC audio playback in VDR. This audio encoding is used in some DVB-T transmissions in Europe.
Use this procedure with caution. If you don't understand some part of the procedure, then stop trying to follow it. Doing it wrong may leave a mess. Don't come running for help! YMMV.
Building
- download ffmpeg from https://launchpad.net/~jon-severinsson/+archive/ffmpeg
- both binary(ffmpeg) and -dev packages(libavcodec-dev, etc)
- download xine-lib-1.2.0 http://anonscm.debian.org/hg/xine-lib/xine-lib-1.2/file/01846b148cba
- build it and install it (in chroot), edit debian/rules and add --with-external-ffmpeg
- make sure, after build, that in src/combined/ffmpeg, the avcodec_audio.list must contain CODEC_ID_LATM_AAC. If not, you're doing it wrong!
It also seems a rebuilt version of these packages are requried for VDR to correctly use xine for LATM audio:
libxineliboutput-sxfe
vdr-plugin-libxineoutput
libxine1-xvdr
So we need to rebuild the vdr related stuff:
- apt-get source vdr 1.7.20.
- apt-get source libxineoutput from yavdr vdr-testing ppa, put in vdr/PLUGINS/src
- edit debian/rules, set VDRDIR=../../..
- edit xine_post_audiochannel.c like this http://xineliboutput.cvs.sourceforge.net/viewvc/xineliboutput/vdr-xineliboutput/xine_post_audiochannel.c?r1=1.7&r2=1.9
- either this (to enable new API, I think...) or download and build a version where this change already is made (I was unable to get this to work, ymmv)
Installation
You only need to do this on the MD you use for playback. So if you have a core, there is no need to install the packages on that
apt-add-repository ppa:jon-severinsson/ffmpeg apt-get update apt-get install libavcodec53 libavdevice53 libavfilter2 libavutil51 libpostproc52 libswresample0 libswscale2 liba52-0.7.4 dpkg -i libxine2_1.2.0~hg-0_i386.deb dpkg -i libxine1-xvdr_1.0.7+cvs20111217.2347-1yavdr2~lucid_i386.deb dpkg -i vdr-plugin-xineliboutput_1.0.7+cvs20111217.2347-1yavdr2~lucid_i386.deb dpkg -i libxineliboutput-sxfe_1.0.7+cvs20111217.2347-1yavdr2~lucid_i386.deb dpkg -i xineliboutput-sxfe_1.0.7+cvs20111217.2347-1yavdr2~lucid_i386.deb
Now, reset/reboot the MD, or restart the devices in question (Xine_Player and VDR)