From 77eac2ec3494080f1dfbc1fd55ff6aba7effd466 Mon Sep 17 00:00:00 2001 From: Uoti Urpala Date: Mon, 26 Nov 2012 04:47:29 +0200 Subject: 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). --- demux/demux_mkv.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) (limited to 'demux/demux_mkv.c') diff --git a/demux/demux_mkv.c b/demux/demux_mkv.c index 0ff3cd79e1..37b2c7e9b9 100644 --- a/demux/demux_mkv.c +++ b/demux/demux_mkv.c @@ -1365,13 +1365,10 @@ static int demux_mkv_open_audio(demuxer_t *demuxer, mkv_track_t *track, sh_a->samplerate = (uint32_t) track->a_sfreq; sh_a->container_out_samplerate = track->a_osfreq; sh_a->wf->nSamplesPerSec = (uint32_t) track->a_sfreq; - if (track->a_bps == 0) { - sh_a->samplesize = 2; + if (track->a_bps == 0) sh_a->wf->wBitsPerSample = 16; - } else { - sh_a->samplesize = track->a_bps / 8; + else sh_a->wf->wBitsPerSample = track->a_bps; - } if (track->a_formattag == 0x0055) { /* MP3 || MP2 */ sh_a->wf->nAvgBytesPerSec = 16000; sh_a->wf->nBlockAlign = 1152; -- cgit v1.2.3