mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
cleanup & memleak fix
Originally committed as revision 3095 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
60f41d13ef
commit
eea8c08fa8
@ -738,8 +738,6 @@ static int decode_end(AVCodecContext *avctx){
|
|||||||
}
|
}
|
||||||
free_vlc(&f->pre_vlc);
|
free_vlc(&f->pre_vlc);
|
||||||
|
|
||||||
avcodec_default_free_buffers(avctx);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -613,8 +613,6 @@ static int decode_end(AVCodecContext *avctx){
|
|||||||
av_freep(&a->picture.qscale_table);
|
av_freep(&a->picture.qscale_table);
|
||||||
a->bitstream_buffer_size=0;
|
a->bitstream_buffer_size=0;
|
||||||
|
|
||||||
avcodec_default_free_buffers(avctx);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1934,7 +1934,6 @@ AVFrame *avcodec_alloc_frame(void);
|
|||||||
|
|
||||||
int avcodec_default_get_buffer(AVCodecContext *s, AVFrame *pic);
|
int avcodec_default_get_buffer(AVCodecContext *s, AVFrame *pic);
|
||||||
void avcodec_default_release_buffer(AVCodecContext *s, AVFrame *pic);
|
void avcodec_default_release_buffer(AVCodecContext *s, AVFrame *pic);
|
||||||
void avcodec_default_free_buffers(AVCodecContext *s);
|
|
||||||
|
|
||||||
int avcodec_thread_init(AVCodecContext *s, int thread_count);
|
int avcodec_thread_init(AVCodecContext *s, int thread_count);
|
||||||
void avcodec_thread_free(AVCodecContext *s);
|
void avcodec_thread_free(AVCodecContext *s);
|
||||||
|
@ -133,13 +133,6 @@ static int encode_init(AVCodecContext *avctx){
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int decode_end(AVCodecContext *avctx){
|
|
||||||
|
|
||||||
avcodec_default_free_buffers(avctx);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
AVCodec cljr_decoder = {
|
AVCodec cljr_decoder = {
|
||||||
"cljr",
|
"cljr",
|
||||||
CODEC_TYPE_VIDEO,
|
CODEC_TYPE_VIDEO,
|
||||||
@ -147,7 +140,7 @@ AVCodec cljr_decoder = {
|
|||||||
sizeof(CLJRContext),
|
sizeof(CLJRContext),
|
||||||
decode_init,
|
decode_init,
|
||||||
NULL,
|
NULL,
|
||||||
decode_end,
|
NULL,
|
||||||
decode_frame,
|
decode_frame,
|
||||||
CODEC_CAP_DR1,
|
CODEC_CAP_DR1,
|
||||||
};
|
};
|
||||||
|
@ -235,12 +235,6 @@ static int dvvideo_init(AVCodecContext *avctx)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int dvvideo_end(AVCodecContext *avctx)
|
|
||||||
{
|
|
||||||
avcodec_default_free_buffers(avctx);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// #define VLC_DEBUG
|
// #define VLC_DEBUG
|
||||||
// #define printf(...) av_log(NULL, AV_LOG_ERROR, __VA_ARGS__)
|
// #define printf(...) av_log(NULL, AV_LOG_ERROR, __VA_ARGS__)
|
||||||
|
|
||||||
@ -954,7 +948,7 @@ AVCodec dvvideo_encoder = {
|
|||||||
sizeof(DVVideoContext),
|
sizeof(DVVideoContext),
|
||||||
dvvideo_init,
|
dvvideo_init,
|
||||||
dvvideo_encode_frame,
|
dvvideo_encode_frame,
|
||||||
dvvideo_end,
|
NULL,
|
||||||
NULL,
|
NULL,
|
||||||
CODEC_CAP_DR1,
|
CODEC_CAP_DR1,
|
||||||
NULL
|
NULL
|
||||||
@ -967,7 +961,7 @@ AVCodec dvvideo_decoder = {
|
|||||||
sizeof(DVVideoContext),
|
sizeof(DVVideoContext),
|
||||||
dvvideo_init,
|
dvvideo_init,
|
||||||
NULL,
|
NULL,
|
||||||
dvvideo_end,
|
NULL,
|
||||||
dvvideo_decode_frame,
|
dvvideo_decode_frame,
|
||||||
CODEC_CAP_DR1,
|
CODEC_CAP_DR1,
|
||||||
NULL
|
NULL
|
||||||
|
@ -1018,22 +1018,6 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, uint8
|
|||||||
return bytes_read;
|
return bytes_read;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int decode_end(AVCodecContext *avctx)
|
|
||||||
{
|
|
||||||
FFV1Context *s = avctx->priv_data;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
if(avctx->get_buffer == avcodec_default_get_buffer){
|
|
||||||
for(i=0; i<4; i++){
|
|
||||||
av_freep(&s->picture.base[i]);
|
|
||||||
s->picture.data[i]= NULL;
|
|
||||||
}
|
|
||||||
av_freep(&s->picture.opaque);
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
AVCodec ffv1_decoder = {
|
AVCodec ffv1_decoder = {
|
||||||
"ffv1",
|
"ffv1",
|
||||||
CODEC_TYPE_VIDEO,
|
CODEC_TYPE_VIDEO,
|
||||||
@ -1041,7 +1025,7 @@ AVCodec ffv1_decoder = {
|
|||||||
sizeof(FFV1Context),
|
sizeof(FFV1Context),
|
||||||
decode_init,
|
decode_init,
|
||||||
NULL,
|
NULL,
|
||||||
decode_end,
|
NULL,
|
||||||
decode_frame,
|
decode_frame,
|
||||||
CODEC_CAP_DR1 /*| CODEC_CAP_DRAW_HORIZ_BAND*/,
|
CODEC_CAP_DR1 /*| CODEC_CAP_DRAW_HORIZ_BAND*/,
|
||||||
NULL
|
NULL
|
||||||
|
@ -917,8 +917,6 @@ static int decode_end(AVCodecContext *avctx)
|
|||||||
free_vlc(&s->vlc[i]);
|
free_vlc(&s->vlc[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
avcodec_default_free_buffers(avctx);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -257,8 +257,6 @@ static int decode_end(AVCodecContext *avctx){
|
|||||||
av_freep(&a->picture.qscale_table);
|
av_freep(&a->picture.qscale_table);
|
||||||
a->bitstream_buffer_size=0;
|
a->bitstream_buffer_size=0;
|
||||||
|
|
||||||
avcodec_default_free_buffers(avctx);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1340,7 +1340,7 @@ static int mjpeg_decode_scan(MJpegDecodeContext *s){
|
|||||||
(h * mb_x + x) * 8;
|
(h * mb_x + x) * 8;
|
||||||
if (s->interlaced && s->bottom_field)
|
if (s->interlaced && s->bottom_field)
|
||||||
ptr += s->linesize[c] >> 1;
|
ptr += s->linesize[c] >> 1;
|
||||||
//printf("%d %d %d %d %d %d %d %d \n", mb_x, mb_y, x, y, c, s->bottom_field, (v * mb_y + y) * 8, (h * mb_x + x) * 8);
|
//av_log(NULL, AV_LOG_DEBUG, "%d %d %d %d %d %d %d %d \n", mb_x, mb_y, x, y, c, s->bottom_field, (v * mb_y + y) * 8, (h * mb_x + x) * 8);
|
||||||
s->idct_put(ptr, s->linesize[c], s->block);
|
s->idct_put(ptr, s->linesize[c], s->block);
|
||||||
if (++x == h) {
|
if (++x == h) {
|
||||||
x = 0;
|
x = 0;
|
||||||
@ -2171,7 +2171,6 @@ static int mjpeg_decode_end(AVCodecContext *avctx)
|
|||||||
|
|
||||||
av_free(s->buffer);
|
av_free(s->buffer);
|
||||||
av_free(s->qscale_table);
|
av_free(s->qscale_table);
|
||||||
avcodec_default_free_buffers(avctx);
|
|
||||||
|
|
||||||
for(i=0;i<2;i++) {
|
for(i=0;i<2;i++) {
|
||||||
for(j=0;j<4;j++)
|
for(j=0;j<4;j++)
|
||||||
|
@ -847,7 +847,6 @@ void MPV_common_end(MpegEncContext *s)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
av_freep(&s->picture);
|
av_freep(&s->picture);
|
||||||
avcodec_default_free_buffers(s->avctx);
|
|
||||||
s->context_initialized = 0;
|
s->context_initialized = 0;
|
||||||
s->last_picture_ptr=
|
s->last_picture_ptr=
|
||||||
s->next_picture_ptr=
|
s->next_picture_ptr=
|
||||||
|
@ -29,6 +29,8 @@
|
|||||||
#include "mpegvideo.h"
|
#include "mpegvideo.h"
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
|
|
||||||
|
static void avcodec_default_free_buffers(AVCodecContext *s);
|
||||||
|
|
||||||
void *av_mallocz(unsigned int size)
|
void *av_mallocz(unsigned int size)
|
||||||
{
|
{
|
||||||
void *ptr;
|
void *ptr;
|
||||||
@ -514,6 +516,7 @@ int avcodec_close(AVCodecContext *avctx)
|
|||||||
{
|
{
|
||||||
if (avctx->codec->close)
|
if (avctx->codec->close)
|
||||||
avctx->codec->close(avctx);
|
avctx->codec->close(avctx);
|
||||||
|
avcodec_default_free_buffers(avctx);
|
||||||
av_freep(&avctx->priv_data);
|
av_freep(&avctx->priv_data);
|
||||||
avctx->codec = NULL;
|
avctx->codec = NULL;
|
||||||
return 0;
|
return 0;
|
||||||
@ -738,7 +741,7 @@ void avcodec_flush_buffers(AVCodecContext *avctx)
|
|||||||
avctx->codec->flush(avctx);
|
avctx->codec->flush(avctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
void avcodec_default_free_buffers(AVCodecContext *s){
|
static void avcodec_default_free_buffers(AVCodecContext *s){
|
||||||
int i, j;
|
int i, j;
|
||||||
|
|
||||||
if(s->internal_buffer==NULL) return;
|
if(s->internal_buffer==NULL) return;
|
||||||
|
@ -165,13 +165,6 @@ static int encode_init(AVCodecContext *avctx){
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int decode_end(AVCodecContext *avctx){
|
|
||||||
|
|
||||||
avcodec_default_free_buffers(avctx);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
AVCodec vcr1_decoder = {
|
AVCodec vcr1_decoder = {
|
||||||
"vcr1",
|
"vcr1",
|
||||||
CODEC_TYPE_VIDEO,
|
CODEC_TYPE_VIDEO,
|
||||||
@ -179,7 +172,7 @@ AVCodec vcr1_decoder = {
|
|||||||
sizeof(VCR1Context),
|
sizeof(VCR1Context),
|
||||||
decode_init,
|
decode_init,
|
||||||
NULL,
|
NULL,
|
||||||
decode_end,
|
NULL,
|
||||||
decode_frame,
|
decode_frame,
|
||||||
CODEC_CAP_DR1,
|
CODEC_CAP_DR1,
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user