diff options
Diffstat (limited to 'third_party/libwebrtc/moz-patch-stack/0094.patch')
-rw-r--r-- | third_party/libwebrtc/moz-patch-stack/0094.patch | 55 |
1 files changed, 34 insertions, 21 deletions
diff --git a/third_party/libwebrtc/moz-patch-stack/0094.patch b/third_party/libwebrtc/moz-patch-stack/0094.patch index 36e7778d1a..3b8608fa76 100644 --- a/third_party/libwebrtc/moz-patch-stack/0094.patch +++ b/third_party/libwebrtc/moz-patch-stack/0094.patch @@ -1,28 +1,41 @@ From: Andreas Pehrson <apehrson@mozilla.com> -Date: Wed, 18 Oct 2023 17:25:00 +0000 -Subject: Bug 1857862 - (fix-32a8169a65) Don't call non-constexpr - RTC_CHECK_NOTREACHED from constexpr VideoFrameTypeToString under gcc-8. - r=webrtc-reviewers,mjf +Date: Wed, 18 Oct 2023 17:21:00 +0000 +Subject: Bug 1859786 - Fix lock annotation warning in Mozilla-specific edit on + top of video_capture_impl.cc. r=webrtc-reviewers,mjf -Differential Revision: https://phabricator.services.mozilla.com/D191308 -Mercurial Revision: https://hg.mozilla.org/mozilla-central/rev/8a4449ba24fa3192b44863ed8ba96f6f94a6e88d +The annotations were added in M116: +https://hg.mozilla.org/mozilla-central/rev/9cd372df013948ad822ae936752d725d77474fb5 + +Note that this was never unsafe, since _dataCallbacks is only written on the +same thread that we are patching here. This patch however, adds helpful static +analysis. + +Differential Revision: https://phabricator.services.mozilla.com/D191301 +Mercurial Revision: https://hg.mozilla.org/mozilla-central/rev/56ff441b644400f09d2d0453dbd8991ea25db7b1 --- - api/video/video_frame_type.h | 4 ++++ - 1 file changed, 4 insertions(+) + modules/video_capture/video_capture_impl.cc | 11 +++++++---- + 1 file changed, 7 insertions(+), 4 deletions(-) -diff --git a/api/video/video_frame_type.h b/api/video/video_frame_type.h -index 9079829ff8..3665a80cd8 100644 ---- a/api/video/video_frame_type.h -+++ b/api/video/video_frame_type.h -@@ -34,7 +34,11 @@ inline constexpr absl::string_view VideoFrameTypeToString( - case VideoFrameType::kVideoFrameDelta: - return "delta"; +diff --git a/modules/video_capture/video_capture_impl.cc b/modules/video_capture/video_capture_impl.cc +index 02404697ad..1bddaf824d 100644 +--- a/modules/video_capture/video_capture_impl.cc ++++ b/modules/video_capture/video_capture_impl.cc +@@ -119,11 +119,14 @@ void VideoCaptureImpl::DeRegisterCaptureDataCallback( + } + + int32_t VideoCaptureImpl::StopCaptureIfAllClientsClose() { +- if (_dataCallBacks.empty()) { +- return StopCapture(); +- } else { +- return 0; ++ RTC_DCHECK_RUN_ON(&api_checker_); ++ { ++ MutexLock lock(&api_lock_); ++ if (!_dataCallBacks.empty()) { ++ return 0; ++ } } -+// Mozilla: -+// gcc-8 complains about a constexpr function calling a non-constexpr ditto. -+#if defined(__clang__) || (defined(__GNUC__) && __GNUC__ >= 9) - RTC_CHECK_NOTREACHED(); -+#endif - return ""; ++ return StopCapture(); } + int32_t VideoCaptureImpl::DeliverCapturedFrame(VideoFrame& captureFrame) { |