[FFmpeg-devel] [PATCH] avformat/hls: copy rw_timeout from parent to child AVIOContexts.

Steven Liu lq at chinaffmpeg.org
Tue Apr 3 08:15:39 EEST 2018



> On 3 Apr 2018, at 12:33, Richard Shaffer <rshaffer at tunein.com> wrote:
> 
> On Mon, Apr 2, 2018 at 8:31 PM, Steven Liu <lq at chinaffmpeg.org> wrote:
>> 
>> 
>>> On 3 Apr 2018, at 09:12, rshaffer at tunein.com wrote:
>>> 
>>> From: Richard Shaffer <rshaffer at tunein.com>
>>> 
>>> The rw_timeout option is currently not applied when opening media playlist,
>>> segment, or encryption key URLs. This can cause the HLS demuxer to block
>>> indefinitely, even when the rw_timeout option has been specified. This change
>>> simply enables carrying over the rw_timeout option when the demuxer opens these
>>> URLs.
>>> ---
>>> libavformat/hls.c | 2 +-
>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>> 
>>> diff --git a/libavformat/hls.c b/libavformat/hls.c
>>> index c578bf86e3..6663244ddf 100644
>>> --- a/libavformat/hls.c
>>> +++ b/libavformat/hls.c
>>> @@ -1661,7 +1661,7 @@ static int save_avio_options(AVFormatContext *s)
>>> {
>>>    HLSContext *c = s->priv_data;
>>>    static const char * const opts[] = {
>>> -        "headers", "http_proxy", "user_agent", "user-agent", "cookies", "referer", NULL };
>>> +        "headers", "http_proxy", "user_agent", "user-agent", "cookies", "referer", "rw_timeout", NULL };
>> This table is used for http header.
>> You could add the option into hls_options.
> 
> Thanks for looking at the change. While the options currently in the
> table are related to HTTP and rw_timeout is more general, I'm not
> aware of a reason not to preserve the rw_timeout option here as well.
> It seems unnecessary to define another HLS-specific option for
> rw_timeout when the existing option exists and does what is intended.
> I'm not sure whether you're objecting to the change and/or have a
> different suggestion. Do you mind elaborating on your comment?
Is the rw_timeout in to HTTP RFC? If yes, this is ok, If not, i think that is a ffmpeg option , not a http header content.
> 
>>>    const char * const * opt = opts;
>>>    uint8_t *buf;
>>>    int ret = 0;
>>> --
>>> 2.15.1 (Apple Git-101)
>>> 
>>> _______________________________________________
>>> ffmpeg-devel mailing list
>>> ffmpeg-devel at ffmpeg.org
>>> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>> 
>> Thanks
>> Steven
>> 
>> 
>> 
>> 
>> 
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Thanks
Steven







More information about the ffmpeg-devel mailing list