diff options
author | Joshua M. Doe <oss@nvl.army.mil> | 2018-10-15 12:48:10 -0400 |
---|---|---|
committer | Tim-Philipp Müller <tim@centricular.com> | 2019-05-02 09:39:08 +0100 |
commit | 0c762f35694d03e2bc472071592d9c2a14997a94 (patch) | |
tree | 6638f0ce8f29358627b835382a3fdc4474398123 | |
parent | 9d629d39e085e445904cc09c82631273e065b3c1 (diff) | |
download | gstreamer-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.c | 14 |
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)) { |