aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec
diff options
context:
space:
mode:
authorVitor Sessak <vitor1001@gmail.com>2008-09-04 23:18:28 +0000
committerVitor Sessak <vitor1001@gmail.com>2008-09-04 23:18:28 +0000
commit78df225866418a59b933fe668bc514890e9747d2 (patch)
tree0668e57ab0458d8d96c247b56d23c105a51de5a3 /libavcodec
parentb97c4138323ad9b19a94cecf6477511bead7500c (diff)
downloadffmpeg-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
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/mace.c50
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"),
};