[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