Mercurial > libavformat.hg
changeset 3978:0033b09d74b9 libavformat
Make RTPDemuxContext opaque in rtsp.c, renaming it to tx_ctx (tx=transport)
and making its type a void pointer. See discussion in "RDT/Realmedia patches
#2" thread on ML.
author | rbultje |
---|---|
date | Sat, 04 Oct 2008 04:17:59 +0000 |
parents | 1f1c4535f421 |
children | e6bf0896a019 |
files | rtsp.c |
diffstat | 1 files changed, 18 insertions(+), 18 deletions(-) [+] |
line wrap: on
line diff
--- a/rtsp.c Sat Oct 04 04:16:44 2008 +0000 +++ b/rtsp.c Sat Oct 04 04:17:59 2008 +0000 @@ -73,13 +73,13 @@ enum RTSPLowerTransport lower_transport; enum RTSPServerType server_type; char last_reply[2048]; /* XXX: allocate ? */ - RTPDemuxContext *cur_rtp; + void *cur_tx; int need_subscription; } RTSPState; typedef struct RTSPStream { URLContext *rtp_handle; /* RTP stream handle */ - RTPDemuxContext *rtp_ctx; /* RTP parse context */ + void *tx_ctx; /* RTP/RDT parse context */ int stream_index; /* corresponding stream index, if any. -1 if none (MPEG2TS case) */ int interleaved_min, interleaved_max; /* interleave ids, if TCP transport */ @@ -873,8 +873,8 @@ for(i=0;i<rt->nb_rtsp_streams;i++) { rtsp_st = rt->rtsp_streams[i]; if (rtsp_st) { - if (rtsp_st->rtp_ctx) - rtp_parse_close(rtsp_st->rtp_ctx); + if (rtsp_st->tx_ctx) + rtp_parse_close(rtsp_st->tx_ctx); if (rtsp_st->rtp_handle) url_close(rtsp_st->rtp_handle); if (rtsp_st->dynamic_handler && rtsp_st->dynamic_protocol_context) @@ -894,13 +894,13 @@ st = s->streams[rtsp_st->stream_index]; if (!st) s->ctx_flags |= AVFMTCTX_NOHEADER; - rtsp_st->rtp_ctx = rtp_parse_open(s, st, rtsp_st->rtp_handle, rtsp_st->sdp_payload_type, &rtsp_st->rtp_payload_data); + rtsp_st->tx_ctx = rtp_parse_open(s, st, rtsp_st->rtp_handle, rtsp_st->sdp_payload_type, &rtsp_st->rtp_payload_data); - if (!rtsp_st->rtp_ctx) { + if (!rtsp_st->tx_ctx) { return AVERROR(ENOMEM); } else { if(rtsp_st->dynamic_handler) { - rtp_parse_set_dynamic_protocol(rtsp_st->rtp_ctx, + rtp_parse_set_dynamic_protocol(rtsp_st->tx_ctx, rtsp_st->dynamic_protocol_context, rtsp_st->dynamic_handler); } @@ -1347,7 +1347,7 @@ ff_rdt_subscribe_rule(cmd, sizeof(cmd), i, 0); if (rt->transport == RTSP_TRANSPORT_RDT) ff_rdt_subscribe_rule2( - rt->rtsp_streams[i]->rtp_ctx, + rt->rtsp_streams[i]->tx_ctx, cmd, sizeof(cmd), i, 0); } av_strlcat(cmd, "\r\n", sizeof(cmd)); @@ -1361,18 +1361,18 @@ } /* get next frames from the same RTP packet */ - if (rt->cur_rtp) { + if (rt->cur_tx) { if (rt->transport == RTSP_TRANSPORT_RDT) - ret = ff_rdt_parse_packet(rt->cur_rtp, pkt, NULL, 0); + ret = ff_rdt_parse_packet(rt->cur_tx, pkt, NULL, 0); else - ret = rtp_parse_packet(rt->cur_rtp, pkt, NULL, 0); + ret = rtp_parse_packet(rt->cur_tx, pkt, NULL, 0); if (ret == 0) { - rt->cur_rtp = NULL; + rt->cur_tx = NULL; return 0; } else if (ret == 1) { return 0; } else { - rt->cur_rtp = NULL; + rt->cur_tx = NULL; } } @@ -1386,21 +1386,21 @@ case RTSP_LOWER_TRANSPORT_UDP: case RTSP_LOWER_TRANSPORT_UDP_MULTICAST: len = udp_read_packet(s, &rtsp_st, buf, sizeof(buf)); - if (len >=0 && rtsp_st->rtp_ctx) - rtp_check_and_send_back_rr(rtsp_st->rtp_ctx, len); + if (len >=0 && rtsp_st->tx_ctx) + rtp_check_and_send_back_rr(rtsp_st->tx_ctx, len); break; } if (len < 0) return len; if (rt->transport == RTSP_TRANSPORT_RDT) - ret = ff_rdt_parse_packet(rtsp_st->rtp_ctx, pkt, buf, len); + ret = ff_rdt_parse_packet(rtsp_st->tx_ctx, pkt, buf, len); else - ret = rtp_parse_packet(rtsp_st->rtp_ctx, pkt, buf, len); + ret = rtp_parse_packet(rtsp_st->tx_ctx, pkt, buf, len); if (ret < 0) goto redo; if (ret == 1) { /* more packets may follow, so we save the RTP context */ - rt->cur_rtp = rtsp_st->rtp_ctx; + rt->cur_tx = rtsp_st->tx_ctx; } return 0; }