)]}'
{
  "commit": "526e228d25f83b1023760d3835f33d622c7b9f5f",
  "tree": "8e92d69cc6d0a69b32d50b44c8e4868afa78be8f",
  "parents": [
    "38832759832dd97162ff3c261c184bf8ce8186f3"
  ],
  "author": {
    "name": "Sam Zackrisson",
    "email": "saza@webrtc.org",
    "time": "Fri Jul 17 13:54:15 2026"
  },
  "committer": {
    "name": "webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Fri Jul 17 14:56:01 2026"
  },
  "message": "ML residual echo estimation: support delayed initialization\n\nThis adds a new constructor CreateNeuralResidualEchoEstimatorAsync which loads the model and inference data on a background thread.\n\nThis removes the latency of TFLite allocation / construction from the setup path of clients (e.g., getUserMedia in Chromium).\n\nNo-Iwyu: Not changing the tflite includes.\nBug: webrtc:442444736\nChange-Id: I34f984567862eb6cae36f7df62a1f88a38c2a0b1\nReviewed-on: https://webrtc-review.googlesource.com/c/src/+/489580\nCommit-Queue: Sam Zackrisson \u003csaza@webrtc.org\u003e\nReviewed-by: Lionel Koenig \u003clionelk@webrtc.org\u003e\nCr-Commit-Position: refs/heads/main@{#48197}\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "199c78a08f97747a33d114e322fe7a62416c5f19",
      "old_mode": 33188,
      "old_path": "api/audio/BUILD.gn",
      "new_id": "46678cdbbb0e4ad09f65d422f9eecf8caa371362",
      "new_mode": 33188,
      "new_path": "api/audio/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "d5bc877205d34debaa6dfe68a76e4db6f09f11dc",
      "old_mode": 33188,
      "old_path": "api/audio/DEPS",
      "new_id": "b9393583561f2bb44736431d4d23e506156ad409",
      "new_mode": 33188,
      "new_path": "api/audio/DEPS"
    },
    {
      "type": "modify",
      "old_id": "03da2f1042737fe027bc0368f5006559e3167e25",
      "old_mode": 33188,
      "old_path": "api/audio/neural_residual_echo_estimator.h",
      "new_id": "8a5f1c7bf01e86b2a7a9de5e8cf6a71204e96b46",
      "new_mode": 33188,
      "new_path": "api/audio/neural_residual_echo_estimator.h"
    },
    {
      "type": "modify",
      "old_id": "d0d1e8cf4144a919838548aef059ddfc655aa7f9",
      "old_mode": 33188,
      "old_path": "api/audio/neural_residual_echo_estimator_creator.cc",
      "new_id": "4c601648c90bdc79be1b7dfbd0e4a6620f65783d",
      "new_mode": 33188,
      "new_path": "api/audio/neural_residual_echo_estimator_creator.cc"
    },
    {
      "type": "modify",
      "old_id": "781313d7846c9f7c38a88b3aa49f27f2a259be6e",
      "old_mode": 33188,
      "old_path": "api/audio/neural_residual_echo_estimator_creator.h",
      "new_id": "7591356ae6bda4bd61b0233dbe2e01a873279691",
      "new_mode": 33188,
      "new_path": "api/audio/neural_residual_echo_estimator_creator.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a29367d8d4a4b9992b2e766a8a8b41e36fb0d690",
      "new_mode": 33188,
      "new_path": "api/audio/tflite_model_handle.h"
    },
    {
      "type": "modify",
      "old_id": "6faffa0cdf42872769f9e039f3a013e570d06762",
      "old_mode": 33188,
      "old_path": "modules/audio_processing/aec3/echo_canceller3_unittest.cc",
      "new_id": "902ba3482ffca54716aed041ce8cca8bf34f3362",
      "new_mode": 33188,
      "new_path": "modules/audio_processing/aec3/echo_canceller3_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "1a0c14b71a94ddd6a28de887cd4367d10693c95e",
      "old_mode": 33188,
      "old_path": "modules/audio_processing/aec3/neural_residual_echo_estimator/BUILD.gn",
      "new_id": "c33bd39de42982ed542eaf1629c637c53045cdad",
      "new_mode": 33188,
      "new_path": "modules/audio_processing/aec3/neural_residual_echo_estimator/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "88d6b05258278b002171312e9be28069137fb0a2",
      "old_mode": 33188,
      "old_path": "modules/audio_processing/aec3/neural_residual_echo_estimator/neural_residual_echo_estimator_impl.cc",
      "new_id": "1cc07893e181c282598f8a17f78f5a12de645003",
      "new_mode": 33188,
      "new_path": "modules/audio_processing/aec3/neural_residual_echo_estimator/neural_residual_echo_estimator_impl.cc"
    },
    {
      "type": "modify",
      "old_id": "e72629e5b661e21d182bd8cd7bd4d78b9721a475",
      "old_mode": 33188,
      "old_path": "modules/audio_processing/aec3/neural_residual_echo_estimator/neural_residual_echo_estimator_impl.h",
      "new_id": "51f2e4604ca23d69dec007b41162343a277675f0",
      "new_mode": 33188,
      "new_path": "modules/audio_processing/aec3/neural_residual_echo_estimator/neural_residual_echo_estimator_impl.h"
    },
    {
      "type": "modify",
      "old_id": "fd821cc3b1c2266fe057466d0c47ae0d62f54ac7",
      "old_mode": 33188,
      "old_path": "modules/audio_processing/aec3/residual_echo_estimator.cc",
      "new_id": "29776e88e941905af90d88011488fba25aa0dbc2",
      "new_mode": 33188,
      "new_path": "modules/audio_processing/aec3/residual_echo_estimator.cc"
    },
    {
      "type": "modify",
      "old_id": "0a53e0d2034c207b98570d35cc3274565cc77cc3",
      "old_mode": 33188,
      "old_path": "modules/audio_processing/aec3/residual_echo_estimator.h",
      "new_id": "2d7a3378d0e55c4967dd0ba44c56945b761e9586",
      "new_mode": 33188,
      "new_path": "modules/audio_processing/aec3/residual_echo_estimator.h"
    }
  ]
}
