1
0
mirror of https://github.com/mpv-player/mpv synced 2024-12-15 19:35:49 +00:00

added demuxer_get_current_time() to get the current playtime (possibly aided by the stream layer)

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20765 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
nicodvb 2006-11-07 22:55:49 +00:00
parent 0fa1a3e4c6
commit 6200940dcb
2 changed files with 18 additions and 0 deletions

View File

@ -1023,6 +1023,23 @@ double demuxer_get_time_length(demuxer_t *demuxer){
return get_time_ans; return get_time_ans;
} }
/**
* \brief demuxer_get_current_time() returns the time of the current play in three possible ways:
* either when the stream reader satisfies STREAM_CTRL_GET_CURRENT_TIME (e.g. dvd)
* or using sh_video->pts when the former method fails
* 0 otherwise
* \return the current play time
*/
int demuxer_get_current_time(demuxer_t *demuxer){
double get_time_ans = 0;
unsigned tm;
sh_video_t *sh_video = demuxer->video->sh;
if(stream_control(demuxer->stream, STREAM_CTRL_GET_CURRENT_TIME,(void *)&tm)!=STREAM_UNSUPORTED) {
get_time_ans = (double) tm / 1000.0f;
} else if(sh_video) get_time_ans = sh_video->pts;
return (int) get_time_ans;
}
int demuxer_get_percent_pos(demuxer_t *demuxer){ int demuxer_get_percent_pos(demuxer_t *demuxer){
int ans = 0; int ans = 0;
int res = demux_control(demuxer, DEMUXER_CTRL_GET_PERCENT_POS, &ans); int res = demux_control(demuxer, DEMUXER_CTRL_GET_PERCENT_POS, &ans);

View File

@ -373,6 +373,7 @@ char *demux_ogg_sub_lang(demuxer_t *demuxer, int index);
#endif #endif
extern int demuxer_get_current_time(demuxer_t *demuxer);
extern double demuxer_get_time_length(demuxer_t *demuxer); extern double demuxer_get_time_length(demuxer_t *demuxer);
extern int demuxer_get_percent_pos(demuxer_t *demuxer); extern int demuxer_get_percent_pos(demuxer_t *demuxer);
extern int demuxer_switch_audio(demuxer_t *demuxer, int index); extern int demuxer_switch_audio(demuxer_t *demuxer, int index);