diff --git a/libavcodec/utils.c b/libavcodec/utils.c index a3ab1344aa5fd2b48c5c33a2472daad32c6ab7fd..63ea77f9fdd2b056c956d5bef6a15d43f478db25 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -635,12 +635,16 @@ enum PixelFormat avcodec_default_get_format(struct AVCodecContext *s, const enum void avcodec_get_frame_defaults(AVFrame *frame) { + if (frame->extended_data != frame->data) + av_freep(&frame->extended_data); + memset(frame, 0, sizeof(AVFrame)); frame->pts = AV_NOPTS_VALUE; frame->key_frame = 1; frame->sample_aspect_ratio = (AVRational) {0, 1 }; frame->format = -1; /* unknown */ + frame->extended_data = frame->data; } AVFrame *avcodec_alloc_frame(void)