Index: libmpcodecs/ad_dvdpcm.c =================================================================== RCS file: /cvsroot/mplayer/main/libmpcodecs/ad_dvdpcm.c,v retrieving revision 1.5 diff -u -r1.5 ad_dvdpcm.c --- libmpcodecs/ad_dvdpcm.c 8 Oct 2002 22:56:43 -0000 1.5 +++ libmpcodecs/ad_dvdpcm.c 26 Jul 2004 18:01:22 -0000 @@ -4,6 +4,7 @@ #include "config.h" #include "ad_internal.h" +#include "../libaf/af_format.h" static ad_info_t info = { @@ -29,12 +30,28 @@ case 2: sh->samplerate=44100;break; case 3: sh->samplerate=32000;break; } + switch ((h >> 6) & 3) { + case 0: + sh->sample_format = AFMT_S16_BE; + sh->samplesize = 2; + break; + case 2: + sh->sample_format = AFMT_AF_FLAGS | AF_FORMAT_I | + AF_FORMAT_BE | AF_FORMAT_SI; + sh_audio->samplesize = 3; + break; + default: + sh->sample_format = AFMT_S16_BE; + sh->samplesize = 2; + } } else { // use defaults: sh->channels=2; sh->samplerate=48000; + sh->sample_format = AFMT_S16_BE; + sh->samplesize = 2; } - sh->i_bps=2*sh->channels*sh->samplerate; + sh->i_bps = sh->samplesize * sh->channels * sh->samplerate; return 1; } @@ -66,12 +83,5 @@ { int j,len; len=demux_read_data(sh_audio->ds,buf,(minlen+3)&(~3)); -#ifndef WORDS_BIGENDIAN - for(j=0;j