This is an automated email from the git hooks/post-receive script.

Git pushed a commit to branch master
in repository ffmpeg.

commit fa6a5807c2cc9cc25f72415dccb9b5aaebafbec8
Author:     Niklas Haas <[email protected]>
AuthorDate: Wed Jun 10 14:25:15 2026 +0200
Commit:     Niklas Haas <[email protected]>
CommitDate: Sun Jun 14 11:10:12 2026 +0200

    avformat/shared: allow AVERROR_EXIT/EAGAIN as transient failures
    
    These shouldn't really permanently invalidate the block.
    
    Sponsored-by: nxtedition AB
    Signed-off-by: Niklas Haas <[email protected]>
---
 libavformat/shared.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/libavformat/shared.c b/libavformat/shared.c
index 95c60b14eb..b08b5a8f06 100644
--- a/libavformat/shared.c
+++ b/libavformat/shared.c
@@ -745,11 +745,15 @@ retry:
         else if (ret < 0) {
             av_log(h, AV_LOG_ERROR, "Failed to read block 0x%"PRIx64": %s\n",
                    block_id, av_err2str(ret));
+            int new_state = BLOCK_FAILED;
+            if (ret == AVERROR(EAGAIN) || ret == AVERROR_EXIT)
+                new_state = BLOCK_NONE; /* transient error, allow retries */
+
             /* Try to mark block as failed; ignore errors - any mismatch
              * here will mean that either another thread already marked it
              * as failed, or successfully cached it in the meantime */
             atomic_compare_exchange_strong_explicit(&block->state, &state,
-                                                    BLOCK_FAILED,
+                                                    new_state,
                                                     memory_order_relaxed,
                                                     memory_order_relaxed);
             return ret;

_______________________________________________
ffmpeg-cvslog mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to