summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua M. Doe <oss@nvl.army.mil>2018-10-15 12:48:10 -0400
committerTim-Philipp Müller <tim@centricular.com>2019-05-02 09:39:08 +0100
commit0c762f35694d03e2bc472071592d9c2a14997a94 (patch)
tree6638f0ce8f29358627b835382a3fdc4474398123
parent9d629d39e085e445904cc09c82631273e065b3c1 (diff)
downloadgstreamer-plugins-bad-0c762f35694d03e2bc472071592d9c2a14997a94.tar.gz
ksvideosrc: support 'Y16 ' FOURCC as GRAY16_LE
The FLIR Boson USB provides 16-bit grayscale video using this FOURCC.
-rw-r--r--sys/winks/ksvideohelpers.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/sys/winks/ksvideohelpers.c b/sys/winks/ksvideohelpers.c
index 5dbd616c8..fac265a03 100644
--- a/sys/winks/ksvideohelpers.c
+++ b/sys/winks/ksvideohelpers.c
@@ -164,10 +164,16 @@ ks_video_format_to_structure (GUID subtype_guid, GUID format_guid,
GST_WARNING ("Unsupported video format ARGB4444");
} else if (memcmp (&subtype_guid.Data2, &MEDIASUBTYPE_FOURCC.Data2,
sizeof (subtype_guid) - sizeof (subtype_guid.Data1)) == 0) {
- guint8 *p = (guint8 *) & subtype_guid.Data1;
- gchar *format = g_strdup_printf ("%c%c%c%c", p[0], p[1], p[2], p[3]);
- structure = gst_structure_new ("video/x-raw", "format",
- G_TYPE_STRING, format, NULL);
+ guint32 fourcc = subtype_guid.Data1;
+ gchar *format =
+ g_strdup_printf ("%" GST_FOURCC_FORMAT, GST_FOURCC_ARGS (fourcc));
+ if (GST_STR_FOURCC (format) == GST_MAKE_FOURCC ('Y', '1', '6', ' ')) {
+ structure = gst_structure_new ("video/x-raw", "format",
+ G_TYPE_STRING, "GRAY16_LE", NULL);
+ } else {
+ structure = gst_structure_new ("video/x-raw", "format",
+ G_TYPE_STRING, format, NULL);
+ }
g_free (format);
} else if (IsEqualGUID (&subtype_guid, &MEDIASUBTYPE_dvsd)) {
if (IsEqualGUID (&format_guid, &FORMAT_DvInfo)) {