mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-23 18:21:04 +00:00
matroskamux: adds support for wmv family
Adds support to WMV1, WMV2, WMV3 and other family formats that are signaled by the 'format' field in the caps (i.e. WVC1). Partially fixes #576378
This commit is contained in:
parent
8c8e6af45b
commit
df442b4727
1 changed files with 20 additions and 2 deletions
|
@ -115,7 +115,8 @@ static GstStaticPadTemplate videosink_templ =
|
||||||
COMMON_VIDEO_CAPS "; "
|
COMMON_VIDEO_CAPS "; "
|
||||||
"video/x-raw-yuv, "
|
"video/x-raw-yuv, "
|
||||||
"format = (fourcc) { YUY2, I420, YV12, UYVY, AYUV }, "
|
"format = (fourcc) { YUY2, I420, YV12, UYVY, AYUV }, "
|
||||||
COMMON_VIDEO_CAPS)
|
COMMON_VIDEO_CAPS "; "
|
||||||
|
"video/x-wmv, " "wmvversion = (int) [ 1, 3 ], " COMMON_VIDEO_CAPS)
|
||||||
);
|
);
|
||||||
|
|
||||||
#define COMMON_AUDIO_CAPS \
|
#define COMMON_AUDIO_CAPS \
|
||||||
|
@ -710,7 +711,8 @@ skip_details:
|
||||||
|| !strcmp (mimetype, "video/x-divx")
|
|| !strcmp (mimetype, "video/x-divx")
|
||||||
|| !strcmp (mimetype, "video/x-dv")
|
|| !strcmp (mimetype, "video/x-dv")
|
||||||
|| !strcmp (mimetype, "video/x-h263")
|
|| !strcmp (mimetype, "video/x-h263")
|
||||||
|| !strcmp (mimetype, "video/x-msmpeg")) {
|
|| !strcmp (mimetype, "video/x-msmpeg")
|
||||||
|
|| !strcmp (mimetype, "video/x-wmv")) {
|
||||||
BITMAPINFOHEADER *bih;
|
BITMAPINFOHEADER *bih;
|
||||||
gint size = sizeof (BITMAPINFOHEADER);
|
gint size = sizeof (BITMAPINFOHEADER);
|
||||||
guint32 fourcc = 0;
|
guint32 fourcc = 0;
|
||||||
|
@ -753,6 +755,22 @@ skip_details:
|
||||||
goto msmpeg43;
|
goto msmpeg43;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
} else if (!strcmp (mimetype, "video/x-wmv")) {
|
||||||
|
gint wmvversion;
|
||||||
|
guint32 format;
|
||||||
|
GST_WARNING_OBJECT (mux, "WMV");
|
||||||
|
if (gst_structure_get_fourcc (structure, "format", &format)) {
|
||||||
|
fourcc = format;
|
||||||
|
} else if (gst_structure_get_int (structure, "wmvversion", &wmvversion)) {
|
||||||
|
if (wmvversion == 2) {
|
||||||
|
fourcc = GST_MAKE_FOURCC ('W', 'M', 'V', '2');
|
||||||
|
} else if (wmvversion == 1) {
|
||||||
|
fourcc = GST_MAKE_FOURCC ('W', 'M', 'V', '1');
|
||||||
|
} else if (wmvversion == 3) {
|
||||||
|
fourcc = GST_MAKE_FOURCC ('W', 'M', 'V', '3');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
GST_WARNING_OBJECT (mux, "fourcc=%u", fourcc);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!fourcc)
|
if (!fourcc)
|
||||||
|
|
Loading…
Reference in a new issue