summaryrefslogtreecommitdiffstats
path: root/libmpdemux/demux_audio.c
diff options
context:
space:
mode:
authormelanson <melanson@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-02-16 05:45:16 +0000
committermelanson <melanson@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-02-16 05:45:16 +0000
commite7e053459c732b44b6d5c1c6a48181f9d7c393b4 (patch)
tree1b4c503dec6450859491d9e068412fe9a175a1d4 /libmpdemux/demux_audio.c
parentdf4c97fb197dfcd427d766e5decb114efd6fc276 (diff)
downloadmpv-e7e053459c732b44b6d5c1c6a48181f9d7c393b4.tar.bz2
mpv-e7e053459c732b44b6d5c1c6a48181f9d7c393b4.tar.xz
fixed WAV demuxer so that it skips to the actual start of the audio data
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@4721 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux/demux_audio.c')
-rw-r--r--libmpdemux/demux_audio.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/libmpdemux/demux_audio.c b/libmpdemux/demux_audio.c
index 69b400637e..5ac22f7597 100644
--- a/libmpdemux/demux_audio.c
+++ b/libmpdemux/demux_audio.c
@@ -133,6 +133,8 @@ int demux_audio_open(demuxer_t* demuxer) {
}
break;
case WAV: {
+ unsigned int chunk_type;
+ unsigned int chunk_size;
WAVEFORMATEX* w;
int l;
sh_audio->wf = w = (WAVEFORMATEX*)malloc(sizeof(WAVEFORMATEX));
@@ -152,6 +154,13 @@ int demux_audio_open(demuxer_t* demuxer) {
l -= 16;
if(l)
stream_skip(s,l);
+ do
+ {
+ chunk_type = stream_read_fourcc(demuxer->stream);
+ chunk_size = stream_read_dword_le(demuxer->stream);
+ if (chunk_type != mmioFOURCC('d', 'a', 't', 'a'))
+ stream_skip(demuxer->stream, chunk_size);
+ } while (chunk_type != mmioFOURCC('d', 'a', 't', 'a'));
demuxer->movi_start = stream_tell(s);
demuxer->movi_end = s->end_pos;
} break;
@@ -219,7 +228,7 @@ int demux_audio_fill_buffer(demux_stream_t *ds) {
return 1;
}
default:
- printf("Audio demuxer : unknow format %d\n",priv->frmt);
+ printf("Audio demuxer : unknown format %d\n",priv->frmt);
}