diff options
author | arpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2002-11-16 03:42:14 +0000 |
---|---|---|
committer | arpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2002-11-16 03:42:14 +0000 |
commit | 422b0d2a4c936d87ed27ee7b56e21d2d60752194 (patch) | |
tree | 1a739173121ee09271ab441c058fc5ec7b0857bb /libmpdemux/demuxer.c | |
parent | 4bda81ad1667ff2f6fd888a5010c375fde8e5038 (diff) | |
download | mpv-422b0d2a4c936d87ed27ee7b56e21d2d60752194.tar.bz2 mpv-422b0d2a4c936d87ed27ee7b56e21d2d60752194.tar.xz |
demuxer_control(), percent position and time length query implemented in
asf, avi, mpeg demuxers.
patch by Balatoni Denes <pnis@coder.hu>
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@8209 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux/demuxer.c')
-rw-r--r-- | libmpdemux/demuxer.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/libmpdemux/demuxer.c b/libmpdemux/demuxer.c index 29a6d54e0d..67dca84f77 100644 --- a/libmpdemux/demuxer.c +++ b/libmpdemux/demuxer.c @@ -1245,3 +1245,41 @@ char* demux_info_get(demuxer_t *demuxer, char *opt) { return NULL; } +extern int demux_mpg_control(demuxer_t *demuxer, int cmd, void *arg); +extern int demux_asf_control(demuxer_t *demuxer, int cmd, void *arg); +extern int demux_avi_control(demuxer_t *demuxer, int cmd, void *arg); + +int demux_control(demuxer_t *demuxer, int cmd, void *arg) { + switch(demuxer->type) { + case DEMUXER_TYPE_MPEG_ES: + case DEMUXER_TYPE_MPEG_PS: + return demux_mpg_control(demuxer,cmd,arg); + case DEMUXER_TYPE_ASF: + return demux_asf_control(demuxer,cmd,arg); + case DEMUXER_TYPE_AVI: + return demux_avi_control(demuxer,cmd,arg); + + default: + return DEMUXER_CTRL_NOTIMPL; + } +} + + + +unsigned long demuxer_get_time_length(demuxer_t *demuxer){ + unsigned long get_time_ans; + if (demux_control(demuxer, DEMUXER_CTRL_GET_TIME_LENGTH,(void *)&get_time_ans)<=0) { + get_time_ans=0; + } + return get_time_ans; +} + +int demuxer_get_percent_pos(demuxer_t *demuxer){ + int ans; + if (demux_control(demuxer, DEMUXER_CTRL_GET_PERCENT_POS, &ans)<=DEMUXER_CTRL_OK) { + ans=0; + } + if (ans>100 || ans<0) ans=0; + return ans; +} + |