[FFmpeg-devel] [PATCH] avformat/hlsenc: hold old key info when append list

Steven Liu lingjiujianke at gmail.com
Fri Apr 28 05:21:23 EEST 2017


2017-04-26 7:30 GMT+08:00 Steven Liu <lq at chinaffmpeg.org>:

> fix ticket id: #6353
>
> Signed-off-by: Steven Liu <lq at chinaffmpeg.org>
> ---
>  libavformat/hlsenc.c | 24 ++++++++++++++++++++++++
>  1 file changed, 24 insertions(+)
>
> diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c
> index 27c8e3355d..3ec0f330fb 100644
> --- a/libavformat/hlsenc.c
> +++ b/libavformat/hlsenc.c
> @@ -810,6 +810,7 @@ static int parse_playlist(AVFormatContext *s, const
> char *url)
>      int64_t new_start_pos;
>      char line[1024];
>      const char *ptr;
> +    const char *end;
>
>      if ((ret = ffio_open_whitelist(&in, url, AVIO_FLAG_READ,
>                                     &s->interrupt_callback, NULL,
> @@ -842,6 +843,29 @@ static int parse_playlist(AVFormatContext *s, const
> char *url)
>          } else if (av_strstart(line, "#EXTINF:", &ptr)) {
>              is_segment = 1;
>              hls->duration = atof(ptr);
> +        } else if (av_stristart(line, "#EXT-X-KEY:", &ptr)) {
> +            ptr = av_stristr(line, "URI=\"");
> +            if (ptr) {
> +                ptr += strlen("URI=\"");
> +                end = av_stristr(ptr, ",");
> +                if (end) {
> +                    av_strlcpy(hls->key_uri, ptr, end - ptr);
> +                } else {
> +                    av_strlcpy(hls->key_uri, ptr, sizeof(hls->key_uri));
> +                }
> +            }
> +
> +            ptr = av_stristr(line, "IV=0x");
> +            if (ptr) {
> +                ptr += strlen("IV=0x");
> +                end = av_stristr(ptr, ",");
> +                if (end) {
> +                    av_strlcpy(hls->iv_string, ptr, end - ptr);
> +                } else {
> +                    av_strlcpy(hls->iv_string, ptr,
> sizeof(hls->iv_string));
> +                }
> +            }
> +
>          } else if (av_strstart(line, "#", NULL)) {
>              continue;
>          } else if (line[0]) {
> --
> 2.11.0 (Apple Git-81)
>
>
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
Applied!


Thanks


More information about the ffmpeg-devel mailing list