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 */
#define AVIO_RDONLY 1 /**< read-only */
#define AVIO_WRONLY 2 /**< write-only */
#define AVIO_RDWR 4 /**< read-write */
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);
** CRITICAL **: gst_ffmpegdata_open: assertion `GST_PAD_IS_SRC (pad)' failed
Program received signal SIGABRT, Aborted.
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.