webrtc/modules/desktop_capture
Jan Grulich a18e38fed2 Video capture PipeWire: drop corrupted PipeWire buffers
Use SPA_CHUNK_FLAG_CORRUPTED and SPA_META_HEADER_FLAG_CORRUPTED flags to
determine corrupted buffers or corrupted buffer data. We used to only
rely on compositors setting chunk->size, but this doesn't make sense for
dmabufs where they have to make up arbitrary values. It also looks this
is not reliable and can cause glitches as we end up processing corrupted buffers.

(cherry picked from commit cfbd6b0884)

Bug: chromium:341928670
Change-Id: Ida0c6a5e7a37e19598c6d5884726200f81b94962
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/349881
Commit-Queue: Mark Foltz <mfoltz@chromium.org>
Reviewed-by: Mark Foltz <mfoltz@chromium.org>
Reviewed-by: Alexander Cooper <alcooper@chromium.org>
Cr-Original-Commit-Position: refs/heads/main@{#42292}
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/351563
Commit-Queue: Alexander Cooper <alcooper@chromium.org>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Cr-Commit-Position: refs/branch-heads/6478@{#1}
Cr-Branched-From: 16fb7903e546051483720548168cd40cded7a040-refs/heads/main@{#42290}
2024-05-23 21:01:17 +00:00
..
linux Video capture PipeWire: drop corrupted PipeWire buffers 2024-05-23 21:01:17 +00:00
mac Add event scope to all TRACE_EVENT_INSTANTs 2024-04-23 09:56:33 +00:00
win Fix 'Screen flickering on ScreenCapturerWinDirectx' 2024-04-25 21:18:27 +00:00
blank_detector_desktop_capturer_wrapper.cc webrtc: Blank desktop capturer regards empty frame as a blank frame 2022-07-13 18:03:07 +00:00
blank_detector_desktop_capturer_wrapper.h getDisplayMedia shows black window on Youtube PiP in Windows. 2022-03-16 22:06:04 +00:00
blank_detector_desktop_capturer_wrapper_unittest.cc Fully qualify googletest symbols. 2019-04-09 17:18:20 +00:00
BUILD.gn [fuchsia] DesktopCapturer gets display info from 2024-04-17 23:17:29 +00:00
cropped_desktop_frame.cc Remove RTC_DISALLOW_COPY_AND_ASSIGN from modules/ 2022-01-24 11:50:20 +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 Fix WebRTC.Screenshare.DesktopCapturerFullscreenDetector logging issue 2023-02-15 12:40:12 +00:00
delegated_source_list_controller.h Add Observer for delegated source list events 2022-09-02 00:24:58 +00:00
DEPS Revert "Split out generic portal / pipewire code" 2022-10-28 17:40:27 +00:00
desktop_and_cursor_composer.cc Adds debug logs which warns about cursor flickering 2023-05-10 09:06:19 +00:00
desktop_and_cursor_composer.h base_capturer_pipewire: Send frames via callback 2023-01-28 03:37:46 +00:00
desktop_and_cursor_composer_unittest.cc Fix clearing of mouse cursor if display uses a scale factor 2022-06-20 09:51:13 +00:00
desktop_capture_metadata.h Reland "Split out generic portal / pipewire code" 2022-11-14 20:11:43 +00:00
desktop_capture_metrics_helper.cc Removes usage of the Magnifier API on Windows 2023-04-13 20:27:24 +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 Move rtc::make_ref_counted to api/ 2022-06-15 09:47:38 +00:00
desktop_capture_options.h Removes AllowWgcDesktopCapturer feature flag 2023-06-22 16:07:51 +00:00
desktop_capture_types.h Desktop capture: introduce capturer requesting both screen and windows 2023-07-12 18:59:24 +00:00
desktop_capturer.cc Desktop capture: introduce capturer requesting both screen and windows 2023-07-12 18:59:24 +00:00
desktop_capturer.h Desktop capture: introduce capturer requesting both screen and windows 2023-07-12 18:59:24 +00:00
desktop_capturer_differ_wrapper.cc wayland: Add a common interface for screencast and remote desktop portal 2022-03-31 15:30:07 +00:00
desktop_capturer_differ_wrapper.h wayland: Add a common interface for screencast and remote desktop portal 2022-03-31 15:30:07 +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 DXGI now consumes may_contain_cursor 2023-04-03 08:30:59 +00:00
desktop_frame.h Adds SetFrameDataToBlack() and FrameDataIsBlack() to DesktopFrame 2023-03-10 21:48:11 +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 Prepare to rename RTC_NOTREACHED to RTC_DCHECK_NOTREACHED 2021-11-15 21:44:59 +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 Format /modules 2023-04-20 02:02:45 +00:00
desktop_frame_win.cc Handle SharedMemory allocation failures 2021-09-22 23:49:50 +00:00
desktop_frame_win.h Reland "Remove RTC_DISALLOW_COPY_AND_ASSIGN usages completely" 2022-01-27 12:55:44 +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 Conditionally include differ_vector_sse2.h only when on x86 platforms. 2022-09-01 17:22:47 +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 Format /modules 2023-04-20 02:02:45 +00:00
full_screen_application_handler.h Remove RTC_DISALLOW_COPY_AND_ASSIGN from modules/ 2022-01-24 11:50:20 +00:00
full_screen_window_detector.cc Format /modules 2023-04-20 02:02:45 +00:00
full_screen_window_detector.h Remove RTC_DISALLOW_COPY_AND_ASSIGN from modules/ 2022-01-24 11:50:20 +00:00
mock_desktop_capturer_callback.cc
mock_desktop_capturer_callback.h Remove RTC_DISALLOW_COPY_AND_ASSIGN from modules/ 2022-01-24 11:50:20 +00:00
mouse_cursor.cc Replace assert() with RTC_DCHECK(). 2021-07-09 07:49:43 +00:00
mouse_cursor.h Remove RTC_DISALLOW_COPY_AND_ASSIGN from modules/ 2022-01-24 11:50:20 +00:00
mouse_cursor_monitor.h mouse_cursor_monitor: Annotate a method with RTC_EXPORT 2023-01-18 23:36:03 +00:00
mouse_cursor_monitor_linux.cc Implement MouseCursorMonitorPipeWire to track cursor changes separately 2022-02-15 23:03:41 +00:00
mouse_cursor_monitor_mac.mm Initialize last_cursor_ 2021-12-09 12:56:11 +00:00
mouse_cursor_monitor_null.cc Format almost everything. 2019-07-08 13:45:15 +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 Replace desktop_capture OWNERS 2021-11-09 23:02:32 +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 Remove unused headers ScreenCaptureFrameQueue 2022-08-17 18:44:29 +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_fuchsia.cc [fuchsia] DesktopCapturer gets display info from 2024-04-17 23:17:29 +00:00
screen_capturer_fuchsia.h Reland "[fuchsia] remove Scenic/UseFlatland dependency in DesktopCapturer" 2023-07-21 16:47:17 +00:00
screen_capturer_helper.cc Format /modules 2023-04-20 02:02:45 +00:00
screen_capturer_helper.h Remove RTC_DISALLOW_COPY_AND_ASSIGN from modules/ 2022-01-24 11:50:20 +00:00
screen_capturer_helper_unittest.cc Fully qualify googletest symbols. 2019-04-09 17:18:20 +00:00
screen_capturer_integration_test.cc Removes usage of the Magnifier API on Windows 2023-04-13 20:27:24 +00:00
screen_capturer_linux.cc Improve Capturer Selection on Wayland 2022-10-25 20:12:30 +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 Removes usage of the Magnifier API on Windows 2023-04-13 20:27:24 +00:00
screen_capturer_win.cc Removes usage of the Magnifier API on Windows 2023-04-13 20:27:24 +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 Reland "Linux capturers: organize X11 and Wayland implementations into separate folders" 2021-12-14 03:20:34 +00:00
screen_drawer_lock_posix.cc Adopt absl::string_view in modules/desktop_capture/ 2022-08-18 09:14:30 +00:00
screen_drawer_lock_posix.h Adopt absl::string_view in modules/desktop_capture/ 2022-08-18 09:14:30 +00:00
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 Prepare for deleting implicit conversion from raw pointer to scoped_refptr. 2022-01-18 08:22:15 +00:00
shared_desktop_frame.h Remove RTC_DISALLOW_COPY_AND_ASSIGN from modules/ 2022-01-24 11:50:20 +00:00
shared_memory.cc Reformat the WebRTC code base 2018-06-19 14:00:39 +00:00
shared_memory.h Remove RTC_DISALLOW_COPY_AND_ASSIGN from modules/ 2022-01-24 11:50:20 +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 Improve Capturer Selection on Wayland 2022-10-25 20:12:30 +00:00
window_capturer_mac.mm Remove NSApplicationActivateIgnoringOtherApps 2023-09-24 13:55:12 +00:00
window_capturer_null.cc Reland "Remove RTC_DISALLOW_COPY_AND_ASSIGN usages completely" 2022-01-27 12:55:44 +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 Disallow set_allow_wgc_capturer_fallback call on Win10. 2022-04-15 23:41:16 +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 Reland "Linux capturers: organize X11 and Wayland implementations into separate folders" 2021-12-14 03:20:34 +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