diff options
author | Miguel Freitas <miguelfreitas@users.sourceforge.net> | 2002-10-29 16:29:16 +0000 |
---|---|---|
committer | Miguel Freitas <miguelfreitas@users.sourceforge.net> | 2002-10-29 16:29:16 +0000 |
commit | e69ac0f8052424e3ce344365b6be0c95f0e68db6 (patch) | |
tree | 9415d96331dc7ce2e910b69c59a445b957de1497 /src/libffmpeg/libavcodec/utils.c | |
parent | 4f15163a94c863e3e0cf8a65f3ad6f88946f7670 (diff) | |
download | xine-lib-e69ac0f8052424e3ce344365b6be0c95f0e68db6.tar.gz xine-lib-e69ac0f8052424e3ce344365b6be0c95f0e68db6.tar.bz2 |
sync to ffmpeg cvs
CVS patchset: 3090
CVS date: 2002/10/29 16:29:16
Diffstat (limited to 'src/libffmpeg/libavcodec/utils.c')
-rw-r--r-- | src/libffmpeg/libavcodec/utils.c | 55 |
1 files changed, 49 insertions, 6 deletions
diff --git a/src/libffmpeg/libavcodec/utils.c b/src/libffmpeg/libavcodec/utils.c index 943614da6..fcd65364b 100644 --- a/src/libffmpeg/libavcodec/utils.c +++ b/src/libffmpeg/libavcodec/utils.c @@ -49,6 +49,40 @@ void register_avcodec(AVCodec *format) format->next = NULL; } +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; + s->error_concealment= 3; + s->error_resilience= 1; + s->workaround_bugs= FF_BUG_AUTODETECT; + s->frame_rate = 25 * FRAME_RATE_BASE; + s->gop_size= 50; + s->me_method= ME_EPZS; +} + +/** + * allocates a AVCodecContext and set it to defaults. + * this can be deallocated by simply calling free() + */ +AVCodecContext *avcodec_alloc_context(void){ + 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; @@ -192,7 +226,6 @@ AVCodec *avcodec_find(enum CodecID id) } const char *pix_fmt_str[] = { - "??", "yuv420p", "yuv422", "rgb24", @@ -201,9 +234,10 @@ const char *pix_fmt_str[] = { "yuv444p", "rgba32", "bgra32", - "yuv410p" + "yuv410p", + "yuv411p", }; - + void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode) { const char *codec_name; @@ -251,9 +285,10 @@ void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode) enc->width, enc->height, (float)enc->frame_rate / FRAME_RATE_BASE); } - snprintf(buf + strlen(buf), buf_size - strlen(buf), - ", q=%d-%d", enc->qmin, enc->qmax); - + if (encode) { + snprintf(buf + strlen(buf), buf_size - strlen(buf), + ", q=%d-%d", enc->qmin, enc->qmax); + } bitrate = enc->bit_rate; break; case CODEC_TYPE_AUDIO: @@ -303,6 +338,14 @@ void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode) default: av_abort(); } + if (encode) { + if (enc->flags & CODEC_FLAG_PASS1) + snprintf(buf + strlen(buf), buf_size - strlen(buf), + ", pass 1"); + if (enc->flags & CODEC_FLAG_PASS2) + snprintf(buf + strlen(buf), buf_size - strlen(buf), + ", pass 2"); + } if (bitrate != 0) { snprintf(buf + strlen(buf), buf_size - strlen(buf), ", %d kb/s", bitrate / 1000); |