video-converter: Don't upsample/downsample/dither invalid lines
authorVivia Nikolaidou <vivia@ahiru.eu>
Fri, 19 Feb 2021 14:44:35 +0000 (16:44 +0200)
committerGStreamer Merge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Tue, 23 Feb 2021 03:40:12 +0000 (03:40 +0000)
This is a fallout from the conversion to support multiple threads.
convert->upsample_p is never NULL now, it's always an allocated array of
n_threads potentially-null pointers.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1043>

gst-libs/gst/video/video-converter.c

index 5de75b8..473d0f1 100644 (file)
@@ -2892,7 +2892,7 @@ do_upsample_lines (GstLineCache * cache, gint idx, gint out_line, gint in_line,
       gst_line_cache_get_lines (cache->prev, idx, out_line, start_line,
       n_lines);
 
-  if (convert->upsample) {
+  if (convert->upsample[idx]) {
     GST_DEBUG ("doing upsample %d-%d %p", start_line, start_line + n_lines - 1,
         lines[0]);
     gst_video_chroma_resample (convert->upsample[idx], lines,
@@ -3093,7 +3093,7 @@ do_downsample_lines (GstLineCache * cache, gint idx, gint out_line,
       gst_line_cache_get_lines (cache->prev, idx, out_line, start_line,
       n_lines);
 
-  if (convert->downsample) {
+  if (convert->downsample[idx]) {
     GST_DEBUG ("downsample line %d %d-%d %p", in_line, start_line,
         start_line + n_lines - 1, lines[0]);
     gst_video_chroma_resample (convert->downsample[idx], lines,
@@ -3116,7 +3116,7 @@ do_dither_lines (GstLineCache * cache, gint idx, gint out_line, gint in_line,
   lines = gst_line_cache_get_lines (cache->prev, idx, out_line, in_line, 1);
   destline = lines[0];
 
-  if (convert->dither) {
+  if (convert->dither[idx]) {
     GST_DEBUG ("Dither line %d %p", in_line, destline);
     gst_video_dither_line (convert->dither[idx], destline, 0, out_line,
         convert->out_width);