diff options
author | Uoti Urpala <uau@mplayer2.org> | 2012-11-26 04:47:29 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2012-12-03 21:08:52 +0100 |
commit | 77eac2ec3494080f1dfbc1fd55ff6aba7effd466 (patch) | |
tree | 69aa3334412c84ee1773f6c59041e5dcdf5f31c0 /audio/decode | |
parent | a75e65db5defc59a8fca0024bf6559b8b6c0f1ea (diff) | |
download | mpv-77eac2ec3494080f1dfbc1fd55ff6aba7effd466.tar.bz2 mpv-77eac2ec3494080f1dfbc1fd55ff6aba7effd466.tar.xz |
audio: improve decoder open failure handling
Reinitialize sh_audio->samplesize and sample_format before falling back
to another audio decoder (some decoders rely on default values). Remove
code setting these fields from demux_mkv and demux_lavf (no decoder
should depend on demuxer-set values for these fields).
Conflicts:
audio/decode/ad_lavc.c
Merged from mplayer2 commit 6b9567. The changes to ad_lavc.c are not
merged, as they are very specific to the mplayer2 libavresample hack;
we deplanarize manually, so we can't get unsupported sample formats
yet (except on raw audio with "pcm_f64le", as we don't support
AV_SAMPLE_FMT_DBL in the audio chain).
Diffstat (limited to 'audio/decode')
-rw-r--r-- | audio/decode/dec_audio.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/audio/decode/dec_audio.c b/audio/decode/dec_audio.c index 9e03371d19..90967fdea0 100644 --- a/audio/decode/dec_audio.c +++ b/audio/decode/dec_audio.c @@ -64,6 +64,8 @@ static int init_audio_codec(sh_audio_t *sh_audio) { assert(!sh_audio->initialized); resync_audio_stream(sh_audio); + sh_audio->samplesize = 2; + sh_audio->sample_format = AF_FORMAT_S16_NE; if ((af_cfg.force & AF_INIT_FORMAT_MASK) == AF_INIT_FLOAT) { int fmt = AF_FORMAT_FLOAT_NE; if (sh_audio->ad_driver->control(sh_audio, ADCTRL_QUERY_FORMAT, |