summaryrefslogtreecommitdiffstats
path: root/third_party/libwebrtc/moz-patch-stack/0078.patch
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/libwebrtc/moz-patch-stack/0078.patch')
-rw-r--r--third_party/libwebrtc/moz-patch-stack/0078.patch60
1 files changed, 60 insertions, 0 deletions
diff --git a/third_party/libwebrtc/moz-patch-stack/0078.patch b/third_party/libwebrtc/moz-patch-stack/0078.patch
new file mode 100644
index 0000000000..b6198f6e9c
--- /dev/null
+++ b/third_party/libwebrtc/moz-patch-stack/0078.patch
@@ -0,0 +1,60 @@
+From: Andreas Pehrson <apehrson@mozilla.com>
+Date: Wed, 10 May 2023 07:06:00 +0000
+Subject: Bug 1810949 - cherry-pick upstream libwebrtc commit 91d5fc2ed6.
+ r=webrtc-reviewers,mjf
+
+Upstream commit: https://webrtc.googlesource.com/src/+/91d5fc2ed6ef347d90182868320267d45cf9525b
+ Support more pixel formats in v4l2 camera backend
+
+ These were tested with gstreamer and v4l2loopback, example setup:
+ $ sudo v4l2loopback-ctl add -n BGRA 10
+ $ gst-launch-1.0 videotestsrc pattern=smpte-rp-219 ! \
+ video/x-raw,format=BGRA ! v4l2sink device=/dev/video10 > /dev/null &
+
+ Then conversion was confirmed with video_loopback:
+ $ ./video_loopback --capture_device_index=3 --logs 2>&1 | grep -i \
+ capture
+
+ Bug: webrtc:14830
+ Change-Id: I35c8e453cf7f9a2923935b0ad82477a3144e8c12
+ Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/291532
+ Commit-Queue: Stefan Holmer <stefan@webrtc.org>
+ Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
+ Reviewed-by: Stefan Holmer <stefan@webrtc.org>
+ Cr-Commit-Position: refs/heads/main@{#39979}
+
+Differential Revision: https://phabricator.services.mozilla.com/D177232
+Mercurial Revision: https://hg.mozilla.org/mozilla-central/rev/92dc582fdcf3a2fdb3fcdbcd96080d081de8f8d5
+---
+ .../video_capture/linux/device_info_v4l2.cc | 18 ++++++++++++++++++
+ 1 file changed, 18 insertions(+)
+
+diff --git a/modules/video_capture/linux/device_info_v4l2.cc b/modules/video_capture/linux/device_info_v4l2.cc
+index 04caaea592..abd2886f85 100644
+--- a/modules/video_capture/linux/device_info_v4l2.cc
++++ b/modules/video_capture/linux/device_info_v4l2.cc
+@@ -57,6 +57,24 @@
+ #define BUF_LEN ( 1024 * ( EVENT_SIZE + 16 ) )
+ #endif
+
++// These defines are here to support building on kernel 3.16 which some
++// downstream projects, e.g. Firefox, use.
++// TODO(apehrson): Remove them and their undefs when no longer needed.
++#ifndef V4L2_PIX_FMT_ABGR32
++#define ABGR32_OVERRIDE 1
++#define V4L2_PIX_FMT_ABGR32 v4l2_fourcc('A', 'R', '2', '4')
++#endif
++
++#ifndef V4L2_PIX_FMT_ARGB32
++#define ARGB32_OVERRIDE 1
++#define V4L2_PIX_FMT_ARGB32 v4l2_fourcc('B', 'A', '2', '4')
++#endif
++
++#ifndef V4L2_PIX_FMT_RGBA32
++#define RGBA32_OVERRIDE 1
++#define V4L2_PIX_FMT_RGBA32 v4l2_fourcc('A', 'B', '2', '4')
++#endif
++
+ namespace webrtc {
+ namespace videocapturemodule {
+ #ifdef WEBRTC_LINUX