diff options
author | melanson <melanson@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2001-12-28 06:47:15 +0000 |
---|---|---|
committer | melanson <melanson@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2001-12-28 06:47:15 +0000 |
commit | 296399a5bbc82bad4b57c9b9b761a4b1ed85c6df (patch) | |
tree | 7ca8fc7105f5264f369b67c2bd621f04fbcaf2a8 /dec_audio.c | |
parent | 57a9da01e28126457f2c4c82f4e6f75c9615393b (diff) | |
download | mpv-296399a5bbc82bad4b57c9b9b761a4b1ed85c6df.tar.bz2 mpv-296399a5bbc82bad4b57c9b9b761a4b1ed85c6df.tar.xz |
added initial, not-yet-functional, support for fox62 audio
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@3827 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'dec_audio.c')
-rw-r--r-- | dec_audio.c | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/dec_audio.c b/dec_audio.c index 1e5400366e..d8e7faef2d 100644 --- a/dec_audio.c +++ b/dec_audio.c @@ -288,6 +288,11 @@ case AFM_MSADPCM: sh_audio->ds->ss_div=MS_ADPCM_SAMPLES_PER_BLOCK; sh_audio->ds->ss_mul=MS_ADPCM_BLOCK_SIZE; break; +case AFM_FOX62ADPCM: + sh_audio->audio_out_minsize=FOX62_ADPCM_SAMPLES_PER_BLOCK * 4; + sh_audio->ds->ss_div=FOX62_ADPCM_SAMPLES_PER_BLOCK; + sh_audio->ds->ss_mul=FOX62_ADPCM_BLOCK_SIZE; + break; case AFM_MPEG: // MPEG Audio: sh_audio->audio_out_minsize=4608; @@ -517,7 +522,13 @@ case AFM_MSADPCM: sh_audio->channels=sh_audio->wf->nChannels; sh_audio->samplerate=sh_audio->wf->nSamplesPerSec; sh_audio->i_bps=MS_ADPCM_BLOCK_SIZE* - (sh_audio->channels*sh_audio->samplerate)/MS_ADPCM_SAMPLES_PER_BLOCK; + (sh_audio->channels*sh_audio->samplerate) / MS_ADPCM_SAMPLES_PER_BLOCK; + break; +case AFM_FOX62ADPCM: + sh_audio->channels=sh_audio->wf->nChannels; + sh_audio->samplerate=sh_audio->wf->nSamplesPerSec; + sh_audio->i_bps=FOX62_ADPCM_BLOCK_SIZE* + (sh_audio->channels*sh_audio->samplerate) / FOX62_ADPCM_SAMPLES_PER_BLOCK; break; case AFM_MPEG: { // MPEG Audio: @@ -931,6 +942,15 @@ int decode_audio(sh_audio_t *sh_audio,unsigned char *buf,int minlen,int maxlen){ len=2*ms_adpcm_decode_block((unsigned short*)buf,ibuf, sh_audio->wf->nChannels); break; } + case AFM_FOX62ADPCM: + { unsigned char ibuf[FOX62_ADPCM_BLOCK_SIZE * 2]; // bytes / stereo frame + if (demux_read_data(sh_audio->ds, ibuf, + FOX62_ADPCM_BLOCK_SIZE * sh_audio->wf->nChannels) != + FOX62_ADPCM_BLOCK_SIZE * sh_audio->wf->nChannels) + break; // EOF + len=2*fox62_adpcm_decode_block((unsigned short*)buf,ibuf, sh_audio->wf->nChannels); + break; + } case AFM_AC3: // AC3 decoder //printf("{1:%d}",avi_header.idx_pos);fflush(stdout); if(!sh_audio->ac3_frame) sh_audio->ac3_frame=ac3_decode_frame(); |