Commit be94f5c1 authored by Michael Niedermayer's avatar Michael Niedermayer

Merge commit 'c9c1e00f'

* commit 'c9c1e00f':
  rtsp: Factor out fmtp parsing
Merged-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parents 1ebc77bc c9c1e00f
...@@ -313,6 +313,22 @@ static void copy_default_source_addrs(struct RTSPSource **addrs, int count, ...@@ -313,6 +313,22 @@ static void copy_default_source_addrs(struct RTSPSource **addrs, int count,
} }
} }
static void parse_fmtp(AVFormatContext *s, RTSPState *rt,
int payload_type, const char *line)
{
int i;
for (i = 0; i < rt->nb_rtsp_streams; i++) {
RTSPStream *rtsp_st = rt->rtsp_streams[i];
if (rtsp_st->sdp_payload_type == payload_type &&
rtsp_st->dynamic_handler &&
rtsp_st->dynamic_handler->parse_sdp_a_line) {
rtsp_st->dynamic_handler->parse_sdp_a_line(s, i,
rtsp_st->dynamic_protocol_context, line);
}
}
}
static void sdp_parse_line(AVFormatContext *s, SDPParseState *s1, static void sdp_parse_line(AVFormatContext *s, SDPParseState *s1,
int letter, const char *buf) int letter, const char *buf)
{ {
...@@ -320,7 +336,7 @@ static void sdp_parse_line(AVFormatContext *s, SDPParseState *s1, ...@@ -320,7 +336,7 @@ static void sdp_parse_line(AVFormatContext *s, SDPParseState *s1,
char buf1[64], st_type[64]; char buf1[64], st_type[64];
const char *p; const char *p;
enum AVMediaType codec_type; enum AVMediaType codec_type;
int payload_type, i; int payload_type;
AVStream *st; AVStream *st;
RTSPStream *rtsp_st; RTSPStream *rtsp_st;
RTSPSource *rtsp_src; RTSPSource *rtsp_src;
...@@ -498,14 +514,7 @@ static void sdp_parse_line(AVFormatContext *s, SDPParseState *s1, ...@@ -498,14 +514,7 @@ static void sdp_parse_line(AVFormatContext *s, SDPParseState *s1,
// let dynamic protocol handlers have a stab at the line. // let dynamic protocol handlers have a stab at the line.
get_word(buf1, sizeof(buf1), &p); get_word(buf1, sizeof(buf1), &p);
payload_type = atoi(buf1); payload_type = atoi(buf1);
for (i = 0; i < rt->nb_rtsp_streams; i++) { parse_fmtp(s, rt, payload_type, buf);
rtsp_st = rt->rtsp_streams[i];
if (rtsp_st->sdp_payload_type == payload_type &&
rtsp_st->dynamic_handler &&
rtsp_st->dynamic_handler->parse_sdp_a_line)
rtsp_st->dynamic_handler->parse_sdp_a_line(s, i,
rtsp_st->dynamic_protocol_context, buf);
}
} else if (av_strstart(p, "range:", &p)) { } else if (av_strstart(p, "range:", &p)) {
int64_t start, end; int64_t start, end;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment