<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Thanks!!<br>
    </p>
    <div class="moz-cite-prefix">On 9/21/21 08:35, Kieran Bingham wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:20210921153515.2785148-1-kieran.bingham@ideasonboard.com">
      <pre class="moz-quote-pre" wrap="">Existing pipeline handlers already support planar YUV formats.
Extend the gstreamer format map to incorporate them.

While here, split the formats into distinct groups.

Signed-off-by: Kieran Bingham <a class="moz-txt-link-rfc2396E" href="mailto:kieran.bingham@ideasonboard.com"><kieran.bingham@ideasonboard.com></a>
---
 src/gstreamer/gstlibcamera-utils.cpp | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/src/gstreamer/gstlibcamera-utils.cpp b/src/gstreamer/gstlibcamera-utils.cpp
index 0af91c1acb67..5636f3e7e1a6 100644
--- a/src/gstreamer/gstlibcamera-utils.cpp
+++ b/src/gstreamer/gstlibcamera-utils.cpp
@@ -16,19 +16,32 @@ static struct {
        GstVideoFormat gst_format;
        PixelFormat format;
 } format_map[] = {
+       /* Compressed */
        { GST_VIDEO_FORMAT_ENCODED, formats::MJPEG },
+
+       /* RGB */
        { GST_VIDEO_FORMAT_RGB, formats::BGR888 },
        { GST_VIDEO_FORMAT_BGR, formats::RGB888 },
        { GST_VIDEO_FORMAT_ARGB, formats::BGRA8888 },
+
+       /* YUV Semiplanar */
        { GST_VIDEO_FORMAT_NV12, formats::NV12 },
        { GST_VIDEO_FORMAT_NV21, formats::NV21 },
        { GST_VIDEO_FORMAT_NV16, formats::NV16 },
        { GST_VIDEO_FORMAT_NV61, formats::NV61 },
        { GST_VIDEO_FORMAT_NV24, formats::NV24 },
+
+       /* YUV Packed */
        { GST_VIDEO_FORMAT_UYVY, formats::UYVY },
        { GST_VIDEO_FORMAT_VYUY, formats::VYUY },
        { GST_VIDEO_FORMAT_YUY2, formats::YUYV },
        { GST_VIDEO_FORMAT_YVYU, formats::YVYU },
+
+       /* Planar Formats */
+       { GST_VIDEO_FORMAT_I420, formats::YUV420 },
+       { GST_VIDEO_FORMAT_YV12, formats::YVU420 },
+       { GST_VIDEO_FORMAT_Y42B, formats::YUV422 },
+
        /* \todo NV42 is used in libcamera but is not mapped in GStreamer yet. */
 };
 
</pre>
    </blockquote>
  </body>
</html>