Mercurial > mplayer.hg
comparison libmpdemux/demuxer.c @ 14197:2ae224195625
Use demuxer_get_percent_pos for the OSD position bar
author | reimar |
---|---|
date | Tue, 21 Dec 2004 12:25:59 +0000 |
parents | 467dae0f6c68 |
children | 815f03b7cee5 |
comparison
equal
deleted
inserted
replaced
14196:8d870bffcb88 | 14197:2ae224195625 |
---|---|
1640 extern int demux_mkv_control(demuxer_t *demuxer, int cmd, void *arg); | 1640 extern int demux_mkv_control(demuxer_t *demuxer, int cmd, void *arg); |
1641 extern int demux_audio_control(demuxer_t *demuxer, int cmd, void *arg); | 1641 extern int demux_audio_control(demuxer_t *demuxer, int cmd, void *arg); |
1642 extern int demux_ogg_control(demuxer_t *demuxer, int cmd, void *arg); | 1642 extern int demux_ogg_control(demuxer_t *demuxer, int cmd, void *arg); |
1643 extern int demux_real_control(demuxer_t *demuxer, int cmd, void *arg); | 1643 extern int demux_real_control(demuxer_t *demuxer, int cmd, void *arg); |
1644 extern int demux_lavf_control(demuxer_t *demuxer, int cmd, void *arg); | 1644 extern int demux_lavf_control(demuxer_t *demuxer, int cmd, void *arg); |
1645 extern int demux_mov_control(demuxer_t *demuxer, int cmd, void *arg); | |
1645 | 1646 |
1646 int demux_control(demuxer_t *demuxer, int cmd, void *arg) { | 1647 int demux_control(demuxer_t *demuxer, int cmd, void *arg) { |
1647 switch(demuxer->type) { | 1648 switch(demuxer->type) { |
1648 case DEMUXER_TYPE_MPEG_TY: | 1649 case DEMUXER_TYPE_MPEG_TY: |
1649 return demux_ty_control(demuxer,cmd,arg); | 1650 return demux_ty_control(demuxer,cmd,arg); |
1676 return demux_real_control(demuxer, cmd, arg); | 1677 return demux_real_control(demuxer, cmd, arg); |
1677 #ifdef USE_LIBAVFORMAT | 1678 #ifdef USE_LIBAVFORMAT |
1678 case DEMUXER_TYPE_LAVF: | 1679 case DEMUXER_TYPE_LAVF: |
1679 return demux_lavf_control(demuxer, cmd, arg); | 1680 return demux_lavf_control(demuxer, cmd, arg); |
1680 #endif | 1681 #endif |
1682 case DEMUXER_TYPE_MOV: | |
1683 return demux_mov_control(demuxer, cmd, arg); | |
1681 | 1684 |
1682 default: | 1685 default: |
1683 return DEMUXER_CTRL_NOTIMPL; | 1686 return DEMUXER_CTRL_NOTIMPL; |
1684 } | 1687 } |
1685 } | 1688 } |
1693 } | 1696 } |
1694 return get_time_ans; | 1697 return get_time_ans; |
1695 } | 1698 } |
1696 | 1699 |
1697 int demuxer_get_percent_pos(demuxer_t *demuxer){ | 1700 int demuxer_get_percent_pos(demuxer_t *demuxer){ |
1698 int ans; | 1701 int ans = 0; |
1699 if (demux_control(demuxer, DEMUXER_CTRL_GET_PERCENT_POS, &ans)<=0) { | 1702 int res = demux_control(demuxer, DEMUXER_CTRL_GET_PERCENT_POS, &ans); |
1700 ans=0; | 1703 int len = (demuxer->movi_end - demuxer->movi_start) / 100; |
1701 } | 1704 if (res == DEMUXER_CTRL_NOTIMPL && len > 0) |
1705 ans = (demuxer->filepos - demuxer->movi_start) / len; | |
1702 if (ans>100 || ans<0) ans=0; | 1706 if (ans>100 || ans<0) ans=0; |
1703 return ans; | 1707 return ans; |
1704 } | 1708 } |
1705 | 1709 |