kmssink: do not get kms bo pitch for planar formats
authorPhilipp Zabel <p.zabel@pengutronix.de>
Wed, 19 Oct 2016 12:54:44 +0000 (14:54 +0200)
committerVíctor Manuel Jáquez Leal <vjaquez@igalia.com>
Thu, 10 Nov 2016 14:57:24 +0000 (15:57 +0100)
The API is ill defined for planar formats in case of dumb BOs,
do not use the reported stride in those cases.

https://bugzilla.gnome.org/show_bug.cgi?id=773473

sys/kms/gstkmsallocator.c

index e031848..bd89400 100644 (file)
@@ -320,8 +320,12 @@ gst_kms_allocator_add_fb (GstKMSAllocator * alloc, GstKMSMemory * kmsmem,
       bo_handles[i] = bo_handles[0];
 
     /* Get the bo pitch calculated by the kms driver.
-     * If it's defined, it will overwrite the video info's stride */
-    kms_bo_get_prop (kmsmem->bo, KMS_PITCH, &pitch);
+     * If it's defined, it will overwrite the video info's stride.
+     * Since the API is completely undefined for planar formats,
+     * only do this for interleaved formats.
+     */
+    if (num_planes == 1)
+      kms_bo_get_prop (kmsmem->bo, KMS_PITCH, &pitch);
   } else {
     for (i = 0; i < num_planes; i++)
       bo_handles[i] = kmsmem->gem_handle[i];