From 693b42bc08df5a3e79d21c060910feaa7a830f96 Mon Sep 17 00:00:00 2001
From: Fabien Parent <fparent@baylibre.com>
Date: Wed, 26 Aug 2020 19:16:53 +0200
Subject: [PATCH 5/5] use display_{width,height} for cropping instead of
 width,height

Use display_width and display_height to do the cropping if there are
part of the caps. Also always set the cropping.

Signed-off-by: Fabien Parent <fparent@baylibre.com>
---
 sys/v4l2/gstv4l2object.c    | 14 +++++++++-----
 sys/v4l2/gstv4l2object.h    |  2 +-
 sys/v4l2/gstv4l2transform.c |  4 ++--
 3 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/sys/v4l2/gstv4l2object.c b/sys/v4l2/gstv4l2object.c
index 886372789536..0fefbfb38686 100644
--- a/sys/v4l2/gstv4l2object.c
+++ b/sys/v4l2/gstv4l2object.c
@@ -4640,10 +4640,11 @@ gst_v4l2_object_poll (GstV4l2Object * v4l2object, gint timeout)
 }
 
 gboolean
-gst_v4l2_object_set_crop (GstV4l2Object * obj)
+gst_v4l2_object_set_crop (GstV4l2Object * obj, GstCaps * caps)
 {
   struct v4l2_selection sel = { 0 };
   struct v4l2_crop crop = { 0 };
+  GstStructure *st;
 
   sel.type = obj->type;
   sel.target = V4L2_SEL_TGT_CROP;
@@ -4656,10 +4657,13 @@ gst_v4l2_object_set_crop (GstV4l2Object * obj)
   crop.type = obj->type;
   crop.c = sel.r;
 
-  if (obj->align.padding_left + obj->align.padding_top +
-      obj->align.padding_right + obj->align.padding_bottom == 0) {
-    GST_DEBUG_OBJECT (obj->dbg_obj, "no cropping needed");
-    return TRUE;
+  st = gst_caps_get_structure (caps, 0);
+  if (gst_structure_has_field (st, "display_width")) {
+    gst_structure_get_int(st, "display_width", &crop.c.width);
+  }
+
+  if (gst_structure_has_field (st, "display_height")) {
+    gst_structure_get_int(st, "display_height", &crop.c.height);
   }
 
   GST_DEBUG_OBJECT (obj->dbg_obj,
diff --git a/sys/v4l2/gstv4l2object.h b/sys/v4l2/gstv4l2object.h
index 92f22a74cac0..4462fdeba644 100644
--- a/sys/v4l2/gstv4l2object.h
+++ b/sys/v4l2/gstv4l2object.h
@@ -303,7 +303,7 @@ GstCaps *    gst_v4l2_object_get_caps    (GstV4l2Object * v4l2object, GstCaps *
 
 gboolean     gst_v4l2_object_acquire_format (GstV4l2Object * v4l2object, GstVideoInfo * info);
 
-gboolean     gst_v4l2_object_set_crop    (GstV4l2Object * obj);
+gboolean     gst_v4l2_object_set_crop    (GstV4l2Object * obj, GstCaps * caps);
 
 gboolean     gst_v4l2_object_decide_allocation (GstV4l2Object * v4l2object, GstQuery * query);
 
diff --git a/sys/v4l2/gstv4l2transform.c b/sys/v4l2/gstv4l2transform.c
index a9294e233b5b..b8990632a60d 100644
--- a/sys/v4l2/gstv4l2transform.c
+++ b/sys/v4l2/gstv4l2transform.c
@@ -220,10 +220,10 @@ gst_v4l2_transform_set_caps (GstBaseTransform * trans, GstCaps * incaps,
     goto outcaps_failed;
 
   /* FIXME implement fallback if crop not supported */
-  if (!gst_v4l2_object_set_crop (self->v4l2output))
+  if (!gst_v4l2_object_set_crop (self->v4l2output, outcaps))
     goto failed;
 
-  if (!gst_v4l2_object_set_crop (self->v4l2capture))
+  if (!gst_v4l2_object_set_crop (self->v4l2capture, incaps))
     goto failed;
 
   return TRUE;
-- 
2.28.0

