> 在 2019年8月8日,上午12:32,Jun Zhao <mypopy...@gmail.com> 写道: > > From: Jun Zhao <barryjz...@tencent.com> > > Add http_seekable option for HTTP partial requests, when The > EXT-X-BYTERANGE tag indicates that a Media Segment is a sub-range > of the resource identified by its URI, we can use HTTP partial > requests to get the Media Segment. > > Signed-off-by: Jun Zhao <barryjz...@tencent.com> > --- > doc/demuxers.texi | 4 ++++ > libavformat/hls.c | 9 +++++++-- > 2 files changed, 11 insertions(+), 2 deletions(-) > > diff --git a/doc/demuxers.texi b/doc/demuxers.texi > index 57d1532..fe766a5 100644 > --- a/doc/demuxers.texi > +++ b/doc/demuxers.texi > @@ -338,6 +338,10 @@ Enabled by default. > @item http_multiple > Use multiple HTTP connections for downloading HTTP segments. > Enabled by default for HTTP/1.1 servers. > + > +@item http_seekable > +Use HTTP partial requests for downloading HTTP segments. > +0 = disable, 1 = enable, -1 = auto, Default is auto. > @end table > > @section image2 > diff --git a/libavformat/hls.c b/libavformat/hls.c > index 0522445..61b6759 100644 > --- a/libavformat/hls.c > +++ b/libavformat/hls.c > @@ -207,6 +207,7 @@ typedef struct HLSContext { > int max_reload; > int http_persistent; > int http_multiple; > + int http_seekable; > AVIOContext *playlist_pb; > } HLSContext; > > @@ -1796,8 +1797,10 @@ static int hls_read_header(AVFormatContext *s) > if ((ret = save_avio_options(s)) < 0) > goto fail; > > - /* Some HLS servers don't like being sent the range header */ > - av_dict_set(&c->avio_opts, "seekable", "0", 0); > + /* XXX: Some HLS servers don't like being sent the range header, > + in this case, need to setting http_seekable = 0 to disable > + the range header */ > + av_dict_set_int(&c->avio_opts, "seekable", c->http_seekable, 0); > > if ((ret = parse_playlist(c, s->url, NULL, s->pb)) < 0) > goto fail; > @@ -2311,6 +2314,8 @@ static const AVOption hls_options[] = { > OFFSET(http_persistent), AV_OPT_TYPE_BOOL, {.i64 = 1}, 0, 1, FLAGS }, > {"http_multiple", "Use multiple HTTP connections for fetching segments", > OFFSET(http_multiple), AV_OPT_TYPE_BOOL, {.i64 = -1}, -1, 1, FLAGS}, > + {"http_seekable", "Use HTTP partial requests, 0 = disable, 1 = enable, > -1 = auto", > + OFFSET(http_seekable), AV_OPT_TYPE_BOOL, { .i64 = -1}, -1, 1, FLAGS}, > {NULL} > }; > > -- > 1.7.1 > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe”.
LGTM Thanks Steven _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".