From 8e702a802be178f38cf57c3f167fb4df8519cd8f Mon Sep 17 00:00:00 2001 From: "Joshua M. Doe" Date: Tue, 24 Nov 2020 11:55:17 -0500 Subject: [PATCH] pleorasrc: fix support for Bayer formats Closes #44 --- sys/pleora/gstpleorasrc.cpp | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/sys/pleora/gstpleorasrc.cpp b/sys/pleora/gstpleorasrc.cpp index b010adb..d467559 100644 --- a/sys/pleora/gstpleorasrc.cpp +++ b/sys/pleora/gstpleorasrc.cpp @@ -1414,7 +1414,24 @@ gst_pleorasrc_set_caps (GstBaseSrc * bsrc, GstCaps * caps) if (GST_VIDEO_INFO_FORMAT (&vinfo) != GST_VIDEO_FORMAT_UNKNOWN) { src->height = GST_VIDEO_INFO_HEIGHT (&vinfo); - src->gst_stride = GST_VIDEO_INFO_COMP_STRIDE (&vinfo, 0); + + if (GST_VIDEO_INFO_FORMAT (&vinfo) != GST_VIDEO_FORMAT_ENCODED) { + src->gst_stride = GST_VIDEO_INFO_COMP_STRIDE (&vinfo, 0); + } else { + GST_DEBUG (gst_structure_get_name (s)); + if (g_str_equal (gst_structure_get_name (s), "video/x-bayer")) { + const gchar *format = gst_structure_get_string (s, "format"); + gint width = GST_VIDEO_INFO_WIDTH (&vinfo); + + if (g_str_has_suffix (format, "16")) { + src->gst_stride = GST_ROUND_UP_4 (width * 2); + } else { + src->gst_stride = GST_ROUND_UP_4 (width); + } + } else { + goto unsupported_caps; + } + } } else { goto unsupported_caps; }