Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 183692 - media-libs/xine-lib-1.1.7 w/ USE=dxr3 does not compile with ffmpeg-0.4.9_p20070616-r1
Summary: media-libs/xine-lib-1.1.7 w/ USE=dxr3 does not compile with ffmpeg-0.4.9_p200...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Library (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Gentoo Media-video project
URL:
Whiteboard:
Keywords:
: 188907 189837 191221 (view as bug list)
Depends on:
Blocks:
 
Reported: 2007-06-30 00:00 UTC by Alexandre Rostovtsev (RETIRED)
Modified: 2007-09-04 12:22 UTC (History)
8 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
patch (ffmpeg.patch,529 bytes, patch)
2007-09-04 12:06 UTC, Alexis Ballier
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Alexandre Rostovtsev (RETIRED) gentoo-dev 2007-06-30 00:00:50 UTC
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"
Comment 1 Diego Elio Pettenò (RETIRED) gentoo-dev 2007-07-02 10:00:05 UTC
This is related to dxr3 useflag; upstream (me) knows about the problem, still haven't found a solution though.
Comment 2 Norberto Bensa 2007-07-05 19:31:05 UTC
Same on x86. Shouldn't "hardware" be changed to "All"
Comment 3 Kent Fredric (IRC: kent\n) (RETIRED) gentoo-dev 2007-07-05 20:11:42 UTC
(In reply to comment #2)
> Same on x86. Shouldn't "hardware" be changed to "All"
> 

Seconded. x86 build failure here. 
Comment 4 Mathias Weber 2007-07-07 10:53:45 UTC
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?
Comment 5 Diego Elio Pettenò (RETIRED) gentoo-dev 2007-07-07 12:47:10 UTC
No, that patch will not work for xine, every _decoder_ will be registered twice. If it was that easy I would have done already.
Comment 6 Jakub Moc (RETIRED) gentoo-dev 2007-08-14 20:43:20 UTC
*** Bug 188907 has been marked as a duplicate of this bug. ***
Comment 7 Tom Crosby 2007-08-16 11:00:02 UTC
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.
Comment 8 Jakub Moc (RETIRED) gentoo-dev 2007-08-22 13:53:37 UTC
*** Bug 189837 has been marked as a duplicate of this bug. ***
Comment 9 Samuli Suominen (RETIRED) gentoo-dev 2007-09-03 11:40:27 UTC
Try with 1.1.8.
Comment 10 Tom Crosby 2007-09-03 21:00:40 UTC
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
Comment 11 Jakub Moc (RETIRED) gentoo-dev 2007-09-04 09:24:30 UTC
*** Bug 191221 has been marked as a duplicate of this bug. ***
Comment 12 Norberto Bensa 2007-09-04 11:49:51 UTC
I can confirm that 1.1.8 doesn't fix this.

Please someone change AMD64 to ALL, as I'm running x86
Comment 13 Samuli Suominen (RETIRED) gentoo-dev 2007-09-04 11:52:13 UTC
Broken because of this? Moved to allcodecs.h.

http://svn.mplayerhq.hu/ffmpeg/trunk/libavcodec/avcodec.h?r1=9249&r2=9283
Comment 14 Alexis Ballier gentoo-dev 2007-09-04 12:06:03 UTC
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.
Comment 15 Samuli Suominen (RETIRED) gentoo-dev 2007-09-04 12:22:25 UTC
applied, but like said.. a cleaner patch should be used.