diff options
author | Arnaud Vrac <avrac@freebox.fr> | 2013-07-18 16:11:16 +0200 |
---|---|---|
committer | Sebastian Dröge <slomo@circular-chaos.org> | 2013-07-18 16:24:18 +0200 |
commit | 4a2054c6aad18db3c1e9bc359d4ba4de855b036d (patch) | |
tree | b4f4f793369d08d571a16a9c62c09c9162e67b7b | |
parent | 33a4d2cb4fa6f33472ec97e9c882fa14cf72eeea (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.c | 4 |
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); |