diff options
-rw-r--r-- | libav/rtsp.c | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/libav/rtsp.c b/libav/rtsp.c index ba87469d60..c173cb89b7 100644 --- a/libav/rtsp.c +++ b/libav/rtsp.c @@ -984,12 +984,22 @@ static AVInputFormat rtsp_demux = { .flags = AVFMT_NOFILE, }; - -/* XXX: add mime type support */ -static int sdp_probe(AVProbeData *p) +static int sdp_probe(AVProbeData *p1) { - if (match_ext(p->filename, "sdp")) - return AVPROBE_SCORE_MAX; + const char *p; + + /* we look for a line beginning "c=IN IP4" */ + p = p1->buf; + while (*p != '\0') { + if (strstart(p, "c=IN IP4", NULL)) + return AVPROBE_SCORE_MAX / 2; + p = strchr(p, '\n'); + if (!p) + break; + p++; + if (*p == '\r') + p++; + } return 0; } |