Wednesday 28 December 2011

XBMC with External FFMPEG

I used to do this awhile ago on my HTPC. Its pretty slow building XBMC on an Atom CPU. I gave up building my own builds because I ended up running in to problems (segfaults etc). When I installed 10.04 I decided I didn't want to install various build dependencies and libraries on my HTPC
Now I want Hi10P support on XBMC. An XBMC build compiled to use external FFmpeg libraries is the only way to achieve that until XBMC developers update the internal libraries (due after Eden apparently)
I now build XBMC and FFmpeg in a VM using VMware Player (which features (since version 3.0) the ability to create new virtual machines YAY!). Configure switches have been customised for myself. YMMV.

XBMC Dependencies
sudo apt-get install git-core make g++ gcc gawk pmount libtool nasm yasm automake cmake gperf zip unzip bison libsdl-dev libsdl-image1.2-dev libsdl-gfx1.2-dev libsdl-mixer1.2-dev libfribidi-dev liblzo2-dev libfreetype6-dev libsqlite3-dev libogg-dev libasound2-dev python-sqlite libglew-dev libcurl3 libcurl4-gnutls-dev libxrandr-dev libxrender-dev libmad0-dev libogg-dev libvorbisenc2 libsmbclient-dev libmysqlclient-dev libpcre3-dev libdbus-1-dev libhal-dev libhal-storage-dev libjasper-dev libfontconfig-dev libbz2-dev libboost-dev libenca-dev libxt-dev libxmu-dev libpng-dev libjpeg-dev libpulse-dev mesa-utils libcdio-dev libsamplerate-dev libmpeg3-dev libflac-dev libiso9660-dev libass-dev libssl-dev fp-compiler gdc libmpeg2-4-dev libmicrohttpd-dev libmodplug-dev libssh-dev gettext cvs python-dev libyajl-dev libboost-thread-dev libplist-dev libudev-dev


Necessary for VAAPI
sudo apt-get install libva-dev


FFMpeg Dependencies
sudo apt-get install build-essential checkinstall git libx11-dev libxfixes-dev zlib1g-dev


Building FFMpeg
git clone --depth 1 -b release/0.9 git://source.ffmpeg.org/ffmpeg

./configure --disable-static --disable-debug --cpu=sse3 --target-os=linux --disable-muxers --enable-muxer=spdif --enable-muxer=adts --disable-encoders --enable-encoder=ac3 --enable-encoder=aac --disable-decoder=mpeg_xvmc --disable-devices --disable-ffprobe --disable-ffplay --disable-ffserver --disable-ffmpeg --enable-shared --disable-doc --enable-postproc --enable-gpl --enable-nonfree --enable-version3 --disable-vdpau --enable-pthreads --enable-pic --enable-hardcoded-tables --disable-demuxer=oss --disable-demuxer=jack --disable-muxer=oss --disable-demuxer=v4l --disable-demuxer=v4l2 --disable-altivec --disable-neon --disable-amd3dnow --disable-amd3dnowext --disable-armv5te --disable-armv6 --disable-armv6t2 --disable-armvfp --disable-iwmmxt --disable-mmi --disable-vis --disable-dxva2 --enable-sram --disable-bsfs --enable-vaapi --disable-vda --disable-w32threads --disable-os2threads --disable-safe-bitstream-reader

make
sudo checkinstall --pkgname=ffmpeg --pkgversion="5:$(./version.sh)" --backup=no --deldoc=yes --default
sudo ldconfig


Building XBMC
git clone git://github.com/xbmc/xbmc.git

sudo apt-get install libbluray rtmpdump

./configure --disable-debug --enable-vaapi --disable-crystalhd --disable-vdadecoder --disable-vtbdecoder --disable-openmax --disable-joystick --disable-rsxs --disable-projectm --disable-ccache --disable-pulse --enable-rtmp --disable-samba --disable-nfs --disable-afpclient --disable-airplay --disable-airtunes --disable-hal --disable-avahi --disable-webserver --enable-libbluray --disable-libusb --disable-libcec --disable-vdpau --enable-external-ffmpeg

make
sudo checkinstall --pkgname=xbmc --pkgversion="`date +%Y%m%d%H%M`-git" --backup=no --deldoc=yes --default

Updated:
Move to VAAPI and updated FFmpeg Git URL for 0.9 branch. Ubuntu 10.11

Saturday 15 October 2011

Re-uploading deleted music back to Google Music

This is for Google Music running on Linux server, editing the SQLite database in Windows.

You'll need http://sqlitebrowser.sourceforge.net/ to edit the SQLite database in Windows
Google Music config files are found in ~/.config/google-musicmanager/
Ensure Google Music is not running in the background

Open ServerDatabase.db in SQLite Browser.
Browse Data Tab. Select XFILES in the Table drop down.

Find your album. It's tracks (if already uploaded) should have a MusicUploadStatus of 2. Edit the tracks you need re-uploaded to 0. Save and exit. Reopen Google Music and it should re-upload those tracks.
Once the tracks have been re-uploaded, you may need it to exit and re-open Google Music in order to continue uploading the remaining tracks.
Tracks with a MusicUploadStatus of 6 are tracks that won't be uploaded due to your account having reached its limit of 20,000 tracks.