xine-lib-1.1.7 fails to compile with ffmpeg-0.4.9_p20070616-r1: # emerge ffmpeg xine-lib [...] /bin/sh ../../libtool --tag=CC --mode=compile x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../.. -I../../include -I../../include -I../../src -I../../src/xine-engine -I../../src/xine-engine -I../../src/xine-utils -I../../src/input -I../../src/input -I../../lib -I../../lib -I../../src/dxr3 -fvisibility=hidden -I/usr/include/ffmpeg -I/usr/include/postproc -D_REENTRANT -D_FILE_OFFSET_BITS=64 -DXINE_COMPILE -Wformat=2 -Wno-format-zero-length -Wmissing-format-attribute -Werror-implicit-function-declaration -Wstrict-aliasing=2 -march=nocona -O2 -pipe -frename-registers -ffunction-sections -DNDEBUG -c -o xineplug_decode_ff_la-ffmpeg_encoder.lo `test -f 'ffmpeg_encoder.c' || echo './'`ffmpeg_encoder.c x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../.. -I../../include -I../../include -I../../src -I../../src/xine-engine -I../../src/xine-engine -I../../src/xine-utils -I../../src/input -I../../src/input -I../../lib -I../../lib -I../../src/dxr3 -fvisibility=hidden -I/usr/include/ffmpeg -I/usr/include/postproc -D_REENTRANT -D_FILE_OFFSET_BITS=64 -DXINE_COMPILE -Wformat=2 -Wno-format-zero-length -Wmissing-format-attribute -Werror-implicit-function-declaration -Wstrict-aliasing=2 -march=nocona -O2 -pipe -frename-registers -ffunction-sections -DNDEBUG -c ffmpeg_encoder.c -fPIC -DPIC -o .libs/xineplug_decode_ff_la-ffmpeg_encoder.o In file included from ffmpeg_encoder.c:45: /usr/include/ffmpeg/avcodec.h:2252: warning: 'ImgReSampleContext' is deprecated /usr/include/ffmpeg/avcodec.h:2258: warning: 'ImgReSampleContext' is deprecated ffmpeg_encoder.c: In function 'dxr3_encoder_init': ffmpeg_encoder.c:79: error: 'mpeg1video_encoder' undeclared (first use in this function) ffmpeg_encoder.c:79: error: (Each undeclared identifier is reported only once ffmpeg_encoder.c:79: error: for each function it appears in.) make[4]: *** [xineplug_decode_ff_la-ffmpeg_encoder.lo] Error 1 but # emerge '<ffmpeg-0.4.9_p20070616' xine-lib [...] [ compilation completes successfully ] This error only occurs on my amd64 system. On my x86 machine, and in a 32-bit chroot on the amd64 machine, xine-lib compiles fine. # emerge --info Portage 2.1.3_rc6 (default-linux/amd64/2007.0/desktop, gcc-4.1.2, glibc-2.5-r3, 2.6.21-gentoo-r3 x86_64) ================================================================= System uname: 2.6.21-gentoo-r3 x86_64 Intel(R) Core(TM)2 CPU 6600 @ 2.40GHz Gentoo Base System release 1.12.10 Timestamp of tree: Fri, 29 Jun 2007 22:00:10 +0000 distcc 2.18.3 x86_64-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled] ccache version 2.4 [enabled] dev-java/java-config: 1.3.7, 2.0.33-r1 dev-lang/python: 2.4.4-r4 dev-python/pycrypto: 2.0.1-r5 dev-util/ccache: 2.4-r7 sys-apps/sandbox: 1.2.18.1 sys-devel/autoconf: 2.13, 2.61 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10 sys-devel/binutils: 2.17 sys-devel/gcc-config: 1.3.16 sys-devel/libtool: 1.5.24 virtual/os-headers: 2.6.21 ACCEPT_KEYWORDS="amd64 ~amd64" AUTOCLEAN="yes" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=nocona -O2 -pipe" CHOST="x86_64-pc-linux-gnu"
This is related to dxr3 useflag; upstream (me) knows about the problem, still haven't found a solution though.
Same on x86. Shouldn't "hardware" be changed to "All"
(In reply to comment #2) > Same on x86. Shouldn't "hardware" be changed to "All" > Seconded. x86 build failure here.
All *_encoder are declared private now. I found a patch for transcode herehttp://www.mail-archive.com/transcode-users@exit1.org/msg01096.html Maybe someone can transfer it to xine-lib?
No, that patch will not work for xine, every _decoder_ will be registered twice. If it was that easy I would have done already.
*** Bug 188907 has been marked as a duplicate of this bug. ***
To at least get xine-lib-1.1.7 to build until a fix is found, I edited ffmpeg_encoder.c to force it to use the older copy of avcodec.h supplied with xine-lib, rather than the one supplied externally by ffmpeg. While I've no idea what this will break in the long-run, it at least builds successfully now. It's hardly a solution, but on a day when every package seems to be breaking, I'm happy for little victories.
*** Bug 189837 has been marked as a duplicate of this bug. ***
Try with 1.1.8.
Same issue occurs with 1.1.8. [...] ffmpeg_encoder.c: In function ‘dxr3_encoder_init’: ffmpeg_encoder.c:79: error: ‘mpeg1video_encoder’ undeclared (first use in this function) ffmpeg_encoder.c:79: error: (Each undeclared identifier is reported only once ffmpeg_encoder.c:79: error: for each function it appears in.) make[3]: *** [xineplug_decode_ff_la-ffmpeg_encoder.lo] Error 1
*** Bug 191221 has been marked as a duplicate of this bug. ***
I can confirm that 1.1.8 doesn't fix this. Please someone change AMD64 to ALL, as I'm running x86
Broken because of this? Moved to allcodecs.h. http://svn.mplayerhq.hu/ffmpeg/trunk/libavcodec/avcodec.h?r1=9249&r2=9283
Created attachment 129984 [details, diff] patch Codec declaration had moved to an internal header because they were'nt supposed to be part of the abi at all. Unfortunately some people started to use them directly. We had discussed this with Diego months ago, attached patch is not very clean but will fix it and is harmless since avcodec won't register twice its codecs.
applied, but like said.. a cleaner patch should be used.