summaryrefslogtreecommitdiffstats
path: root/libmpdemux
diff options
context:
space:
mode:
authorreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2009-08-16 22:44:29 +0000
committerreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2009-08-16 22:44:29 +0000
commit46f846182864416f1038457afab2ffd35e5479ae (patch)
tree445bd916ef2e7c881f4f9bdd0a2bf173259fa2cf /libmpdemux
parentfef7ef08a0023e6f304d725dfa2b09a5586e60f1 (diff)
downloadmpv-46f846182864416f1038457afab2ffd35e5479ae.tar.bz2
mpv-46f846182864416f1038457afab2ffd35e5479ae.tar.xz
Add some protection to the rawaudio GET_LENGTH/GET_PERCENT_POS in case the
file length is not known (streaming). git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29526 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux')
-rw-r--r--libmpdemux/demux_rawaudio.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/libmpdemux/demux_rawaudio.c b/libmpdemux/demux_rawaudio.c
index 7bc751ec7b..d09f2e3dff 100644
--- a/libmpdemux/demux_rawaudio.c
+++ b/libmpdemux/demux_rawaudio.c
@@ -117,11 +117,12 @@ static int demux_rawaudio_control(demuxer_t *demuxer,int cmd, void *arg)
sh_audio_t *sh_audio = demuxer->audio->sh;
switch(cmd) {
case DEMUXER_CTRL_GET_TIME_LENGTH:
- if (!sh_audio->i_bps) return DEMUXER_CTRL_DONTKNOW;
+ if (!sh_audio->i_bps || demuxer->movi_start >= demuxer->movi_end) return DEMUXER_CTRL_DONTKNOW;
*(double *)arg = (double)(demuxer->movi_end - demuxer->movi_start) / sh_audio->i_bps;
return DEMUXER_CTRL_GUESS;
case DEMUXER_CTRL_GET_PERCENT_POS:
+ if (demuxer->movi_start >= demuxer->movi_end) return DEMUXER_CTRL_DONTKNOW;
*(int *)arg = (stream_tell(demuxer->stream) - demuxer->movi_start) * 100 / (demuxer->movi_end - demuxer->movi_start);
return DEMUXER_CTRL_GUESS;
}