merging fourcc with codec_tag
authorMichael Niedermayer <michaelni@gmx.at>
Sat, 8 Mar 2003 01:40:52 +0000 (01:40 +0000)
committerMichael Niedermayer <michaelni@gmx.at>
Sat, 8 Mar 2003 01:40:52 +0000 (01:40 +0000)
Originally committed as revision 1645 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/avcodec.h
libavcodec/h263dec.c
libavcodec/mpegvideo.c
libavformat/asf.c
libavformat/wav.c

index 5395a24..29507e1 100644 (file)
@@ -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.
@@ -783,14 +790,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
      * - decoding: set by user
index 9d797f5..14f3046 100644 (file)
@@ -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)
index fbea1f9..9744179 100644 (file)
@@ -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;
index 4d4c745..5edde52 100644 (file)
@@ -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);
index 25e7793..7fe2f8e 100644 (file)
@@ -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);