aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libavformat/rtmpproto.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/libavformat/rtmpproto.c b/libavformat/rtmpproto.c
index 470e6fef87..55bd99033d 100644
--- a/libavformat/rtmpproto.c
+++ b/libavformat/rtmpproto.c
@@ -611,8 +611,9 @@ static int rtmp_open(URLContext *s, const char *uri, int flags)
fname = path + 1;
app[0] = '\0';
} else {
+ char *c = strchr(p + 1, ':');
fname = strchr(p + 1, '/');
- if (!fname) {
+ if (!fname || c < fname) {
fname = p + 1;
av_strlcpy(app, path + 1, p - path);
} else {
@@ -621,8 +622,9 @@ static int rtmp_open(URLContext *s, const char *uri, int flags)
}
}
}
- if (!strcmp(fname + strlen(fname) - 4, ".f4v") ||
- !strcmp(fname + strlen(fname) - 4, ".mp4")) {
+ if (!strchr(fname, ':') &&
+ (!strcmp(fname + strlen(fname) - 4, ".f4v") ||
+ !strcmp(fname + strlen(fname) - 4, ".mp4"))) {
memcpy(rt->playpath, "mp4:", 5);
} else {
rt->playpath[0] = 0;