[FFmpeg-devel] [FFmpeg-cvslog] lavf/url: rewrite ff_make_absolute_url() using ff_url_decompose().
Alexander Strasser
eclipse7 at gmx.net
Wed Aug 12 21:24:10 EEST 2020
Hi all!
On 2020-08-12 14:53 +0000, Nicolas George wrote:
> ffmpeg | branch: master | Nicolas George <george at nsup.org> | Thu Jul 30 00:02:10 2020 +0200| [1201687da268c11459891a80ca1972aeaca8db88] | committer: Nicolas George
>
> lavf/url: rewrite ff_make_absolute_url() using ff_url_decompose().
>
> Also add and update some tests.
>
> Change the semantic a little, because for filesytem paths
> symlinks complicate things.
> See the comments in the code for detail.
>
> Fix trac tickets #8813 and 8814.
>
> > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=1201687da268c11459891a80ca1972aeaca8db88
> ---
>
> libavformat/tests/url.c | 60 ++++++++++-
> libavformat/url.c | 261 ++++++++++++++++++++++++------------------------
> libavformat/url.h | 4 +-
> tests/ref/fate/url | 54 +++++++++-
> 4 files changed, 245 insertions(+), 134 deletions(-)
>
[...]
> +
> + /* This is tricky.
> + For HTTP, http://server/site/page + ../media/file
> + should resolve into http://server/media/file
> + but for filesystem access, dir/playlist + ../media/file
> + should resolve into dir/../media/file
> + because dir could be a symlink, and .. points to
> + the actual parent of the target directory.
> +
> + We'll consider that URLs with an actual scheme and authority,
> + i.e. starting with scheme://, need parent dir simplification,
> + while bare paths or pseudo-URLs starting with proto: without
> + the double slash do not.
> +
> + For real URLs, the processing is similar to the algorithm described
> + here:
> + https://tools.ietf.org/html/rfc3986#section-5
> + */
Stupid question: Why do we transform relative URLs at all?
Isn't it normally supposed to work for HTTP on the server-side too?
Many clients seem to do it. Just curious why...
[...]
Alexander
More information about the ffmpeg-devel
mailing list