From 7004ffb3d7274fe95fab7a699b75cc4e6d9092e3 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Sat, 8 Mar 2003 01:40:52 +0000 Subject: merging fourcc with codec_tag Originally committed as revision 1645 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/avcodec.h | 25 ++++++++++++------------- libavcodec/h263dec.c | 12 ++++++------ libavcodec/mpegvideo.c | 8 ++++---- libavformat/asf.c | 2 +- libavformat/wav.c | 3 +-- 5 files changed, 24 insertions(+), 26 deletions(-) diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index 5395a24bf4..29507e1ea8 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -15,8 +15,8 @@ extern "C" { #define LIBAVCODEC_VERSION_INT 0x000406 #define LIBAVCODEC_VERSION "0.4.6" -#define LIBAVCODEC_BUILD 4660 -#define LIBAVCODEC_BUILD_STR "4660" +#define LIBAVCODEC_BUILD 4661 +#define LIBAVCODEC_BUILD_STR "4661" enum CodecID { CODEC_ID_NONE, @@ -535,10 +535,10 @@ typedef struct AVCodecContext { /** * number of bits used for the previously encoded frame. * - encoding: set by lavc - * - decoding: - for audio - bits_per_sample + * - decoding: unused */ int frame_bits; - + /** * private data of the user, can be used to carry app specific stuff. * - encoding: set by user @@ -549,7 +549,14 @@ typedef struct AVCodecContext { char codec_name[32]; enum CodecType codec_type; /* see CODEC_TYPE_xxx */ enum CodecID codec_id; /* see CODEC_ID_xxx */ - unsigned int codec_tag; ///< codec tag, only used if unknown codec + + /** + * 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, will be converted to upper case by lavc during init + */ + unsigned int codec_tag; /** * workaround bugs in encoders which sometimes cannot be detected automatically. @@ -782,14 +789,6 @@ typedef struct AVCodecContext { */ 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, will be converted to upper case by lavc during init - */ - int fourcc; - /** * idct algorithm, see FF_IDCT_* below. * - encoding: set by user diff --git a/libavcodec/h263dec.c b/libavcodec/h263dec.c index 9d797f5e97..14f3046a89 100644 --- a/libavcodec/h263dec.c +++ b/libavcodec/h263dec.c @@ -488,16 +488,16 @@ retry: else s->workaround_bugs &= ~FF_BUG_NO_PADDING; - if(s->avctx->fourcc == ff_get_fourcc("XVIX")) + if(s->avctx->codec_tag == ff_get_fourcc("XVIX")) s->workaround_bugs|= FF_BUG_XVID_ILACE; #if 0 - if(s->avctx->fourcc == ff_get_fourcc("MP4S")) + if(s->avctx->codec_tag == ff_get_fourcc("MP4S")) s->workaround_bugs|= FF_BUG_AC_VLC; - if(s->avctx->fourcc == ff_get_fourcc("M4S2")) + if(s->avctx->codec_tag == ff_get_fourcc("M4S2")) s->workaround_bugs|= FF_BUG_AC_VLC; #endif - if(s->avctx->fourcc == ff_get_fourcc("UMP4")){ + if(s->avctx->codec_tag == ff_get_fourcc("UMP4")){ s->workaround_bugs|= FF_BUG_UMP4; s->workaround_bugs|= FF_BUG_AC_VLC; } @@ -510,10 +510,10 @@ retry: s->workaround_bugs|= FF_BUG_QPEL_CHROMA2; } - if(s->avctx->fourcc == ff_get_fourcc("XVID") && s->xvid_build==0) + if(s->avctx->codec_tag == ff_get_fourcc("XVID") && s->xvid_build==0) s->workaround_bugs|= FF_BUG_QPEL_CHROMA; - if(s->avctx->fourcc == ff_get_fourcc("XVID") && s->xvid_build==0) + if(s->avctx->codec_tag == ff_get_fourcc("XVID") && s->xvid_build==0) s->padding_bug_score= 256*256*256*64; if(s->xvid_build && s->xvid_build<=3) diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c index fbea1f94db..9744179768 100644 --- a/libavcodec/mpegvideo.c +++ b/libavcodec/mpegvideo.c @@ -339,10 +339,10 @@ int MPV_common_init(MpegEncContext *s) yc_size = y_size + 2 * c_size; /* convert fourcc to upper case */ - s->avctx->fourcc= toupper( s->avctx->fourcc &0xFF) - + (toupper((s->avctx->fourcc>>8 )&0xFF)<<8 ) - + (toupper((s->avctx->fourcc>>16)&0xFF)<<16) - + (toupper((s->avctx->fourcc>>24)&0xFF)<<24); + s->avctx->codec_tag= toupper( s->avctx->codec_tag &0xFF) + + (toupper((s->avctx->codec_tag>>8 )&0xFF)<<8 ) + + (toupper((s->avctx->codec_tag>>16)&0xFF)<<16) + + (toupper((s->avctx->codec_tag>>24)&0xFF)<<24); CHECKED_ALLOCZ(s->allocated_edge_emu_buffer, (s->width+64)*2*17*2); //(width + edge + align)*interlaced*MBsize*tolerance s->edge_emu_buffer= s->allocated_edge_emu_buffer + (s->width+64)*2*17; diff --git a/libavformat/asf.c b/libavformat/asf.c index 4d4c74571f..5edde52ca5 100644 --- a/libavformat/asf.c +++ b/libavformat/asf.c @@ -897,7 +897,7 @@ static int asf_read_header(AVFormatContext *s, AVFormatParameters *ap) st->codec.extradata = av_mallocz(st->codec.extradata_size); get_buffer(pb, st->codec.extradata, st->codec.extradata_size); } - st->codec.codec_tag = st->codec.fourcc = tag1; + st->codec.codec_tag = tag1; st->codec.codec_id = codec_get_id(codec_bmp_tags, tag1); } pos2 = url_ftell(pb); diff --git a/libavformat/wav.c b/libavformat/wav.c index 25e779307b..7fe2f8e73b 100644 --- a/libavformat/wav.c +++ b/libavformat/wav.c @@ -111,12 +111,11 @@ void get_wav_header(ByteIOContext *pb, AVCodecContext *codec, id = get_le16(pb); codec->codec_type = CODEC_TYPE_AUDIO; codec->codec_tag = id; - codec->fourcc = id; codec->channels = get_le16(pb); codec->sample_rate = get_le32(pb); codec->bit_rate = get_le32(pb) * 8; codec->block_align = get_le16(pb); - codec->frame_bits = get_le16(pb); /* bits per sample */ + codec->bits_per_sample = get_le16(pb); /* bits per sample */ codec->codec_id = wav_codec_get_id(id, codec->frame_bits); if (has_extra_data) { codec->extradata_size = get_le16(pb); -- cgit v1.2.3