summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArnaud Vrac <avrac@freebox.fr>2013-07-18 16:11:16 +0200
committerSebastian Dröge <slomo@circular-chaos.org>2013-07-18 16:24:18 +0200
commit4a2054c6aad18db3c1e9bc359d4ba4de855b036d (patch)
treeb4f4f793369d08d571a16a9c62c09c9162e67b7b
parent33a4d2cb4fa6f33472ec97e9c882fa14cf72eeea (diff)
avviddec: increase bottom padding for output frames
libav can write slightly after the plane end in some SIMD optimized functions. The extra padding value needs to be at least 16+stride_align for each plane, so just increase the bottom padding value for the output frame. https://bugzilla.gnome.org/show_bug.cgi?id=694299
-rw-r--r--ext/libav/gstavviddec.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/ext/libav/gstavviddec.c b/ext/libav/gstavviddec.c
index dc472e4..4ca6917 100644
--- a/ext/libav/gstavviddec.c
+++ b/ext/libav/gstavviddec.c
@@ -1516,6 +1516,10 @@ gst_ffmpegviddec_decide_allocation (GstVideoDecoder * decoder, GstQuery * query)
align.padding_left = edge;
align.padding_right = width - GST_VIDEO_INFO_WIDTH (&state->info) - edge;
align.padding_bottom = height - GST_VIDEO_INFO_HEIGHT (&state->info) - edge;
+
+ /* add extra padding to match libav buffer allocation sizes */
+ align.padding_bottom++;
+
for (i = 0; i < GST_VIDEO_MAX_PLANES; i++)
align.stride_align[i] =
(linesize_align[i] > 0 ? linesize_align[i] - 1 : 0);