| « Changes in bsdtar/libarchive handling | New Kopete is coming » |
Multimedia update
So it was a bit since last I blogged about multimedia programs, I think, and today is a good day for this :)
First of all, some of you might have noticed that I unmasked/unleashed the first ffmpeg snapshot from 2006. This version had some trouble a while back so I originally masked it because I was unsure of the problem. Today after fighting with xine, ffmpeg and Kaffeine, I found out that when I made ffmpeg respect LDFLAGS I lost xine-lib's support, in the same exact way that it did with the newer snapshot. After I seen that, I knew enough to get looking at the problem and fix up.
Basically the problem was that a lot of symbols related to the postprocessor (libpostproc) were undefined... on a normal system this does not happen as libavcodec links to libpostproc, so it's pulled in in the final plugin linking, and then the symbols are defined. But when using --as-needed as I do, libavcodec is not linking libpostproc, and seems like the same happens with the newer snapshot, which means the plugin does not get the symbols.
So I patched xine-lib to link to libpostproc explicitely when using external ffmpeg, and that solved the problem both with the old snapshot using --as-needed and with the new snapshot.
After xine it was vlc's turn that had the same exact problem, and the solution was basically the same, tweaked the configure.ac so that libpostproc is brought in during linking, so now they both works, yuppie :)
This also means that you can safely unmask the newer ffmpeg version, of course after updating it you have to rebuild xine-lib and vlc, but they'll be fine afterward. And that fffmpeg snapshot has a working h264 decoder on non-x86 (I had quite a bit of problems with it before).
A big thanks to lu_zero for handling ffmpeg's snapshots ;)
Oh, that version also respect LDFLAGS, that might be useful, too.
1 comment
I remember reading in some documentation somewhere that suggested vaguely that things would break, but it wasn't very specific.