On Thu, 21 Nov 2013 11:57:10 +0200, Martin Storsjö <[email protected]> wrote:
> This allows both the main playlist itself as well as the variant
> playlists to handle redirects combined with relative urls.
> ---
>  libavformat/hls.c |    5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/libavformat/hls.c b/libavformat/hls.c
> index ea16f8a..14fdf8f 100644
> --- a/libavformat/hls.c
> +++ b/libavformat/hls.c
> @@ -211,6 +211,7 @@ static int parse_playlist(HLSContext *c, const char *url,
>      char line[1024];
>      const char *ptr;
>      int close_in = 0;
> +    uint8_t *new_url = NULL;
>  
>      if (!in) {
>          close_in = 1;
> @@ -219,6 +220,9 @@ static int parse_playlist(HLSContext *c, const char *url,
>              return ret;
>      }
>  
> +    if (av_opt_get(in, "location", AV_OPT_SEARCH_CHILDREN, &new_url) >= 0)
> +        url = new_url;
> +
>      read_chomp_line(in, line, sizeof(line));
>      if (strcmp(line, "#EXTM3U")) {
>          ret = AVERROR_INVALIDDATA;
> @@ -319,6 +323,7 @@ static int parse_playlist(HLSContext *c, const char *url,
>          var->last_load_time = av_gettime();
>  
>  fail:
> +    av_free(new_url);
>      if (close_in)
>          avio_close(in);
>      return ret;
> -- 
> 1.7.9.4
> 

Sneaky.

The patch looks ok (assuming you tested it and it works).

-- 
Anton Khirnov
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to