summaryrefslogtreecommitdiffstats
path: root/libmpcodecs/ad_ffmpeg.c
diff options
context:
space:
mode:
authorUoti Urpala <uau@glyph.nonexistent.invalid>2009-04-01 02:26:34 +0300
committerUoti Urpala <uau@glyph.nonexistent.invalid>2009-04-01 02:43:47 +0300
commitcf9edda1d370d39bc8a3d020a9c2bc4090d2457e (patch)
tree1d1bbc529a4e8109fb6aa5cadf0dbbb7bd61013a /libmpcodecs/ad_ffmpeg.c
parent7af8417ae7beb409f54849956a7037bc66c4c334 (diff)
parent1c37a6427abef0827c608d328d37ca1b1a0a022d (diff)
downloadmpv-cf9edda1d370d39bc8a3d020a9c2bc4090d2457e.tar.bz2
mpv-cf9edda1d370d39bc8a3d020a9c2bc4090d2457e.tar.xz
Merge svn changes up to r29117
Diffstat (limited to 'libmpcodecs/ad_ffmpeg.c')
-rw-r--r--libmpcodecs/ad_ffmpeg.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/libmpcodecs/ad_ffmpeg.c b/libmpcodecs/ad_ffmpeg.c
index 560dd90c0a..7ecbb20cb3 100644
--- a/libmpcodecs/ad_ffmpeg.c
+++ b/libmpcodecs/ad_ffmpeg.c
@@ -112,6 +112,15 @@ static int init(sh_audio_t *sh_audio)
sh_audio->channels=lavc_context->channels;
sh_audio->samplerate=lavc_context->sample_rate;
sh_audio->i_bps=lavc_context->bit_rate/8;
+ switch (lavc_context->sample_fmt) {
+ case SAMPLE_FMT_U8: sh_audio->sample_format = AF_FORMAT_U8; break;
+ case SAMPLE_FMT_S16: sh_audio->sample_format = AF_FORMAT_S16_NE; break;
+ case SAMPLE_FMT_S32: sh_audio->sample_format = AF_FORMAT_S32_NE; break;
+ case SAMPLE_FMT_FLT: sh_audio->sample_format = AF_FORMAT_FLOAT_NE; break;
+ default:
+ mp_msg(MSGT_DECAUDIO, MSGL_FATAL, "Unsupported sample format\n");
+ return 0;
+ }
if(sh_audio->wf){
// If the decoder uses the wrong number of channels all is lost anyway.
// sh_audio->channels=sh_audio->wf->nChannels;
@@ -120,7 +129,7 @@ static int init(sh_audio_t *sh_audio)
if (sh_audio->wf->nAvgBytesPerSec)
sh_audio->i_bps=sh_audio->wf->nAvgBytesPerSec;
}
- sh_audio->samplesize=2;
+ sh_audio->samplesize=af_fmt2bits(sh_audio->sample_format)/ 8;
return 1;
}