www/qt5-webengine: Enable support for WebRTC and video capture devices
When accessing video capture devices warnings like below are emitted [2]: [40533:463527936:0420/214650.072475:ERROR:create_video_capture_device_factory.cc(58)] Not implemented reached in std::unique_ptr<VideoCaptureDeviceFactory> media::(anonymous namespace)::CreatePlatformSpecificVideoCaptureDeviceFactory(scoped_refptr<base::SingleThreadTaskRunner>) Also websites that want to access the camera, microphone, etc. exhibit broken behavior, e.g. no dialogs to permit access on the desired capture devices come up. [1] Thus add the related patches from www/chromium [2] that enable support for video capture devices and explicitly activate the WebRTC feature. [1] PR: 236915 [1], 237423 [2] Submitted by: cmt [2] Reported by: thea20lineisameme@protonmail.com [1] Reviewed by: rakuco, tcberner (kde), Lorenzo Salvadore Approved by: tcberner (kde) Differential Revision: https://reviews.freebsd.org/D19900
This commit is contained in:
parent
27467122de
commit
c85e9292c9
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=504068
10
UPDATING
10
UPDATING
@ -5,6 +5,16 @@ they are unavoidable.
|
||||
You should get into the habit of checking this file for changes each time
|
||||
you update your ports collection, before attempting any port upgrades.
|
||||
|
||||
20190613:
|
||||
AFFECTS: users of www/qt5-webengine
|
||||
AUTHOR: kai@FreeBSD.org
|
||||
|
||||
Users that upgrade www/qt5-webengine without using pkg/poudriere might
|
||||
experience failures due to conflicts with the installed version of 5.12.2.
|
||||
|
||||
In that case, pkg delete -f the qt5-webengine package before building
|
||||
the updated version.
|
||||
|
||||
20190611:
|
||||
AFFECTS: users of net/routinator
|
||||
AUTHOR: rodrigo@FreeBSD.org
|
||||
|
@ -8,8 +8,6 @@
|
||||
# - We are using several stub files, especially in Chromium's base/ and net/
|
||||
# layers. We should look at implementing the missing bits instead.
|
||||
# - We are currently not using any sandboxing mechanism.
|
||||
# - We are disabling support for features such as WebRTC. We need to see what
|
||||
# it would take to properly support them.
|
||||
# - We need to see if more "use_system_<FOO>" flags can be passed.
|
||||
# - The process of porting QtWebEngine needs to be documented so we can move to
|
||||
# newer releases more easily.
|
||||
@ -20,6 +18,7 @@
|
||||
|
||||
PORTNAME= webengine
|
||||
DISTVERSION= ${QT5_VERSION}
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= www
|
||||
PKGNAMEPREFIX= qt5-
|
||||
|
||||
@ -85,7 +84,7 @@ USE_XORG= x11 xcb xcomposite xcursor xext xi xorgproto \
|
||||
|
||||
USE_LDCONFIG= ${QT_LIBDIR}
|
||||
|
||||
QMAKE_CONFIGURE_ARGS= -proprietary-codecs -system-ffmpeg -disable-webrtc
|
||||
QMAKE_CONFIGURE_ARGS= -proprietary-codecs -system-ffmpeg
|
||||
|
||||
# We could just set it to an empty string as well. "all" does not account for
|
||||
# dependencies correctly in the generated Makefiles, use the right target here.
|
||||
|
@ -38,6 +38,17 @@
|
||||
|
||||
EXPECT_CALL(callback_, OnError()).Times(2);
|
||||
|
||||
--- src/3rdparty/chromium/third_party/libjingle_xmpp/task_runner/taskrunner.cc.orig 2019-03-07 09:23:57 UTC
|
||||
+++ src/3rdparty/chromium/third_party/libjingle_xmpp/task_runner/taskrunner.cc
|
||||
@@ -95,7 +95,7 @@ void TaskRunner::InternalRunTasks(bool in_destructor)
|
||||
std::vector<Task *>::iterator it;
|
||||
it = std::remove(tasks_.begin(),
|
||||
tasks_.end(),
|
||||
- reinterpret_cast<Task *>(NULL));
|
||||
+ static_cast<Task *>(NULL));
|
||||
|
||||
tasks_.erase(it, tasks_.end());
|
||||
|
||||
--- src/3rdparty/chromium/third_party/sfntly/src/cpp/src/sfntly/table/core/cmap_table.cc.orig 2018-11-13 18:25:11 UTC
|
||||
+++ src/3rdparty/chromium/third_party/sfntly/src/cpp/src/sfntly/table/core/cmap_table.cc
|
||||
@@ -439,7 +439,7 @@ CMapTable::CMapFormat0::Builder::Builder(
|
||||
|
@ -0,0 +1,20 @@
|
||||
--- src/3rdparty/chromium/media/capture/video/create_video_capture_device_factory.cc.orig 2019-03-07 09:23:57 UTC
|
||||
+++ src/3rdparty/chromium/media/capture/video/create_video_capture_device_factory.cc
|
||||
@@ -10,7 +10,7 @@
|
||||
#include "media/capture/video/fake_video_capture_device_factory.h"
|
||||
#include "media/capture/video/file_video_capture_device_factory.h"
|
||||
|
||||
-#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
|
||||
+#if (defined(OS_LINUX) && !defined(OS_CHROMEOS)) || defined(OS_BSD)
|
||||
#include "media/capture/video/linux/video_capture_device_factory_linux.h"
|
||||
#elif defined(OS_CHROMEOS)
|
||||
#include "media/capture/video/chromeos/public/cros_features.h"
|
||||
@@ -31,7 +31,7 @@ namespace {
|
||||
std::unique_ptr<VideoCaptureDeviceFactory>
|
||||
CreatePlatformSpecificVideoCaptureDeviceFactory(
|
||||
scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner) {
|
||||
-#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
|
||||
+#if (defined(OS_LINUX) && !defined(OS_CHROMEOS)) || defined(OS_BSD)
|
||||
return std::make_unique<VideoCaptureDeviceFactoryLinux>(ui_task_runner);
|
||||
#elif defined(OS_CHROMEOS)
|
||||
// On Chrome OS we have to support two use cases:
|
@ -0,0 +1,11 @@
|
||||
--- src/3rdparty/chromium/media/capture/video/shared_memory_handle_provider.cc.orig 2019-03-07 09:23:57 UTC
|
||||
+++ src/3rdparty/chromium/media/capture/video/shared_memory_handle_provider.cc
|
||||
@@ -63,7 +63,7 @@ bool SharedMemoryHandleProvider::InitFromMojoHandle(
|
||||
return true;
|
||||
}
|
||||
|
||||
-#if defined(OS_LINUX)
|
||||
+#if defined(OS_LINUX) || defined(OS_BSD)
|
||||
bool SharedMemoryHandleProvider::InitAsReadOnlyFromRawFileDescriptor(
|
||||
mojo::ScopedHandle fd_handle,
|
||||
uint32_t memory_size_in_bytes) {
|
@ -0,0 +1,11 @@
|
||||
--- src/3rdparty/chromium/media/capture/video/shared_memory_handle_provider.h.orig 2019-03-07 09:23:57 UTC
|
||||
+++ src/3rdparty/chromium/media/capture/video/shared_memory_handle_provider.h
|
||||
@@ -38,7 +38,7 @@ class CAPTURE_EXPORT SharedMemoryHandleProvider
|
||||
|
||||
// This requires platforms where base::SharedMemoryHandle is backed by a
|
||||
// file descriptor.
|
||||
-#if defined(OS_LINUX)
|
||||
+#if defined(OS_LINUX) || defined(OS_BSD)
|
||||
bool InitAsReadOnlyFromRawFileDescriptor(mojo::ScopedHandle fd_handle,
|
||||
uint32_t memory_size_in_bytes);
|
||||
#endif // defined(OS_LINUX)
|
@ -1,11 +0,0 @@
|
||||
--- src/3rdparty/chromium/third_party/webrtc/webrtc.gni.orig 2018-11-13 18:25:11 UTC
|
||||
+++ src/3rdparty/chromium/third_party/webrtc/webrtc.gni
|
||||
@@ -206,7 +206,7 @@ rtc_libvpx_dir = "//third_party/libvpx"
|
||||
rtc_opus_dir = "//third_party/opus"
|
||||
|
||||
# Desktop capturer is supported only on Windows, OSX and Linux.
|
||||
-rtc_desktop_capture_supported = is_win || is_mac || (is_linux && rtc_use_x11)
|
||||
+rtc_desktop_capture_supported = is_win || is_mac || ((is_linux && rtc_use_x11) && !is_bsd)
|
||||
|
||||
###############################################################################
|
||||
# Templates
|
Loading…
Reference in New Issue
Block a user