From e8b62df6e44344033fef60015f938ff940affd27 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Thu, 19 Sep 2002 18:24:52 +0000 Subject: fixing apiexample Originally committed as revision 958 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/apiexample.c | 30 +++++++++++++++--------------- libavcodec/utils.c | 7 +++++++ 2 files changed, 22 insertions(+), 15 deletions(-) diff --git a/libavcodec/apiexample.c b/libavcodec/apiexample.c index cab7d79..af33957 100644 --- a/libavcodec/apiexample.c +++ b/libavcodec/apiexample.c @@ -19,7 +19,7 @@ void audio_encode_example(const char *filename) { AVCodec *codec; - AVCodecContext codec_context, *c = &codec_context; + AVCodecContext *c= NULL; int frame_size, i, j, out_size, outbuf_size; FILE *f; short *samples; @@ -35,9 +35,8 @@ void audio_encode_example(const char *filename) exit(1); } - /* put default values */ - memset(c, 0, sizeof(*c)); - + c= avcodec_alloc_context(); + /* put sample parameters */ c->bit_rate = 64000; c->sample_rate = 44100; @@ -79,6 +78,7 @@ void audio_encode_example(const char *filename) free(samples); avcodec_close(c); + free(c); } /* @@ -87,7 +87,7 @@ void audio_encode_example(const char *filename) void audio_decode_example(const char *outfilename, const char *filename) { AVCodec *codec; - AVCodecContext codec_context, *c = &codec_context; + AVCodecContext *c= NULL; int out_size, size, len; FILE *f, *outfile; UINT8 *outbuf; @@ -102,8 +102,7 @@ void audio_decode_example(const char *outfilename, const char *filename) exit(1); } - /* put default values */ - memset(c, 0, sizeof(*c)); + c= avcodec_alloc_context(); /* open it */ if (avcodec_open(c, codec) < 0) { @@ -120,7 +119,7 @@ void audio_decode_example(const char *outfilename, const char *filename) } outfile = fopen(outfilename, "w"); if (!outfile) { - fprintf(stderr, "could not open %s\n", outfilename); + free(c); exit(1); } @@ -153,6 +152,7 @@ void audio_decode_example(const char *outfilename, const char *filename) free(outbuf); avcodec_close(c); + free(c); } /* @@ -161,7 +161,7 @@ void audio_decode_example(const char *outfilename, const char *filename) void video_encode_example(const char *filename) { AVCodec *codec; - AVCodecContext codec_context, *c = &codec_context; + AVCodecContext *c= NULL; int i, out_size, size, x, y, outbuf_size; FILE *f; AVPicture picture; @@ -176,9 +176,8 @@ void video_encode_example(const char *filename) exit(1); } - /* put default values */ - memset(c, 0, sizeof(*c)); - + c= avcodec_alloc_context(); + /* put sample parameters */ c->bit_rate = 400000; /* resolution must be a multiple of two */ @@ -251,6 +250,7 @@ void video_encode_example(const char *filename) free(outbuf); avcodec_close(c); + free(c); printf("\n"); } @@ -273,7 +273,7 @@ void pgm_save(unsigned char *buf,int wrap, int xsize,int ysize,char *filename) void video_decode_example(const char *outfilename, const char *filename) { AVCodec *codec; - AVCodecContext codec_context, *c = &codec_context; + AVCodecContext *c= NULL; int frame, size, got_picture, len; FILE *f; AVPicture picture; @@ -289,8 +289,7 @@ void video_decode_example(const char *outfilename, const char *filename) exit(1); } - /* put default values */ - memset(c, 0, sizeof(*c)); + c= avcodec_alloc_context(); /* for some codecs, such as msmpeg4 and mpeg4, width and height MUST be initialized there because these info are not available @@ -375,6 +374,7 @@ void video_decode_example(const char *outfilename, const char *filename) fclose(f); avcodec_close(c); + free(c); printf("\n"); } diff --git a/libavcodec/utils.c b/libavcodec/utils.c index 1c696e7..27d5550 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -50,10 +50,17 @@ void register_avcodec(AVCodec *format) } void avcodec_get_context_defaults(AVCodecContext *s){ + s->bit_rate= 800*1000; + s->bit_rate_tolerance= s->bit_rate*10; s->qmin= 2; s->qmax= 31; s->rc_eq= "tex^qComp"; s->qcompress= 0.5; + s->max_qdiff= 3; + s->b_quant_factor=1.25; + s->b_quant_offset=1.25; + s->i_quant_factor=0.8; + s->i_quant_offset=0.0; } /** -- cgit v1.1