From 70c9aca23b3d0a729c278c3cb76a290a2748d6c8 Mon Sep 17 00:00:00 2001 From: reimar Date: Thu, 28 Jul 2005 13:43:24 +0000 Subject: lavf demuxer with raw PCM fix (and a related hang) git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@16135 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpcodecs/ad_pcm.c | 2 ++ libmpdemux/demux_lavf.c | 10 ++++++++++ 2 files changed, 12 insertions(+) diff --git a/libmpcodecs/ad_pcm.c b/libmpcodecs/ad_pcm.c index bd76e704c5..fed9c141ba 100644 --- a/libmpcodecs/ad_pcm.c +++ b/libmpcodecs/ad_pcm.c @@ -67,6 +67,8 @@ static int init(sh_audio_t *sh_audio) break; default: if(sh_audio->samplesize!=2) sh_audio->sample_format=AF_FORMAT_U8; } + if (!sh_audio->samplesize) // this would cause MPlayer to hang later + sh_audio->samplesize = 2; return 1; } diff --git a/libmpdemux/demux_lavf.c b/libmpdemux/demux_lavf.c index 439f2ba718..bc832b3c7e 100644 --- a/libmpdemux/demux_lavf.c +++ b/libmpdemux/demux_lavf.c @@ -217,6 +217,16 @@ int demux_open_lavf(demuxer_t *demuxer){ sh_audio->channels= codec->channels; sh_audio->samplerate= codec->sample_rate; sh_audio->i_bps= codec->bit_rate/8; + switch (codec->codec_id) { + case CODEC_ID_PCM_S8: + case CODEC_ID_PCM_U8: + sh_audio->samplesize = 1; + case CODEC_ID_PCM_S16LE: + case CODEC_ID_PCM_S16BE: + case CODEC_ID_PCM_U16LE: + case CODEC_ID_PCM_U16BE: + sh_audio->samplesize = 2; + } if(verbose>=1) print_wave_header(sh_audio->wf); if(demuxer->audio->id != i && demuxer->audio->id != -1) st->discard= AVDISCARD_ALL; -- cgit v1.2.3