Mercurial > libavcodec.hg
changeset 700:0fb4c66527e1 libavcodec
autodetect UMP4 (by adding a fourcc field to AVCodecContext)
author | michaelni |
---|---|
date | Thu, 26 Sep 2002 23:27:22 +0000 |
parents | f69f9cb461bc |
children | 85b071dfc7e3 |
files | avcodec.h h263.c |
diffstat | 2 files changed, 17 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/avcodec.h Thu Sep 26 22:37:33 2002 +0000 +++ b/avcodec.h Thu Sep 26 23:27:22 2002 +0000 @@ -5,8 +5,8 @@ #define LIBAVCODEC_VERSION_INT 0x000406 #define LIBAVCODEC_VERSION "0.4.6" -#define LIBAVCODEC_BUILD 4627 -#define LIBAVCODEC_BUILD_STR "4627" +#define LIBAVCODEC_BUILD 4628 +#define LIBAVCODEC_BUILD_STR "4628" enum CodecID { CODEC_ID_NONE, @@ -675,6 +675,14 @@ * decoding: unused */ float dark_masking; + + /** + * fourcc (LSB first, so "ABCD" -> ('D'<<24) + ('C'<<16) + ('B'<<8) + 'A') + * this is used to workaround some encoder bugs + * encoding: unused + * decoding: set by user + */ + int fourcc; //FIXME this should be reordered after kabis API is finished ... //TODO kill kabi
--- a/h263.c Thu Sep 26 22:37:33 2002 +0000 +++ b/h263.c Thu Sep 26 23:27:22 2002 +0000 @@ -4162,7 +4162,7 @@ if( h_sampling_factor_n==0 || h_sampling_factor_m==0 || v_sampling_factor_n==0 || v_sampling_factor_m==0 || s->workaround_bugs==1){ - fprintf(stderr, "illegal scalability header (VERY broken encoder), trying to workaround\n"); +// fprintf(stderr, "illegal scalability header (VERY broken encoder), trying to workaround\n"); s->scalability=0; s->gb= bak; @@ -4231,10 +4231,12 @@ s->last_time_base= s->time_base; s->time_base+= time_incr; s->time= s->time_base*s->time_increment_resolution + time_increment; - if(s->time < s->last_non_b_time && s->workaround_bugs==3){ - fprintf(stderr, "header is not mpeg4 compatible, broken encoder, trying to workaround\n"); - s->time_base++; - s->time+= s->time_increment_resolution; + if(s->workaround_bugs==3 || s->avctx->fourcc== 'U' + ('M'<<8) + ('P'<<16) + ('4'<<24)){ + if(s->time < s->last_non_b_time){ +// fprintf(stderr, "header is not mpeg4 compatible, broken encoder, trying to workaround\n"); + s->time_base++; + s->time+= s->time_increment_resolution; + } } s->pp_time= s->time - s->last_non_b_time; s->last_non_b_time= s->time;