+2007-05-09 Edward Hervey <edward@fluendo.com>
+
+ * ext/ffmpeg/gstffmpeg.c: (gst_ffmpeg_av_find_stream_info):
+ * ext/ffmpeg/gstffmpeg.h:
+ * ext/ffmpeg/gstffmpegdemux.c: (gst_ffmpegdemux_open):
+ Protect calls to ffmpeg functions that will implicitly call
+ avcodec_open/close with the avcodec mutex.
+ Fixes #433245
+
2007-05-02 Edward Hervey <edward@fluendo.com>
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_init),
return ret;
}
+int
+gst_ffmpeg_av_find_stream_info(AVFormatContext *ic) {
+ int ret;
+
+ g_static_mutex_lock (&gst_avcodec_mutex);
+ ret = av_find_stream_info (ic);
+ g_static_mutex_unlock (&gst_avcodec_mutex);
+
+ return ret;
+}
+
#ifndef GST_DISABLE_GST_DEBUG
static void
gst_ffmpeg_log_callback (void * ptr, int level, const char * fmt, va_list vl)
int gst_ffmpeg_avcodec_open (AVCodecContext *avctx, AVCodec *codec);
int gst_ffmpeg_avcodec_close (AVCodecContext *avctx);
+int gst_ffmpeg_av_find_stream_info(AVFormatContext *ic);
G_END_DECLS
if (res < 0)
goto open_failed;
- res = av_find_stream_info (demux->context);
+ res = gst_ffmpeg_av_find_stream_info (demux->context);
GST_DEBUG_OBJECT (demux, "av_find_stream_info returned %d", res);
if (res < 0)
goto no_info;