)]}'
{
  "commit": "1488f778a7b25c67c1c30dd9e11f9588d4b2ff38",
  "tree": "0de81a085d6485be220b2c120d012521d5651ea8",
  "parents": [
    "9d20c621db5a7ac9ff046ffdd98de2203ebdce20"
  ],
  "author": {
    "name": "Tommi",
    "email": "tommi@webrtc.org",
    "time": "Thu May 28 21:23:47 2026"
  },
  "committer": {
    "name": "webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Fri May 29 12:27:52 2026"
  },
  "message": "Apply global audio options at the engine level\n\nIntroduce ApplyGlobalOptions to the MediaEngine interface to configure\nglobal audio processing options (such as AEC, AGC, and noise\nsuppression) directly at the engine level. This replaces the previous\nbehavior where media channels implicitly re-applied options to the\nengine during initialization and parameter updates.\n\nApplying global settings during CreateAudioSource ensures engine-level\nconfigurations persist reliably across stream lifecycles. This change\nalso separates global audio processing options from stream-level\nparameters like jitter buffer and audio network adaptor settings.\n\n                 [Before Decoupling]\n+----------------------------------------------------+\n|      AudioOptions (AEC/AGC/NS + Jitter/ANA)        |\n+----------------------------------------------------+\n  /                                                \\\n / (engine()-\u003eApplyOptions)                         \\\nv                                                    v\nWebRtcVoiceEngine (Global APM)             VoiceSend/RecvChannel\n\n\n              [After Decoupling (This CL)]\n+-----------------------+                  +-----------------------+\n|  Global Options (APM) |                  |  Channel Options (ST) |\n|  - echo_cancellation  |                  |  - jitter_buffer      |\n|  - auto_gain_control  |                  |  - audio_network_     |\n|  - noise_suppression  |                  |    adaptor            |\n+-----------------------+                  +-----------------------+\n           |                                           |\n           v (ApplyGlobalOptions)                      v\n   WebRtcVoiceEngine (APM)                     VoiceSend/RecvChannel\n   - Stores in global_options_                 - No ApplyOptions calls\n   - Persisted across cycles                   - No leakage / racing\n\nBug: webrtc:42224170\nChange-Id: I3c23293ae338495ee32330ce5287411947f6d472\nReviewed-on: https://webrtc-review.googlesource.com/c/src/+/476340\nReviewed-by: Per Åhgren \u003cpeah@webrtc.org\u003e\nCommit-Queue: Tomas Gunnarsson \u003ctommi@webrtc.org\u003e\nCr-Commit-Position: refs/heads/main@{#47844}\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "da0f292861d2d2155663b71631d83c1a963d57b5",
      "old_mode": 33188,
      "old_path": "api/peer_connection_interface.h",
      "new_id": "e1ba0a65917dbecc1b78844942b0ad08256036da",
      "new_mode": 33188,
      "new_path": "api/peer_connection_interface.h"
    },
    {
      "type": "modify",
      "old_id": "d677c3819baa582fee7e9f9d092047c0e8decee6",
      "old_mode": 33188,
      "old_path": "media/base/fake_media_engine.h",
      "new_id": "6d35b3e6764b0bf032873912d827640da220a38c",
      "new_mode": 33188,
      "new_path": "media/base/fake_media_engine.h"
    },
    {
      "type": "modify",
      "old_id": "67850ae261052e7ff70e33da1a2858862515ead3",
      "old_mode": 33188,
      "old_path": "media/base/media_engine.h",
      "new_id": "38726cf7db4ea139f6c153df1ea83b676a6112ac",
      "new_mode": 33188,
      "new_path": "media/base/media_engine.h"
    },
    {
      "type": "modify",
      "old_id": "f1f47b1726860afe0c181d53388f1227724f2e9e",
      "old_mode": 33188,
      "old_path": "media/engine/fake_webrtc_call.h",
      "new_id": "2292d91bce5f57dcad94224258004fe063673073",
      "new_mode": 33188,
      "new_path": "media/engine/fake_webrtc_call.h"
    },
    {
      "type": "modify",
      "old_id": "9954e24f5680a33353588fc165c1094af53ba687",
      "old_mode": 33188,
      "old_path": "media/engine/webrtc_voice_engine.cc",
      "new_id": "920d7ccd90dbf4739dbd5369bb56671f1ff674de",
      "new_mode": 33188,
      "new_path": "media/engine/webrtc_voice_engine.cc"
    },
    {
      "type": "modify",
      "old_id": "e45456b73ae50047cd84018caf8cd6192fd0dfb5",
      "old_mode": 33188,
      "old_path": "media/engine/webrtc_voice_engine.h",
      "new_id": "879a1027e328679cfd532202ab428771defd7586",
      "new_mode": 33188,
      "new_path": "media/engine/webrtc_voice_engine.h"
    },
    {
      "type": "modify",
      "old_id": "b206d054e6285ecfabd6d884f1664b148cdc7b6d",
      "old_mode": 33188,
      "old_path": "media/engine/webrtc_voice_engine_unittest.cc",
      "new_id": "3b71350efb99cf0b1b73b5e2cb5261ee8b8e3509",
      "new_mode": 33188,
      "new_path": "media/engine/webrtc_voice_engine_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "867ec7f1a6eccb73a57e38a36341598eff78eec0",
      "old_mode": 33188,
      "old_path": "pc/BUILD.gn",
      "new_id": "50622b474640af5c7ea319642b985fc6a3eac2fe",
      "new_mode": 33188,
      "new_path": "pc/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "87210b9efe7670ec9db4af390d24f61c70ecb141",
      "old_mode": 33188,
      "old_path": "pc/local_audio_source.cc",
      "new_id": "da6482c23f10c24af2b71f98d4cdb0e1b45d9ae2",
      "new_mode": 33188,
      "new_path": "pc/local_audio_source.cc"
    },
    {
      "type": "modify",
      "old_id": "84f12072143e4cc3482feb00580ff8051a2b9678",
      "old_mode": 33188,
      "old_path": "pc/local_audio_source.h",
      "new_id": "4c33a935dcdacefd7fd0c114dfa8b8008c19f475",
      "new_mode": 33188,
      "new_path": "pc/local_audio_source.h"
    },
    {
      "type": "modify",
      "old_id": "9e9e402b1d7978457e9b68030a757934c414490e",
      "old_mode": 33188,
      "old_path": "pc/peer_connection_factory.cc",
      "new_id": "f02ab45042f7b5c5d921dd8adddd84503850828d",
      "new_mode": 33188,
      "new_path": "pc/peer_connection_factory.cc"
    },
    {
      "type": "modify",
      "old_id": "5e8a17de3b13b7295b8f96d580001cf05d2a3836",
      "old_mode": 33188,
      "old_path": "pc/peer_connection_factory_unittest.cc",
      "new_id": "7afb9f9cf2c6713baf0301997b32a337a7771f48",
      "new_mode": 33188,
      "new_path": "pc/peer_connection_factory_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "4c1a91f602b9fabbecbe5877add774d18b62c619",
      "old_mode": 33188,
      "old_path": "pc/rtp_sender.cc",
      "new_id": "626fd26cef693f7a7e20468561c0e053c6a3342e",
      "new_mode": 33188,
      "new_path": "pc/rtp_sender.cc"
    },
    {
      "type": "modify",
      "old_id": "4f8a3e47a010e07a1adac14c2a11f10964345c14",
      "old_mode": 33188,
      "old_path": "pc/rtp_transceiver.cc",
      "new_id": "0fceb2b4133d77b83cd1cb7d56248218e60ae05a",
      "new_mode": 33188,
      "new_path": "pc/rtp_transceiver.cc"
    }
  ]
}
