mirror of
https://github.com/xenia-project/FFmpeg.git
synced 2024-12-18 17:16:53 +00:00
avformat/hls: pass http offset options to http request
made with persistent connections to prevent incorrect reset of offset when demuxing HLS+FMP4 Signed-off-by: Steven Liu <lq@onvideo.cn> Signed-off-by: vectronic <hello.vectronic@gmail.com>
This commit is contained in:
parent
e81c686a95
commit
b21c5ef501
@ -594,7 +594,7 @@ static int ensure_playlist(HLSContext *c, struct playlist **pls, const char *url
|
||||
}
|
||||
|
||||
static int open_url_keepalive(AVFormatContext *s, AVIOContext **pb,
|
||||
const char *url)
|
||||
const char *url, AVDictionary **options)
|
||||
{
|
||||
#if !CONFIG_HTTP_PROTOCOL
|
||||
return AVERROR_PROTOCOL_NOT_FOUND;
|
||||
@ -603,7 +603,7 @@ static int open_url_keepalive(AVFormatContext *s, AVIOContext **pb,
|
||||
URLContext *uc = ffio_geturlcontext(*pb);
|
||||
av_assert0(uc);
|
||||
(*pb)->eof_reached = 0;
|
||||
ret = ff_http_do_new_request(uc, url);
|
||||
ret = ff_http_do_new_request2(uc, url, options);
|
||||
if (ret < 0) {
|
||||
ff_format_io_close(s, pb);
|
||||
}
|
||||
@ -656,7 +656,7 @@ static int open_url(AVFormatContext *s, AVIOContext **pb, const char *url,
|
||||
av_dict_copy(&tmp, opts2, 0);
|
||||
|
||||
if (is_http && c->http_persistent && *pb) {
|
||||
ret = open_url_keepalive(c->ctx, pb, url);
|
||||
ret = open_url_keepalive(c->ctx, pb, url, &tmp);
|
||||
if (ret == AVERROR_EXIT) {
|
||||
av_dict_free(&tmp);
|
||||
return ret;
|
||||
@ -714,7 +714,7 @@ static int parse_playlist(HLSContext *c, const char *url,
|
||||
|
||||
if (is_http && !in && c->http_persistent && c->playlist_pb) {
|
||||
in = c->playlist_pb;
|
||||
ret = open_url_keepalive(c->ctx, &c->playlist_pb, url);
|
||||
ret = open_url_keepalive(c->ctx, &c->playlist_pb, url, NULL);
|
||||
if (ret == AVERROR_EXIT) {
|
||||
return ret;
|
||||
} else if (ret < 0) {
|
||||
|
Loading…
Reference in New Issue
Block a user