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
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)