v4l2codecs: gstv4l2decoder: set minimum sizeimage
authorDaniel Almeida <daniel.almeida@collabora.com>
Thu, 22 Apr 2021 19:29:20 +0000 (16:29 -0300)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Mon, 29 Nov 2021 17:41:19 +0000 (17:41 +0000)
Set minimum sizeimage such that there is enough space for any overhead
introduced by the codec.

Notably fix a vp9 issue in which a small image would not have a
bitstream buffer large enough to accomodate it.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1012>

subprojects/gst-plugins-bad/sys/v4l2codecs/gstv4l2decoder.c

index 266b31d..20077be 100644 (file)
@@ -36,6 +36,8 @@
 
 #include <gst/base/base.h>
 
+#define IMAGE_MINSZ 4096
+
 GST_DEBUG_CATEGORY (v4l2_decoder_debug);
 #define GST_CAT_DEFAULT v4l2_decoder_debug
 
@@ -324,8 +326,9 @@ gst_v4l2_decoder_set_sink_fmt (GstV4l2Decoder * self, guint32 pix_fmt,
         },
   };
   gint ret;
+
   /* Using raw image size for now, it is guarantied to be large enough */
-  gsize sizeimage = (width * height * pixel_bitdepth) / 8;
+  gsize sizeimage = MAX (IMAGE_MINSZ, (width * height * pixel_bitdepth) / 8);
 
   if (self->mplane)
     format.fmt.pix_mp.plane_fmt[0].sizeimage = sizeimage;