From 8770f227359897e42000ea044ff99f0c4a9daccc Mon Sep 17 00:00:00 2001 From: =?utf8?q?Tim-Philipp=20M=C3=BCller?= Date: Fri, 3 Jan 2014 15:58:26 +0000 Subject: [PATCH] avcodecmap: fix regression with wmv3 video in WMVA format The VC-1 decoder should handle that. Before avdec_wmv3 handled it, but then we added format=WMV3 to its sink pad template caps, at which point nothing handled WMVA any longer. https://bugzilla.gnome.org/show_bug.cgi?id=697665 --- ext/libav/gstavcodecmap.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/ext/libav/gstavcodecmap.c b/ext/libav/gstavcodecmap.c index 5fe1b75..42a319a 100644 --- a/ext/libav/gstavcodecmap.c +++ b/ext/libav/gstavcodecmap.c @@ -1436,7 +1436,22 @@ gst_ffmpeg_codecid_to_caps (enum AVCodecID codec_id, case AV_CODEC_ID_VC1: caps = gst_ff_vid_caps_new (context, NULL, codec_id, encode, "video/x-wmv", - "wmvversion", G_TYPE_INT, 3, "format", G_TYPE_STRING, "WVC1", NULL); + "wmvversion", G_TYPE_INT, 3, NULL); + if (!context && !encode) { + GValue arr = { 0, }; + GValue item = { 0, }; + + g_value_init (&arr, GST_TYPE_LIST); + g_value_init (&item, G_TYPE_STRING); + g_value_set_string (&item, "WVC1"); + gst_value_list_append_value (&arr, &item); + g_value_set_string (&item, "WMVA"); + gst_value_list_append_and_take_value (&arr, &item); + gst_caps_set_value (caps, "format", &arr); + g_value_unset (&arr); + } else { + gst_caps_set_simple (caps, "format", G_TYPE_STRING, "WVC1", NULL); + } break; case AV_CODEC_ID_QDM2: caps = -- 2.7.4