summaryrefslogtreecommitdiffstats
path: root/libmpcodecs/ad_imaadpcm.c
diff options
context:
space:
mode:
authorreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2008-06-29 07:55:44 +0000
committerreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2008-06-29 07:55:44 +0000
commit15a54da104cf4670eef3d15330ac9d09f644cbbc (patch)
tree7416ef56f5ba83666e4fde1a018a8ee923983a2d /libmpcodecs/ad_imaadpcm.c
parent2293c795210e1bdb7d75ecc73d418fd33da1a64e (diff)
downloadmpv-15a54da104cf4670eef3d15330ac9d09f644cbbc.tar.bz2
mpv-15a54da104cf4670eef3d15330ac9d09f644cbbc.tar.xz
Simplify ad_imaadpcm decode_audio function
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27144 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpcodecs/ad_imaadpcm.c')
-rw-r--r--libmpcodecs/ad_imaadpcm.c26
1 files changed, 10 insertions, 16 deletions
diff --git a/libmpcodecs/ad_imaadpcm.c b/libmpcodecs/ad_imaadpcm.c
index 532eecad43..a4a5bfaf5e 100644
--- a/libmpcodecs/ad_imaadpcm.c
+++ b/libmpcodecs/ad_imaadpcm.c
@@ -182,7 +182,7 @@ static void decode_nibbles(unsigned short *output,
}
static int qt_ima_adpcm_decode_block(unsigned short *output,
- unsigned char *input, int channels)
+ unsigned char *input, int channels, int block_size)
{
int initial_predictor_l = 0;
int initial_predictor_r = 0;
@@ -351,26 +351,20 @@ static int dk4_ima_adpcm_decode_block(unsigned short *output,
static int decode_audio(sh_audio_t *sh_audio,unsigned char *buf,int minlen,int maxlen)
{
+ int res = -1;
+ int (*decode_func)(unsigned short *output, unsigned char *input, int channels, int block_size) = qt_ima_adpcm_decode_block;
if (demux_read_data(sh_audio->ds, sh_audio->a_in_buffer,
sh_audio->ds->ss_mul) !=
sh_audio->ds->ss_mul)
return -1;
if ((sh_audio->format == 0x11) || (sh_audio->format == 0x1100736d))
- {
- return 2 * ms_ima_adpcm_decode_block(
- (unsigned short*)buf, sh_audio->a_in_buffer, sh_audio->wf->nChannels,
- sh_audio->ds->ss_mul);
- }
+ decode_func = ms_ima_adpcm_decode_block;
else if (sh_audio->format == 0x61)
- {
- return 2 * dk4_ima_adpcm_decode_block(
- (unsigned short*)buf, sh_audio->a_in_buffer, sh_audio->wf->nChannels,
- sh_audio->ds->ss_mul);
- }
- else
- {
- return 2 * qt_ima_adpcm_decode_block(
- (unsigned short*)buf, sh_audio->a_in_buffer, sh_audio->wf->nChannels);
- }
+ decode_func = dk4_ima_adpcm_decode_block;
+
+ res = decode_func((unsigned short*)buf, sh_audio->a_in_buffer,
+ sh_audio->wf->nChannels, sh_audio->ds->ss_mul);
+ if (res < 0) return res;
+ else return 2 * res;
}