diff --git a/ChangeLog b/ChangeLog index 8e43869510..612d73e946 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2008-05-07 Edward Hervey + + * ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_setcaps), + (gst_ffmpegdec_register): + Previous commit in fact broke playback for standard wmv3. + Instead make both ffdec_vc1 and ffdec_wmv3 accept any wmv3 variant and + figure out the proper codecid when opening the ffmpeg decoder. + 2008-05-07 Edward Hervey * ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_setcaps), diff --git a/common b/common index 9b28214399..ba3dd2882b 160000 --- a/common +++ b/common @@ -1 +1 @@ -Subproject commit 9b28214399156457fd6b43d0604a47e4bdf19c28 +Subproject commit ba3dd2882b1611f8115f9664e3b85e1fd956b53d diff --git a/ext/ffmpeg/gstffmpegdec.c b/ext/ffmpeg/gstffmpegdec.c index 843b91a8e3..af765340e5 100644 --- a/ext/ffmpeg/gstffmpegdec.c +++ b/ext/ffmpeg/gstffmpegdec.c @@ -613,17 +613,9 @@ gst_ffmpegdec_setcaps (GstPad * pad, GstCaps * caps) GST_OBJECT_LOCK (ffmpegdec); /* stupid check for VC1 */ - if (oclass->in_plugin->id == CODEC_ID_WMV3) { - enum CodecID cid; - - /* Get the code id and check it's the same as the incoming caps */ - cid = gst_ffmpeg_caps_to_codecid (caps, NULL); - if (cid != CODEC_ID_WMV3) { - ret = FALSE; - GST_WARNING ("This decoder handles WMV3 and not VC1!"); - goto done; - } - } + if ((oclass->in_plugin->id == CODEC_ID_WMV3) || + (oclass->in_plugin->id == CODEC_ID_VC1)) + oclass->in_plugin->id = gst_ffmpeg_caps_to_codecid (caps, NULL); /* close old session */ gst_ffmpegdec_close (ffmpegdec); @@ -2538,9 +2530,6 @@ gst_ffmpegdec_register (GstPlugin * plugin) case CODEC_ID_MPEG2VIDEO: rank = GST_RANK_NONE; break; - case CODEC_ID_VC1: - rank = GST_RANK_MARGINAL + 1; - break; default: rank = GST_RANK_MARGINAL; break;