GNOME Bugzilla – Bug 649297
regression: ffdemux_ape fails with gst_ffmpegdata_open: assertion `GST_PAD_IS_SRC (pad)' failed
Last modified: 2011-06-30 19:21:50 UTC
Created attachment 187129 [details] ape file to reproduce the issue (just a few samples) This looks like a bug in libav, maybe already fixed upstream? Note this in libavformat/avio.h: #define URL_RDONLY 0 /**< read-only */ #define URL_WRONLY 1 /**< write-only */ #define URL_RDWR 2 /**< read-write */ #if LIBAVFORMAT_VERSION_MAJOR < 53 #define AVIO_RDONLY 0 /**< read-only */ #define AVIO_WRONLY 1 /**< write-only */ #define AVIO_RDWR 2 /**< read-write */ #else #define AVIO_RDONLY 1 /**< read-only */ #define AVIO_WRONLY 2 /**< write-only */ #define AVIO_RDWR 4 /**< read-write */ #endif and then in libavformat/aviobuf.c the AVIO_* flags are silently passed to ffurl_open() which I presume expects URL_* flags, which used to be identical but apparently aren't any more. int avio_open(AVIOContext **s, const char *filename, int flags) { ... err = ffurl_open(&h, filename, flags); ... }
Stack trace: ** CRITICAL **: gst_ffmpegdata_open: assertion `GST_PAD_IS_SRC (pad)' failed aborting... Program received signal SIGABRT, Aborted.
+ Trace 226995
Thread 140737257182976 (LWP 2902)
The pad is a sink pad (as it should be), the sanity check is wrong because of the enum mismatch.
Even easier way to reproduce the issue: make check ;)
No longer present since updating to v0.7 branch of libav.