This disallows the usage of ? and # in libavformat specific scheme options
(e.g. subfile,,start,
32815239,end,0,,:video.ts) but this change was considered
acceptable.
Signed-off-by: ruiquan.crq <caihaoning83@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
test_decompose("http://[::1]/dev/null");
test_decompose("http://[::1]:8080/dev/null");
test_decompose("//ffmpeg/dev/null");
+ test_decompose("test?url=http://server/path");
+ test_decompose("dummy.mp4#t=0:02:00,121.5");
printf("Testing ff_make_absolute_url:\n");
test(NULL, "baz");
/* scheme */
uc->scheme = cur;
- p = find_delim(":/", cur, end); /* lavf "schemes" can contain options */
+ p = find_delim(":/?#", cur, end); /* lavf "schemes" can contain options but not some RFC 3986 delimiters */
if (*p == ':')
cur = p + 1;
host: ffmpeg
path: /dev/null
+test?url=http://server/path =>
+ path: test
+ query: ?url=http://server/path
+
+dummy.mp4#t=0:02:00,121.5 =>
+ path: dummy.mp4
+ fragment: #t=0:02:00,121.5
+
Testing ff_make_absolute_url:
(null) baz => baz
/foo/bar baz => /foo/baz