diff options
author | reimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2010-01-23 11:21:56 +0000 |
---|---|---|
committer | reimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2010-01-23 11:21:56 +0000 |
commit | a92b3d446be8d5f99dba5bf32280661192283174 (patch) | |
tree | 5968b986fd763be304231495171b45da4b044e90 | |
parent | 03af209bf71722c7a7e8172ab7012096a11b744a (diff) | |
download | mpv-a92b3d446be8d5f99dba5bf32280661192283174.tar.bz2 mpv-a92b3d446be8d5f99dba5bf32280661192283174.tar.xz |
Support more formats for -ao pcm in raw mode.
Patch by Peter Fordham [peter.fordham gmail com]
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30400 b3059339-0415-0410-9bf9-f77b7e298cf2
-rw-r--r-- | libao2/ao_pcm.c | 43 |
1 files changed, 19 insertions, 24 deletions
diff --git a/libao2/ao_pcm.c b/libao2/ao_pcm.c index 5a5c08b3e4..2303c218db 100644 --- a/libao2/ao_pcm.c +++ b/libao2/ao_pcm.c @@ -111,32 +111,27 @@ static int init(int rate,int channels,int format,int flags){ strdup(ao_pcm_waveheader?"audiodump.wav":"audiodump.pcm"); } - bits=8; - switch(format){ - case AF_FORMAT_S32_BE: - format=AF_FORMAT_S32_LE; - case AF_FORMAT_S32_LE: - bits=32; - break; - case AF_FORMAT_FLOAT_BE: - format=AF_FORMAT_FLOAT_LE; - case AF_FORMAT_FLOAT_LE: - bits=32; - break; - case AF_FORMAT_S8: - format=AF_FORMAT_U8; - case AF_FORMAT_U8: - break; - case AF_FORMAT_AC3_BE: - case AF_FORMAT_AC3_LE: - bits=16; - break; - default: - format=AF_FORMAT_S16_LE; - bits=16; - break; + if (ao_pcm_waveheader) + { + // WAV files must have one of the following formats + + switch(format){ + case AF_FORMAT_U8: + case AF_FORMAT_S16_LE: + case AF_FORMAT_S24_LE: + case AF_FORMAT_S32_LE: + case AF_FORMAT_FLOAT_LE: + case AF_FORMAT_AC3_BE: + case AF_FORMAT_AC3_LE: + break; + default: + format = AF_FORMAT_S16_LE; + break; + } } + bits = af_fmt2bits(format); + ao_data.outburst = 65536; ao_data.buffersize= 2*65536; ao_data.channels=channels; |