diff options
author | nicodvb <nicodvb@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2007-02-27 22:25:00 +0000 |
---|---|---|
committer | nicodvb <nicodvb@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2007-02-27 22:25:00 +0000 |
commit | 309dc7e6c6d786542d2272ef85e17e1579960d3c (patch) | |
tree | 4033dd02f649731c6232deddec6b579bc9070134 /libmpdemux | |
parent | 467153309609eaf2bbf0edc03817f6cb4c106251 (diff) | |
download | mpv-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.cpp | 22 |
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 }; |