summaryrefslogtreecommitdiffstats
path: root/third_party/libwebrtc/moz-patch-stack/0078.patch
blob: b6198f6e9c9f6efc79f283a8b87001fa8e66f685 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
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