rtsp_st->rtp_ctx = rtp_parse_open(s, st, rtsp_st->sdp_payload_type);
rtsp_st->rtp_ctx = rtp_parse_open(s, st, rtsp_st->sdp_payload_type, &rtsp_st->rtp_payload_data);
static int sdp_read_header(AVFormatContext *s,                           AVFormatParameters *ap){    RTSPState *rt = s->priv_data;    RTSPStream *rtsp_st;    int size, i, err;    char *content;    char url[1024];    AVStream *st;    /* read the whole sdp file */    /* XXX: better loading */    content = av_malloc(SDP_MAX_SIZE);    size = get_buffer(&s->pb, content, SDP_MAX_SIZE - 1);    if (size <= 0) {        av_free(content);        return AVERROR_INVALIDDATA;    }    content[size] ='\0';    sdp_parse(s, content);    av_free(content);    /* open each RTP stream */    for(i=0;i<rt->nb_rtsp_streams;i++) {        rtsp_st = rt->rtsp_streams[i];                snprintf(url, sizeof(url), "rtp://%s:%d?multicast=1&ttl=%d",                  inet_ntoa(rtsp_st->sdp_ip),                  rtsp_st->sdp_port,                 rtsp_st->sdp_ttl);        if (url_open(&rtsp_st->rtp_handle, url, URL_RDONLY) < 0) {            err = AVERROR_INVALIDDATA;            goto fail;        }        /* open the RTP context */        st = NULL;        if (rtsp_st->stream_index >= 0)            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->sdp_payload_type);        if (!rtsp_st->rtp_ctx) {            err = AVERROR_NOMEM;            goto fail;        }    }    return 0; fail:    rtsp_close_streams(rt);    return err;}