[FFmpeg-devel] [PATCH] avformat/utils.c: allows av_read_frame to return after a timeout period.
ggarra13 at gmail.com
ggarra13 at gmail.com
Sun Dec 1 13:39:52 EET 2019
From: Gonzalo Garramuño <ggarra13 at gmail.com>
Moved the check inside and at the end of the if (pktl) as per Michael Niedermayer's suggestion.
This patch is based on one from Blake Senftner ( bsenftner at earthlink.net ).
The hanging in av_read_frame can be reproduced with an rtmp stream that is aborted midway and ffplay (for example) playing that stream.
---
libavformat/utils.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/libavformat/utils.c b/libavformat/utils.c
index 8196442dd1..653918d5a5 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -1836,6 +1836,11 @@ int av_read_frame(AVFormatContext *s, AVPacket *pkt)
&s->internal->packet_buffer_end, pkt);
goto return_packet;
}
+
+ if (ff_check_interrupt(&s->interrupt_callback)) {
+ av_log(s, AV_LOG_DEBUG, "interrupted\n");
+ return AVERROR_EXIT;
+ }
}
ret = read_frame_internal(s, pkt);
--
2.17.0
More information about the ffmpeg-devel
mailing list