@@ -569,6 +569,9 @@ static void sdp_parse_line(AVFormatContext *s, SDPParseState *s1,
get_word(buf1, sizeof(buf1), &p);
payload_type = atoi(buf1);
rtsp_st = rt->rtsp_streams[rt->nb_rtsp_streams - 1];
+ // parse only sdp_payload_type specified in 'm=' tag
+ if (rtsp_st->sdp_payload_type != payload_type)
+ return;
if (rtsp_st->stream_index >= 0) {
st = s->streams[rtsp_st->stream_index];
sdp_parse_rtpmap(s, st, rtsp_st, payload_type, p);
@@ -582,6 +585,10 @@ static void sdp_parse_line(AVFormatContext *s, SDPParseState *s1,
// let dynamic protocol handlers have a stab at the line.
get_word(buf1, sizeof(buf1), &p);
payload_type = atoi(buf1);
+ rtsp_st = rt->rtsp_streams[rt->nb_rtsp_streams - 1];
+ // parse only sdp_payload_type specified in 'm=' tag
+ if (rtsp_st->sdp_payload_type != payload_type)
+ return;
if (s1->seen_rtpmap) {
parse_fmtp(s, rt, payload_type, buf);
} else {