diff --git a/libavformat/rdt.c b/libavformat/rdt.c index b696b329da..645b5806cd 100644 --- a/libavformat/rdt.c +++ b/libavformat/rdt.c @@ -45,7 +45,7 @@ struct RDTDemuxContext { }; RDTDemuxContext * -ff_rdt_parse_open(AVFormatContext *ic, AVStream *st, +ff_rdt_parse_open(AVFormatContext *ic, int first_stream_of_set_idx, void *priv_data, RTPDynamicProtocolHandler *handler) { RDTDemuxContext *s = av_mallocz(sizeof(RDTDemuxContext)); @@ -53,7 +53,7 @@ ff_rdt_parse_open(AVFormatContext *ic, AVStream *st, return NULL; s->ic = ic; - s->st = st; + s->st = ic->streams[first_stream_of_set_idx]; s->prev_set_id = -1; s->prev_timestamp = -1; s->parse_packet = handler->parse_packet; diff --git a/libavformat/rdt.h b/libavformat/rdt.h index 92c33d5c58..63e4029bc7 100644 --- a/libavformat/rdt.h +++ b/libavformat/rdt.h @@ -28,7 +28,8 @@ typedef struct RDTDemuxContext RDTDemuxContext; -RDTDemuxContext *ff_rdt_parse_open(AVFormatContext *ic, AVStream *st, +RDTDemuxContext *ff_rdt_parse_open(AVFormatContext *ic, + int first_stream_of_set_idx, void *priv_data, RTPDynamicProtocolHandler *handler); void ff_rdt_parse_close(RDTDemuxContext *s); diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c index 4db95ee8a0..33f0e5539e 100644 --- a/libavformat/rtsp.c +++ b/libavformat/rtsp.c @@ -901,7 +901,7 @@ rtsp_open_transport_ctx(AVFormatContext *s, RTSPStream *rtsp_st) s->ctx_flags |= AVFMTCTX_NOHEADER; if (rt->transport == RTSP_TRANSPORT_RDT) - rtsp_st->tx_ctx = ff_rdt_parse_open(s, st, + rtsp_st->tx_ctx = ff_rdt_parse_open(s, st->index, rtsp_st->dynamic_protocol_context, rtsp_st->dynamic_handler); else