summaryrefslogtreecommitdiffstats
path: root/libmpdemux/demuxer.c
diff options
context:
space:
mode:
authorreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2004-12-21 12:25:59 +0000
committerreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2004-12-21 12:25:59 +0000
commit3426117ee8ce21e81dd8ec8a87d6e1ef7b7871db (patch)
treedd005e9f2ef8c5ac3490bad6463af969d2050053 /libmpdemux/demuxer.c
parentff48a1972672b67dead8d0d3ff0402bc6f1657bb (diff)
downloadmpv-3426117ee8ce21e81dd8ec8a87d6e1ef7b7871db.tar.bz2
mpv-3426117ee8ce21e81dd8ec8a87d6e1ef7b7871db.tar.xz
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
Diffstat (limited to 'libmpdemux/demuxer.c')
-rw-r--r--libmpdemux/demuxer.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/libmpdemux/demuxer.c b/libmpdemux/demuxer.c
index 34091692c0..a254c34a3e 100644
--- a/libmpdemux/demuxer.c
+++ b/libmpdemux/demuxer.c
@@ -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;
}