1cabdff1aSopenharmony_ciTesting ff_url_decompose: 2cabdff1aSopenharmony_ci 3cabdff1aSopenharmony_cihttp://user:pass@ffmpeg:8080/dir/file?query#fragment => 4cabdff1aSopenharmony_ci scheme: http: 5cabdff1aSopenharmony_ci authority: // 6cabdff1aSopenharmony_ci userinfo: user:pass@ 7cabdff1aSopenharmony_ci host: ffmpeg 8cabdff1aSopenharmony_ci port: :8080 9cabdff1aSopenharmony_ci path: /dir/file 10cabdff1aSopenharmony_ci query: ?query 11cabdff1aSopenharmony_ci fragment: #fragment 12cabdff1aSopenharmony_ci 13cabdff1aSopenharmony_cihttp://ffmpeg/dir/file => 14cabdff1aSopenharmony_ci scheme: http: 15cabdff1aSopenharmony_ci authority: // 16cabdff1aSopenharmony_ci host: ffmpeg 17cabdff1aSopenharmony_ci path: /dir/file 18cabdff1aSopenharmony_ci 19cabdff1aSopenharmony_cifile:///dev/null => 20cabdff1aSopenharmony_ci scheme: file: 21cabdff1aSopenharmony_ci authority: // 22cabdff1aSopenharmony_ci path: /dev/null 23cabdff1aSopenharmony_ci 24cabdff1aSopenharmony_cifile:/dev/null => 25cabdff1aSopenharmony_ci scheme: file: 26cabdff1aSopenharmony_ci path: /dev/null 27cabdff1aSopenharmony_ci 28cabdff1aSopenharmony_cihttp://[::1]/dev/null => 29cabdff1aSopenharmony_ci scheme: http: 30cabdff1aSopenharmony_ci authority: // 31cabdff1aSopenharmony_ci host: [::1] 32cabdff1aSopenharmony_ci path: /dev/null 33cabdff1aSopenharmony_ci 34cabdff1aSopenharmony_cihttp://[::1]:8080/dev/null => 35cabdff1aSopenharmony_ci scheme: http: 36cabdff1aSopenharmony_ci authority: // 37cabdff1aSopenharmony_ci host: [::1] 38cabdff1aSopenharmony_ci port: :8080 39cabdff1aSopenharmony_ci path: /dev/null 40cabdff1aSopenharmony_ci 41cabdff1aSopenharmony_ci//ffmpeg/dev/null => 42cabdff1aSopenharmony_ci authority: // 43cabdff1aSopenharmony_ci host: ffmpeg 44cabdff1aSopenharmony_ci path: /dev/null 45cabdff1aSopenharmony_ci 46cabdff1aSopenharmony_citest?url=http://server/path => 47cabdff1aSopenharmony_ci path: test 48cabdff1aSopenharmony_ci query: ?url=http://server/path 49cabdff1aSopenharmony_ci 50cabdff1aSopenharmony_cidummy.mp4#t=0:02:00,121.5 => 51cabdff1aSopenharmony_ci path: dummy.mp4 52cabdff1aSopenharmony_ci fragment: #t=0:02:00,121.5 53cabdff1aSopenharmony_ci 54cabdff1aSopenharmony_ciTesting ff_make_absolute_url: 55cabdff1aSopenharmony_ci (null) baz => baz 56cabdff1aSopenharmony_ci /foo/bar baz => /foo/baz 57cabdff1aSopenharmony_ci /foo/bar ../baz => /foo/../baz 58cabdff1aSopenharmony_ci /foo/bar /baz => /baz 59cabdff1aSopenharmony_ci /foo/bar ../../../baz => /foo/../../../baz 60cabdff1aSopenharmony_ci http://server/foo/ baz => http://server/foo/baz 61cabdff1aSopenharmony_ci http://server/foo/bar baz => http://server/foo/baz 62cabdff1aSopenharmony_ci http://server/foo/ ../baz => http://server/baz 63cabdff1aSopenharmony_ci http://server/foo/bar/123 ../../baz => http://server/baz 64cabdff1aSopenharmony_ci http://server/foo/bar/123 /baz => http://server/baz 65cabdff1aSopenharmony_ci http://server/foo/bar/123 https://other/url => https://other/url 66cabdff1aSopenharmony_ci http://server/foo/bar?param=value/with/slashes /baz => http://server/baz 67cabdff1aSopenharmony_ci http://server/foo/bar?param&otherparam ?someparam => http://server/foo/bar?someparam 68cabdff1aSopenharmony_ci http://server/foo/bar //other/url => http://other/url 69cabdff1aSopenharmony_ci http://server/foo/bar ../../../../../other/url => http://server/other/url 70cabdff1aSopenharmony_ci http://server/foo/bar /../../../../../other/url => http://server/other/url 71cabdff1aSopenharmony_ci http://server/foo/bar /test/../../../../../other/url => http://server/other/url 72cabdff1aSopenharmony_ci http://server/foo/bar /test/../../test/../../../other/url => http://server/other/url 73cabdff1aSopenharmony_ci http://server/foo/bar file:../baz/qux => file:../baz/qux 74cabdff1aSopenharmony_ci http://server/foo//bar/ ../../ => http://server/foo/ 75cabdff1aSopenharmony_ci file:../tmp/foo ../bar/ => file:../tmp/../bar/ 76cabdff1aSopenharmony_ci file:../tmp/foo file:../bar/ => file:../bar/ 77cabdff1aSopenharmony_ci http://server/foo/bar ./ => http://server/foo/ 78cabdff1aSopenharmony_ci http://server/foo/bar .dotfile => http://server/foo/.dotfile 79cabdff1aSopenharmony_ci http://server/foo/bar ..doubledotfile => http://server/foo/..doubledotfile 80cabdff1aSopenharmony_ci http://server/foo/bar double..dotfile => http://server/foo/double..dotfile 81cabdff1aSopenharmony_ci http://server/foo/bar doubledotfile.. => http://server/foo/doubledotfile.. 82cabdff1aSopenharmony_ci file1 file2 => file2 83cabdff1aSopenharmony_ci dir/file1 file2 => dir/file2 84cabdff1aSopenharmony_ci dir/file1 ../file2 => dir/../file2 85cabdff1aSopenharmony_ci dir\file1 file2 => file2 86cabdff1aSopenharmony_ci dir\file1 file2 DOS dir\file2 87cabdff1aSopenharmony_ci \\srv\shr\file ..\..\dummy => ..\..\dummy 88cabdff1aSopenharmony_ci \\srv\shr\file ..\..\dummy DOS \\srv\shr\..\..\dummy 89cabdff1aSopenharmony_ci \\srv\shr\file dummy => dummy 90cabdff1aSopenharmony_ci \\srv\shr\file dummy DOS \\srv\shr\dummy 91cabdff1aSopenharmony_ci \\srv\shr\file \\srv2\shr2\file2 => \\srv2\shr2\file2 92cabdff1aSopenharmony_ci \\srv\shr\file d:/file => d:/file 93cabdff1aSopenharmony_ci C:\dir\a ..\file => C:..\file 94cabdff1aSopenharmony_ci C:\dir\a ..\file DOS C:\dir\..\file 95cabdff1aSopenharmony_ci C:\dir\a \\srv\shr\file => C:\\srv\shr\file 96cabdff1aSopenharmony_ci C:\dir\a \\srv\shr\file DOS \\srv\shr\file 97cabdff1aSopenharmony_ci C:\dir\a d:\file => d:\file 98cabdff1aSopenharmony_ci http://a/b \\srv\shr\file => http://a/\\srv\shr\file 99cabdff1aSopenharmony_ci http://a/b //srv/shr/file => http://srv/shr/file 100cabdff1aSopenharmony_ci http://a/b d:\file => d:\file 101cabdff1aSopenharmony_ci http://a/b C:/file => C:/file 102cabdff1aSopenharmony_ci http://a/b/c/d;p?q g:h => g:h 103cabdff1aSopenharmony_ci http://a/b/c/d;p?q g => http://a/b/c/g 104cabdff1aSopenharmony_ci http://a/b/c/d;p?q ./g => http://a/b/c/g 105cabdff1aSopenharmony_ci http://a/b/c/d;p?q g/ => http://a/b/c/g/ 106cabdff1aSopenharmony_ci http://a/b/c/d;p?q /g => http://a/g 107cabdff1aSopenharmony_ci http://a/b/c/d;p?q //g => http://g 108cabdff1aSopenharmony_ci http://a/b/c/d;p?q ?y => http://a/b/c/d;p?y 109cabdff1aSopenharmony_ci http://a/b/c/d;p?q g?y => http://a/b/c/g?y 110cabdff1aSopenharmony_ci http://a/b/c/d;p?q #s => http://a/b/c/d;p?q#s 111cabdff1aSopenharmony_ci http://a/b/c/d;p?q g#s => http://a/b/c/g#s 112cabdff1aSopenharmony_ci http://a/b/c/d;p?q g?y#s => http://a/b/c/g?y#s 113cabdff1aSopenharmony_ci http://a/b/c/d;p?q ;x => http://a/b/c/;x 114cabdff1aSopenharmony_ci http://a/b/c/d;p?q g;x => http://a/b/c/g;x 115cabdff1aSopenharmony_ci http://a/b/c/d;p?q g;x?y#s => http://a/b/c/g;x?y#s 116cabdff1aSopenharmony_ci http://a/b/c/d;p?q => http://a/b/c/d;p?q 117cabdff1aSopenharmony_ci http://a/b/c/d;p?q . => http://a/b/c/ 118cabdff1aSopenharmony_ci http://a/b/c/d;p?q ./ => http://a/b/c/ 119cabdff1aSopenharmony_ci http://a/b/c/d;p?q .. => http://a/b/ 120cabdff1aSopenharmony_ci http://a/b/c/d;p?q ../ => http://a/b/ 121cabdff1aSopenharmony_ci http://a/b/c/d;p?q ../g => http://a/b/g 122cabdff1aSopenharmony_ci http://a/b/c/d;p?q ../.. => http://a/ 123cabdff1aSopenharmony_ci http://a/b/c/d;p?q ../../ => http://a/ 124cabdff1aSopenharmony_ci http://a/b/c/d;p?q ../../g => http://a/g 125cabdff1aSopenharmony_ci http://a/b/c/d;p?q ../../../g => http://a/g 126cabdff1aSopenharmony_ci http://a/b/c/d;p?q ../../../../g => http://a/g 127cabdff1aSopenharmony_ci http://a/b/c/d;p?q /./g => http://a/g 128cabdff1aSopenharmony_ci http://a/b/c/d;p?q /../g => http://a/g 129cabdff1aSopenharmony_ci http://a/b/c/d;p?q g. => http://a/b/c/g. 130cabdff1aSopenharmony_ci http://a/b/c/d;p?q .g => http://a/b/c/.g 131cabdff1aSopenharmony_ci http://a/b/c/d;p?q g.. => http://a/b/c/g.. 132cabdff1aSopenharmony_ci http://a/b/c/d;p?q ..g => http://a/b/c/..g 133cabdff1aSopenharmony_ci http://a/b/c/d;p?q ./../g => http://a/b/g 134cabdff1aSopenharmony_ci http://a/b/c/d;p?q ./g/. => http://a/b/c/g/ 135cabdff1aSopenharmony_ci http://a/b/c/d;p?q g/./h => http://a/b/c/g/h 136cabdff1aSopenharmony_ci http://a/b/c/d;p?q g/../h => http://a/b/c/h 137cabdff1aSopenharmony_ci http://a/b/c/d;p?q g;x=1/./y => http://a/b/c/g;x=1/y 138cabdff1aSopenharmony_ci http://a/b/c/d;p?q g;x=1/../y => http://a/b/c/y 139cabdff1aSopenharmony_ci http://a/b/c/d;p?q g?y/./x => http://a/b/c/g?y/./x 140cabdff1aSopenharmony_ci http://a/b/c/d;p?q g?y/../x => http://a/b/c/g?y/../x 141cabdff1aSopenharmony_ci http://a/b/c/d;p?q g#s/./x => http://a/b/c/g#s/./x 142cabdff1aSopenharmony_ci http://a/b/c/d;p?q g#s/../x => http://a/b/c/g#s/../x 143cabdff1aSopenharmony_ci 144cabdff1aSopenharmony_ciTesting av_url_split: 145cabdff1aSopenharmony_ci/foo/bar => -1 /foo/bar 146cabdff1aSopenharmony_cihttp://server/foo/ => http server -1 /foo/ 147cabdff1aSopenharmony_cihttp://example.com/foo/bar => http example.com -1 /foo/bar 148cabdff1aSopenharmony_cihttp://user:pass@localhost:8080/foo/bar/123 => http user:pass localhost 8080 /foo/bar/123 149cabdff1aSopenharmony_cihttp://server/foo/bar?param=value/with/slashes => http server -1 /foo/bar?param=value/with/slashes 150cabdff1aSopenharmony_cihttps://1l-lh.a.net/i/1LIVE_HDS@179577/master.m3u8 => https 1l-lh.a.net -1 /i/1LIVE_HDS@179577/master.m3u8 151cabdff1aSopenharmony_ciftp://u:p%2B%2F2@ftp.pbt.com/ExportHD.mpg => ftp u:p%2B%2F2 ftp.pbt.com -1 /ExportHD.mpg 152cabdff1aSopenharmony_cihttps://key.dns.com?key_id=2&model_id=12345&&access_key= => https key.dns.com -1 ?key_id=2&model_id=12345&&access_key= 153cabdff1aSopenharmony_cihttp://example.com#tag => http example.com -1 #tag 154