On 11/22/2013 5:03 PM, Selmeci Tamás wrote:

The idea is to use the interrupt callback functionality and interrupt
av_read_frame if it would last too long.

[...]

However, the next read operation
will not call interrupt_cb(...) any more and returns with error. And all
consecutive reads do fail. I can't interrupt the read operation.

Okay, inspecting the source code I've realized this is not really a bug, instead a feature. When a function exits with AVERROR_EXIT, it must terminate. So the interrupt is irreversible.

Is there any way I can interrupt blocking waits (e.g. on sockets) without destroying the current read context? The reason for this is that I have only a specified amount of time (10 ms) to perform reads on the stream, and if no data is available I don't want to let ffmpeg run in endless loops. Passing "timeout" in an AVDict is not really okay, since its smallest duration is 100ms (there's a poll in ff_network_wait_fd) which is far too long for me.

I'm inspecting retry_transfer_wrapper, tcp_read, ff_network_wait_fd_timeout, ffurl_read functions...

Regards,
--
Selmeci Tamás
http://www.open-st.eu/
_______________________________________________
Libav-user mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/libav-user

Reply via email to