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