[MPlayer-cvslog] r20765 - in trunk/libmpdemux: demuxer.c demuxer.h
nicodvb
subversion at mplayerhq.hu
Tue Nov 7 23:55:50 CET 2006
Author: nicodvb
Date: Tue Nov 7 23:55:49 2006
New Revision: 20765
Modified:
trunk/libmpdemux/demuxer.c
trunk/libmpdemux/demuxer.h
Log:
added demuxer_get_current_time() to get the current playtime (possibly aided by the stream layer)
Modified: trunk/libmpdemux/demuxer.c
==============================================================================
--- trunk/libmpdemux/demuxer.c (original)
+++ trunk/libmpdemux/demuxer.c Tue Nov 7 23:55:49 2006
@@ -1023,6 +1023,23 @@
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 ans = 0;
int res = demux_control(demuxer, DEMUXER_CTRL_GET_PERCENT_POS, &ans);
Modified: trunk/libmpdemux/demuxer.h
==============================================================================
--- trunk/libmpdemux/demuxer.h (original)
+++ trunk/libmpdemux/demuxer.h Tue Nov 7 23:55:49 2006
@@ -373,6 +373,7 @@
#endif
+extern int demuxer_get_current_time(demuxer_t *demuxer);
extern double demuxer_get_time_length(demuxer_t *demuxer);
extern int demuxer_get_percent_pos(demuxer_t *demuxer);
extern int demuxer_switch_audio(demuxer_t *demuxer, int index);
More information about the MPlayer-cvslog
mailing list