2018.03.20. 20:58 keltezéssel, Nicolas George írta:
Bodecs Bela (2018-03-20):
see the retry_transfer_wrapper() in avio.c If

ret = transfer_func(h, buf + len, size - len);

is always zero, so it gets into infinite loop.

transfer_func is unix_read in case of unix protocol.
Let me be more accurate: I am pretty sure you analysis is wrong as
recv() does not return 0 on timeout. Please tell how you came to that
conclusion.
I am sorry, but you misunderstood me. When recv() return 0 it means that no data was read.

this 0 value is returned to retry_transfer_wrapper(), then it call the unix_read again.

it is an infinite wait if data was never read again. But if user sets a timeout value,
it should quit the waiting loop after the preset time period elapsed.

this wait time checking is handled in retry_transfer_wrapper() but only if unix_read return EAGAIN

bb


Regards,



_______________________________________________
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