summaryrefslogtreecommitdiffstats
path: root/third_party/libwebrtc/moz-patch-stack/0088.patch
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/libwebrtc/moz-patch-stack/0088.patch')
-rw-r--r--third_party/libwebrtc/moz-patch-stack/0088.patch64
1 files changed, 32 insertions, 32 deletions
diff --git a/third_party/libwebrtc/moz-patch-stack/0088.patch b/third_party/libwebrtc/moz-patch-stack/0088.patch
index d969596186..1a2541f93f 100644
--- a/third_party/libwebrtc/moz-patch-stack/0088.patch
+++ b/third_party/libwebrtc/moz-patch-stack/0088.patch
@@ -1,38 +1,38 @@
-From: Byron Campen <docfaraday@gmail.com>
-Date: Thu, 20 Jul 2023 14:24:00 +0000
-Subject: Bug 1838080: Ensure that last ref to transformation_queue_ is not
- released on itself. r=pehrsons,webrtc-reviewers
+From: stransky <stransky@redhat.com>
+Date: Tue, 29 Aug 2023 12:43:00 +0000
+Subject: Bug 1821629 [DMABuf] Don't use DMABuf if it's disabled by Firefox gfx
+ config r=ng,webrtc-reviewers
-Differential Revision: https://phabricator.services.mozilla.com/D181699
-Mercurial Revision: https://hg.mozilla.org/mozilla-central/rev/91d9e8b6a5c430a73561ffd2330865f04fcb1a6d
+Differential Revision: https://phabricator.services.mozilla.com/D172224
+Mercurial Revision: https://hg.mozilla.org/mozilla-central/rev/158a888cad8869a2f0026fa7cfaaa13ecbfcf2ed
---
- .../rtp_sender_video_frame_transformer_delegate.cc | 9 +++++++++
- 1 file changed, 9 insertions(+)
+ .../linux/wayland/shared_screencast_stream.cc | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
-diff --git a/modules/rtp_rtcp/source/rtp_sender_video_frame_transformer_delegate.cc b/modules/rtp_rtcp/source/rtp_sender_video_frame_transformer_delegate.cc
-index f24c91ae35..9d7c58d19a 100644
---- a/modules/rtp_rtcp/source/rtp_sender_video_frame_transformer_delegate.cc
-+++ b/modules/rtp_rtcp/source/rtp_sender_video_frame_transformer_delegate.cc
-@@ -18,6 +18,7 @@
- #include "api/task_queue/task_queue_factory.h"
- #include "modules/rtp_rtcp/source/rtp_descriptor_authentication.h"
- #include "rtc_base/checks.h"
-+#include "rtc_base/event.h"
+diff --git a/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc b/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc
+index 0c26e7a7d5..22aa355e44 100644
+--- a/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc
++++ b/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc
+@@ -28,6 +28,13 @@
+ #include "rtc_base/synchronization/mutex.h"
+ #include "rtc_base/time_utils.h"
++// Wrapper for gfxVars::UseDMABuf() as we can't include gfxVars here.
++// We don't want to use dmabuf of known broken systems.
++// See FEATURE_DMABUF for details.
++namespace mozilla::gfx {
++bool IsDMABufEnabled();
++}
++
namespace webrtc {
- namespace {
-@@ -232,6 +233,14 @@ void RTPSenderVideoFrameTransformerDelegate::Reset() {
- MutexLock lock(&sender_lock_);
- sender_ = nullptr;
- }
-+ // Wait until all pending tasks are executed, to ensure that the last ref
-+ // standing is not on the transformation queue.
-+ rtc::Event flush;
-+ transformation_queue_->PostTask([this, &flush]() {
-+ RTC_DCHECK_RUN_ON(transformation_queue_.get());
-+ flush.Set();
-+ });
-+ flush.Wait(rtc::Event::kForever);
- }
- std::unique_ptr<TransformableVideoFrameInterface> CloneSenderVideoFrame(
+ const int kBytesPerPixel = 4;
+@@ -294,7 +301,7 @@ void SharedScreenCastStreamPrivate::OnStreamParamChanged(
+ that->modifier_ =
+ has_modifier ? that->spa_video_format_.modifier : DRM_FORMAT_MOD_INVALID;
+ std::vector<const spa_pod*> params;
+- const int buffer_types = has_modifier
++ const int buffer_types = has_modifier && mozilla::gfx::IsDMABufEnabled()
+ ? (1 << SPA_DATA_DmaBuf) | (1 << SPA_DATA_MemFd)
+ : (1 << SPA_DATA_MemFd);
+