Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 270928 - games-simulation/secondlife-bin incompatible with certain gst-plugins-ffmpeg
Summary: games-simulation/secondlife-bin incompatible with certain gst-plugins-ffmpeg
Status: RESOLVED WONTFIX
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Joe Peterson (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-05-23 12:07 UTC by Brad
Modified: 2009-06-14 14:42 UTC (History)
2 users (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Brad 2009-05-23 12:07:34 UTC
GStreamer-WARNING **: Failed to load plugin '/usr/lib/gstreamer-0.10/libgstffmpeg.so': /usr/lib/libavcodec.so.52: undefined symbol: opj_decode_with_info

Observed undefined symbols when using latest stable ffmpeg/gst-plugins-ffmpeg when secondlife tries to load gstreamer plugins.  recompiled everything related, didn't help, downgraded to ffmpeg-0.4.9 and recompiled gst-plugins-ffmpeg and all worked.  Secondlife doesn't include any relevant libraries, they are from system.

Reproducible: Always

Steps to Reproduce:
1.  upgrade to stable ffmpeg, gst-plugins-ffmpeg
2.  start secondlife from console, watch undefined symbol error in console output
Actual Results:  
Cannot play x264 with gstreamer


I'd suggest holding ffmpeg-0.5 back until a compatible gst-plugins-ffmpeg is available.
Comment 1 Sebastian Luther (few) 2009-05-23 12:24:10 UTC
emerge --info and the exact versions of ffmpeg and gst-plugins-ffmpeg please.
Comment 2 Rafał Mużyło 2009-05-23 13:40:11 UTC
That looks more like a case of needing revdep-rebuild,
cause opj_decode_with_info seems to be openjpeg' symbol.
Comment 3 Brad 2009-05-24 00:41:09 UTC
I did a revdep-rebuild, and recompiled all gst-plugins, gstreamer and ffmpeg manually since revdep didn't pick up anything.

Yes opj_decode_with_info does appear to be jpeg2000, however it's used in the plugin in question, gst-plugins-ffmpeg, to handle jpeg2000.  which is strange because there's a plugin devoted to jpeg2000 i thought.

gst-libs/ext/ffmpeg/libavcodec/libopenjpeg.c:    image = opj_decode_with_info(dec, stream, NULL);
gst-libs/ext/ffmpeg/.ffmpeg/libavcodec/libopenjpeg.c:    image = opj_decode_with_info(dec, stream, NULL);
gst-libs/ext/ffmpeg/.ffmpeg/ffmpeg/libavcodec/libopenjpeg.c:    image = opj_decode_with_info(dec, stream, NULL);

Perhaps the problem is in gst-plugins-ffmpeg compiling against the wrong openjpeg2000 library.  I'm recompiling back to the unworking state now to have another look at this.


Comment 4 Brad 2009-05-24 00:45:44 UTC
Looks like it was introduced in the latest version.

distfiles # grep -ir "opj_decode_with_info" gst-ffmpeg-0.10.5/

distfiles # grep -ir "opj_decode_with_info" gst-ffmpeg-0.10.7/ 
gst-ffmpeg-0.10.7/gst-libs/ext/ffmpeg/libavcodec/libopenjpeg.c:    image = opj_decode_with_info(dec, stream, NULL);
gst-ffmpeg-0.10.7/gst-libs/ext/ffmpeg/.ffmpeg/libavcodec/libopenjpeg.c:    image = opj_decode_with_info(dec, stream, NULL);
gst-ffmpeg-0.10.7/gst-libs/ext/ffmpeg/.ffmpeg/ffmpeg/libavcodec/libopenjpeg.c:    image = opj_decode_with_info(dec, stream, NULL);
Comment 5 Brad 2009-05-24 00:54:58 UTC
emerge --info
Portage 2.1.6.11 (default/linux/x86/2008.0/desktop, gcc-4.1.2, glibc-2.8_p20080602-r1, 2.6.28-gentoo-r5 i686)
=================================================================
System uname: Linux-2.6.28-gentoo-r5-i686-AMD_Athlon-tm-_64_X2_Dual_Core_Processor_4400+-with-glibc2.0
Timestamp of tree: Sat, 23 May 2009 06:15:02 +0000
distcc 3.1 i686-pc-linux-gnu [disabled]
app-shells/bash:     3.2_p39
dev-java/java-config: 1.3.7-r1, 2.1.7
dev-lang/python:     2.4.4-r13, 2.5.4-r2
dev-util/cmake:      2.6.2-r1
sys-apps/baselayout: 1.12.11.1
sys-apps/sandbox:    1.6-r2
sys-devel/autoconf:  2.13, 2.63
sys-devel/automake:  1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.2
sys-devel/binutils:  2.18-r3
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   1.5.26
virtual/os-headers:  2.6.27-r2
ACCEPT_KEYWORDS="x86"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-march=athlon64 -O2 -pipe -fomit-frame-pointer -msse3"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/udev/rules.d"
CXXFLAGS="-march=athlon64 -O2 -pipe -fomit-frame-pointer -msse3"
DISTDIR="/usr/portage/distfiles"
FEATURES="distlocks fixpackages parallel-fetch protect-owned sfperms strict unmerge-orphans userfetch"
GENTOO_MIRRORS="http://mirror.internode.on.net/pub/gentoo ftp://ftp.planetmirror.com/pub/gentoo"
LANG="en_AU"
LC_ALL="en_AU"
LDFLAGS="-Wl,-O1"
LINGUAS="en"
MAKEOPTS="-j3"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://mirror.internode.on.net/gentoo-portage"
USE="16bit 3dnow 3dnowext S3TC X a52 aac acl acpi alsa amrnb apache2 artswrappersuid bash-completion bluetooth branding browserplugin bzip2 cairo cddb cdparanoia cdr cdrom cgi chroot cli cracklib crosscompile crypt cups dbus dga divx divx4linux dri dts dv dvd dvdr dvdread eds emboss encode esd evo evolution exif expat faac faad fam ffmpeg firefox flac foomatic foreign-package fortran gb gdbm gif gimp gmp gnome gnome2 gpm gstreamer gtk gtkhtml hal httpd iconv icq id3 idn imagemagick isdnlog java jpeg jpeg2k lame lcms libcaca libnotify libsamplerate logrotate loop-aes lzo mad maildir mbox mhash midi mikmod mjpeg mmext mmx mng mozilla mp3 mpeg mplayer msn mudflap mysql mythtv ncurses network nfs nls nptl nptlonly nsplugin ntfs nvidia offensive ogg on-the-fly-crypt opengl openmp openssl pam pcre pdf perl png pop ppds pppd pulseaudio python qt3 qt3support qt4 quicktime rar readline realmedia reflection rtc rtsp samba sasl scanner sdl see session smp sms spell spl srt sse sse2 ssl startup-notification stream svg sysfs tcpd tga theora threads tiff tools truetype typetype unicode usb utf8 v4l v4l2 vcd videos vorbis win32codecs wma x264 x86 xanim xfs xine xinerama xml xml2 xorg xscreensaver xulrunner xv xvid xvmc zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic auth_digest authn_anon authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif so speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en" USERLAND="GNU" VIDEO_CARDS="nvidia vmware"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 6 Brad 2009-05-24 01:18:47 UTC
OK, secondlife are currently changing their jpeg2000 libraries, current stable uses KDC and lastest RC uses openjpeg.  latest client works with latest gstreamer and old one doesn't.  

I think this might just be binary incompatibility with pre-compiled secondlife.
Comment 7 Mike Auty (RETIRED) gentoo-dev 2009-05-25 16:40:25 UTC
Ok, I'm reassigning this to the secondlife guys, since you've identified that it appears to be a binary incompatibility.  I'm guessing that it'll just be a dependency issue, but if it turns out to have been mis-assigned, do feel free to throw it back to the wranglers for further investigation...

Brad could you please provide the exact version numbers of secondlife-bin and gst-plugins-ffmpeg that you were trying, and list which combinations work and which ones don't?
Comment 8 Toei Rei 2009-05-25 21:18:15 UTC
Brad mentioned, that the binary build causes troubles with the jpg2k handling code. As far as I remember, LL used to use a proprietary lib for that. The Open Source library was causing major slowdowns on my own builds some time ago.

Ref.: http://wiki.secondlife.com/wiki/Third_Party_Libraries
-> KDU 5.2.1 - Kakadu (KDU) JPEG-2000 decoder library.

OpenJpeg, an open-source JPEG-2000 library, a slower alternative to Kadaku is used in the open source release. As we are running the bin stuff... that explains the problems
Comment 9 Joe Peterson (RETIRED) gentoo-dev 2009-06-14 14:42:06 UTC
Marking this wontfix for now.  I don't see any clear change that should be made.  If anyone still having this issue has a definitive fix, please reopen with a suggested patch to the ebuild.