summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--etc/codecs.conf2
-rw-r--r--libmpcodecs/ad_pcm.c4
2 files changed, 6 insertions, 0 deletions
diff --git a/etc/codecs.conf b/etc/codecs.conf
index 91deecec33..ae0639d140 100644
--- a/etc/codecs.conf
+++ b/etc/codecs.conf
@@ -2171,6 +2171,8 @@ audiocodec pcm
status working
format 0x0
format 0x1
+ format 0x3 ; IEEE float
+ format 0xfffe ; Extended
format 0x20776172 ; "raw " (MOV files)
format 0x736f7774 ; "twos" (MOV files)
format 0x74776f73 ; "sowt" (MOV files)
diff --git a/libmpcodecs/ad_pcm.c b/libmpcodecs/ad_pcm.c
index a2bcd17827..bd76e704c5 100644
--- a/libmpcodecs/ad_pcm.c
+++ b/libmpcodecs/ad_pcm.c
@@ -28,6 +28,7 @@ static int init(sh_audio_t *sh_audio)
switch(sh_audio->format){ /* hardware formats: */
case 0x0:
case 0x1: // Microsoft PCM
+ case 0xfffe: // Extended
switch (sh_audio->samplesize) {
case 1: sh_audio->sample_format=AF_FORMAT_U8; break;
case 2: sh_audio->sample_format=AF_FORMAT_S16_LE; break;
@@ -35,6 +36,9 @@ static int init(sh_audio_t *sh_audio)
case 4: sh_audio->sample_format=AF_FORMAT_S32_LE; break;
}
break;
+ case 0x3: // IEEE float
+ sh_audio->sample_format=AF_FORMAT_FLOAT_LE;
+ break;
case 0x6: sh_audio->sample_format=AF_FORMAT_A_LAW;break;
case 0x7: sh_audio->sample_format=AF_FORMAT_MU_LAW;break;
case 0x11: sh_audio->sample_format=AF_FORMAT_IMA_ADPCM;break;