From a949d72e0e4d0c42991b96374291092ac10c29f2 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Thu, 19 Sep 2002 09:13:43 +0000 Subject: [PATCH] avcodec_alloc_context() Originally committed as revision 954 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/avcodec.h | 11 +++++++---- libavcodec/utils.c | 21 +++++++++++++++++++++ 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index acedebaf34..46cfb4fab9 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -5,8 +5,8 @@ #define LIBAVCODEC_VERSION_INT 0x000406 #define LIBAVCODEC_VERSION "0.4.6" -#define LIBAVCODEC_BUILD 4623 -#define LIBAVCODEC_BUILD_STR "4623" +#define LIBAVCODEC_BUILD 4624 +#define LIBAVCODEC_BUILD_STR "4624" enum CodecID { CODEC_ID_NONE, @@ -100,8 +100,10 @@ static const int Motion_Est_QTab[] = { ME_ZERO, ME_PHODS, ME_LOG, #define FF_MAX_B_FRAMES 4 -/* encoding support */ -/* note not everything is supported yet */ +/* encoding support + these flags can be passed in AVCodecContext.flags before initing + Note: note not everything is supported yet +*/ #define CODEC_FLAG_HQ 0x0001 /* high quality (non real time) encoding */ #define CODEC_FLAG_QSCALE 0x0002 /* use fixed qscale */ @@ -514,6 +516,7 @@ AVCodec *avcodec_find_decoder(enum CodecID id); AVCodec *avcodec_find_decoder_by_name(const char *name); void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode); +AVCodecContext *avcodec_alloc_context(); int avcodec_open(AVCodecContext *avctx, AVCodec *codec); int avcodec_decode_audio(AVCodecContext *avctx, INT16 *samples, int *frame_size_ptr, diff --git a/libavcodec/utils.c b/libavcodec/utils.c index 943614da65..1c696e7935 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -49,6 +49,27 @@ void register_avcodec(AVCodec *format) format->next = NULL; } +void avcodec_get_context_defaults(AVCodecContext *s){ + s->qmin= 2; + s->qmax= 31; + s->rc_eq= "tex^qComp"; + s->qcompress= 0.5; +} + +/** + * allocates a AVCodecContext and set it to defaults. + * this can be deallocated by simply calling free() + */ +AVCodecContext *avcodec_alloc_context(){ + AVCodecContext *avctx= av_mallocz(sizeof(AVCodecContext)); + + if(avctx==NULL) return NULL; + + avcodec_get_context_defaults(avctx); + + return avctx; +} + int avcodec_open(AVCodecContext *avctx, AVCodec *codec) { int ret;