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
This commit is contained in:
nicodvb 2007-02-27 22:25:00 +00:00
parent 4671533096
commit 309dc7e6c6
1 changed files with 21 additions and 1 deletions

View File

@ -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
};