diff mbox series

[FFmpeg-devel,38/39] lavc/hevcdec: do not unref current frame on frame_end() failure

Message ID 20240607130135.9088-38-anton@khirnov.net
State New
Headers show
Series [FFmpeg-devel,01/39] lavc/hevcdec: do not free SliceHeader arrays in pic_arrays_free() | expand

Commit Message

Anton Khirnov June 7, 2024, 1:01 p.m. UTC
It's a race with frame threading.
---
 libavcodec/hevc/hevcdec.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)
diff mbox series

Patch

diff --git a/libavcodec/hevc/hevcdec.c b/libavcodec/hevc/hevcdec.c
index a8c2172674..5fc55d5de9 100644
--- a/libavcodec/hevc/hevcdec.c
+++ b/libavcodec/hevc/hevcdec.c
@@ -3135,17 +3135,14 @@  static int hevc_frame_end(HEVCContext *s)
         if (ret < 0) {
             av_log(s->avctx, AV_LOG_ERROR,
                    "hardware accelerator failed to decode picture\n");
-            ff_hevc_unref_frame(s->cur_frame, ~0);
             return ret;
         }
     } else {
         if (s->avctx->err_recognition & AV_EF_CRCCHECK &&
             s->sei.picture_hash.is_md5) {
             ret = verify_md5(s, s->cur_frame->f);
-            if (ret < 0 && s->avctx->err_recognition & AV_EF_EXPLODE) {
-                ff_hevc_unref_frame(s->cur_frame, ~0);
+            if (ret < 0 && s->avctx->err_recognition & AV_EF_EXPLODE)
                 return ret;
-            }
         }
     }
     s->sei.picture_hash.is_md5 = 0;