[FFmpeg-devel] [PATCH] VP8 link error fix

Frank Barchard fbarchard
Tue Aug 3 21:58:36 CEST 2010

On Tue, Aug 3, 2010 at 5:11 AM, Diego Biurrun <diego at biurrun.de> wrote:
> On Mon, Aug 02, 2010 at 08:32:09PM -0700, Frank Barchard wrote:
>> A minor link error fix. ?libavcodec/Makefile needs vp56dsp.o now
> Rejected. ?You provide no error message nor a means to reproduce the
> problem.

I see ffmpeg is now fixed in a better way, with vp8dsp instead of vp56dsp.
OBJS-$(CONFIG_VP8_DECODER)             += vp8.o vp8dsp.o

But theres a new problem, reproduced with the same configure:

./configure --disable-everything --disable-decoders
--disable-protocols --disable-parsers --disable-avfilter
--enable-avcore --disable-avdevice --disable-ffmpeg --disable-ffplay
--disable-ffserver --disable-ffprobe --enable-shared --disable-static
--disable-debug --disable-network --disable-gpl --disable-bzlib
--disable-zlib --enable-decoder=theora --enable-decoder=vorbis
--enable-demuxer=ogg --enable-pthreads --enable-yasm
--enable-memalign-hack --cc=gcc-sjlj --prefix=./chromium8-ffmpeg
--enable-decoder=vp8 --enable-demuxer=matroska
   Creating library libavcore/avcore-0.lib and object libavcore/avcore-0.exp
LD      libavcodec/avcodec-52.dll
Info: resolving _av_reverse by linking to __imp__av_reverse (auto-import)
Info: resolving _av_pix_fmt_descriptors by linking to
__imp__av_pix_fmt_descriptors (auto-import)
Creating library file: libavcodec/libavcodec.dll.a
libavcodec/vp8.o:vp8.c:(.text+0x1e): undefined reference to `ff_h264_norm_shift'
libavcodec/vp8.o:vp8.c:(.text+0x83): undefined reference to `ff_h264_norm_shift'
libavcodec/vp8.o:vp8.c:(.text+0xef): undefined reference to `ff_h264_norm_shift'
libavcodec/vp8.o:vp8.c:(.text+0x145): undefined reference to
libavcodec/vp8.o:vp8.c:(.text+0x1b0): undefined reference to
libavcodec/vp8.o:vp8.c:(.text+0x220): more undefined references to
`ff_h264_norm_shift' follow
collect2: ld returned 1 exit status
make: *** [libavcodec/avcodec-52.dll] Error 1

So the quick fix is add cabac.o to vp8's dependencies.  Updated patch
(attached) fixes the build.  But it would be better to move the shared
code somewhere both cabac.c and vp8.c can use.

> If you are referring to
> http://code.google.com/p/chromium/issues/detail?id=50811
> then it's even more dubious. ?I cannot reproduce the failure here on
> Mac OS X / PPC nor could anybody else yesterday on IRC with x86.

If you enable all codecs, you wont see the problem because other
codecs will cause the required files to be linked in.

http://gitorious.org/ffmpeg/ffmpeg-mt branch still has the issue, as
its based on

> Regarding Chromium Issue 50811: You can add --disable-doc to that
> configure line and you should compare sizes again, I fixed some
> unnecessary dependencies of VP8 on VP5/6 code, a build with your
> options should now be around 27kB smaller.

> Diego
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at mplayerhq.hu
> https://lists.mplayerhq.hu/mailman/listinfo/ffmpeg-devel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: vp8_link_cabac.diff
Type: application/octet-stream
Size: 704 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20100803/91c5410b/attachment.obj>

More information about the ffmpeg-devel mailing list