After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 324366 - gst-ffmpeg doesn't support --disable-encoders
gst-ffmpeg doesn't support --disable-encoders
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-libav
0.10.0
Other Linux
: Normal normal
: 0.10.2
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2005-12-17 23:47 UTC by Sebastien Bacher
Modified: 2006-05-07 01:19 UTC
See Also:
GNOME target: ---
GNOME version: 2.13/2.14


Attachments
Fix missing symbols / move #ifdef CONFIG_MUXERS (7.05 KB, patch)
2006-02-22 11:45 UTC, Loïc Minier
none Details | Review
Patch for ffmpeg's autotools stuff (1.36 KB, patch)
2006-02-22 23:29 UTC, Sam Morris
none Details | Review

Description Sebastien Bacher 2005-12-17 23:47:25 UTC
With gstreamer0.10/gst-plugins-base0.10/gstreamer0.10-ffmpeg packaged on Ubuntu:

"$ gst-inspect-0.10 /usr/lib/gstreamer-0.10/libgstffmpeg.so
Error loading plugin file: Opening module failed"

I'm not sure if that's due to that, but:

"$ ldd -r /usr/lib/gstreamer-0.10/libgstffmpeg.so
undefined symbol: put_be32      (/usr/lib/gstreamer-0.10/libgstffmpeg.so)
undefined symbol: url_write     (/usr/lib/gstreamer-0.10/libgstffmpeg.so)
undefined symbol: put_buffer    (/usr/lib/gstreamer-0.10/libgstffmpeg.so)
undefined symbol: lsb2full      (/usr/lib/gstreamer-0.10/libgstffmpeg.so)
undefined symbol: put_le16      (/usr/lib/gstreamer-0.10/libgstffmpeg.so)
undefined symbol: put_byte      (/usr/lib/gstreamer-0.10/libgstffmpeg.so)
undefined symbol: put_be16      (/usr/lib/gstreamer-0.10/libgstffmpeg.so)
undefined symbol: put_le32      (/usr/lib/gstreamer-0.10/libgstffmpeg.so)
undefined symbol: put_tag       (/usr/lib/gstreamer-0.10/libgstffmpeg.so)
undefined symbol: mmf_rate      (/usr/lib/gstreamer-0.10/libgstffmpeg.so)
undefined symbol: put_be64      (/usr/lib/gstreamer-0.10/libgstffmpeg.so)
undefined symbol: mpegts_crc32  (/usr/lib/gstreamer-0.10/libgstffmpeg.so)
undefined symbol: put_flush_packet      (/usr/lib/gstreamer-0.10/libgstffmpeg.so)
        linux-gate.so.1 =>  (0xffffe000)
        libgstreamer-0.10.so.0 => /usr/lib/libgstreamer-0.10.so.0 (0xb7bf0000)
        libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0xb7bb7000)
        libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0xb7bb4000)
        libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7bb1000)
        libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0xb7bad000)
        libxml2.so.2 => /usr/lib/libxml2.so.2 (0xb7aa3000)
        libz.so.1 => /usr/lib/libz.so.1 (0xb7a8f000)
        libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb7a6c000)
        libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0xb79e9000)
        libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb79d7000)
        libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb78a9000)
        /lib/ld-linux.so.2 (0x80000000)"
