diff --git a/ChangeLog b/ChangeLog index 44a3fd358e..35772466c6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2005-06-09 Ronald S. Bultje + + * ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_codecid_to_caps), + (gst_ffmpeg_caps_with_codecid): + Remove weird flags from SVQ3 flags and just give full atom, + like other files; fixes frame order problems (#306530). + 2005-06-08 Luca Ognibene * ext/ffmpeg/gstffmpegdec.c (gst_ffmpegdec_change_state): diff --git a/ext/ffmpeg/gstffmpegcodecmap.c b/ext/ffmpeg/gstffmpegcodecmap.c index 3fadc93451..00ce865d6c 100644 --- a/ext/ffmpeg/gstffmpegcodecmap.c +++ b/ext/ffmpeg/gstffmpegcodecmap.c @@ -328,11 +328,7 @@ gst_ffmpeg_codecid_to_caps (enum CodecID codec_id, case CODEC_ID_SVQ3: caps = GST_FF_VID_CAPS_NEW ("video/x-svq", - "svqversion", G_TYPE_INT, 3, - "halfpel_flag", GST_TYPE_INT_RANGE, 0, 1, - "thirdpel_flag", GST_TYPE_INT_RANGE, 0, 1, - "low_delay", GST_TYPE_INT_RANGE, 0, 1, - "unknown_svq3_flag", GST_TYPE_INT_RANGE, 0, 1, NULL); + "svqversion", G_TYPE_INT, 3, NULL); break; case CODEC_ID_DVAUDIO: @@ -1241,36 +1237,6 @@ gst_ffmpeg_caps_with_codecid (enum CodecID codec_id, } while (0); break; - case CODEC_ID_SVQ3: - do { - gint halfpel_flag, thirdpel_flag, low_delay, unknown_svq3_flag; - guint16 flags; - - if (gst_structure_get_int (str, "halfpel_flag", &halfpel_flag) || - gst_structure_get_int (str, "thirdpel_flag", &thirdpel_flag) || - gst_structure_get_int (str, "low_delay", &low_delay) || - gst_structure_get_int (str, "unknown_svq3_flag", - &unknown_svq3_flag)) { - context->extradata = (guint8 *) av_mallocz (0x64); - g_stpcpy (context->extradata, "SVQ3"); - flags = 1 << 3; - flags |= low_delay; - flags = flags << 2; - flags |= unknown_svq3_flag; - flags = flags << 6; - flags |= halfpel_flag; - flags = flags << 1; - flags |= thirdpel_flag; - flags = flags << 3; - - flags = GUINT16_FROM_LE (flags); - - memcpy (context->extradata + 0x62, &flags, 2); - context->extradata_size = 0x64; - } - } while (0); - break; - case CODEC_ID_MSRLE: case CODEC_ID_QTRLE: do {