diff options
author | Luca Barbato <lu_zero@gentoo.org> | 2012-05-14 17:24:27 -0700 |
---|---|---|
committer | Luca Barbato <lu_zero@gentoo.org> | 2012-05-25 14:20:34 -0700 |
commit | c6eeb9b7b6bbf5d0f507cad522ed5a4f929de14f (patch) | |
tree | 9bc35b1b227dea4f1827c9c26fdfa70e542b160d | |
parent | b0970a69d11919b41c19a2901d4a7c2cf0b4ba2f (diff) | |
download | ffmpeg-c6eeb9b7b6bbf5d0f507cad522ed5a4f929de14f.tar.gz |
rtmp: fix url parsing
The application component can have a subcomponent to specify the
application instance even if it doesn't have a ":" in the playpath.
-rw-r--r-- | doc/protocols.texi | 2 | ||||
-rw-r--r-- | libavformat/rtmpproto.c | 3 |
2 files changed, 3 insertions, 2 deletions
diff --git a/doc/protocols.texi b/doc/protocols.texi index d6e12f73e3..172184e501 100644 --- a/doc/protocols.texi +++ b/doc/protocols.texi @@ -164,7 +164,7 @@ content across a TCP/IP network. The required syntax is: @example -rtmp://@var{server}[:@var{port}][/@var{app}][/@var{playpath}] +rtmp://@var{server}[:@var{port}][/@var{app}][/@var{instance}][/@var{playpath}] @end example The accepted parameters are: diff --git a/libavformat/rtmpproto.c b/libavformat/rtmpproto.c index 9af4584226..807e899f34 100644 --- a/libavformat/rtmpproto.c +++ b/libavformat/rtmpproto.c @@ -1037,9 +1037,10 @@ static int rtmp_open(URLContext *s, const char *uri, int flags) fname = next; rt->app[0] = '\0'; } else { + // make sure we do not mismatch a playpath for an application instance char *c = strchr(p + 1, ':'); fname = strchr(p + 1, '/'); - if (!fname || c < fname) { + if (!fname || (c && c < fname)) { fname = p + 1; av_strlcpy(rt->app, path + 1, p - path); } else { |