Comment 1 Tim-Philipp Müller 2005-12-18 00:21:22 UTC
Do you use any additional configure option for packaging? (--disable-foo etc.)
If so, what are they? Is that on breezy or dapper?
Comment 2 Sebastien Bacher 2005-12-18 00:33:12 UTC
I'm building the package on a dapper installation. It happens when the
"--disable-encoders" configure option is used
Comment 3 Edward Hervey 2006-01-16 14:23:52 UTC
Something weird here. gst-ffmpeg doesn't have that option, but the contained ffmpeg does.
A/ I don't know if this is a wanted behaviour (not building encoders for gst-ffmpeg).
B/ If we want this, we need a configure option (with adequate ifdef'ed pieces of code) for gst-ffmpeg
Comment 4 Loïc Minier 2006-02-22 11:45:29 UTC
Created attachment 59926 [details] [review]
Fix missing symbols / move #ifdef CONFIG_MUXERS

Sam Morris proposed a hackish patch (attached) to fix the #ifdef / missing symbols issue.  It seems that refreshing the ffmpeg snapshot would be enough.

It probably will cause an error to define crc_table twice as in this patch if you configure without --disable-encoders.

Cheers,
Comment 5 Edward Hervey 2006-02-22 12:05:47 UTC
the ffmpeg snapshot has been refreshed as of 3 days ago. Do you still have that issue ?
Comment 6 Sam Morris 2006-02-22 23:21:37 UTC
(In reply to comment #5)

Assuming the refresh made it to anoncvs.freedesktop.org, yes. The following symbols are still missing:

undefined symbol: put_be32      (./ext/ffmpeg/.libs/libgstffmpeg.so)
undefined symbol: put_le16      (./ext/ffmpeg/.libs/libgstffmpeg.so)
undefined symbol: put_be16      (./ext/ffmpeg/.libs/libgstffmpeg.so)
undefined symbol: put_le32      (./ext/ffmpeg/.libs/libgstffmpeg.so)
undefined symbol: put_tag       (./ext/ffmpeg/.libs/libgstffmpeg.so)
undefined symbol: put_be64      (./ext/ffmpeg/.libs/libgstffmpeg.so)
undefined symbol: url_write     (./ext/ffmpeg/.libs/libgstffmpeg.so)
 defined only if CONFIG_MUXERS || CONFIG_PROTOCOLS are defined. I guess
 gst-ffmpeg's autotools stuff should be updated to define CONFIG_PROTOCOLS.

undefined symbol: mpegts_crc32  (./ext/ffmpeg/.libs/libgstffmpeg.so)
 defined unconditionally in mpegtsenc.c; but this file is only built if
 CONFIG_ENCODERS is set. Since everything else in this file is only defined
 if CONFIG_MUXERS is defined, Makefile.am should be altered to always compile
 this file--perhaps move it to format_SRC.
Comment 7 Sam Morris 2006-02-22 23:29:43 UTC
Created attachment 59962 [details] [review]
Patch for ffmpeg's autotools stuff

This patch would be more suitable to apply to gst-ffmpeg itself. It implements the changes I suggested in my previous comment.
Comment 8 Loïc Minier 2006-04-03 14:53:43 UTC
Edward, yes the issue is still there with 0.10.1, try building with --disable-encoders, the build succeeds, but missing symbols prevent the ffmpeg plugin to be loaded:
bee% gst-launch-0.10 --gst-debug-level=2 ffmpeg 
WARN  (0x80509a0 - 0:00:00.293344000)   GST_PLUGIN_LOADING(23443) gstplugin.c(414):gst_plugin_load_file: module_open failed: /usr/lib/gstreamer-0.10/libgstffmpeg.so: undefined symbol: mpegts_crc32

(the actual symbol will vary, I've updated Sam's patch to fix these)

Bye,
Comment 9 Jan Schmidt 2006-05-06 23:53:03 UTC
I don't understand how this bug works - you call gst-ffmpeg's configure with --disable-encoders and this is somehow being passed to the contained ffmpeg snapshot, or do you have other patches for the toplevel configure to enable that?

Sam's second patch for the ffmpeg snapshot looks ok to me, I just want to make sure I understand exactly what's going on first.
Comment 10 Jan Schmidt 2006-05-07 01:19:33 UTC
OK, all the command line args to ./configure in the toplevel are passed to the contained ffmpeg snapshot, so that explains that. Merging the patch. I can build without encoders here fine now:

        * gst-libs/ext/ffmpeg/configure.ac:
        * gst-libs/ext/ffmpeg/libavformat/Makefile.am:
        * gst-libs/ext/ffmpeg/patches/autotools.patch:
        Merge patch by Sam Morris to allow disabling of decoders.
        Fixes #324366