summaryrefslogtreecommitdiffstats
path: root/libmpdemux
diff options
context:
space:
mode:
authornicodvb <nicodvb@b3059339-0415-0410-9bf9-f77b7e298cf2>2007-02-27 22:25:00 +0000
committernicodvb <nicodvb@b3059339-0415-0410-9bf9-f77b7e298cf2>2007-02-27 22:25:00 +0000
commit309dc7e6c6d786542d2272ef85e17e1579960d3c (patch)
tree4033dd02f649731c6232deddec6b579bc9070134 /libmpdemux
parent467153309609eaf2bbf0edc03817f6cb4c106251 (diff)
downloadmpv-309dc7e6c6d786542d2272ef85e17e1579960d3c.tar.bz2
mpv-309dc7e6c6d786542d2272ef85e17e1579960d3c.tar.xz
implementation of DEMUXER_CTRL_GET_TIME_LENGTH and DEMUXER_CTRL_GET_PERCENT_POS; patch by the usual Hoyos
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22373 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux')
-rw-r--r--libmpdemux/demux_rtp.cpp22
1 files changed, 21 insertions, 1 deletions
diff --git a/libmpdemux/demux_rtp.cpp b/libmpdemux/demux_rtp.cpp
index 3d483837ac..1e3c59a464 100644
--- a/libmpdemux/demux_rtp.cpp
+++ b/libmpdemux/demux_rtp.cpp
@@ -581,6 +581,26 @@ demux_packet_t* ReadBufferQueue::getPendingBuffer() {
return dp;
}
+static int demux_rtp_control(struct demuxer_st *demuxer, int cmd, void *arg) {
+ double endpts = ((RTPState*)demuxer->priv)->mediaSession->playEndTime();
+
+ switch(cmd) {
+ case DEMUXER_CTRL_GET_TIME_LENGTH:
+ if (endpts <= 0)
+ return DEMUXER_CTRL_DONTKNOW;
+ *((double *)arg) = endpts;
+ return DEMUXER_CTRL_OK;
+
+ case DEMUXER_CTRL_GET_PERCENT_POS:
+ if (endpts <= 0)
+ return DEMUXER_CTRL_DONTKNOW;
+ *((int *)arg) = (int)(((RTPState*)demuxer->priv)->videoBufferQueue->prevPacketPTS*100/endpts);
+ return DEMUXER_CTRL_OK;
+
+ default:
+ return DEMUXER_CTRL_NOTIMPL;
+ }
+}
demuxer_desc_t demuxer_desc_rtp = {
"LIVE555 RTP demuxer",
@@ -595,5 +615,5 @@ demuxer_desc_t demuxer_desc_rtp = {
demux_open_rtp,
demux_close_rtp,
NULL,
- NULL
+ demux_rtp_control
};