[Libav-user] Build of ffmpeg library with libx264 support for QNX

Pavel Vazharov pvazharov at abaltatech.com
Sun Jul 7 19:14:44 CEST 2013


Hi Ramu,

I'm pretty sure that the symbols aren't present in the static libraries.
objdump tool shows them as undefined:

# objdump -t libavcodec/libavcodec.a | grep ff_h264dsp_init
00000000         *UND*  00000000 ff_h264dsp_init

# objdump -t libavcodec/libavcodec.a | grep ff_golomb_vlc_len
00000000         *UND*  00000000 ff_golomb_vlc_len
00000000         *UND*  00000000 ff_golomb_vlc_len
00000000         *UND*  00000000 ff_golomb_vlc_len
00000000         *UND*  00000000 ff_golomb_vlc_len
00000000         *UND*  00000000 ff_golomb_vlc_len
00000000         *UND*  00000000 ff_golomb_vlc_len

Besides, for exampe ff_h264dsp_init is defined in h264dsp.c, but I never
saw it to be build to .o file.
The above is true for all undefined symbols. Their files aren't built in
the process and I can see the symbols as undefined in the libavcodec
library.

However, I managed to build ffmpeg with needed symbols with a hack (I'm not
proud of it).

The configure script produces comfig.mak file and there is config generated
options such as:
!CONFIG_H264CHROMA=yes
!CONFIG_H264DSP=yes
!CONFIG_H264PRED=yes
!CONFIG_H264QPEL=yes
....
....

The symbols from these object files - h264dsp, h264chroma. etc. were
missing. So I manually removed the '!' before each of these and then the
produced library has all needed symbols.

There is the following section in the configure script
# options emitted with CONFIG_ prefix but not available on the command line
CONFIG_EXTRA="
    ...
    ...
    golomb
    gplv3
    h264chroma
    h264dsp
    h264pred
    h264qpel
    ...
    ...

Can someone tell me how to enable these options without hacking?
Thanks in advance.


Hi Carl,

I'm going to go through the my experiments again and to explain how I got
this configure script. The steps are shown in the attached file because the
system rejects my e-mail as too long otherwise.



On Thu, Jul 4, 2013 at 2:20 AM, Carl Eugen Hoyos <cehoyos at ag.or.at> wrote:

> Pavel Vazharov <pvazharov at ...> writes:
>
> > ./configure
>
> A few unrelated comments (your explanations may
> help improving the configure script):
>
> > --arch=x86
> > --target-os=qnx
>
> Is this really needed?
>
> > --enable-static
> > --disable-shared
>
> This is the default (unneeded).
>
> > --disable-everything
> > --disable-programs
> > --disable-postproc
> > --disable-vdpau
>
> You may want to use --disable-all
>
> > --disable-ffplay
> > --disable-ffprobe
> > --disable-ffserver
>
> Does --disable-programs not work?
>
> > --disable-protocols
>
> Does --disable-everything not work?
>
> > --disable-dxva2
> > --disable-mipsfpu
> > --disable-altivec
> > --disable-vda
>
> These look useless.
>
> > --disable-yasm
> > --disable-mmxext
> > --disable-inline-asm
>
> Since you also used --disable-debug I
> have to ask if you try to produce a
> useless library (no debug information,
> but no optimizations either)?
> If you have a good reason, --disable-asm
> is probably simpler.
>
> > The library builds fine but the problem is that when
> > I try to link again libavcodec.a in my application I
> > get undefined references for symbols
>
> What does git log say about the version you are testing?
>
> Carl Eugen
>
> _______________________________________________
> Libav-user mailing list
> Libav-user at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/libav-user
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://ffmpeg.org/pipermail/libav-user/attachments/20130707/ea496275/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: configure_steps.zip
Type: application/zip
Size: 2350 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/libav-user/attachments/20130707/ea496275/attachment.zip>


More information about the Libav-user mailing list