diff --git a/ext/ffmpeg/gstffmpegcodecmap.c b/ext/ffmpeg/gstffmpegcodecmap.c index bfb2796e94..253569eab7 100644 --- a/ext/ffmpeg/gstffmpegcodecmap.c +++ b/ext/ffmpeg/gstffmpegcodecmap.c @@ -899,6 +899,11 @@ gst_ffmpeg_codecid_to_caps (enum CodecID codec_id, "indeoversion", G_TYPE_INT, 5, NULL); break; + case CODEC_ID_INDEO4: + caps = gst_ff_vid_caps_new (context, codec_id, "video/x-indeo", + "indeoversion", G_TYPE_INT, 4, NULL); + break; + case CODEC_ID_INDEO3: caps = gst_ff_vid_caps_new (context, codec_id, "video/x-indeo", "indeoversion", G_TYPE_INT, 3, NULL); @@ -3020,6 +3025,9 @@ gst_ffmpeg_caps_to_codecid (const GstCaps * caps, AVCodecContext * context) case 5: id = CODEC_ID_INDEO5; break; + case 4: + id = CODEC_ID_INDEO4; + break; case 3: id = CODEC_ID_INDEO3; break; diff --git a/ext/ffmpeg/gstffmpegdec.c b/ext/ffmpeg/gstffmpegdec.c index e84e81a687..330911a109 100644 --- a/ext/ffmpeg/gstffmpegdec.c +++ b/ext/ffmpeg/gstffmpegdec.c @@ -838,11 +838,16 @@ gst_ffmpegdec_setcaps (GstFFMpegDec * ffmpegdec, GstCaps * caps) * supports it) */ ffmpegdec->context->debug_mv = ffmpegdec->debug_mv; - if (ffmpegdec->max_threads == 0) - ffmpegdec->context->thread_count = gst_ffmpeg_auto_max_threads (); - else + if (ffmpegdec->max_threads == 0) { + if (!(oclass->in_plugin->capabilities & CODEC_CAP_AUTO_THREADS)) + ffmpegdec->context->thread_count = gst_ffmpeg_auto_max_threads (); + else + ffmpegdec->context->thread_count = 0; + } else ffmpegdec->context->thread_count = ffmpegdec->max_threads; + ffmpegdec->context->thread_type = FF_THREAD_SLICE; + /* open codec - we don't select an output pix_fmt yet, * simply because we don't know! We only get it * during playback... */ diff --git a/ext/ffmpeg/gstffmpegmux.c b/ext/ffmpeg/gstffmpegmux.c index 6b82759d9e..773f1c1912 100644 --- a/ext/ffmpeg/gstffmpegmux.c +++ b/ext/ffmpeg/gstffmpegmux.c @@ -795,7 +795,7 @@ gst_ffmpegmux_collected (GstCollectPads2 * pads, gpointer user_data) static GstStateChangeReturn gst_ffmpegmux_change_state (GstElement * element, GstStateChange transition) { - GstFlowReturn ret; + GstStateChangeReturn ret; GstFFMpegMux *ffmpegmux = (GstFFMpegMux *) (element); switch (transition) { diff --git a/gst-libs/ext/libav b/gst-libs/ext/libav index 85afbb1d00..4b63cc18bc 160000 --- a/gst-libs/ext/libav +++ b/gst-libs/ext/libav @@ -1 +1 @@ -Subproject commit 85afbb1d00d58812df5d634e946b2fcf653bcd8e +Subproject commit 4b63cc18bc44517f0f9e04b39ab873cbc3c6aee5