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
