Browse code

Use little endian for caf codec tags.

Carl Eugen Hoyos authored on 2011/07/25 06:52:42
Showing 3 changed files
... ...
@@ -32,34 +32,34 @@
32 32
  * Known codec tags for CAF
33 33
  */
34 34
 const AVCodecTag ff_codec_caf_tags[] = {
35
-    { CODEC_ID_AAC,             MKBETAG('a','a','c',' ') },
36
-    { CODEC_ID_AC3,             MKBETAG('a','c','-','3') },
37
-    { CODEC_ID_ALAC,            MKBETAG('a','l','a','c') },
35
+    { CODEC_ID_AAC,             MKTAG('a','a','c',' ') },
36
+    { CODEC_ID_AC3,             MKTAG('a','c','-','3') },
37
+    { CODEC_ID_ALAC,            MKTAG('a','l','a','c') },
38 38
   /* FIXME: use DV demuxer, as done in MOV */
39
-  /*{ CODEC_ID_DVAUDIO,         MKBETAG('v','d','v','a') },*/
40
-  /*{ CODEC_ID_DVAUDIO,         MKBETAG('d','v','c','a') },*/
41
-    { CODEC_ID_ADPCM_IMA_QT,    MKBETAG('i','m','a','4') },
42
-    { CODEC_ID_ADPCM_IMA_WAV,   MKBETAG('m','s', 0, 17 ) },
43
-    { CODEC_ID_ADPCM_MS,        MKBETAG('m','s', 0,  2 ) },
44
-    { CODEC_ID_AMR_NB,          MKBETAG('s','a','m','r') },
45
-    { CODEC_ID_GSM,             MKBETAG('a','g','s','m') },
46
-    { CODEC_ID_GSM_MS,          MKBETAG('m','s', 0, '1') },
47
-    { CODEC_ID_MACE3,           MKBETAG('M','A','C','3') },
48
-    { CODEC_ID_MACE6,           MKBETAG('M','A','C','6') },
49
-    { CODEC_ID_MP3,             MKBETAG('.','m','p','3') },
50
-    { CODEC_ID_MP3,             MKBETAG('m','s', 0 ,'U') },
51
-    { CODEC_ID_MP2,             MKBETAG('.','m','p','2') },
52
-    { CODEC_ID_MP1,             MKBETAG('.','m','p','1') },
53
-    { CODEC_ID_PCM_ALAW,        MKBETAG('a','l','a','w') },
54
-    { CODEC_ID_PCM_MULAW,       MKBETAG('u','l','a','w') },
55
-    { CODEC_ID_QCELP,           MKBETAG('Q','c','l','p') },
56
-    { CODEC_ID_QDM2,            MKBETAG('Q','D','M','2') },
57
-    { CODEC_ID_QDM2,            MKBETAG('Q','D','M','C') },
39
+  /*{ CODEC_ID_DVAUDIO,         MKTAG('v','d','v','a') },*/
40
+  /*{ CODEC_ID_DVAUDIO,         MKTAG('d','v','c','a') },*/
41
+    { CODEC_ID_ADPCM_IMA_QT,    MKTAG('i','m','a','4') },
42
+    { CODEC_ID_ADPCM_IMA_WAV,   MKTAG('m','s', 0, 17 ) },
43
+    { CODEC_ID_ADPCM_MS,        MKTAG('m','s', 0,  2 ) },
44
+    { CODEC_ID_AMR_NB,          MKTAG('s','a','m','r') },
45
+    { CODEC_ID_GSM,             MKTAG('a','g','s','m') },
46
+    { CODEC_ID_GSM_MS,          MKTAG('m','s', 0, '1') },
47
+    { CODEC_ID_MACE3,           MKTAG('M','A','C','3') },
48
+    { CODEC_ID_MACE6,           MKTAG('M','A','C','6') },
49
+    { CODEC_ID_MP3,             MKTAG('.','m','p','3') },
50
+    { CODEC_ID_MP3,             MKTAG('m','s', 0 ,'U') },
51
+    { CODEC_ID_MP2,             MKTAG('.','m','p','2') },
52
+    { CODEC_ID_MP1,             MKTAG('.','m','p','1') },
53
+    { CODEC_ID_PCM_ALAW,        MKTAG('a','l','a','w') },
54
+    { CODEC_ID_PCM_MULAW,       MKTAG('u','l','a','w') },
55
+    { CODEC_ID_QCELP,           MKTAG('Q','c','l','p') },
56
+    { CODEC_ID_QDM2,            MKTAG('Q','D','M','2') },
57
+    { CODEC_ID_QDM2,            MKTAG('Q','D','M','C') },
58 58
   /* currently unsupported codecs */
59
-  /*{ AC-3 over S/PDIF          MKBETAG('c','a','c','3') },*/
60
-  /*{ MPEG4CELP                 MKBETAG('c','e','l','p') },*/
61
-  /*{ MPEG4HVXC                 MKBETAG('h','v','x','c') },*/
62
-  /*{ MPEG4TwinVQ               MKBETAG('t','w','v','q') },*/
59
+  /*{ AC-3 over S/PDIF          MKTAG('c','a','c','3') },*/
60
+  /*{ MPEG4CELP                 MKTAG('c','e','l','p') },*/
61
+  /*{ MPEG4HVXC                 MKTAG('h','v','x','c') },*/
62
+  /*{ MPEG4TwinVQ               MKTAG('t','w','v','q') },*/
63 63
     { CODEC_ID_NONE,            0 },
64 64
 };
