[FFmpeg-cvslog] avcodec/roqvideoenc: Allocate and reference coded_frame correctly
Michael Niedermayer
git at videolan.org
Mon Feb 23 19:48:26 CET 2015
ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Mon Feb 23 19:05:56 2015 +0100| [96e7c9cbfc9aeef26ab96956230e9b3fe981c234] | committer: Michael Niedermayer
avcodec/roqvideoenc: Allocate and reference coded_frame correctly
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=96e7c9cbfc9aeef26ab96956230e9b3fe981c234
---
libavcodec/roqvideoenc.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/libavcodec/roqvideoenc.c b/libavcodec/roqvideoenc.c
index ecad8b2..3215f0a 100644
--- a/libavcodec/roqvideoenc.c
+++ b/libavcodec/roqvideoenc.c
@@ -960,7 +960,8 @@ static int roq_encode_video(RoqContext *enc)
reconstruct_and_encode_image(enc, tempData, enc->width, enc->height,
enc->width*enc->height/64);
- enc->avctx->coded_frame = enc->current_frame;
+ av_frame_unref(enc->avctx->coded_frame);
+ av_frame_ref(enc->avctx->coded_frame, enc->current_frame);
/* Rotate frame history */
FFSWAP(AVFrame *, enc->current_frame, enc->last_frame);
@@ -981,6 +982,7 @@ static av_cold int roq_encode_end(AVCodecContext *avctx)
av_frame_free(&enc->current_frame);
av_frame_free(&enc->last_frame);
+ av_frame_free(&enc->avctx->coded_frame);
av_freep(&enc->tmpData);
av_freep(&enc->this_motion4);
@@ -1019,7 +1021,8 @@ static av_cold int roq_encode_init(AVCodecContext *avctx)
enc->last_frame = av_frame_alloc();
enc->current_frame = av_frame_alloc();
- if (!enc->last_frame || !enc->current_frame) {
+ avctx->coded_frame = av_frame_alloc();
+ if (!enc->last_frame || !enc->current_frame || !avctx->coded_frame) {
roq_encode_end(avctx);
return AVERROR(ENOMEM);
}
More information about the ffmpeg-cvslog
mailing list