summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2010-01-23 11:21:56 +0000
committerreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2010-01-23 11:21:56 +0000
commita92b3d446be8d5f99dba5bf32280661192283174 (patch)
tree5968b986fd763be304231495171b45da4b044e90
parent03af209bf71722c7a7e8172ab7012096a11b744a (diff)
downloadmpv-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.c43
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;