avcodec: remove AVCodecContext->metadata

This field was only ever set and freed from avcodec, and not otherwise
used. However, because frames are refcounted now, avcodec cannot make any
assumptions about the lifetime of the frame metadata, which can result in
double-frees or leaked memory.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
Hendrik Leppkes
2013-03-13 17:51:06 +01:00
committed by Michael Niedermayer
parent de3e0ab35f
commit 84bf1cbef9
2 changed files with 0 additions and 10 deletions

View File

@@ -1862,7 +1862,6 @@ static int add_metadata_from_side_data(AVCodecContext *avctx, AVFrame *frame)
const uint8_t *side_metadata;
const uint8_t *end;
av_dict_free(&avctx->metadata);
side_metadata = av_packet_get_side_data(avctx->pkt,
AV_PKT_DATA_STRINGS_METADATA, &size);
if (!side_metadata)
@@ -1877,7 +1876,6 @@ static int add_metadata_from_side_data(AVCodecContext *avctx, AVFrame *frame)
side_metadata = val + strlen(val) + 1;
}
end:
avctx->metadata = av_frame_get_metadata(frame);
return ret;
}
@@ -2298,7 +2296,6 @@ av_cold int avcodec_close(AVCodecContext *avctx)
av_buffer_pool_uninit(&pool->pools[i]);
av_freep(&avctx->internal->pool);
av_freep(&avctx->internal);
av_dict_free(&avctx->metadata);
}
if (avctx->priv_data && avctx->codec && avctx->codec->priv_class)