)]}'
{
  "commit": "3d7137f54f9d915b317aeb5d3f61ba24db099afb",
  "tree": "9fd93551aecb8b83bc78feedc495d0bc9a52075d",
  "parents": [
    "02acc3ded1ae87086fc2964b84d1ab9a8abe7433"
  ],
  "author": {
    "name": "Tommi",
    "email": "tommi@webrtc.org",
    "time": "Fri Oct 17 11:38:22 2025"
  },
  "committer": {
    "name": "WebRTC LUCI CQ",
    "email": "webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Fri Oct 17 13:09:38 2025"
  },
  "message": "Introduce MediaEngineReference for managing access on the worker thread\n\nThis encapsulates direct, non-const, access to the media engine and the\nreference counting via a new class, MediaEngineReference.\n\nThis change introduces `ConnectionContext::MediaEngineReference`, a new\nRAII wrapper class to manage the media engine\u0027s lifetime and access.\n\nThe `MediaEngineReference` class:\n* Automatically handles reference counting in its constructor\n    and destructor.\n* Provides a `media_engine()` accessor that `DCHECK`s the call\n    is on the worker thread, centralizing thread-safety enforcement.\n\n`PeerConnection`, `PeerConnectionFactory` (for AEC dumps), and\n`RtpTransceiver` are all updated to use `MediaEngineReference` instead\nof calling the manual ref-counting methods.\n\nAdditionally, a new `ConnectionContext::is_configured_for_media()`\nmethod is introduced to replace checks for `context_-\u003emedia_engine()`\nwhen determining if media is enabled.\n\nThis is a follow up to recent media engine changes that more tightly\ncontrol the lifetime of the media engine as well as divide access to\nconst and non-const methods. A follow up to this CL could be to split up\nthe media engine interfaces to make the actual work that runs on the\nworker thread be owned by a separate interface from the const methods.\nThen there\u0027d be no need for the Init/Terminate methods and the design\nwould be a bit clearer.\n\nBug: webrtc:42224720\nChange-Id: Idd7bd9a143ee00d1939f0bac93c877253ac57e09\nReviewed-on: https://webrtc-review.googlesource.com/c/src/+/410922\nCommit-Queue: Tomas Gunnarsson \u003ctommi@webrtc.org\u003e\nReviewed-by: Markus Handell \u003chandellm@webrtc.org\u003e\nCr-Commit-Position: refs/heads/main@{#45971}\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "89c30f018caaa6021d3b12121ba849e84fad6cfb",
      "old_mode": 33188,
      "old_path": "pc/connection_context.cc",
      "new_id": "28f27945382029f2c3bd9fc40fe015c1899fe517",
      "new_mode": 33188,
      "new_path": "pc/connection_context.cc"
    },
    {
      "type": "modify",
      "old_id": "1d21f1f545a4c25257a2142fdc1a8473ae42357c",
      "old_mode": 33188,
      "old_path": "pc/connection_context.h",
      "new_id": "9c4a6171e2734351484075fac237f71f2eb33efd",
      "new_mode": 33188,
      "new_path": "pc/connection_context.h"
    },
    {
      "type": "modify",
      "old_id": "3cd309afffc9a25e505a2532eeb8b500970e7961",
      "old_mode": 33188,
      "old_path": "pc/peer_connection.cc",
      "new_id": "651135709694ebaf9ed25481c10361ac97a74067",
      "new_mode": 33188,
      "new_path": "pc/peer_connection.cc"
    },
    {
      "type": "modify",
      "old_id": "394ead395983d419c3d695879c6f40bd13ca060b",
      "old_mode": 33188,
      "old_path": "pc/peer_connection.h",
      "new_id": "56136198335748dbbe7ea7346a683d9bcc1c4538",
      "new_mode": 33188,
      "new_path": "pc/peer_connection.h"
    },
    {
      "type": "modify",
      "old_id": "58f0ac691dda02d8a5055f380bc83db6eda7614e",
      "old_mode": 33188,
      "old_path": "pc/peer_connection_factory.cc",
      "new_id": "299d151774e4e7505fc9286543e71ca85aab1ad8",
      "new_mode": 33188,
      "new_path": "pc/peer_connection_factory.cc"
    },
    {
      "type": "modify",
      "old_id": "0b114a448caa5afba36496a8c394ac77a91d3617",
      "old_mode": 33188,
      "old_path": "pc/peer_connection_factory.h",
      "new_id": "71b47d7a6a802d63e5d9f7ecbc710b85dfb742e8",
      "new_mode": 33188,
      "new_path": "pc/peer_connection_factory.h"
    },
    {
      "type": "modify",
      "old_id": "ff7442657caaeaf403cbcc2fc2eb82d10444f9f3",
      "old_mode": 33188,
      "old_path": "pc/rtp_transceiver.cc",
      "new_id": "313675156f7290a881feeb054d90195b2518f6f5",
      "new_mode": 33188,
      "new_path": "pc/rtp_transceiver.cc"
    },
    {
      "type": "modify",
      "old_id": "2294c2982d1889240ad027f7277f071dcdef8b48",
      "old_mode": 33188,
      "old_path": "pc/rtp_transceiver.h",
      "new_id": "36957671d46c175d5d3ee00bc54aa8737187b22d",
      "new_mode": 33188,
      "new_path": "pc/rtp_transceiver.h"
    },
    {
      "type": "modify",
      "old_id": "cade24b13a923d380ffa08c011dc5ff304fbf0a0",
      "old_mode": 33188,
      "old_path": "pc/rtp_transceiver_unittest.cc",
      "new_id": "7e01a20c86386ac16e4244a8f7bb55887242eaf5",
      "new_mode": 33188,
      "new_path": "pc/rtp_transceiver_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "759f369db9f085524ff1e1f482a5ab70110c9ba7",
      "old_mode": 33188,
      "old_path": "pc/sdp_offer_answer.cc",
      "new_id": "58f4db46e839f0c1df06b4808b612a88aa18b731",
      "new_mode": 33188,
      "new_path": "pc/sdp_offer_answer.cc"
    }
  ]
}
