[FFmpeg-trac] #9071(avformat:new): HLS (EXT-X-BYTERANGE) and persistent connection how Range header is replaced ?
FFmpeg
trac at avcodec.org
Wed Jan 20 13:19:44 EET 2021
#9071: HLS (EXT-X-BYTERANGE) and persistent connection how Range header is
replaced ?
-----------------------------------+--------------------------------------
Reporter: e2iplayer | Type: defect
Status: new | Priority: important
Component: avformat | Version: git-master
Keywords: | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 1 |
-----------------------------------+--------------------------------------
Summary of the bug:
During analysis of previous reported by me bug #9070
I found that HLS segments in (EXT-X-BYTERANGE) format are handled wrongly
when persistent connection is enabled.
To be able to correctly set Range header in http.c there is need to pass
options with:
{{{
av_dict_set_int(&opts, "offset", seg->url_offset, 0);
av_dict_set_int(&opts, "end_offset", seg->url_offset + seg->size, 0);
}}}
But as you can see in hls.c if connection is re-used the "offset" and
"end_offset" are not replaced by new values.
What causes that wrong Range header will be send.
In ff_http_do_new_request only s->off will be set to 0, so if connection
will be reused second segment will be requested with Range header ==
"bytes=0-valueFromPrevRequest"
Is there something I don't understand?
--
Ticket URL: <https://trac.ffmpeg.org/ticket/9071>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list