65 65
 
... ...
@@ -68,7 +68,7 @@ static int read_desc_chunk(AVFormatContext *s)
68 68
     /* parse format description */
69 69
     st->codec->codec_type  = AVMEDIA_TYPE_AUDIO;
70 70
     st->codec->sample_rate = av_int2dbl(avio_rb64(pb));
71
-    st->codec->codec_tag   = avio_rb32(pb);
71
+    st->codec->codec_tag   = avio_rl32(pb);
72 72
     flags = avio_rb32(pb);
73 73
     caf->bytes_per_packet  = avio_rb32(pb);
74 74
     st->codec->block_align = caf->bytes_per_packet;
... ...
@@ -85,7 +85,7 @@ static int read_desc_chunk(AVFormatContext *s)
85 85
     }
86 86
 
87 87
     /* determine codec */
88
-    if (st->codec->codec_tag == MKBETAG('l','p','c','m'))
88
+    if (st->codec->codec_tag == MKTAG('l','p','c','m'))
89 89
         st->codec->codec_id = ff_mov_get_lpcm_codec_id(st->codec->bits_per_coded_sample, (flags ^ 0x2) | 0x4);
90 90
     else
91 91
         st->codec->codec_id = ff_codec_get_id(ff_codec_caf_tags, st->codec->codec_tag);
... ...
@@ -114,7 +114,7 @@ static int caf_write_header(AVFormatContext *s)
114 114
     case CODEC_ID_PCM_F64BE:
115 115
     case CODEC_ID_PCM_ALAW:
116 116
     case CODEC_ID_PCM_MULAW:
117
-        codec_tag = MKBETAG('l','p','c','m');
117
+        codec_tag = MKTAG('l','p','c','m');
118 118
     }
119 119
 
120 120
     if (!codec_tag) {
... ...
@@ -134,7 +134,7 @@ static int caf_write_header(AVFormatContext *s)
134 134
     ffio_wfourcc(pb, "desc");                         //< Audio Description chunk
135 135
     avio_wb64(pb, 32);                                //< mChunkSize
136 136
     avio_wb64(pb, av_dbl2int(enc->sample_rate));      //< mSampleRate
137
-    avio_wb32(pb, codec_tag);                         //< mFormatID
137
+    avio_wl32(pb, codec_tag);                         //< mFormatID
138 138
     avio_wb32(pb, codec_flags(enc->codec_id));        //< mFormatFlags
139 139
     avio_wb32(pb, enc->block_align);                  //< mBytesPerPacket
140 140
     avio_wb32(pb, samples_per_packet(enc->codec_id, enc->channels)); //< mFramesPerPacket