jpegdec: Pull row_stride from GST_VIDEO_FRAME_PLANE_STRIDE()
authorMarek Vasut <marex@denx.de>
Fri, 11 Feb 2022 22:55:57 +0000 (23:55 +0100)
committerMarek Vasut <marex@denx.de>
Sun, 13 Feb 2022 13:46:31 +0000 (14:46 +0100)
The libjpeg-turbo internal state might not be correctly initialized for
the first frame in a stream, pull the frame stride from gstreamer frame
metadata instead, which is correct even for the first frame, and which
makes this code consistent with the surrounding lines.

Fixes: e6d83d8f96 ("jpegdec: Support libjpeg-turbo colorspace conversion")
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1687>

subprojects/gst-plugins-good/ext/jpeg/gstjpegdec.c

index 73157cf..06559ad 100644 (file)
@@ -915,7 +915,7 @@ gst_jpeg_dec_decode_direct (GstJpegDec * dec, GstVideoFrame * frame,
 
 #ifdef JCS_EXTENSIONS
   if (dec->format_convert) {
-    gint row_stride = dec->cinfo.output_width * dec->cinfo.output_components;
+    gint row_stride = GST_VIDEO_FRAME_PLANE_STRIDE (frame, 0);
     guchar *bufbase = GST_VIDEO_FRAME_PLANE_DATA (frame, 0);
 
     if (num_fields == 2) {