summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libavcodec/mpegvideo.c3
-rw-r--r--libavcodec/utils.c4
2 files changed, 5 insertions, 2 deletions
diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c
index 325fe2033f..93b0431bdf 100644
--- a/libavcodec/mpegvideo.c
+++ b/libavcodec/mpegvideo.c
@@ -860,9 +860,12 @@ void MPV_common_end(MpegEncContext *s)
s->last_picture_ptr=
s->next_picture_ptr=
s->current_picture_ptr= NULL;
+ s->linesize= s->uvlinesize= 0;
for(i=0; i<3; i++)
av_freep(&s->visualization_buffer[i]);
+
+ avcodec_default_free_buffers(s->avctx);
}
#ifdef CONFIG_ENCODERS
diff --git a/libavcodec/utils.c b/libavcodec/utils.c
index 5e43d4452d..a34a65db71 100644
--- a/libavcodec/utils.c
+++ b/libavcodec/utils.c
@@ -31,7 +31,7 @@
#include <stdarg.h>
#include <limits.h>
-static void avcodec_default_free_buffers(AVCodecContext *s);
+void avcodec_default_free_buffers(AVCodecContext *s);
void *av_mallocz(unsigned int size)
{
@@ -760,7 +760,7 @@ void avcodec_flush_buffers(AVCodecContext *avctx)
avctx->codec->flush(avctx);
}
-static void avcodec_default_free_buffers(AVCodecContext *s){
+void avcodec_default_free_buffers(AVCodecContext *s){
int i, j;
if(s->internal_buffer==NULL) return;