Mercurial > mplayer.hg
comparison libmpdemux/demux_rtp.cpp @ 22355:20be7be45f47
implementation of DEMUXER_CTRL_GET_TIME_LENGTH and DEMUXER_CTRL_GET_PERCENT_POS; patch by the usual Hoyos
author | nicodvb |
---|---|
date | Tue, 27 Feb 2007 22:25:00 +0000 |
parents | 7bfda6330833 |
children | 0f5455fc2d5d |
comparison
equal
deleted
inserted
replaced
22354:b465e5be1a53 | 22355:20be7be45f47 |
---|---|
579 } | 579 } |
580 | 580 |
581 return dp; | 581 return dp; |
582 } | 582 } |
583 | 583 |
584 static int demux_rtp_control(struct demuxer_st *demuxer, int cmd, void *arg) { | |
585 double endpts = ((RTPState*)demuxer->priv)->mediaSession->playEndTime(); | |
586 | |
587 switch(cmd) { | |
588 case DEMUXER_CTRL_GET_TIME_LENGTH: | |
589 if (endpts <= 0) | |
590 return DEMUXER_CTRL_DONTKNOW; | |
591 *((double *)arg) = endpts; | |
592 return DEMUXER_CTRL_OK; | |
593 | |
594 case DEMUXER_CTRL_GET_PERCENT_POS: | |
595 if (endpts <= 0) | |
596 return DEMUXER_CTRL_DONTKNOW; | |
597 *((int *)arg) = (int)(((RTPState*)demuxer->priv)->videoBufferQueue->prevPacketPTS*100/endpts); | |
598 return DEMUXER_CTRL_OK; | |
599 | |
600 default: | |
601 return DEMUXER_CTRL_NOTIMPL; | |
602 } | |
603 } | |
584 | 604 |
585 demuxer_desc_t demuxer_desc_rtp = { | 605 demuxer_desc_t demuxer_desc_rtp = { |
586 "LIVE555 RTP demuxer", | 606 "LIVE555 RTP demuxer", |
587 "rtp", | 607 "rtp", |
588 "", | 608 "", |
593 NULL, | 613 NULL, |
594 demux_rtp_fill_buffer, | 614 demux_rtp_fill_buffer, |
595 demux_open_rtp, | 615 demux_open_rtp, |
596 demux_close_rtp, | 616 demux_close_rtp, |
597 NULL, | 617 NULL, |
598 NULL | 618 demux_rtp_control |
599 }; | 619 }; |