From d4ff62700d62e5de45cdb65f2899ee671c7666ae Mon Sep 17 00:00:00 2001 From: Matthew Waters Date: Fri, 20 Nov 2020 16:51:09 +1100 Subject: [PATCH] video/converter: increase the number of cache lines for resampling The exising hardcoded max default does not account for the possible -1 offset when retrieving lines for resampling. As a result, when another chain has the same number of cache lines (4), the resample operation would be attempting to generate 5 lines with a cache size of 4 and would overwrite the first cache line. Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/821 Part-of: --- gst-libs/gst/video/video-converter.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gst-libs/gst/video/video-converter.c b/gst-libs/gst/video/video-converter.c index 3bfee92517..7d921a70db 100644 --- a/gst-libs/gst/video/video-converter.c +++ b/gst-libs/gst/video/video-converter.c @@ -851,7 +851,8 @@ chain_upsample (GstVideoConverter * convert, GstLineCache * prev, gint idx) prev = convert->upsample_lines[idx] = gst_line_cache_new (prev); prev->write_input = TRUE; prev->pass_alloc = TRUE; - prev->n_lines = 4; + /* XXX: why this hardcoded value? */ + prev->n_lines = 5; prev->stride = convert->current_pstride * convert->current_width; gst_line_cache_set_need_line_func (prev, do_upsample_lines, idx, convert, NULL); @@ -1959,7 +1960,8 @@ chain_downsample (GstVideoConverter * convert, GstLineCache * prev, gint idx) prev = convert->downsample_lines[idx] = gst_line_cache_new (prev); prev->write_input = TRUE; prev->pass_alloc = TRUE; - prev->n_lines = 4; + /* XXX: why this hardcoded value? */ + prev->n_lines = 5; prev->stride = convert->current_pstride * convert->current_width; gst_line_cache_set_need_line_func (prev, do_downsample_lines, idx, convert, NULL);