summaryrefslogtreecommitdiff
path: root/libavcodec/snow.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2014-06-26 20:44:21 +0200
committerMichael Niedermayer <michaelni@gmx.at>2014-06-26 20:52:06 +0200
commite059ac59efb8001494870af5c6ac72d900846b0b (patch)
tree88efcb81e650af20b1c80db5fadb185a2757729f /libavcodec/snow.c
parent932be89c26d71244a5d78378c2c32a826ed6a31e (diff)
avcodec/snow: ensure the buffers have allocated edges
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/snow.c')
-rw-r--r--libavcodec/snow.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/libavcodec/snow.c b/libavcodec/snow.c
index bd20388847..616d1170af 100644
--- a/libavcodec/snow.c
+++ b/libavcodec/snow.c
@@ -661,9 +661,18 @@ int ff_snow_frame_start(SnowContext *s){
return -1;
}
}
-
+ s->current_picture->width = s->avctx->width + 2 * EDGE_WIDTH;
+ s->current_picture->height = s->avctx->height + 2 * EDGE_WIDTH;
if ((ret = ff_get_buffer(s->avctx, s->current_picture, AV_GET_BUFFER_FLAG_REF)) < 0)
return ret;
+ for (i = 0; s->current_picture->data[i]; i++) {
+ int offset = (EDGE_WIDTH >> (i ? s->chroma_v_shift : 0)) *
+ s->current_picture->linesize[i] +
+ (EDGE_WIDTH >> (i ? s->chroma_h_shift : 0));
+ s->current_picture->data[i] += offset;
+ }
+ s->current_picture->width = s->avctx->width;
+ s->current_picture->height = s->avctx->height;
s->current_picture->key_frame= s->keyframe;