Signed-off-by: Martin Storsjö <martin@martin.st>tags/n0.9
| @@ -3169,8 +3169,8 @@ static void rtsp_cmd_setup(HTTPContext *c, const char *url, | |||
| switch(rtp_c->rtp_protocol) { | |||
| case RTSP_LOWER_TRANSPORT_UDP: | |||
| rtp_port = rtp_get_local_rtp_port(rtp_c->rtp_handles[stream_index]); | |||
| rtcp_port = rtp_get_local_rtcp_port(rtp_c->rtp_handles[stream_index]); | |||
| rtp_port = ff_rtp_get_local_rtp_port(rtp_c->rtp_handles[stream_index]); | |||
| rtcp_port = ff_rtp_get_local_rtcp_port(rtp_c->rtp_handles[stream_index]); | |||
| avio_printf(c->pb, "Transport: RTP/AVP/UDP;unicast;" | |||
| "client_port=%d-%d;server_port=%d-%d", | |||
| th->client_port_min, th->client_port_max, | |||
| @@ -218,7 +218,7 @@ static int rtp_valid_packet_in_sequence(RTPStatistics *s, uint16_t seq) | |||
| return 1; | |||
| } | |||
| int rtp_check_and_send_back_rr(RTPDemuxContext *s, int count) | |||
| int ff_rtp_check_and_send_back_rr(RTPDemuxContext *s, int count) | |||
| { | |||
| AVIOContext *pb; | |||
| uint8_t *buf; | |||
| @@ -315,7 +315,7 @@ int rtp_check_and_send_back_rr(RTPDemuxContext *s, int count) | |||
| return 0; | |||
| } | |||
| void rtp_send_punch_packets(URLContext* rtp_handle) | |||
| void ff_rtp_send_punch_packets(URLContext* rtp_handle) | |||
| { | |||
| AVIOContext *pb; | |||
| uint8_t *buf; | |||
| @@ -359,7 +359,7 @@ void rtp_send_punch_packets(URLContext* rtp_handle) | |||
| * MPEG2TS streams to indicate that they should be demuxed inside the | |||
| * rtp demux (otherwise CODEC_ID_MPEG2TS packets are returned) | |||
| */ | |||
| RTPDemuxContext *rtp_parse_open(AVFormatContext *s1, AVStream *st, URLContext *rtpc, int payload_type, int queue_size) | |||
| RTPDemuxContext *ff_rtp_parse_open(AVFormatContext *s1, AVStream *st, URLContext *rtpc, int payload_type, int queue_size) | |||
| { | |||
| RTPDemuxContext *s; | |||
| @@ -407,8 +407,8 @@ RTPDemuxContext *rtp_parse_open(AVFormatContext *s1, AVStream *st, URLContext *r | |||
| } | |||
| void | |||
| rtp_parse_set_dynamic_protocol(RTPDemuxContext *s, PayloadContext *ctx, | |||
| RTPDynamicProtocolHandler *handler) | |||
| ff_rtp_parse_set_dynamic_protocol(RTPDemuxContext *s, PayloadContext *ctx, | |||
| RTPDynamicProtocolHandler *handler) | |||
| { | |||
| s->dynamic_protocol_context = ctx; | |||
| s->parse_packet = handler->parse_packet; | |||
| @@ -722,8 +722,8 @@ static int rtp_parse_one_packet(RTPDemuxContext *s, AVPacket *pkt, | |||
| * @return 0 if a packet is returned, 1 if a packet is returned and more can follow | |||
| * (use buf as NULL to read the next). -1 if no packet (error or no more packet). | |||
| */ | |||
| int rtp_parse_packet(RTPDemuxContext *s, AVPacket *pkt, | |||
| uint8_t **bufptr, int len) | |||
| int ff_rtp_parse_packet(RTPDemuxContext *s, AVPacket *pkt, | |||
| uint8_t **bufptr, int len) | |||
| { | |||
| int rv = rtp_parse_one_packet(s, pkt, bufptr, len); | |||
| s->prev_ret = rv; | |||
| @@ -732,7 +732,7 @@ int rtp_parse_packet(RTPDemuxContext *s, AVPacket *pkt, | |||
| return rv ? rv : has_next_packet(s); | |||
| } | |||
| void rtp_parse_close(RTPDemuxContext *s) | |||
| void ff_rtp_parse_close(RTPDemuxContext *s) | |||
| { | |||
| ff_rtp_reset_packet_queue(s); | |||
| if (!strcmp(ff_rtp_enc_name(s->payload_type), "MP2T")) { | |||
| @@ -38,18 +38,18 @@ typedef struct RTPDynamicProtocolHandler_s RTPDynamicProtocolHandler; | |||
| #define RTP_NOTS_VALUE ((uint32_t)-1) | |||
| typedef struct RTPDemuxContext RTPDemuxContext; | |||
| RTPDemuxContext *rtp_parse_open(AVFormatContext *s1, AVStream *st, URLContext *rtpc, int payload_type, int queue_size); | |||
| void rtp_parse_set_dynamic_protocol(RTPDemuxContext *s, PayloadContext *ctx, | |||
| RTPDynamicProtocolHandler *handler); | |||
| int rtp_parse_packet(RTPDemuxContext *s, AVPacket *pkt, | |||
| uint8_t **buf, int len); | |||
| void rtp_parse_close(RTPDemuxContext *s); | |||
| RTPDemuxContext *ff_rtp_parse_open(AVFormatContext *s1, AVStream *st, URLContext *rtpc, int payload_type, int queue_size); | |||
| void ff_rtp_parse_set_dynamic_protocol(RTPDemuxContext *s, PayloadContext *ctx, | |||
| RTPDynamicProtocolHandler *handler); | |||
| int ff_rtp_parse_packet(RTPDemuxContext *s, AVPacket *pkt, | |||
| uint8_t **buf, int len); | |||
| void ff_rtp_parse_close(RTPDemuxContext *s); | |||
| int64_t ff_rtp_queued_packet_time(RTPDemuxContext *s); | |||
| void ff_rtp_reset_packet_queue(RTPDemuxContext *s); | |||
| int rtp_get_local_rtp_port(URLContext *h); | |||
| int rtp_get_local_rtcp_port(URLContext *h); | |||
| int ff_rtp_get_local_rtp_port(URLContext *h); | |||
| int ff_rtp_get_local_rtcp_port(URLContext *h); | |||
| int rtp_set_remote_url(URLContext *h, const char *uri); | |||
| int ff_rtp_set_remote_url(URLContext *h, const char *uri); | |||
| /** | |||
| * Send a dummy packet on both port pairs to set up the connection | |||
| @@ -62,19 +62,19 @@ int rtp_set_remote_url(URLContext *h, const char *uri); | |||
| * The same routine is used with RDT too, even if RDT doesn't use normal | |||
| * RTP packets otherwise. | |||
| */ | |||
| void rtp_send_punch_packets(URLContext* rtp_handle); | |||
| void ff_rtp_send_punch_packets(URLContext* rtp_handle); | |||
| /** | |||
| * some rtp servers assume client is dead if they don't hear from them... | |||
| * so we send a Receiver Report to the provided ByteIO context | |||
| * (we don't have access to the rtcp handle from here) | |||
| */ | |||
| int rtp_check_and_send_back_rr(RTPDemuxContext *s, int count); | |||
| int ff_rtp_check_and_send_back_rr(RTPDemuxContext *s, int count); | |||
| /** | |||
| * Get the file handle for the RTCP socket. | |||
| */ | |||
| int rtp_get_rtcp_file_handle(URLContext *h); | |||
| int ff_rtp_get_rtcp_file_handle(URLContext *h); | |||
| // these statistics are used for rtcp receiver reports... | |||
| typedef struct { | |||
| @@ -60,7 +60,7 @@ typedef struct RTPContext { | |||
| * @return zero if no error. | |||
| */ | |||
| int rtp_set_remote_url(URLContext *h, const char *uri) | |||
| int ff_rtp_set_remote_url(URLContext *h, const char *uri) | |||
| { | |||
| RTPContext *s = h->priv_data; | |||
| char hostname[256]; | |||
| @@ -300,7 +300,7 @@ static int rtp_close(URLContext *h) | |||
| * @return the local port number | |||
| */ | |||
| int rtp_get_local_rtp_port(URLContext *h) | |||
| int ff_rtp_get_local_rtp_port(URLContext *h) | |||
| { | |||
| RTPContext *s = h->priv_data; | |||
| return ff_udp_get_local_port(s->rtp_hd); | |||
| @@ -312,7 +312,7 @@ int rtp_get_local_rtp_port(URLContext *h) | |||
| * @return the local port number | |||
| */ | |||
| int rtp_get_local_rtcp_port(URLContext *h) | |||
| int ff_rtp_get_local_rtcp_port(URLContext *h) | |||
| { | |||
| RTPContext *s = h->priv_data; | |||
| return ff_udp_get_local_port(s->rtcp_hd); | |||
| @@ -324,7 +324,7 @@ static int rtp_get_file_handle(URLContext *h) | |||
| return s->rtp_fd; | |||
| } | |||
| int rtp_get_rtcp_file_handle(URLContext *h) { | |||
| int ff_rtp_get_rtcp_file_handle(URLContext *h) { | |||
| RTPContext *s = h->priv_data; | |||
| return s->rtcp_fd; | |||
| } | |||
| @@ -501,7 +501,7 @@ void ff_rtsp_undo_setup(AVFormatContext *s) | |||
| } else if (rt->transport == RTSP_TRANSPORT_RDT && CONFIG_RTPDEC) | |||
| ff_rdt_parse_close(rtsp_st->transport_priv); | |||
| else if (CONFIG_RTPDEC) | |||
| rtp_parse_close(rtsp_st->transport_priv); | |||
| ff_rtp_parse_close(rtsp_st->transport_priv); | |||
| } | |||
| rtsp_st->transport_priv = NULL; | |||
| if (rtsp_st->rtp_handle) | |||
| @@ -558,7 +558,7 @@ static int rtsp_open_transport_ctx(AVFormatContext *s, RTSPStream *rtsp_st) | |||
| rtsp_st->dynamic_protocol_context, | |||
| rtsp_st->dynamic_handler); | |||
| else if (CONFIG_RTPDEC) | |||
| rtsp_st->transport_priv = rtp_parse_open(s, st, rtsp_st->rtp_handle, | |||
| rtsp_st->transport_priv = ff_rtp_parse_open(s, st, rtsp_st->rtp_handle, | |||
| rtsp_st->sdp_payload_type, | |||
| (rt->lower_transport == RTSP_LOWER_TRANSPORT_TCP || !s->max_delay) | |||
| ? 0 : RTP_REORDER_QUEUE_DEFAULT_SIZE); | |||
| @@ -567,9 +567,9 @@ static int rtsp_open_transport_ctx(AVFormatContext *s, RTSPStream *rtsp_st) | |||
| return AVERROR(ENOMEM); | |||
| } else if (rt->transport != RTSP_TRANSPORT_RDT && CONFIG_RTPDEC) { | |||
| if (rtsp_st->dynamic_handler) { | |||
| rtp_parse_set_dynamic_protocol(rtsp_st->transport_priv, | |||
| rtsp_st->dynamic_protocol_context, | |||
| rtsp_st->dynamic_handler); | |||
| ff_rtp_parse_set_dynamic_protocol(rtsp_st->transport_priv, | |||
| rtsp_st->dynamic_protocol_context, | |||
| rtsp_st->dynamic_handler); | |||
| } | |||
| } | |||
| @@ -1121,7 +1121,7 @@ int ff_rtsp_make_setup_request(AVFormatContext *s, const char *host, int port, | |||
| goto fail; | |||
| rtp_opened: | |||
| port = rtp_get_local_rtp_port(rtsp_st->rtp_handle); | |||
| port = ff_rtp_get_local_rtp_port(rtsp_st->rtp_handle); | |||
| have_port: | |||
| snprintf(transport, sizeof(transport) - 1, | |||
| "%s/UDP;", trans_pref); | |||
| @@ -1225,7 +1225,7 @@ int ff_rtsp_make_setup_request(AVFormatContext *s, const char *host, int port, | |||
| reply->transports[0].server_port_min, "%s", options); | |||
| } | |||
| if (!(rt->server_type == RTSP_SERVER_WMS && i > 1) && | |||
| rtp_set_remote_url(rtsp_st->rtp_handle, url) < 0) { | |||
| ff_rtp_set_remote_url(rtsp_st->rtp_handle, url) < 0) { | |||
| err = AVERROR_INVALIDDATA; | |||
| goto fail; | |||
| } | |||
| @@ -1235,7 +1235,7 @@ int ff_rtsp_make_setup_request(AVFormatContext *s, const char *host, int port, | |||
| */ | |||
| if (!(rt->server_type == RTSP_SERVER_WMS && i > 1) && s->iformat && | |||
| CONFIG_RTPDEC) | |||
| rtp_send_punch_packets(rtsp_st->rtp_handle); | |||
| ff_rtp_send_punch_packets(rtsp_st->rtp_handle); | |||
| break; | |||
| } | |||
| case RTSP_LOWER_TRANSPORT_UDP_MULTICAST: { | |||
| @@ -1569,7 +1569,7 @@ static int udp_read_packet(AVFormatContext *s, RTSPStream **prtsp_st, | |||
| if (rtsp_st->rtp_handle) { | |||
| p[max_p].fd = ffurl_get_file_handle(rtsp_st->rtp_handle); | |||
| p[max_p++].events = POLLIN; | |||
| p[max_p].fd = rtp_get_rtcp_file_handle(rtsp_st->rtp_handle); | |||
| p[max_p].fd = ff_rtp_get_rtcp_file_handle(rtsp_st->rtp_handle); | |||
| p[max_p++].events = POLLIN; | |||
| } | |||
| } | |||
| @@ -1624,7 +1624,7 @@ int ff_rtsp_fetch_packet(AVFormatContext *s, AVPacket *pkt) | |||
| if (rt->transport == RTSP_TRANSPORT_RDT) { | |||
| ret = ff_rdt_parse_packet(rt->cur_transport_priv, pkt, NULL, 0); | |||
| } else | |||
| ret = rtp_parse_packet(rt->cur_transport_priv, pkt, NULL, 0); | |||
| ret = ff_rtp_parse_packet(rt->cur_transport_priv, pkt, NULL, 0); | |||
| if (ret == 0) { | |||
| rt->cur_transport_priv = NULL; | |||
| return 0; | |||
| @@ -1672,13 +1672,13 @@ int ff_rtsp_fetch_packet(AVFormatContext *s, AVPacket *pkt) | |||
| case RTSP_LOWER_TRANSPORT_UDP_MULTICAST: | |||
| len = udp_read_packet(s, &rtsp_st, rt->recvbuf, RECVBUF_SIZE, wait_end); | |||
| if (len > 0 && rtsp_st->transport_priv && rt->transport == RTSP_TRANSPORT_RTP) | |||
| rtp_check_and_send_back_rr(rtsp_st->transport_priv, len); | |||
| ff_rtp_check_and_send_back_rr(rtsp_st->transport_priv, len); | |||
| break; | |||
| } | |||
| if (len == AVERROR(EAGAIN) && first_queue_st && | |||
| rt->transport == RTSP_TRANSPORT_RTP) { | |||
| rtsp_st = first_queue_st; | |||
| ret = rtp_parse_packet(rtsp_st->transport_priv, pkt, NULL, 0); | |||
| ret = ff_rtp_parse_packet(rtsp_st->transport_priv, pkt, NULL, 0); | |||
| goto end; | |||
| } | |||
| if (len < 0) | |||
| @@ -1688,7 +1688,7 @@ int ff_rtsp_fetch_packet(AVFormatContext *s, AVPacket *pkt) | |||
| if (rt->transport == RTSP_TRANSPORT_RDT) { | |||
| ret = ff_rdt_parse_packet(rtsp_st->transport_priv, pkt, &rt->recvbuf, len); | |||
| } else { | |||
| ret = rtp_parse_packet(rtsp_st->transport_priv, pkt, &rt->recvbuf, len); | |||
| ret = ff_rtp_parse_packet(rtsp_st->transport_priv, pkt, &rt->recvbuf, len); | |||
| if (ret < 0) { | |||
| /* Either bad packet, or a RTCP packet. Check if the | |||
| * first_rtcp_ntp_time field was initialized. */ | |||