September 23rd, 2005
Sorry if you haven’t been able to access the site lately; my IP address went and changed (which usually never happens), and the no-ip change might take a few days to propagate.
Spent half of last night trying to build a version of mplayer that would play a certain video file. Container format Matroska (.mkv), video format H264, audio – for some bizarre reason – aac. So I needed an mplayer with matroska, H264 video and libfaad support. MDV’s doesn’t support faad for legal reasons, and the PLF build is out of date and crashed trying to play the video, so I had to build it myself. (UPDATE: it appears only my PLF media was out of date, not PLF itself. If only I’d known that before.) Of course, this wasn’t easy.
The last official release source from the mplayer website doesn’t build properly on current Cooker. The CVS version builds, but to get H264 video support you need libavcodec. Reading obscure documentation on the mplayer website told me the way to do this was to check ffmpeg out of CVS and copy the libavformat, libavutil and libavcodec directories out of it into the mplayer source directory.
fine, okay, whatever.
I do that, and it stops building again, with an error in libavcodec.
I spend an hour going around in circles trying various combinations of gcc 3.3, gcc 4.0, the ‘stable’ mplayer source, the cvs mplayer source, the livav stuff from ffmpeg CVS and the libav stuff from the ‘stable’ mplayer source (stable mplayer releases include it, CVS doesn’t), to no avail.
What finally fixes it is using gcc 4.0, CVS mplayer, and libav* from ffmpeg CVS from the day before. It appears someone checked some changes into libavformat seven hours before I started the whole thing which broke it. So I reverted them all and finally got what I wanted.
Sheesh, stupid patent laws. Still, at least it worked in the end. I tried to get it working on my partner’s Windows machine instead; I installed the latest official Matroska directshow filter pack, fired up Media Player Classic, and it didn’t play. Ping, brick wall.