Changes: - Remove PowerVR-specific sandbox patch - Remove platform conditionals and use ChromeOS-style device paths (/dev/video-dec, /dev/video-enc) - Disable ThinLTO to prevent linker OOM crashes - Fix clang library copying for both aarch64 and x86_64 architectures - Add NSS pkg-config detection - Rebase existing V4L2 patches to new Chromium version - Removed PACKAGECONFIG[use-v4l2] and v4l2 flags as they enabled by default
Signed-off-by: Thorsten Lannynd <[email protected]> --- ...dbox-allow-access-to-PowerVR-GPU-fro.patch | 76 ---------------- ...se-ChromeOS-style-dev-paths-for-all-.patch | 89 +++++++++++++++++++ ...dbox-Allow-GPU-sandbox-access-to-V4L.patch | 23 ++--- ...2-Fix-OUTPUT-queue-streaming-in-V4L2.patch | 44 ++------- ...oid-placing-incomplete-H264-access-.patch} | 10 +-- .../chromium/chromium-ozone-wayland-arago.inc | 75 ++++++++++++++-- ...ium-ozone-wayland_142.0.7444.175.bbappend} | 0 7 files changed, 183 insertions(+), 134 deletions(-) delete mode 100644 meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-132.0.6834.83/0001-chromium-gpu-sandbox-allow-access-to-PowerVR-GPU-fro.patch create mode 100644 meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-142.0.7444.175/0001-media-gpu-v4l2-Use-ChromeOS-style-dev-paths-for-all-.patch rename meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/{chromium-ozone-wayland-132.0.6834.83 => chromium-ozone-wayland-142.0.7444.175}/0002-chromium-gpu-sandbox-Allow-GPU-sandbox-access-to-V4L.patch (71%) rename meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/{chromium-ozone-wayland-132.0.6834.83 => chromium-ozone-wayland-142.0.7444.175}/0003-chromium-gpu-v4l2-Fix-OUTPUT-queue-streaming-in-V4L2.patch (67%) rename meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/{chromium-ozone-wayland-132.0.6834.83/0004-Avoid-placing-incomplete-H264-access-units-in-buffer.patch => chromium-ozone-wayland-142.0.7444.175/0004-media-gpu-v4l2-Avoid-placing-incomplete-H264-access-.patch} (82%) rename meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/{chromium-ozone-wayland_132.0.6834.83.bbappend => chromium-ozone-wayland_142.0.7444.175.bbappend} (100%) diff --git a/meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-132.0.6834.83/0001-chromium-gpu-sandbox-allow-access-to-PowerVR-GPU-fro.patch b/meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-132.0.6834.83/0001-chromium-gpu-sandbox-allow-access-to-PowerVR-GPU-fro.patch deleted file mode 100644 index a9a5a49b..00000000 --- a/meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-132.0.6834.83/0001-chromium-gpu-sandbox-allow-access-to-PowerVR-GPU-fro.patch +++ /dev/null @@ -1,76 +0,0 @@ -From a27529b8808e2eaa18ae5a30d5fee8193969bde7 Mon Sep 17 00:00:00 2001 -From: Darren Etheridge <[email protected]> -Date: Mon, 20 May 2024 15:48:36 -0500 -Subject: [PATCH] chromium: gpu: sandbox: allow access to PowerVR GPU from - sandbox - -Upstream-Status: Pending [not strictly necessary, but reduces -permissions warnings on console] - -Chromium runs in a sandbox to limit access to the system, however -the PowerVR drivers for the Imagination GPU used on TI hardware need -some extra libraries along with the DRM device nodes to be opened up. -This patch opens up the necessary pieces. - -Signed-off-by: Darren Etheridge <[email protected]> ---- - content/common/gpu_pre_sandbox_hook_linux.cc | 16 +++++++++++++++- - 1 file changed, 15 insertions(+), 1 deletion(-) - -diff --git a/content/common/gpu_pre_sandbox_hook_linux.cc b/content/common/gpu_pre_sandbox_hook_linux.cc -index 28de3c7..7db0617 100644 ---- a/content/common/gpu_pre_sandbox_hook_linux.cc -+++ b/content/common/gpu_pre_sandbox_hook_linux.cc -@@ -67,6 +67,11 @@ inline bool UseChromecastSandboxAllowlist() { - #endif - } - -+inline bool IsGPUIMGRogue() { -+ return true; -+} -+ -+ - inline bool IsArchitectureArm() { - #if defined(ARCH_CPU_ARM_FAMILY) - return true; -@@ -484,6 +489,11 @@ std::vector<BrokerFilePermission> FilePermissionsForGpu( - - AddVulkanICDPermissions(&permissions); - -+ if (IsGPUIMGRogue()) { -+ // Add standard DRM permissions for snapdragon/PowerVR: -+ AddDrmGpuPermissions(&permissions); -+ } -+ - if (IsChromeOS()) { - // Permissions are additive, there can be multiple GPUs in the system. - AddStandardChromeOsPermissions(&permissions); -@@ -552,6 +562,8 @@ void LoadArmGpuLibraries() { - DRI_DRIVER_DIR "/mediatek_dri.so", - DRI_DRIVER_DIR "/rockchip_dri.so", - DRI_DRIVER_DIR "/asahi_dri.so", -+ DRI_DRIVER_DIR "/pvr_dri.so", -+ DRI_DRIVER_DIR "/tidss_dri.so", - #else - "/usr/lib64/dri/msm_dri.so", - "/usr/lib64/dri/panfrost_dri.so", -@@ -559,6 +571,8 @@ void LoadArmGpuLibraries() { - "/usr/lib64/dri/rockchip_dri.so", - "/usr/lib64/dri/asahi_dri.so", - "/usr/lib/dri/msm_dri.so", -+ "/usr/lib/dri/tidss_dri.so", -+ "/usr/lib/dri/pvr_dri.so", - "/usr/lib/dri/panfrost_dri.so", - "/usr/lib/dri/mediatek_dri.so", - "/usr/lib/dri/rockchip_dri.so", -@@ -655,7 +669,7 @@ sandbox::syscall_broker::BrokerCommandSet CommandSetForGPU( - command_set.set(sandbox::syscall_broker::COMMAND_ACCESS); - command_set.set(sandbox::syscall_broker::COMMAND_OPEN); - command_set.set(sandbox::syscall_broker::COMMAND_STAT); -- if (IsChromeOS() && -+ if ((IsGPUIMGRogue() || IsChromeOS()) && - (options.use_amd_specific_policies || - options.use_intel_specific_policies || - options.use_nvidia_specific_policies || --- -2.34.1 diff --git a/meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-142.0.7444.175/0001-media-gpu-v4l2-Use-ChromeOS-style-dev-paths-for-all-.patch b/meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-142.0.7444.175/0001-media-gpu-v4l2-Use-ChromeOS-style-dev-paths-for-all-.patch new file mode 100644 index 00000000..2089b8d2 --- /dev/null +++ b/meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-142.0.7444.175/0001-media-gpu-v4l2-Use-ChromeOS-style-dev-paths-for-all-.patch @@ -0,0 +1,89 @@ +From 262a19d57fccf1b27ede283398278b52820f4aae Mon Sep 17 00:00:00 2001 +From: Thorsten Lannynd <[email protected]> +Date: Fri, 5 Dec 2025 12:40:27 -0600 +Subject: [PATCH] media/gpu/v4l2: Use ChromeOS-style dev paths for all + platforms + +Upstream-Status: Inappropriate [embedded-specific, + requires custom udev rules] + +Remove platform-specific conditionals and standardize on ChromeOS device +naming (/dev/video-dec, /dev/video-enc, etc) instead of generic /dev/video*. +Reduces device scanning from 256 to 10 devices for improved enumeration speed. + +Signed-off-by: Thorsten Lannynd <[email protected]> +--- + media/gpu/v4l2/v4l2_device.cc | 16 ---------------- + media/gpu/v4l2/v4l2_utils.cc | 10 ---------- + 2 files changed, 26 deletions(-) + +diff --git a/media/gpu/v4l2/v4l2_device.cc b/media/gpu/v4l2/v4l2_device.cc +index ea35d10be8..dee743ed48 100644 +--- a/media/gpu/v4l2/v4l2_device.cc ++++ b/media/gpu/v4l2/v4l2_device.cc +@@ -874,20 +874,11 @@ void V4L2Device::CloseDevice() { + } + + void V4L2Device::EnumerateDevicesForType(Type type) { +-#if BUILDFLAG(IS_CHROMEOS) + static const std::string kDecoderDevicePattern = "/dev/video-dec"; + static const std::string kEncoderDevicePattern = "/dev/video-enc"; + static const std::string kImageProcessorDevicePattern = "/dev/image-proc"; + static const std::string kJpegDecoderDevicePattern = "/dev/jpeg-dec"; + static const std::string kJpegEncoderDevicePattern = "/dev/jpeg-enc"; +-#else +- static const std::string kDecoderDevicePattern = "/dev/video"; +- static const std::string kEncoderDevicePattern = "/dev/video"; +- static const std::string kImageProcessorDevicePattern = "/dev/video"; +- static const std::string kJpegDecoderDevicePattern = "/dev/video"; +- static const std::string kJpegEncoderDevicePattern = "/dev/video"; +-#endif +- + std::string device_pattern; + v4l2_buf_type input_buf_type; + v4l2_buf_type output_buf_type; +@@ -924,19 +915,12 @@ void V4L2Device::EnumerateDevicesForType(Type type) { + // We are sandboxed, so we can't query directory contents to check which + // devices are actually available. Try to open the first 10; if not present, + // we will just fail to open immediately. +-#if BUILDFLAG(IS_CHROMEOS) + constexpr int kMaxDevices = 10; + candidate_paths.reserve(kMaxDevices + 1); + + // TODO(posciak): Remove this legacy unnumbered device once + // all platforms are updated to use numbered devices. + candidate_paths.push_back(device_pattern); +-#else +- // On mainline Linux we need to check a much larger number of devices, mainly +- // because the device pattern is shared with ISP devices. +- constexpr int kMaxDevices = 256; +- candidate_paths.reserve(kMaxDevices); +-#endif + for (int i = 0; i < kMaxDevices; ++i) { + candidate_paths.push_back( + base::StringPrintf("%s%d", device_pattern.c_str(), i)); +diff --git a/media/gpu/v4l2/v4l2_utils.cc b/media/gpu/v4l2/v4l2_utils.cc +index d4cac5573c..50d720a365 100644 +--- a/media/gpu/v4l2/v4l2_utils.cc ++++ b/media/gpu/v4l2/v4l2_utils.cc +@@ -583,18 +583,8 @@ std::optional<SupportedVideoDecoderConfigs> GetSupportedV4L2DecoderConfigs() { + SupportedVideoDecoderConfigs supported_media_configs; + std::vector<std::string> candidate_paths; + +-#if BUILDFLAG(IS_CHROMEOS) + constexpr char kVideoDevicePattern[] = "/dev/video-dec0"; + candidate_paths.push_back(kVideoDevicePattern); +-#else +- constexpr char kVideoDevicePattern[] = "/dev/video"; +- constexpr int kMaxDevices = 256; +- candidate_paths.reserve(kMaxDevices); +- for (int i = 0; i < kMaxDevices; ++i) { +- candidate_paths.push_back( +- base::StringPrintf("%s%d", kVideoDevicePattern, i)); +- } +-#endif + + for (const auto& path : candidate_paths) { + base::ScopedFD device_fd( +-- +2.34.1 diff --git a/meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-132.0.6834.83/0002-chromium-gpu-sandbox-Allow-GPU-sandbox-access-to-V4L.patch b/meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-142.0.7444.175/0002-chromium-gpu-sandbox-Allow-GPU-sandbox-access-to-V4L.patch similarity index 71% rename from meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-132.0.6834.83/0002-chromium-gpu-sandbox-Allow-GPU-sandbox-access-to-V4L.patch rename to meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-142.0.7444.175/0002-chromium-gpu-sandbox-Allow-GPU-sandbox-access-to-V4L.patch index 4ccb8fc1..a51fa322 100644 --- a/meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-132.0.6834.83/0002-chromium-gpu-sandbox-Allow-GPU-sandbox-access-to-V4L.patch +++ b/meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-142.0.7444.175/0002-chromium-gpu-sandbox-Allow-GPU-sandbox-access-to-V4L.patch @@ -1,6 +1,6 @@ -From 99c59368f9cdd43638dd30c2ea867a950a54b648 Mon Sep 17 00:00:00 2001 +From d6a8f091cebd265c0f7f681173d2aa218a0b89cd Mon Sep 17 00:00:00 2001 From: Thorsten Lannynd <[email protected]> -Date: Fri, 8 Aug 2025 23:05:18 -0500 +Date: Thu, 5 Mar 2026 12:02:31 -0600 Subject: [PATCH] chromium: gpu: sandbox: Allow GPU sandbox access to V4L2 devices @@ -13,27 +13,28 @@ Chromium with V4L2 for video processing. Signed-off-by: Thorsten Lannynd <[email protected]> --- - content/common/gpu_pre_sandbox_hook_linux.cc | 12 ++++++++++-- - 1 file changed, 10 insertions(+), 2 deletions(-) + content/common/gpu_pre_sandbox_hook_linux.cc | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/content/common/gpu_pre_sandbox_hook_linux.cc b/content/common/gpu_pre_sandbox_hook_linux.cc -index 2a3abc9775..1865246fa8 100644 +index 2e53794fa3..9dec7fa08b 100644 --- a/content/common/gpu_pre_sandbox_hook_linux.cc +++ b/content/common/gpu_pre_sandbox_hook_linux.cc -@@ -516,11 +521,14 @@ std::vector<BrokerFilePermission> FilePermissionsForGpu( - AddDrmGpuPermissions(&permissions); - } +@@ -627,13 +627,14 @@ std::vector<BrokerFilePermission> FilePermissionsForGpu( + BrokerFilePermission::ReadOnly(kDriRcPath)}; + AddVulkanICDPermissions(&permissions); ++ + if (UseV4L2Codec(options)) { -+ // Add V4L2 permissions for video decode/encode. + AddV4L2GpuPermissions(&permissions, options); + } -+ + if (IsChromeOS()) { // Permissions are additive, there can be multiple GPUs in the system. AddStandardChromeOsPermissions(&permissions); -- if (UseV4L2Codec(options)) +- if (UseV4L2Codec(options)) { - AddV4L2GpuPermissions(&permissions, options); +- } if (IsArchitectureArm()) { AddImgPvrGpuPermissions(&permissions); AddArmGpuPermissions(&permissions); diff --git a/meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-132.0.6834.83/0003-chromium-gpu-v4l2-Fix-OUTPUT-queue-streaming-in-V4L2.patch b/meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-142.0.7444.175/0003-chromium-gpu-v4l2-Fix-OUTPUT-queue-streaming-in-V4L2.patch similarity index 67% rename from meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-132.0.6834.83/0003-chromium-gpu-v4l2-Fix-OUTPUT-queue-streaming-in-V4L2.patch rename to meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-142.0.7444.175/0003-chromium-gpu-v4l2-Fix-OUTPUT-queue-streaming-in-V4L2.patch index 55a630eb..0a6c0f95 100644 --- a/meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-132.0.6834.83/0003-chromium-gpu-v4l2-Fix-OUTPUT-queue-streaming-in-V4L2.patch +++ b/meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-142.0.7444.175/0003-chromium-gpu-v4l2-Fix-OUTPUT-queue-streaming-in-V4L2.patch @@ -1,7 +1,7 @@ -From 3f5cdbc3b1871b6b8cdfa96eccd96f59d66a8afc Mon Sep 17 00:00:00 2001 +From d1d9bcefa8fd299049e6e51855f41b67b27823ed Mon Sep 17 00:00:00 2001 From: Thorsten Lannynd <[email protected]> Date: Sat, 9 Aug 2025 01:46:14 -0500 -Subject: [PATCH] chromium: gpu: v4l2: Fix OUTPUT queue streaming in +Subject: [PATCH] media/gpu/v4l2: Fix OUTPUT queue streaming in V4L2StatefulVideoDecoder Upstream-Status: Inappropriate [this change is needed to satisfy @@ -24,15 +24,14 @@ Linux distribution to set the correct device node names. Signed-off-by: Thorsten Lannynd <[email protected]> --- - media/gpu/v4l2/v4l2_stateful_video_decoder.cc | 40 ++++++++++++++----- - media/gpu/v4l2/v4l2_utils.cc | 2 +- - 2 files changed, 32 insertions(+), 10 deletions(-) + media/gpu/v4l2/v4l2_stateful_video_decoder.cc | 32 +++++++++++++------ + 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/media/gpu/v4l2/v4l2_stateful_video_decoder.cc b/media/gpu/v4l2/v4l2_stateful_video_decoder.cc -index e5069a3acf..6d11ea7e0f 100644 +index 359145244d..e3aeb060c2 100644 --- a/media/gpu/v4l2/v4l2_stateful_video_decoder.cc +++ b/media/gpu/v4l2/v4l2_stateful_video_decoder.cc -@@ -410,10 +414,6 @@ void V4L2StatefulVideoDecoder::Initialize(const VideoDecoderConfig& config, +@@ -417,10 +417,6 @@ void V4L2StatefulVideoDecoder::Initialize(const VideoDecoderConfig& config, std::move(init_cb).Run(DecoderStatus::Codes::kFailedToCreateDecoder); return; } @@ -43,7 +42,7 @@ index e5069a3acf..6d11ea7e0f 100644 client_->NotifyEstimatedMaxDecodeRequests(base::checked_cast<int>( std::min(static_cast<size_t>(4), num_input_buffers))); -@@ -518,10 +518,22 @@ void V4L2StatefulVideoDecoder::Decode(scoped_refptr<DecoderBuffer> buffer, +@@ -525,10 +521,22 @@ void V4L2StatefulVideoDecoder::Decode(scoped_refptr<DecoderBuffer> buffer, std::move(decode_cb)); } @@ -70,7 +69,7 @@ index e5069a3acf..6d11ea7e0f 100644 } if (!event_task_runner_) { -@@ -729,7 +741,13 @@ bool V4L2StatefulVideoDecoder::InitializeCAPTUREQueue() { +@@ -743,7 +751,13 @@ bool V4L2StatefulVideoDecoder::InitializeCAPTUREQueue() { auto chosen_fourcc = output_format.fourcc; const auto chosen_size = output_format.size; const auto chosen_modifier = output_format.modifier; @@ -85,32 +84,5 @@ index e5069a3acf..6d11ea7e0f 100644 // If our |client_| has a VideoFramePool to allocate buffers for us, we'll // use it, otherwise we have to ask the driver. const bool use_v4l2_allocated_buffers = !client_->GetVideoFramePool(); -diff --git a/media/gpu/v4l2/v4l2_utils.cc b/media/gpu/v4l2/v4l2_utils.cc -index 9646e8be73..6a7feb49c9 100644 ---- a/media/gpu/v4l2/v4l2_utils.cc -+++ b/media/gpu/v4l2/v4l2_utils.cc -@@ -572,18 +572,10 @@ std::optional<SupportedVideoDecoderConfigs> GetSupportedV4L2DecoderConfigs() { - SupportedVideoDecoderConfigs supported_media_configs; - std::vector<std::string> candidate_paths; - --#if BUILDFLAG(IS_CHROMEOS) -- constexpr char kVideoDevicePattern[] = "/dev/video-dec0"; -- candidate_paths.push_back(kVideoDevicePattern); --#else -- constexpr char kVideoDevicePattern[] = "/dev/video"; -- constexpr int kMaxDevices = 256; -- candidate_paths.reserve(kMaxDevices); -- for (int i = 0; i < kMaxDevices; ++i) { -- candidate_paths.push_back( -- base::StringPrintf("%s%d", kVideoDevicePattern, i)); -- } --#endif -+ constexpr char kVideoDevicePattern0[] = "/dev/video-dec0"; -+ constexpr char kVideoDevicePattern1[] = "/dev/video-dec1"; -+ candidate_paths.push_back(kVideoDevicePattern0); -+ candidate_paths.push_back(kVideoDevicePattern1); - - for (const auto& path : candidate_paths) { - base::ScopedFD device_fd( -- 2.34.1 diff --git a/meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-132.0.6834.83/0004-Avoid-placing-incomplete-H264-access-units-in-buffer.patch b/meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-142.0.7444.175/0004-media-gpu-v4l2-Avoid-placing-incomplete-H264-access-.patch similarity index 82% rename from meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-132.0.6834.83/0004-Avoid-placing-incomplete-H264-access-units-in-buffer.patch rename to meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-142.0.7444.175/0004-media-gpu-v4l2-Avoid-placing-incomplete-H264-access-.patch index e0ca7dfd..caa61545 100644 --- a/meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-132.0.6834.83/0004-Avoid-placing-incomplete-H264-access-units-in-buffer.patch +++ b/meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-142.0.7444.175/0004-media-gpu-v4l2-Avoid-placing-incomplete-H264-access-.patch @@ -1,4 +1,4 @@ -From 8542b683ca6a0774a452eb3d7cadc834d4f41436 Mon Sep 17 00:00:00 2001 +From 942c5f57d34c2d1b077240147bb29be84c773e62 Mon Sep 17 00:00:00 2001 From: Alexandros Frantzis <[email protected]> Date: Wed, 11 Jun 2025 11:07:05 +0300 Subject: [PATCH] media/gpu/v4l2: Avoid placing incomplete H264 access units in @@ -14,10 +14,10 @@ and may confuse the decoder. 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/media/gpu/v4l2/v4l2_stateful_video_decoder.cc b/media/gpu/v4l2/v4l2_stateful_video_decoder.cc -index 422cc72a34a83..61ab2f5bf1ab2 100644 +index e3aeb060c2..3657bc1d36 100644 --- a/media/gpu/v4l2/v4l2_stateful_video_decoder.cc +++ b/media/gpu/v4l2/v4l2_stateful_video_decoder.cc -@@ -1340,7 +1340,7 @@ H264FrameReassembler::FindFrameBoundary(const uint8_t* const data, +@@ -1342,7 +1342,7 @@ H264FrameReassembler::FindH264FrameBoundary(const uint8_t* const data, return std::nullopt; } previous_slice_header_.reset(); @@ -26,7 +26,7 @@ index 422cc72a34a83..61ab2f5bf1ab2 100644 .is_start_of_new_frame = true, .nalu_size = nalu_size}; case H264NALU::kPPS: -@@ -1350,7 +1350,7 @@ H264FrameReassembler::FindFrameBoundary(const uint8_t* const data, +@@ -1352,7 +1352,7 @@ H264FrameReassembler::FindH264FrameBoundary(const uint8_t* const data, return std::nullopt; } previous_slice_header_.reset(); @@ -35,7 +35,7 @@ index 422cc72a34a83..61ab2f5bf1ab2 100644 .is_start_of_new_frame = true, .nalu_size = nalu_size}; case H264NALU::kNonIDRSlice: -@@ -1389,7 +1389,7 @@ H264FrameReassembler::FindFrameBoundary(const uint8_t* const data, +@@ -1391,7 +1391,7 @@ H264FrameReassembler::FindH264FrameBoundary(const uint8_t* const data, case H264NALU::kReserved18: // Anything else than SPS, PPS and Non/IDRs marks a new frame boundary. previous_slice_header_.reset(); diff --git a/meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-arago.inc b/meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-arago.inc index 53669cf5..e2d55180 100644 --- a/meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-arago.inc +++ b/meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-arago.inc @@ -1,15 +1,78 @@ PR:append = ".arago0" -FILESEXTRAPATHS:prepend := "${THISDIR}/chromium-ozone-wayland-132.0.6834.83:" +FILESEXTRAPATHS:prepend := "${THISDIR}/chromium-ozone-wayland-142.0.7444.175:" -PACKAGECONFIG[use-v4l2] = "use_v4l2_codec=true,use_v4l2_codec=false" -PACKAGECONFIG:append = " proprietary-codecs use-v4l2" +PACKAGECONFIG:append = " proprietary-codecs" -CHROMIUM_EXTRA_ARGS:append = " ${@bb.utils.contains('PACKAGECONFIG', 'use-v4l2', '--ozone-platform-hint=wayland --enable-features=AcceleratedVideoDecoder,AcceleratedVideoDecodeLinuxGL,AcceleratedVideoDecodeLinuxZeroCopyGL', '', d)}" +# Remove incompatible Rust 1.8x patch (for Rust 1.93+) +SRC_URI:remove = "file://chromium-142-crabbyavif-rust18x.patch" SRC_URI:append = " \ - file://0001-chromium-gpu-sandbox-allow-access-to-PowerVR-GPU-fro.patch \ + file://0001-media-gpu-v4l2-Use-ChromeOS-style-dev-paths-for-all-.patch \ file://0002-chromium-gpu-sandbox-Allow-GPU-sandbox-access-to-V4L.patch \ file://0003-chromium-gpu-v4l2-Fix-OUTPUT-queue-streaming-in-V4L2.patch \ - file://0004-Avoid-placing-incomplete-H264-access-units-in-buffer.patch \ + file://0004-media-gpu-v4l2-Avoid-placing-incomplete-H264-access-.patch \ " + +# Disable ThinLTO to prevent linker OOM crashes +GN_ARGS += " use_thin_lto=false" + +# Override do_copy_clang_library to handle both target and host architectures +do_copy_clang_library() { + cp -r "${STAGING_LIBDIR_NATIVE}/clang/latest" "${STAGING_DIR_HOST}${nonarch_libdir}/clang/" + cd "${STAGING_DIR_HOST}${nonarch_libdir}/clang" || return + + # Process both target arch (aarch64) and build arch (x86_64) + for ARCH in "${TARGET_ARCH}" "${BUILD_ARCH}"; do + echo "Processing clang libraries for architecture: $ARCH" + target_dir="latest/lib/${ARCH}-unknown-linux-gnu" + mkdir -p "$target_dir" + + # Determine source sysroot based on architecture + if [ "$ARCH" = "${TARGET_ARCH}" ]; then + search_path="${STAGING_LIBDIR}" + else + search_path="${STAGING_LIBDIR_NATIVE}" + fi + + # Find and copy library files from the appropriate sysroot + for lib_pattern in "libclang_rt.builtins-${ARCH}.a" "liborc_rt-${ARCH}.a"; do + lib_files=$(find "$search_path/clang" -name "$lib_pattern" 2>/dev/null) + for lib_file in $lib_files; do + if [ -f "$lib_file" ]; then + base_name=$(basename "$lib_file") + echo "Copying $lib_file to $target_dir/" + cp "$lib_file" "$target_dir/" 2>/dev/null || true + fi + done + done + + # Create generic names without architecture suffix + if [ -d "$target_dir" ]; then + cd "$target_dir" || continue + for file in libclang_rt.builtins-*.a liborc_rt-*.a; do + if [ -f "$file" ]; then + generic_name=$(echo "$file" | sed -E 's/-(x86_64|aarch64|arm|i686)\.a$/.a/') + if [ "$file" != "$generic_name" ] && [ ! -f "$generic_name" ]; then + cp "$file" "$generic_name" 2>/dev/null || true + fi + fi + done + cd "${STAGING_DIR_HOST}${nonarch_libdir}/clang" || return + fi + + # Copy to native sysroot as well + native_arch_path="${STAGING_LIBDIR_NATIVE}/clang/latest/lib/${ARCH}-unknown-linux-gnu/" + if [ -d "$target_dir" ] && [ -n "$(ls -A "$target_dir" 2>/dev/null)" ]; then + mkdir -p "$native_arch_path" + cp -n "$target_dir"/* "$native_arch_path/" 2>/dev/null || true + fi + done +} + +# Add pkg-config setup for NSS detection +do_configure:prepend() { + export PKG_CONFIG_PATH="${STAGING_LIBDIR}/pkgconfig:${STAGING_DATADIR}/pkgconfig" + export PKG_CONFIG_SYSROOT_DIR="${STAGING_DIR_TARGET}" + export PKG_CONFIG_LIBDIR="${STAGING_LIBDIR}/pkgconfig" +} diff --git a/meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland_132.0.6834.83.bbappend b/meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland_142.0.7444.175.bbappend similarity index 100% rename from meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland_132.0.6834.83.bbappend rename to meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland_142.0.7444.175.bbappend -- 2.34.1 -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#17273): https://lists.yoctoproject.org/g/meta-arago/message/17273 Mute This Topic: https://lists.yoctoproject.org/mt/118166546/21656 Group Owner: [email protected] Unsubscribe: https://lists.yoctoproject.org/g/meta-arago/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
