diff options
author | Vitor Sessak <vitor1001@gmail.com> | 2008-09-04 23:18:28 +0000 |
---|---|---|
committer | Vitor Sessak <vitor1001@gmail.com> | 2008-09-04 23:18:28 +0000 |
commit | 78df225866418a59b933fe668bc514890e9747d2 (patch) | |
tree | 0668e57ab0458d8d96c247b56d23c105a51de5a3 | |
parent | b97c4138323ad9b19a94cecf6477511bead7500c (diff) | |
download | ffmpeg-78df225866418a59b933fe668bc514890e9747d2.tar.gz |
Simplify: use two distinct functions to decode MACE3 and MACE6, since the
previous mace_decode_init() function was almost just a switch statement.
Originally committed as revision 15208 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r-- | libavcodec/mace.c | 50 |
1 files changed, 26 insertions, 24 deletions
diff --git a/libavcodec/mace.c b/libavcodec/mace.c index 464f30d3dc..5e6817e2ca 100644 --- a/libavcodec/mace.c +++ b/libavcodec/mace.c @@ -391,7 +391,7 @@ static av_cold int mace_decode_init(AVCodecContext * avctx) return 0; } -static int mace_decode_frame(AVCodecContext *avctx, +static int mace3_decode_frame(AVCodecContext *avctx, void *data, int *data_size, const uint8_t *buf, int buf_size) { @@ -399,27 +399,29 @@ static int mace_decode_frame(AVCodecContext *avctx, MACEContext *c = avctx->priv_data; int i; - switch (avctx->codec->id) { - case CODEC_ID_MACE3: - dprintf(avctx, "mace_decode_frame[3]()"); - for(i = 0; i < avctx->channels; i++) - Exp1to3(c, buf, samples + i, buf_size / 2 / avctx->channels, - avctx->channels, i + 1); - - *data_size = 2 * 3 * buf_size; - break; - case CODEC_ID_MACE6: - dprintf(avctx, "mace_decode_frame[6]()"); - - for(i = 0; i < avctx->channels; i++) - Exp1to6(c, buf, samples + i, buf_size / avctx->channels, - avctx->channels, i + 1); - - *data_size = 2 * 6 * buf_size; - break; - default: - return -1; - } + for(i = 0; i < avctx->channels; i++) + Exp1to3(c, buf, samples + i, buf_size / 2 / avctx->channels, + avctx->channels, i + 1); + + *data_size = 2 * 3 * buf_size; + + return buf_size; +} + +static int mace6_decode_frame(AVCodecContext *avctx, + void *data, int *data_size, + const uint8_t *buf, int buf_size) +{ + short *samples = data; + MACEContext *c = avctx->priv_data; + int i; + + for(i = 0; i < avctx->channels; i++) + Exp1to6(c, buf, samples + i, buf_size / avctx->channels, + avctx->channels, i + 1); + + *data_size = 2 * 6 * buf_size; + return buf_size; } @@ -431,7 +433,7 @@ AVCodec mace3_decoder = { mace_decode_init, NULL, NULL, - mace_decode_frame, + mace3_decode_frame, .long_name = NULL_IF_CONFIG_SMALL("MACE (Macintosh Audio Compression/Expansion) 3:1"), }; @@ -443,7 +445,7 @@ AVCodec mace6_decoder = { mace_decode_init, NULL, NULL, - mace_decode_frame, + mace6_decode_frame, .long_name = NULL_IF_CONFIG_SMALL("MACE (Macintosh Audio Compression/Expansion) 6:1"), }; |