Nicolas,

I’ve found existing “read-ahead logic” in avio_seek to do what I’ve implemented 
in http_stream_forward().  This is controlled by SHORT_SEEK_THRESHOLD, 
currently set to 4KB.  I proto-typed increasing this to the 256KB (matches the 
initial TCP window in my test setup) and saw the same number of reduction in 
HTTP GETs and the number of seeks!  Thanks for the heads up, this should reduce 
my patch size!

I could plumb this setting (s->short_seek_threshold) to a URL function that 
would get the desired value from HTTP/TCP.  Looking at how ffio_init_context() 
is implemented, it doesn’t appear to have access to the URLContext pointer.  
Any guidance on how I can plumb the protocol layer with aviobuf without a 
public API change?

Thanks,

Joel

> On Jan 12, 2017, at 9:29 AM, Joel Cunningham <joel.cunning...@me.com> wrote:
> 
> 
>> On Jan 12, 2017, at 6:53 AM, Nicolas George <geo...@nsup.org> wrote:
>> 
>> Le duodi 22 nivôse, an CCXXV, Joel Cunningham a écrit :
>>> This commit optimizes HTTP forward seeks by advancing the stream on
>>> the current connection when the seek amount is within the current
>>> TCP window rather than closing the connection and opening a new one.
>>> This improves performance because with TCP flow control, a window's
>>> worth of data is always either in the local socket buffer already or
>>> in-flight from the sender.
>> 
>> Thanks for the patch. You may have not noticed, but there is already a
>> similar logic in the higher-level API, aviobuf. See the code for
>> avio_seek(). I suspect it would be a better place to implement the logic
>> of avoiding seeks on slow-ish protocols.
> 
> Thanks for the feedback, I’ll take a look into how the forwarding logic could 
> be implemented in avio_seek().  I do want to be careful that this logic 
> doesn’t execute for non-HTTP or non-stream based protocols which don’t have 
> flow control/automatic buffering of data.
> 
> Joel
> 
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to