omxvideoenc: use gst_video_meta_get_plane_height() to compute slice height
authorGuillaume Desmottes <guillaume.desmottes@collabora.com>
Fri, 10 Apr 2020 08:58:34 +0000 (10:58 +0200)
committerGuillaume Desmottes <guillaume.desmottes@collabora.com>
Fri, 10 Apr 2020 09:30:29 +0000 (11:30 +0200)
This new API saves us from doing manual computation and actually work
with single planar formats, such as GRAY8.

omx/gstomxvideoenc.c

index 5da6085..a37b127 100644 (file)
@@ -1984,10 +1984,18 @@ gst_omx_video_enc_configure_input_buffer (GstOMXVideoEnc * self,
 
   meta = gst_buffer_get_video_meta (input);
   if (meta) {
+    guint plane_height[GST_VIDEO_MAX_PLANES];
+
     /* Use the stride and slice height of the first plane */
+    if (!gst_video_meta_get_plane_height (meta, plane_height)) {
+      GST_WARNING_OBJECT (self, "Failed to retrieve plane height from meta");
+      slice_height = GST_VIDEO_INFO_FIELD_HEIGHT (info);
+    } else {
+      slice_height = plane_height[0];
+    }
+
     stride = meta->stride[0];
     g_assert (stride != 0);
-    slice_height = (meta->offset[1] - meta->offset[0]) / stride;
 
     GST_DEBUG_OBJECT (self,
         "adjusting stride (%d) and slice-height (%d) using input buffer meta",