)]}'
{
  "commit": "5da5a6e4e00c69ef60c7643e99ef34f65f7af51a",
  "tree": "d5335ed138c671bb1a0fdec2a1cf4208db031a31",
  "parents": [
    "cd632d19c2514ae253a3ade167d5c94ac95d094f"
  ],
  "author": {
    "name": "Robert Mader",
    "email": "robert.mader@collabora.com",
    "time": "Wed Aug 12 12:57:22 2026"
  },
  "committer": {
    "name": "webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Thu Aug 13 17:19:45 2026"
  },
  "message": "video_capture: Implement buffer stride support for Pipewire\n\nAdd optional buffer stride support to VideoCaptureImpl and use it in\nVideoCaptureModulePipeWire, allowing us to drop the requirement for\nunpadded buffers. This notably improves compatibility with libcamera,\nwhich supports a wider range of devices than the V4L2 backend - some\nhaving hardware requirements for stride-alignment.\n\nExtending `ConvertToI420()` in libyuv was rejected on the grounds that there are various approaches to stride handling - using a single stride value for multiple planes, having explicit values for each one etc. - as well as the fact that we might well want to extend the helper further in the future - e.g. in order to better handle color spaces such as BT709 (instead of always assuming BT601).\n\nThus this patch now adds a local copy of `ConvertToI420()`, supporting implicit and a single explicit stride value for now.\n\nlibyuv CL for context:\nhttps://chromium-review.googlesource.com/c/libyuv/libyuv/+/8146821\n\nBug: chromium:538875176\nChange-Id: Ic5781709cf5f20e8c75b9ad09d7052a355fcbec7\nReviewed-on: https://webrtc-review.googlesource.com/c/src/+/491680\nReviewed-by: Stefan Holmer \u003cstefan@webrtc.org\u003e\nReviewed-by: Jan Grulich \u003cgrulja@gmail.com\u003e\nCommit-Queue: Stefan Holmer \u003cstefan@webrtc.org\u003e\nReviewed-by: Ilya Nikolaevskiy \u003cilnik@webrtc.org\u003e\nCr-Commit-Position: refs/heads/main@{#48353}\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "868d09a2eb1ea3a070ff0d7cb8beea392d05a1ac",
      "old_mode": 33188,
      "old_path": "common_video/BUILD.gn",
      "new_id": "eb3cc07f948adced93ac1f324a2f751d2369b2f1",
      "new_mode": 33188,
      "new_path": "common_video/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "7d504bcb04dd4e5bfc0ff983a42aae3e79c57c82",
      "old_mode": 33188,
      "old_path": "common_video/libyuv/include/webrtc_libyuv.h",
      "new_id": "8ac2151c18f739814a9ca4e7a00ca9e27e30b478",
      "new_mode": 33188,
      "new_path": "common_video/libyuv/include/webrtc_libyuv.h"
    },
    {
      "type": "modify",
      "old_id": "6b47ec65ea01e0cfd14da48071f61e114ad4689f",
      "old_mode": 33188,
      "old_path": "common_video/libyuv/libyuv_unittest.cc",
      "new_id": "448ace8dfcea11282e13d6c4cc051212e5676026",
      "new_mode": 33188,
      "new_path": "common_video/libyuv/libyuv_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "916acafe4fbcd0ac1c268ed3c19641889e90b79e",
      "old_mode": 33188,
      "old_path": "common_video/libyuv/webrtc_libyuv.cc",
      "new_id": "056f5613d1eb475d5993d8a26f04608bee3fb523",
      "new_mode": 33188,
      "new_path": "common_video/libyuv/webrtc_libyuv.cc"
    },
    {
      "type": "modify",
      "old_id": "8118f5e2b2a67788b3ab1d1b784bbe8bf1270736",
      "old_mode": 33188,
      "old_path": "modules/video_capture/linux/video_capture_pipewire.cc",
      "new_id": "5ca96108e9dd79c7463a8e0e848768255b101127",
      "new_mode": 33188,
      "new_path": "modules/video_capture/linux/video_capture_pipewire.cc"
    },
    {
      "type": "modify",
      "old_id": "7707608dbc36cbbcad4d42dbf9944f1ea091ed05",
      "old_mode": 33188,
      "old_path": "modules/video_capture/video_capture.h",
      "new_id": "fcde4cbffc58950a9ef1c9e659b0a8605c823c16",
      "new_mode": 33188,
      "new_path": "modules/video_capture/video_capture.h"
    },
    {
      "type": "modify",
      "old_id": "e76af2e0ad58ec541c6714098b6cbf3a73c3363c",
      "old_mode": 33188,
      "old_path": "modules/video_capture/video_capture_impl.cc",
      "new_id": "39bc56d7b19dafaa31848a0edcfd85e147776244",
      "new_mode": 33188,
      "new_path": "modules/video_capture/video_capture_impl.cc"
    },
    {
      "type": "modify",
      "old_id": "3b0a981d984fc87cd53aa8576769cac3ae89c186",
      "old_mode": 33188,
      "old_path": "modules/video_capture/video_capture_impl.h",
      "new_id": "29e34dc3b5784f63a170b85cd9099a18ad666b2d",
      "new_mode": 33188,
      "new_path": "modules/video_capture/video_capture_impl.h"
    }
  ]
}
