Page 1 of 1

Ffmpeg support seems broken

Posted: 27 Feb 2007 23:06
by Loacoon
Hello,

I just compiled the last ffmpeg and VLC svn, and when I launch

vlc -vvv

Code: Select all

cannot load module `modules/codec/ffmpeg/.libs/libffmpeg_plugin.so' (modules/codec/ffmpeg/.libs/libffmpeg_plugin.so: R_PPC_REL24 relocation at 0x0b911ddc for symbol `memset' out of range) [00000001] main libvlc debug: recursively browsing `/usr/lib/vlc' [00000001] main libvlc warning: cannot load module `/usr/lib/vlc/codec/libffmpeg_plugin.so' (/usr/lib/vlc/codec/libffmpeg_plugin.so: R_PPC_REL24 relocation at 0x0980ed9c for symbol `memset' out of range)
And of course, x264, xvid ...etc videos can't be played by VLC.

Edit: Happens in 0.8.6a too...

Posted: 28 Feb 2007 19:34
by Loacoon
No ideas?

Posted: 04 Mar 2007 17:53
by Hxp
as I have stated in another Thread I am very new to shared libraries, but probably this helps:
the linker does allow R_PPC_REL24 relocations in shared libraries. These relocs come from object files compiled without -fPIC. Code compiled without -fPIC is not supposed to work in shared libraries.
Probably you should open a console, change directory to /modules/codec/ffmpeg and do a "make clean" there. Then type "make > output.txt" and search in this text file output.txt for one of the last commands which should be something like "gcc [...] -shared [...]". This command is responsible for creating the shared library, which causes the error.
So one of these libraries does not keep to this -fPIC rule stated above, but I don't know what's the easiest way to find out which one. I would download precompiled packages (for SuSE linux there is a YUM source available) and would do the generation of the shared library manually (just entering this "gcc -shared [..]" into the commandline interface and changing the paths to the new precompiled libraries as needed). It's kind of trial and error method, but I really don't know another way to do this.

Posted: 04 Mar 2007 18:02
by Loacoon
Ok... hmm... sounds complicated to me :P.
I'll try anyway.

I was wondering if this error could be related to the use of the CELL Broadband Engine. (I'm using the PS3) Since everythings works well with my x86 PC...

Does VLC use w32codec instead of ffmpeg on x86 computers?

Posted: 04 Mar 2007 20:26
by Jean-Baptiste Kempf
No! VLC does not use EXTERNAL NON-FREE codecs... Come on...

could you paste your configure line for ffmpeg and for VLC, please.

Posted: 05 Mar 2007 00:18
by Loacoon
Sorry... I didn't remember they were non-free when I asked this......

Here are my configure lines:

for FFMPEG:

Code: Select all

./configure --prefix=/usr --enable-xvid --enable-x264 --enable-libvorbis --enable-libtheora --enable-libogg --enable-libmp3lame --enable-libfaadbin --enable-libfaad --enable-libfaac --enable-libdts --enable-liba52bin --enable-liba52 --enable-pthreads --enable-swscaler --enable-pp --enable-gpl --enable-shared
And for VLC:

Code: Select all

./configure --prefix=/usr --enable-twolame --with-ffmpeg-mp3lame --with-ffmpeg-faac --with-ffmpeg-dts --with-ffmpeg-vorbis --with-ffmpeg-theora --with-ffmpeg-ogg
That's all.

FFplay works with all my videos, so FFMPEG seems to be correctly installed.
I tried to compile VLC with only ./configure --prefix=/usr and I also tried to add --enable-ffmpeg in case it was, in fact, disabled by défault, but nothing changed.

Posted: 07 Mar 2007 21:21
by Loacoon
Up?!

Posted: 08 Mar 2007 00:24
by Jean-Baptiste Kempf
--with-ffmpeg-tree=/path/to/where/you/builded/ffmpeg