2017-05-06 0:50 GMT+08:00 Steven Liu <l...@chinaffmpeg.org>: > refer to: https://developer.apple.com/library/content/technotes/ > tn2288/_index.html > > support to parse the EXT-X-KEY span multiple lines: > #EXTM3U > #EXT-X-VERSION:3 > #EXT-X-TARGETDURATION:10 > #EXT-X-MEDIA-SEQUENCE:0 > #EXT-X-KEY:METHOD=AES-128,URI="/file.key", \ > IV=0x498c8325965f907960e3d94d20c4d138 > #EXTINF:10.000000, > out0.ts > #EXTINF:8.640000, > out1.ts > #EXTINF:9.160000, > out2.ts > > Reported-by: Aaron Levinson <alevi...@aracnet.com> > Signed-off-by: Steven Liu <l...@chinaffmpeg.org> > --- > libavformat/hlsenc.c | 21 +++++++++++++++++++-- > 1 files changed, 19 insertions(+), 2 deletions(-) > > diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c > index 221089c..c167624 100644 > --- a/libavformat/hlsenc.c > +++ b/libavformat/hlsenc.c > @@ -500,10 +500,27 @@ static int hls_encryption_start(AVFormatContext *s) > > static int read_chomp_line(AVIOContext *s, char *buf, int maxlen) > { > - int len = ff_get_line(s, buf, maxlen); > + int len = 0; > + int total_len = 0; > + > +re_get_line: > + if (maxlen > total_len) { > + len = ff_get_line(s, buf, maxlen - total_len); > + } else { > + av_log(s, AV_LOG_WARNING, "The tag is too long, context only can > get %s\n", buf); > + return maxlen; > + } > while (len > 0 && av_isspace(buf[len - 1])) > buf[--len] = '\0'; > - return len; > + > + if (buf[len - 1] == '\\') { > + buf += len - 1; > + total_len += len - 1; > + goto re_get_line; > + } > + > + total_len += len; > + return total_len; > } > > static int hls_mux_init(AVFormatContext *s) > -- > 1.7.1 > > > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel >
Hi Aaron Levinson What about this one? _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel