)]}' { "commit": "40c3ea5c7146cb7ec2fa999143d702b8825b725f", "tree": "3878dc2f6b559506915f43345ac74b81b2ad9eb0", "parents": [ "ead570c963d99f639a90bc9e267997cddef1db38" ], "author": { "name": "Jan Grulich", "email": "grulja@gmail.com", "time": "Wed Dec 02 08:02:52 2020" }, "committer": { "name": "Commit Bot", "email": "commit-bot@chromium.org", "time": "Thu Dec 03 17:33:19 2020" }, "message": "Improve screen sharing with PipeWire on Wayland\n\nChanges:\n1) Scoped class\nThis is a special class for GLib based objects which we need to manually\ndelete with different functions. Wrapping these objects into Scoped class\nwill destroy them automatically when they go out of scope.\n\n2) Window sharing support\nUnlike screen sharing, with window sharing we are required to obtain more\ninformation from the PipeWire stream, like video crop metadata, which we\nuse to properly set size of our buffer.\n\n3) Support for DmaBuf and MemFd buffer types\nAs of now, we expected the PipeWire stream will provide only plain data\nwhich we just need to copy to our buffer. We now add support for new\nbuffer types, which are often preferred for better effeciency.\n\n4) Minor bugfixes:\na) Additionally accept PipeWire streams using alpha channels (BGRA, RGBA)\nb) Add lock over PipeWire loop to prevent potential issues until we fully\n intialize everything we need\nc) When obtaining buffers, make sure we work with the latest one\n\nBug: chromium:682122\nChange-Id: I64638d5dcbe18e7280550dca0b01b17c511ac98a\nReviewed-on: https://webrtc-review.googlesource.com/c/src/+/194100\nCommit-Queue: Jamie Walch \u003cjamiewalch@chromium.org\u003e\nReviewed-by: Jamie Walch \u003cjamiewalch@chromium.org\u003e\nCr-Commit-Position: refs/heads/master@{#32763}\n", "tree_diff": [ { "type": "modify", "old_id": "427526c6a5befe0daba336b0dd2f3c69b18f4604", "old_mode": 33188, "old_path": "modules/desktop_capture/BUILD.gn", "new_id": "72273f9cfc0724a4e4998f11e89bb38863d7967c", "new_mode": 33188, "new_path": "modules/desktop_capture/BUILD.gn" }, { "type": "modify", "old_id": "2640e93aa98b09f7e54743f61423bcc02587da9f", "old_mode": 33188, "old_path": "modules/desktop_capture/linux/base_capturer_pipewire.cc", "new_id": "bc9653510c2e6fec214f757ac7c8cdcf7a633802", "new_mode": 33188, "new_path": "modules/desktop_capture/linux/base_capturer_pipewire.cc" }, { "type": "modify", "old_id": "f28d7a558bc60224e7960874b588b7ad5115346b", "old_mode": 33188, "old_path": "modules/desktop_capture/linux/base_capturer_pipewire.h", "new_id": "88b567a5b43b5a672a23b54d629c6bb828d3dd00", "new_mode": 33188, "new_path": "modules/desktop_capture/linux/base_capturer_pipewire.h" }, { "type": "modify", "old_id": "3e21e9dc07cfab489b8df473d429e3da494b5677", "old_mode": 33188, "old_path": "modules/desktop_capture/linux/pipewire.sigs", "new_id": "e915bc9f17d2424a1862f677478afc10d0cf142c", "new_mode": 33188, "new_path": "modules/desktop_capture/linux/pipewire.sigs" }, { "type": "delete", "old_id": "fe672140cca41db152038ef893045a5c2c6e0236", "old_mode": 33188, "old_path": "modules/desktop_capture/linux/screen_capturer_pipewire.cc", "new_id": "0000000000000000000000000000000000000000", "new_mode": 0, "new_path": "/dev/null" }, { "type": "delete", "old_id": "66dcd680e06a320fa37acfbf0bafb72b5670eefa", "old_mode": 33188, "old_path": "modules/desktop_capture/linux/screen_capturer_pipewire.h", "new_id": "0000000000000000000000000000000000000000", "new_mode": 0, "new_path": "/dev/null" }, { "type": "delete", "old_id": "b4559156dce2457db2f87189fa20016579a379b4", "old_mode": 33188, "old_path": "modules/desktop_capture/linux/window_capturer_pipewire.cc", "new_id": "0000000000000000000000000000000000000000", "new_mode": 0, "new_path": "/dev/null" }, { "type": "delete", "old_id": "7f184ef29992dfcb7884cefe32eba591d716f455", "old_mode": 33188, "old_path": "modules/desktop_capture/linux/window_capturer_pipewire.h", "new_id": "0000000000000000000000000000000000000000", "new_mode": 0, "new_path": "/dev/null" }, { "type": "modify", "old_id": "82dbae48137e6c927a34c3c6ef7c41694440578c", "old_mode": 33188, "old_path": "modules/desktop_capture/screen_capturer_linux.cc", "new_id": "ed48b7d6d59774a94c906c27a06a4aac70d5e230", "new_mode": 33188, "new_path": "modules/desktop_capture/screen_capturer_linux.cc" }, { "type": "modify", "old_id": "41dbf836b036f1cef1576afad3927635d6b50b51", "old_mode": 33188, "old_path": "modules/desktop_capture/window_capturer_linux.cc", "new_id": "2b142ae3b921254dc376a57a6bb2764aa3ebff45", "new_mode": 33188, "new_path": "modules/desktop_capture/window_capturer_linux.cc" } ] }