diff options
author | reimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2009-08-16 22:44:29 +0000 |
---|---|---|
committer | reimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2009-08-16 22:44:29 +0000 |
commit | 46f846182864416f1038457afab2ffd35e5479ae (patch) | |
tree | 445bd916ef2e7c881f4f9bdd0a2bf173259fa2cf /libmpdemux | |
parent | fef7ef08a0023e6f304d725dfa2b09a5586e60f1 (diff) | |
download | mpv-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.c | 3 |
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; } |