diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c index f53aadf191..19fdaf1c4b 100644 --- a/libavformat/rtsp.c +++ b/libavformat/rtsp.c @@ -198,7 +198,14 @@ static int sdp_parse_rtpmap(AVFormatContext *s, * particular servers ("RealServer Version 6.1.3.970", see issue 1658) * have a trailing space. */ get_word_sep(buf, sizeof(buf), "/ ", &p); - if (payload_type >= RTP_PT_PRIVATE) { + if (payload_type < RTP_PT_PRIVATE) { + /* We are in a standard case + * (from http://www.iana.org/assignments/rtp-parameters). */ + /* search into AVRtpPayloadTypes[] */ + codec->codec_id = ff_rtp_codec_id(buf, codec->codec_type); + } + + if (codec->codec_id == CODEC_ID_NONE) { RTPDynamicProtocolHandler *handler = ff_rtp_handler_find_by_name(buf, codec->codec_type); init_rtp_handler(handler, rtsp_st, codec); @@ -208,11 +215,6 @@ static int sdp_parse_rtpmap(AVFormatContext *s, * the format name from the rtpmap line never is passed into rtpdec. */ if (!rtsp_st->dynamic_handler) codec->codec_id = ff_rtp_codec_id(buf, codec->codec_type); - } else { - /* We are in a standard case - * (from http://www.iana.org/assignments/rtp-parameters). */ - /* search into AVRtpPayloadTypes[] */ - codec->codec_id = ff_rtp_codec_id(buf, codec->codec_type); } c = avcodec_find_decoder(codec->codec_id);