diff options
author | Clément Bœsch <ubitux@gmail.com> | 2013-03-19 22:47:49 +0100 |
---|---|---|
committer | Clément Bœsch <ubitux@gmail.com> | 2013-03-21 01:07:51 +0100 |
commit | 4331484b8d70529b79e14ab22afe81b8fe203046 (patch) | |
tree | 3586317bc6ec91530e5fcf620c68169f9d3c8fb3 | |
parent | 76fdced10920abc189465d0a222f582c7ca53c70 (diff) | |
download | ffmpeg-streaming-4331484b8d70529b79e14ab22afe81b8fe203046.zip ffmpeg-streaming-4331484b8d70529b79e14ab22afe81b8fe203046.tar.gz |
lavc/utils: fix metadata audio frame memleak in case of non refcounted frames.
The metadata must be set before saving the frame to avci->to_free,
otherwise it will leak.
Signed-off-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: Clément Bœsch <ubitux@gmail.com>
-rw-r--r-- | libavcodec/utils.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/libavcodec/utils.c b/libavcodec/utils.c index 887f6b1..c15b772 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -2051,6 +2051,7 @@ int attribute_align_arg avcodec_decode_audio4(AVCodecContext *avctx, avctx->pkt = &tmp; ret = avctx->codec->decode(avctx, frame, got_frame_ptr, &tmp); if (ret >= 0 && *got_frame_ptr) { + add_metadata_from_side_data(avctx, frame); avctx->frame_number++; frame->pkt_dts = avpkt->dts; av_frame_set_best_effort_timestamp(frame, @@ -2070,7 +2071,6 @@ int attribute_align_arg avcodec_decode_audio4(AVCodecContext *avctx, avci->to_free.extended_data = avci->to_free.data; } } - add_metadata_from_side_data(avctx, frame); side= av_packet_get_side_data(avctx->pkt, AV_PKT_DATA_SKIP_SAMPLES, &side_size); if(side && side_size>=10) { |