Commit 3f95e843 authored by François Revol's avatar François Revol Committed by Michael Niedermayer

added MACE (Macintosh Audio Compression/Expansion) 3:1 & 6:1 support

contribution by Laszlo Torok <torokl@alpha.dfmk.hu>
4CC 'MAC3' and 'MAC6' in Quicktime.
It works for mono streams, needs to be fixed for stereo when I get my hands on a stereo sample :)
patch by (François Revol <revol at free dot fr>)

Originally committed as revision 1145 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent 9ddd71fc
...@@ -121,6 +121,8 @@ static const CodecTag mov_audio_tags[] = { ...@@ -121,6 +121,8 @@ static const CodecTag mov_audio_tags[] = {
{ CODEC_ID_PCM_MULAW, MKTAG('u', 'l', 'a', 'w') }, /* */ { CODEC_ID_PCM_MULAW, MKTAG('u', 'l', 'a', 'w') }, /* */
{ CODEC_ID_PCM_ALAW, MKTAG('a', 'l', 'a', 'w') }, /* */ { CODEC_ID_PCM_ALAW, MKTAG('a', 'l', 'a', 'w') }, /* */
{ CODEC_ID_ADPCM_IMA_QT, MKTAG('i', 'm', 'a', '4') }, /* IMA-4 ADPCM */ { CODEC_ID_ADPCM_IMA_QT, MKTAG('i', 'm', 'a', '4') }, /* IMA-4 ADPCM */
{ CODEC_ID_MACE3, MKTAG('M', 'A', 'C', '3') }, /* Macintosh Audio Compression and Expansion 3:1 */
{ CODEC_ID_MACE6, MKTAG('M', 'A', 'C', '6') }, /* Macintosh Audio Compression and Expansion 6:1 */
{ CODEC_ID_MP2, MKTAG('.', 'm', 'p', '3') }, /* MPEG layer 3 */ /* sample files at http://www.3ivx.com/showcase.html use this tag */ { CODEC_ID_MP2, MKTAG('.', 'm', 'p', '3') }, /* MPEG layer 3 */ /* sample files at http://www.3ivx.com/showcase.html use this tag */
{ CODEC_ID_MP2, 0x6D730055 }, /* MPEG layer 3 */ { CODEC_ID_MP2, 0x6D730055 }, /* MPEG layer 3 */
...@@ -829,9 +831,11 @@ static int parse_stco(const MOVParseTableEntry *parse_table, ByteIOContext *pb, ...@@ -829,9 +831,11 @@ static int parse_stco(const MOVParseTableEntry *parse_table, ByteIOContext *pb,
} else } else
return -1; return -1;
#ifdef DEBUG #ifdef DEBUG
/*
for(i=0; i<entries; i++) { for(i=0; i<entries; i++) {
printf("chunk offset=0x%Lx\n", sc->chunk_offsets[i]); printf("chunk offset=0x%Lx\n", sc->chunk_offsets[i]);
} }
*/
#endif #endif
return 0; return 0;
} }
......
...@@ -16,7 +16,7 @@ OBJS= common.o utils.o mem.o allcodecs.o \ ...@@ -16,7 +16,7 @@ OBJS= common.o utils.o mem.o allcodecs.o \
motion_est.o imgconvert.o imgresample.o msmpeg4.o \ motion_est.o imgconvert.o imgresample.o msmpeg4.o \
mpeg12.o h263dec.o svq1.o rv10.o mpegaudiodec.o pcm.o simple_idct.o \ mpeg12.o h263dec.o svq1.o rv10.o mpegaudiodec.o pcm.o simple_idct.o \
ratecontrol.o adpcm.o eval.o dv.o error_resilience.o \ ratecontrol.o adpcm.o eval.o dv.o error_resilience.o \
wmadec.o fft.o mdct.o wmadec.o fft.o mdct.o mace.o
ASM_OBJS= ASM_OBJS=
# currently using liba52 for ac3 decoding # currently using liba52 for ac3 decoding
......
...@@ -76,6 +76,8 @@ void avcodec_register_all(void) ...@@ -76,6 +76,8 @@ void avcodec_register_all(void)
register_avcodec(&mp3_decoder); register_avcodec(&mp3_decoder);
register_avcodec(&wmav1_decoder); register_avcodec(&wmav1_decoder);
register_avcodec(&wmav2_decoder); register_avcodec(&wmav2_decoder);
register_avcodec(&mace3_decoder);
register_avcodec(&mace6_decoder);
#ifdef CONFIG_AC3 #ifdef CONFIG_AC3
register_avcodec(&ac3_decoder); register_avcodec(&ac3_decoder);
#endif #endif
......
...@@ -5,8 +5,8 @@ ...@@ -5,8 +5,8 @@
#define LIBAVCODEC_VERSION_INT 0x000406 #define LIBAVCODEC_VERSION_INT 0x000406
#define LIBAVCODEC_VERSION "0.4.6" #define LIBAVCODEC_VERSION "0.4.6"
#define LIBAVCODEC_BUILD 4633 #define LIBAVCODEC_BUILD 4634
#define LIBAVCODEC_BUILD_STR "4633" #define LIBAVCODEC_BUILD_STR "4634"
enum CodecID { enum CodecID {
CODEC_ID_NONE, CODEC_ID_NONE,
...@@ -32,6 +32,8 @@ enum CodecID { ...@@ -32,6 +32,8 @@ enum CodecID {
CODEC_ID_DVAUDIO, CODEC_ID_DVAUDIO,
CODEC_ID_WMAV1, CODEC_ID_WMAV1,
CODEC_ID_WMAV2, CODEC_ID_WMAV2,
CODEC_ID_MACE3,
CODEC_ID_MACE6,
/* various pcm "codecs" */ /* various pcm "codecs" */
CODEC_ID_PCM_S16LE, CODEC_ID_PCM_S16LE,
...@@ -805,6 +807,8 @@ extern AVCodec wmav2_decoder; ...@@ -805,6 +807,8 @@ extern AVCodec wmav2_decoder;
extern AVCodec mjpeg_decoder; extern AVCodec mjpeg_decoder;
extern AVCodec mp2_decoder; extern AVCodec mp2_decoder;
extern AVCodec mp3_decoder; extern AVCodec mp3_decoder;
extern AVCodec mace3_decoder;
extern AVCodec mace6_decoder;
/* pcm codecs */ /* pcm codecs */
#define PCM_CODEC(id, name) \ #define PCM_CODEC(id, name) \
......
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment