[FFmpeg-devel] [PATCH] avformat/hls: copy rw_timeout from parent to child AVIOContexts.
Liu Steven
lq at chinaffmpeg.org
Wed Apr 11 02:00:49 EEST 2018
> 在 2018年4月11日,上午3:14,Richard Shaffer <rshaffer at tunein.com> 写道:
>
> On Tue, Apr 3, 2018 at 5:11 PM, Steven Liu <lingjiujianke at gmail.com> wrote:
>
>> 2018-04-04 7:53 GMT+08:00 Steven Liu <lingjiujianke at gmail.com>:
>>>>>
>>>>> Look at the code:
>>>>>
>>>>> 205 char *referer; ///< holds HTTP referer
>> set
>>>>> as an AVOption to the HTTP protocol context
>>>>> 206 char *user_agent; ///< holds HTTP user
>> agent
>>>>> set as an AVOption to the HTTP protocol context
>>>>> 207 char *cookies; ///< holds HTTP cookie
>>>>> values set in either the initial response or as an AVOption to the HTTP
>>>>> protocol context
>>>>> 208 char *headers; ///< holds HTTP headers
>> set
>>>>> as an AVOption to the HTTP protocol context
>>>>> 209 char *http_proxy; ///< holds the address of
>>>>> the HTTP proxy server
>>>>>
>>>>> There have some comment for the options.
>>>>> and reference the code in: hls_read_header / open_input and use the
>>>>> options.
>>>>>
>>>>>
>>>> That's pretty clear. What I was asking is why the options are stored
>> both
>>>> in these fields as well as avio_opts, and this doesn't answer my
>> question.
>>>> I was also asking why you object to storing the timeout option in
>>>> avio_opts, but I'm not understanding the logic in your responses.
>>>
>>> no logic problem, just that option be used to HTTP, is that ok?
>>
>
> This is a logic problem for me, because I'm not understanding your logic.
> What is the reason that avio_opts should only be used for HTTP options?
>
>
>>>
>>> BTW, how should i reproduce the problem you said?
>>
>
> If you pass the rw_timeout option to either the command-line or to
> avformat_open_input, it will be applied only to the URL passed on the
> command line or to the function. When the HLS demuxer tries to open other
> URLs, such as keying URIs, media playlists or segments, it will not apply
> the rw_timeout option. As a result, if we fail to receive data from the
> remote server, it can block the process instead of returning the expected
> AVERROR(ETIMEDOUT) error.
>
>
>>>
>>> "
>>> 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.
>>> "
>>
>> So i think add option timeout to do it maybe better than this way. you
>> can find another formats do it like this.
>>
>
> I think the HLS demuxer is pretty unique. Except for dash, I don't know
> which other demuxers have to open additional avio to do their work. If
> there is an example you can show me that illustrates your point, that would
> be appreciated.
>
>
>>>
>>>>
>>>>
>> _______________________________________________
>> ffmpeg-devel mailing list
>> ffmpeg-devel at ffmpeg.org
>> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>
>
> Hi Steven,
>
> I apologize for the late response. I have been traveling.
>
> I understand that you might be busy, and that English is not everyone's
> first language. However, if you could take the time to give a more thorough
> response, I'd really appreciate it. It's a little bit frustrating for me:
> I'm asking why avio_opts needs to be restricted to HTTP options, and the
> answer I seem to keep getting back is "because it's for HTTP options." That
> answer isn't very satisfying, and doesn't help me understand /why/ you
> think it should only be used for HTTP options. It may be that you have a
> good reason, but if I can't understand what it is, I'm not going to be able
> to provide a better fix.
>
> I can't force anyone to accept my changes or provide more detailed
> feedback. However, if we can't understand each other, then at some point I
> will have to give up. I'll apply a patch that fixes my problem to a local
> fork of ffmpeg. Other people outside of my company won't benefit from the
> fix. My company will also have to maintain our own copy of ffmpeg. This
> could make it less likely for us to share our changes with the community,
> and it will also make it harder for us to benefit from improvements and
> fixes to ffmpeg. I don't want to do that, because nobody wins in that
> scenario. That is why I'm asking for your help to understand your objection
> and suggestion.
Sorry for my poor English, English is not my first language, thanks, you can contribute.
After the last patch you submit(https://patchwork.ffmpeg.org/patch/8378/), i think i can understand this patch.
>
> Thanks,
>
> -Richard
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
More information about the ffmpeg-devel
mailing list