1
mirror of https://github.com/mpv-player/mpv synced 2024-09-05 02:48:21 +02:00

Use demuxer_get_percent_pos for the OSD position bar

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@14198 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
reimar 2004-12-21 12:25:59 +00:00
parent ff48a19726
commit 3426117ee8
2 changed files with 10 additions and 7 deletions

View File

@ -1642,6 +1642,7 @@ extern int demux_audio_control(demuxer_t *demuxer, int cmd, void *arg);
extern int demux_ogg_control(demuxer_t *demuxer, int cmd, void *arg);
extern int demux_real_control(demuxer_t *demuxer, int cmd, void *arg);
extern int demux_lavf_control(demuxer_t *demuxer, int cmd, void *arg);
extern int demux_mov_control(demuxer_t *demuxer, int cmd, void *arg);
int demux_control(demuxer_t *demuxer, int cmd, void *arg) {
switch(demuxer->type) {
@ -1678,6 +1679,8 @@ int demux_control(demuxer_t *demuxer, int cmd, void *arg) {
case DEMUXER_TYPE_LAVF:
return demux_lavf_control(demuxer, cmd, arg);
#endif
case DEMUXER_TYPE_MOV:
return demux_mov_control(demuxer, cmd, arg);
default:
return DEMUXER_CTRL_NOTIMPL;
@ -1695,10 +1698,11 @@ unsigned long demuxer_get_time_length(demuxer_t *demuxer){
}
int demuxer_get_percent_pos(demuxer_t *demuxer){
int ans;
if (demux_control(demuxer, DEMUXER_CTRL_GET_PERCENT_POS, &ans)<=0) {
ans=0;
}
int ans = 0;
int res = demux_control(demuxer, DEMUXER_CTRL_GET_PERCENT_POS, &ans);
int len = (demuxer->movi_end - demuxer->movi_start) / 100;
if (res == DEMUXER_CTRL_NOTIMPL && len > 0)
ans = (demuxer->filepos - demuxer->movi_start) / len;
if (ans>100 || ans<0) ans=0;
return ans;
}

View File

@ -3754,11 +3754,10 @@ if(rel_seek_secs || abs_seek_pos){
#else
if( 1 ) { // Let the compiler optimize this out
#endif
int len=((demuxer->movi_end-demuxer->movi_start)>>8);
if (len>0 && sh_video){
if (sh_video) {
osd_visible=sh_video->fps; // 1 sec
vo_osd_progbar_type=0;
vo_osd_progbar_value=(demuxer->filepos-demuxer->movi_start)/len;
vo_osd_progbar_value=demuxer_get_percent_pos(demuxer) * 256 / 100;
vo_osd_changed(OSDTYPE_PROGBAR);
}
}