Browse Source

chore: cherry-pick e481fc655a62 from ffmpeg (#34559)

Jeremy Rose 2 years ago
parent
commit
44fee2f8eb
2 changed files with 29 additions and 0 deletions
  1. 1 0
      patches/ffmpeg/.patches
  2. 28 0
      patches/ffmpeg/cherry-pick-e481fc655a62.patch

+ 1 - 0
patches/ffmpeg/.patches

@@ -0,0 +1 @@
+cherry-pick-e481fc655a62.patch

+ 28 - 0
patches/ffmpeg/cherry-pick-e481fc655a62.patch

@@ -0,0 +1,28 @@
+From e481fc655a6287e657a88e8c2bcd6f411d254d70 Mon Sep 17 00:00:00 2001
+From: Dan Sanders <[email protected]>
+Date: Tue, 03 May 2022 14:39:37 -0700
+Subject: [PATCH] Do not parse late SEI messages during decoding.
+
+Bug: 1306751
+Change-Id: I2088b9ff89bd8eee8ab82675258af302d9bfccf9
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/third_party/ffmpeg/+/3625832
+Reviewed-by: Dale Curtis <[email protected]>
+---
+
+diff --git a/libavcodec/h264dec.c b/libavcodec/h264dec.c
+index 5ef2550..1e000ca 100644
+--- a/libavcodec/h264dec.c
++++ b/libavcodec/h264dec.c
+@@ -672,6 +672,12 @@
+             avpriv_request_sample(avctx, "data partitioning");
+             break;
+         case H264_NAL_SEI:
++            // If setup is finished, threads can contend over the contents of
++            // the active SEI.
++            if (h->setup_finished) {
++              av_log(h->avctx, AV_LOG_DEBUG, "Late SEI\n");
++              break;
++            }
+             ret = ff_h264_sei_decode(&h->sei, &nal->gb, &h->ps, avctx);
+             h->has_recovery_point = h->has_recovery_point || h->sei.recovery_point.recovery_frame_cnt != -1;
+             if (avctx->debug & FF_DEBUG_GREEN_MD)