webrtc/modules/desktop_capture
Jan Grulich 3695640504 PipeWire capturer: copy content from PW buffer directly to DesktopFrame
This avoids an additional step where we originally copied content from
PipeWire buffer to a temporary location and from there to DesktopFrame.
This results into less copy operations and hopefully to faster
screensharing.

I didn't do some exact measures, but simply running htop while sharing a
4k screen I can see following results (usage per top 5 processes):
1) Without this change - 66%, 64%, 26% 23%, 10%
2) With this change - 41%, 39%, 19%, 17%, 12%,

Bug: webrtc:13239
Change-Id: I6a661ecc96bfeef370c1a5a3b9dc5e3c0fc665c8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/231684
Reviewed-by: Tommi <tommi@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35156}
2021-10-06 13:22:32 +00:00
..
linux PipeWire capturer: copy content from PW buffer directly to DesktopFrame 2021-10-06 13:22:32 +00:00
mac [-Wshadow] - Fix some warnings. 2021-10-03 11:53:16 +00:00
win win: Consolidate on a single version checking API 2021-10-05 22:13:37 +00:00
blank_detector_desktop_capturer_wrapper.cc Add missing interface methods. 2020-02-18 22:36:00 +00:00
blank_detector_desktop_capturer_wrapper.h Use backticks not vertical bars to denote variables in comments for /modules/desktop_capture 2021-08-09 13:12:52 +00:00
blank_detector_desktop_capturer_wrapper_unittest.cc Fully qualify googletest symbols. 2019-04-09 17:18:20 +00:00
BUILD.gn Reland "PipeWire capturer: implement proper DMA-BUFs support"" 2021-10-06 10:31:51 +00:00
cropped_desktop_frame.cc Make CroppedWindowCapturer more resilient 2021-10-01 18:23:59 +00:00
cropped_desktop_frame.h Use backticks not vertical bars to denote variables in comments for /modules/desktop_capture 2021-08-09 13:12:52 +00:00
cropped_desktop_frame_unittest.cc Make CroppedWindowCapturer more resilient 2021-10-01 18:23:59 +00:00
cropping_window_capturer.cc Make CroppedWindowCapturer more resilient 2021-10-01 18:23:59 +00:00
cropping_window_capturer.h Use backticks not vertical bars to denote variables in comments for /modules/desktop_capture 2021-08-09 13:12:52 +00:00
cropping_window_capturer_win.cc win: Consolidate on a single version checking API 2021-10-05 22:13:37 +00:00
DEPS Revert "Reland "PipeWire capturer: implement proper DMA-BUFs support""" 2021-09-03 11:28:26 +00:00
desktop_and_cursor_composer.cc Use backticks not vertical bars to denote variables in comments for /modules/desktop_capture 2021-08-09 13:12:52 +00:00
desktop_and_cursor_composer.h Use backticks not vertical bars to denote variables in comments for /modules/desktop_capture 2021-08-09 13:12:52 +00:00
desktop_and_cursor_composer_unittest.cc Use backticks not vertical bars to denote variables in comments for /modules/desktop_capture 2021-08-09 13:12:52 +00:00
desktop_capture_metrics_helper.cc Add telemetry to measure usage, perf, and errors in Desktop Capturers. 2021-04-13 23:30:52 +00:00
desktop_capture_metrics_helper.h Add telemetry to measure usage, perf, and errors in Desktop Capturers. 2021-04-13 23:30:52 +00:00
desktop_capture_options.cc Revert "Improve screen sharing with PipeWire on Wayland" 2020-10-14 08:26:18 +00:00
desktop_capture_options.h Use backticks not vertical bars to denote variables in comments for /modules/desktop_capture 2021-08-09 13:12:52 +00:00
desktop_capture_types.h Use backticks not vertical bars to denote variables in comments for /modules/desktop_capture 2021-08-09 13:12:52 +00:00
desktop_capturer.cc Restrict WGC screen capture to Windows version 20H1 and greater. 2021-08-30 19:59:03 +00:00
desktop_capturer.h Use backticks not vertical bars to denote variables in comments for /modules/desktop_capture 2021-08-09 13:12:52 +00:00
desktop_capturer_differ_wrapper.cc Use backticks not vertical bars to denote variables in comments for /modules/desktop_capture 2021-08-09 13:12:52 +00:00
desktop_capturer_differ_wrapper.h RTC_EXPORT webrtc::DesktopCapturerDifferWrapper. 2019-10-23 23:34:46 +00:00
desktop_capturer_differ_wrapper_unittest.cc Use backticks not vertical bars to denote variables in comments for /modules/desktop_capture 2021-08-09 13:12:52 +00:00
desktop_capturer_wrapper.cc Implement DesktopCapturerWrapper and CaptureResultDesktopCapturerWrapper 2017-09-15 18:56:26 +00:00
desktop_capturer_wrapper.h [Cleanup] Add missing #include. Remove useless ones. IWYU part 2. 2018-11-28 18:25:07 +00:00
desktop_frame.cc Fixing a buffer copy issue in DesktopFrame 2021-04-09 20:48:32 +00:00
desktop_frame.h Use backticks not vertical bars to denote variables in comments for /modules/desktop_capture 2021-08-09 13:12:52 +00:00
desktop_frame_generator.cc Use backticks not vertical bars to denote variables in comments for /modules/desktop_capture 2021-08-09 13:12:52 +00:00
desktop_frame_generator.h Use backticks not vertical bars to denote variables in comments for /modules/desktop_capture 2021-08-09 13:12:52 +00:00
desktop_frame_rotation.cc Use backticks not vertical bars to denote variables in comments for /modules/desktop_capture 2021-08-09 13:12:52 +00:00
desktop_frame_rotation.h Use backticks not vertical bars to denote variables in comments for /modules/desktop_capture 2021-08-09 13:12:52 +00:00
desktop_frame_rotation_unittest.cc [Cleanup] Add missing #include. Remove useless ones. IWYU part 2. 2018-11-28 18:25:07 +00:00
desktop_frame_unittest.cc Use std::make_unique instead of absl::make_unique. 2019-09-17 15:47:29 +00:00
desktop_frame_win.cc Handle SharedMemory allocation failures 2021-09-22 23:49:50 +00:00
desktop_frame_win.h Format almost everything. 2019-07-08 13:45:15 +00:00
desktop_geometry.cc Include menus & dialogs in frames captured by WindowCapturerWin 2019-08-21 07:55:07 +00:00
desktop_geometry.h Use backticks not vertical bars to denote variables in comments for /modules/desktop_capture 2021-08-09 13:12:52 +00:00
desktop_geometry_unittest.cc
desktop_region.cc Use backticks not vertical bars to denote variables in comments 2021-08-10 10:40:03 +00:00
desktop_region.h Use backticks not vertical bars to denote variables in comments for /modules/desktop_capture 2021-08-09 13:12:52 +00:00
desktop_region_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
differ_block.cc Refactor cpu_features_wrapper.h functions from C to C++. 2020-09-07 08:44:24 +00:00
differ_block.h Use backticks not vertical bars to denote variables in comments for /modules/desktop_capture 2021-08-09 13:12:52 +00:00
differ_block_unittest.cc [Cleanup] Add missing #include. Remove useless ones. IWYU part 2. 2018-11-28 18:25:07 +00:00
differ_vector_sse2.cc Reformat the WebRTC code base 2018-06-19 14:00:39 +00:00
differ_vector_sse2.h
fake_desktop_capturer.cc Use backticks not vertical bars to denote variables in comments for /modules/desktop_capture 2021-08-09 13:12:52 +00:00
fake_desktop_capturer.h Use backticks not vertical bars to denote variables in comments for /modules/desktop_capture 2021-08-09 13:12:52 +00:00
fallback_desktop_capturer_wrapper.cc Use backticks not vertical bars to denote variables in comments for /modules/desktop_capture 2021-08-09 13:12:52 +00:00
fallback_desktop_capturer_wrapper.h Revert "Desktop capturer: Add OnDisplayChanged callback" 2018-12-22 00:10:40 +00:00
fallback_desktop_capturer_wrapper_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
full_screen_application_handler.cc Implement handling for MS PowerPoint Presentation Mode. 2019-12-03 19:17:24 +00:00
full_screen_application_handler.h Implement handling for MS PowerPoint Presentation Mode. 2019-12-03 19:17:24 +00:00
full_screen_window_detector.cc Implement handling for MS PowerPoint Presentation Mode. 2019-12-03 19:17:24 +00:00
full_screen_window_detector.h Simplify reference counting implementation of PendingTaskSafetyFlag. 2021-04-21 07:04:01 +00:00
mock_desktop_capturer_callback.cc
mock_desktop_capturer_callback.h Replace mock macros with unified MOCK_METHOD macro 2020-05-28 14:11:53 +00:00
mouse_cursor.cc Replace assert() with RTC_DCHECK(). 2021-07-09 07:49:43 +00:00
mouse_cursor.h Use backticks not vertical bars to denote variables in comments for /modules/desktop_capture 2021-08-09 13:12:52 +00:00
mouse_cursor_monitor.h Use backticks not vertical bars to denote variables in comments for /modules/desktop_capture 2021-08-09 13:12:52 +00:00
mouse_cursor_monitor_linux.cc Explicitly set and use WEBRTC_USE_X11 instead of USE_X11. 2019-12-13 09:36:25 +00:00
mouse_cursor_monitor_mac.mm Remove all #include <assert.h>/<cassert> and usage in Obj-C code. 2021-07-22 14:00:26 +00:00
mouse_cursor_monitor_null.cc Format almost everything. 2019-07-08 13:45:15 +00:00
mouse_cursor_monitor_unittest.cc Remove all #include <assert.h>/<cassert> and usage in Obj-C code. 2021-07-22 14:00:26 +00:00
mouse_cursor_monitor_win.cc Remove all #include <assert.h>/<cassert> and usage in Obj-C code. 2021-07-22 14:00:26 +00:00
OWNERS Updating the OWNERS file for desktop capture 2020-09-15 21:34:24 +00:00
resolution_tracker.cc
resolution_tracker.h Use backticks not vertical bars to denote variables in comments for /modules/desktop_capture 2021-08-09 13:12:52 +00:00
rgba_color.cc Format almost everything. 2019-07-08 13:45:15 +00:00
rgba_color.h Use backticks not vertical bars to denote variables in comments for /modules/desktop_capture 2021-08-09 13:12:52 +00:00
rgba_color_unittest.cc [Cleanup] Add missing #include. Remove useless ones. IWYU part 2. 2018-11-28 18:25:07 +00:00
screen_capture_frame_queue.h Use backticks not vertical bars to denote variables in comments for /modules/desktop_capture 2021-08-09 13:12:52 +00:00
screen_capturer_darwin.mm Can use the given IOSurfaceRef to reach higher capture framerate on Mac 2018-04-10 00:37:59 +00:00
screen_capturer_helper.cc Use backticks not vertical bars to denote variables in comments for /modules/desktop_capture 2021-08-09 13:12:52 +00:00
screen_capturer_helper.h Use backticks not vertical bars to denote variables in comments for /modules/desktop_capture 2021-08-09 13:12:52 +00:00
screen_capturer_helper_unittest.cc Fully qualify googletest symbols. 2019-04-09 17:18:20 +00:00
screen_capturer_integration_test.cc win: Consolidate on a single version checking API 2021-10-05 22:13:37 +00:00
screen_capturer_linux.cc Fix some -Wunreachable-code-aggressive warnings 2021-08-16 11:09:16 +00:00
screen_capturer_mac_unittest.cc Fully qualify googletest symbols. 2019-04-09 17:18:20 +00:00
screen_capturer_null.cc
screen_capturer_unittest.cc Temporarily skip tests that consistently fail on Linux MSan. 2021-07-08 08:11:50 +00:00
screen_capturer_win.cc Use backticks not vertical bars to denote variables in comments for /modules/desktop_capture 2021-08-09 13:12:52 +00:00
screen_drawer.cc
screen_drawer.h Use backticks not vertical bars to denote variables in comments for /modules/desktop_capture 2021-08-09 13:12:52 +00:00
screen_drawer_linux.cc Use std::make_unique instead of absl::make_unique. 2019-09-17 15:47:29 +00:00
screen_drawer_lock_posix.cc Stop using LOG macros in favor of RTC_ prefixed macros. 2017-11-09 11:56:32 +00:00
screen_drawer_lock_posix.h
screen_drawer_mac.cc Use std::make_unique instead of absl::make_unique. 2019-09-17 15:47:29 +00:00
screen_drawer_unittest.cc Use backticks not vertical bars to denote variables in comments for /modules/desktop_capture 2021-08-09 13:12:52 +00:00
screen_drawer_win.cc Use backticks not vertical bars to denote variables in comments for /modules/desktop_capture 2021-08-09 13:12:52 +00:00
shared_desktop_frame.cc [Cleanup] Add missing #include. Remove useless ones. IWYU part 2. 2018-11-28 18:25:07 +00:00
shared_desktop_frame.h Use backticks not vertical bars to denote variables in comments for /modules/desktop_capture 2021-08-09 13:12:52 +00:00
shared_memory.cc Reformat the WebRTC code base 2018-06-19 14:00:39 +00:00
shared_memory.h Avoid windows.h in shared_memory.h 2021-08-31 16:40:32 +00:00
test_utils.cc [Cleanup] Add missing #include. Remove useless ones. IWYU part 2. 2018-11-28 18:25:07 +00:00
test_utils.h Use backticks not vertical bars to denote variables in comments for /modules/desktop_capture 2021-08-09 13:12:52 +00:00
test_utils_unittest.cc Don't crash the test process when X11 isn't available. 2019-12-16 09:57:59 +00:00
window_capturer_linux.cc Fix some -Wunreachable-code-aggressive warnings 2021-08-16 11:09:16 +00:00
window_capturer_mac.mm Remove all #include <assert.h>/<cassert> and usage in Obj-C code. 2021-07-22 14:00:26 +00:00
window_capturer_null.cc Replace assert() with RTC_DCHECK(). 2021-07-09 07:49:43 +00:00
window_capturer_unittest.cc Temporarily skip tests that consistently fail on Linux MSan. 2021-07-08 08:11:50 +00:00
window_capturer_win.cc Reland "Begin implementing WGC CaptureFrame" 2020-10-02 07:29:31 +00:00
window_finder.cc [Window Capturer] Implement scaling in GetWindowBounds() 2017-11-07 01:49:35 +00:00
window_finder.h Use backticks not vertical bars to denote variables in comments for /modules/desktop_capture 2021-08-09 13:12:52 +00:00
window_finder_mac.h Remove rtc_base/scoped_ref_ptr.h. 2019-01-25 20:29:58 +00:00
window_finder_mac.mm Implement handling for MS PowerPoint Presentation Mode. 2019-12-03 19:17:24 +00:00
window_finder_unittest.cc Explicitly set and use WEBRTC_USE_X11 instead of USE_X11. 2019-12-13 09:36:25 +00:00
window_finder_win.cc Use std::make_unique instead of absl::make_unique. 2019-09-17 15:47:29 +00:00
window_finder_win.h