fix x-wmv format string

This commit is contained in:
Wim Taymans 2012-06-27 11:23:19 +02:00
parent c0cd1c43ab
commit ba87a4524f
2 changed files with 16 additions and 18 deletions

View file

@ -2200,27 +2200,25 @@ gst_asf_mux_video_set_caps (GstPad * pad, GstCaps * caps)
} }
if (strcmp (caps_name, "video/x-wmv") == 0) { if (strcmp (caps_name, "video/x-wmv") == 0) {
guint32 fourcc; gint wmvversion;
const gchar *fstr;
videopad->vidinfo.bit_cnt = 24; videopad->vidinfo.bit_cnt = 24;
/* in case we have a fourcc, we use it */ /* in case we have a format, we use it */
if (gst_structure_get_uint (structure, "format", &fourcc)) { fstr = gst_structure_get_string (structure, "format");
videopad->vidinfo.compression = fourcc; if (fstr && strlen (fstr) == 4) {
} else { videopad->vidinfo.compression = GST_STR_FOURCC (fstr);
gint version; } else if (gst_structure_get_int (structure, "wmvversion", &wmvversion)) {
if (!gst_structure_get_int (structure, "wmvversion", &version)) if (wmvversion == 2) {
goto refuse_caps;
if (version == 2) {
videopad->vidinfo.compression = GST_MAKE_FOURCC ('W', 'M', 'V', '2'); videopad->vidinfo.compression = GST_MAKE_FOURCC ('W', 'M', 'V', '2');
} else if (version == 1) { } else if (wmvversion == 1) {
videopad->vidinfo.compression = GST_MAKE_FOURCC ('W', 'M', 'V', '1'); videopad->vidinfo.compression = GST_MAKE_FOURCC ('W', 'M', 'V', '1');
} else if (version == 3) { } else if (wmvversion == 3) {
videopad->vidinfo.compression = GST_MAKE_FOURCC ('W', 'M', 'V', '3'); videopad->vidinfo.compression = GST_MAKE_FOURCC ('W', 'M', 'V', '3');
} else {
goto refuse_caps;
} }
} } else
goto refuse_caps;
} else { } else {
goto refuse_caps; goto refuse_caps;
} }

View file

@ -161,7 +161,7 @@ static const VideoCodecEntry video_dec_codecs[] = {
{"dshowvdec_wmv3", "Windows Media Video 9", {"dshowvdec_wmv3", "Windows Media Video 9",
GST_MAKE_FOURCC ('W', 'M', 'V', '3'), GST_MAKE_FOURCC ('W', 'M', 'V', '3'),
GUID_MEDIATYPE_VIDEO, GUID_MEDIASUBTYPE_WMVV3, GUID_MEDIATYPE_VIDEO, GUID_MEDIASUBTYPE_WMVV3,
"video/x-wmv, wmvversion = (int) 3, " "format = (fourcc) WMV3", "video/x-wmv, wmvversion = (int) 3, " "format = (string) WMV3",
GUID_MEDIATYPE_VIDEO, GUID_MEDIASUBTYPE_YUY2, GUID_MEDIATYPE_VIDEO, GUID_MEDIASUBTYPE_YUY2,
"video/x-raw-yuv, format=(fourcc)YUY2", "video/x-raw-yuv, format=(fourcc)YUY2",
preferred_wmv_filters}, preferred_wmv_filters},
@ -169,7 +169,7 @@ static const VideoCodecEntry video_dec_codecs[] = {
{"dshowvdec_wmvp", "Windows Media Video 9 Image", {"dshowvdec_wmvp", "Windows Media Video 9 Image",
GST_MAKE_FOURCC ('W', 'M', 'V', 'P'), GST_MAKE_FOURCC ('W', 'M', 'V', 'P'),
GUID_MEDIATYPE_VIDEO, GUID_MEDIASUBTYPE_WMVP, GUID_MEDIATYPE_VIDEO, GUID_MEDIASUBTYPE_WMVP,
"video/x-wmv, wmvversion = (int) 3, " "format = (fourcc) { WMVP, MSS1 }", "video/x-wmv, wmvversion = (int) 3, " "format = (string) { WMVP, MSS1 }",
GUID_MEDIATYPE_VIDEO, GUID_MEDIASUBTYPE_YUY2, GUID_MEDIATYPE_VIDEO, GUID_MEDIASUBTYPE_YUY2,
"video/x-raw-yuv, format=(fourcc)YUY2", "video/x-raw-yuv, format=(fourcc)YUY2",
preferred_wmv_filters}, preferred_wmv_filters},
@ -177,7 +177,7 @@ static const VideoCodecEntry video_dec_codecs[] = {
{"dshowvdec_wmva", "Windows Media Video 9 Advanced", {"dshowvdec_wmva", "Windows Media Video 9 Advanced",
GST_MAKE_FOURCC ('W', 'M', 'V', 'A'), GST_MAKE_FOURCC ('W', 'M', 'V', 'A'),
GUID_MEDIATYPE_VIDEO, GUID_MEDIASUBTYPE_WMVA, GUID_MEDIATYPE_VIDEO, GUID_MEDIASUBTYPE_WMVA,
"video/x-wmv, wmvversion = (int) 3, " "format = (fourcc) WMVA", "video/x-wmv, wmvversion = (int) 3, " "format = (string) WMVA",
GUID_MEDIATYPE_VIDEO, GUID_MEDIASUBTYPE_YUY2, GUID_MEDIATYPE_VIDEO, GUID_MEDIASUBTYPE_YUY2,
"video/x-raw-yuv, format=(fourcc)YUY2", "video/x-raw-yuv, format=(fourcc)YUY2",
preferred_wmv_filters}, preferred_wmv_filters},
@ -185,7 +185,7 @@ static const VideoCodecEntry video_dec_codecs[] = {
{"dshowvdec_wvc1", "Windows Media VC1 video", {"dshowvdec_wvc1", "Windows Media VC1 video",
GST_MAKE_FOURCC ('W', 'V', 'C', '1'), GST_MAKE_FOURCC ('W', 'V', 'C', '1'),
GUID_MEDIATYPE_VIDEO, GUID_MEDIASUBTYPE_WVC1, GUID_MEDIATYPE_VIDEO, GUID_MEDIASUBTYPE_WVC1,
"video/x-wmv, wmvversion = (int) 3, " "format = (fourcc) WVC1", "video/x-wmv, wmvversion = (int) 3, " "format = (string) WVC1",
GUID_MEDIATYPE_VIDEO, GUID_MEDIASUBTYPE_YUY2, GUID_MEDIATYPE_VIDEO, GUID_MEDIASUBTYPE_YUY2,
"video/x-raw-yuv, format=(fourcc)YUY2", "video/x-raw-yuv, format=(fourcc)YUY2",
preferred_wmv_filters}, preferred_wmv_filters},