mirror of https://github.com/mpv-player/mpv
More accurate seeking for demuxers lacking DEMUXER_CTRL_GET_TIME_LENGTH control
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@23572 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
6e6d3acfa9
commit
276394a205
|
@ -1038,7 +1038,9 @@ double demuxer_get_time_length(demuxer_t *demuxer){
|
|||
sh_audio_t *sh_audio = demuxer->audio->sh;
|
||||
// <= 0 means DEMUXER_CTRL_NOTIMPL or DEMUXER_CTRL_DONTKNOW
|
||||
if (demux_control(demuxer, DEMUXER_CTRL_GET_TIME_LENGTH,(void *)&get_time_ans)<=0) {
|
||||
if (sh_video && sh_video->i_bps)
|
||||
if (sh_video && sh_video->i_bps && sh_audio && sh_audio->i_bps)
|
||||
get_time_ans = (double)(demuxer->movi_end-demuxer->movi_start)/(sh_video->i_bps+sh_audio->i_bps);
|
||||
else if (sh_video && sh_video->i_bps)
|
||||
get_time_ans = (double)(demuxer->movi_end-demuxer->movi_start)/sh_video->i_bps;
|
||||
else if (sh_audio && sh_audio->i_bps)
|
||||
get_time_ans = (double)(demuxer->movi_end-demuxer->movi_start)/sh_audio->i_bps;
|
||||
|
|
Loading…
Reference in New Issue