diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2015-02-23 19:09:44 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2015-02-23 19:47:04 +0100 |
commit | 34a8de866f88186f54da87a8e322c48910659149 (patch) | |
tree | 025f90c87e5761df9707bd835556b9e38280baf7 /libavcodec/snowenc.c | |
parent | 96e7c9cbfc9aeef26ab96956230e9b3fe981c234 (diff) | |
download | ffmpeg-34a8de866f88186f54da87a8e322c48910659149.tar.gz |
avcodec/snowenc: Allocate and reference coded_frame correctly
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/snowenc.c')
-rw-r--r-- | libavcodec/snowenc.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/libavcodec/snowenc.c b/libavcodec/snowenc.c index 3603785222..544efbfb9e 100644 --- a/libavcodec/snowenc.c +++ b/libavcodec/snowenc.c @@ -124,7 +124,8 @@ static av_cold int encode_init(AVCodecContext *avctx) ff_set_cmp(&s->mecc, s->mecc.me_sub_cmp, s->avctx->me_sub_cmp); s->input_picture = av_frame_alloc(); - if (!s->input_picture) + avctx->coded_frame = av_frame_alloc(); + if (!s->input_picture || !avctx->coded_frame) return AVERROR(ENOMEM); if ((ret = ff_snow_get_buffer(s, s->input_picture)) < 0) @@ -1620,7 +1621,8 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt, } ff_snow_frame_start(s); - avctx->coded_frame= s->current_picture; + av_frame_unref(avctx->coded_frame); + av_frame_ref(avctx->coded_frame, s->current_picture); s->m.current_picture_ptr= &s->m.current_picture; s->m.current_picture.f = s->current_picture; @@ -1862,6 +1864,7 @@ static av_cold int encode_end(AVCodecContext *avctx) ff_snow_common_end(s); ff_rate_control_uninit(&s->m); av_frame_free(&s->input_picture); + av_frame_free(&avctx->coded_frame); av_freep(&avctx->stats_out); return 0; |