)]}'
{
  "commit": "ea14c99d674905eba49ce4fd1801e712c269a66b",
  "tree": "6c4dd98e9dc55df8ae30abde13f4249aa3151868",
  "parents": [
    "52cbf242e96035991dedc8b4a17c7434a0a179fd"
  ],
  "author": {
    "name": "Jesús de Vicente Peña",
    "email": "devicentepena@webrtc.org",
    "time": "Tue Sep 23 10:46:42 2025"
  },
  "committer": {
    "name": "WebRTC LUCI CQ",
    "email": "webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Tue Sep 23 12:16:53 2025"
  },
  "message": "Add basic ML residual echo estimator impl to AEC3\n\nImplement a NeuralResidualEchoEstimator using ML, this class:\n- load a tflite model into C++\n- rebuffer AEC3 signals to the model input format\n- run model\n- extract a basic residual echo estimate from the model output\n\nCo-authored-by: Sam Zackrisson \u003csaza@google.com\u003e\nBug: webrtc:442444736\nChange-Id: I46285bf16634d558a16451c3b1298b49ac9311e4\nNo-Iwyu: Not changing the tflite includes.\nReviewed-on: https://webrtc-review.googlesource.com/c/src/+/409563\nReviewed-by: Henrik Andreassson \u003chenrika@webrtc.org\u003e\nReviewed-by: Per Åhgren \u003cpeah@webrtc.org\u003e\nReviewed-by: Mirko Bonadei \u003cmbonadei@webrtc.org\u003e\nCommit-Queue: Jesus de Vicente Pena \u003cdevicentepena@webrtc.org\u003e\nCr-Commit-Position: refs/heads/main@{#45711}\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3efce2dd19252a531b429a5fecba3e82e8c67f28",
      "old_mode": 33188,
      "old_path": "BUILD.gn",
      "new_id": "8488cf0818c04f4d2403f34450a60a986d4b15f7",
      "new_mode": 33188,
      "new_path": "BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "4af8c90d4812a58fa65ef036a34273be0d879b69",
      "old_mode": 33188,
      "old_path": "DEPS",
      "new_id": "436122c71066b29c1b4702228cce86d01ac1a82e",
      "new_mode": 33188,
      "new_path": "DEPS"
    },
    {
      "type": "modify",
      "old_id": "4cb3f537606e9a283ce307b6175fca721c5a06e2",
      "old_mode": 33188,
      "old_path": "build_overrides/build.gni",
      "new_id": "e15bc957073ca356aa3800d654938fbbdf5e9f4f",
      "new_mode": 33188,
      "new_path": "build_overrides/build.gni"
    },
    {
      "type": "modify",
      "old_id": "bafd48db9c2ee4f8e6e4df1a2133cece2de1e478",
      "old_mode": 33188,
      "old_path": "modules/audio_processing/BUILD.gn",
      "new_id": "26c197091f27227d60458ebab31d9e0dc0ae337a",
      "new_mode": 33188,
      "new_path": "modules/audio_processing/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "e864c4dfe2176572ab2046e0b378f7fa0c384ce9",
      "old_mode": 33188,
      "old_path": "modules/audio_processing/aec3/BUILD.gn",
      "new_id": "6ab5f18f4de0baf065e1e5233fc5acce5ce299ac",
      "new_mode": 33188,
      "new_path": "modules/audio_processing/aec3/BUILD.gn"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "79c51c2c1b5a68ab5d24a96eb0416fae48d1ce65",
      "new_mode": 33188,
      "new_path": "modules/audio_processing/aec3/DEPS"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ad0313bdb20c4e35988eac4e9c34e74830e4e051",
      "new_mode": 33188,
      "new_path": "modules/audio_processing/aec3/neural_residual_echo_estimator.proto"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "db29db52235f91386246385a44637a507533b635",
      "new_mode": 33188,
      "new_path": "modules/audio_processing/aec3/neural_residual_echo_estimator_impl.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "47eb6c51b25bb4bfd3c2808e9ffa14d003f47a2e",
      "new_mode": 33188,
      "new_path": "modules/audio_processing/aec3/neural_residual_echo_estimator_impl.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5fa5494088b7dfc1b7ee8da2734e23eef2bf8982",
      "new_mode": 33188,
      "new_path": "modules/audio_processing/aec3/neural_residual_echo_estimator_impl_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "3d78cb44efd5729fc82984d32c0ded92a91c75bd",
      "old_mode": 33188,
      "old_path": "modules/audio_processing/test/audio_processing_simulator.h",
      "new_id": "abe90b2dd21eadddafd89fd21266eb066acf3c4c",
      "new_mode": 33188,
      "new_path": "modules/audio_processing/test/audio_processing_simulator.h"
    },
    {
      "type": "modify",
      "old_id": "294162121fefc56d6bb4219e5f107b7791f1aa97",
      "old_mode": 33188,
      "old_path": "modules/audio_processing/test/audioproc_float_impl.cc",
      "new_id": "ddf0647d6efe1a2de304ca453f9da49c30fa8401",
      "new_mode": 33188,
      "new_path": "modules/audio_processing/test/audioproc_float_impl.cc"
    },
    {
      "type": "modify",
      "old_id": "6d6beab721221eeb0c99382fc2bee580073c4693",
      "old_mode": 33188,
      "old_path": "resources/BUILD.gn",
      "new_id": "cb02ec357b813329d99692b665a4d741798a0d4d",
      "new_mode": 33188,
      "new_path": "resources/BUILD.gn"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "55622664cd49e07e384e2d739686e765ff412d05",
      "new_mode": 33188,
      "new_path": "resources/audio_processing/aec3/noop_ml_aec_model_for_testing.tflite.sha1"
    },
    {
      "type": "modify",
      "old_id": "ac905cea7c6e26058fa8045bbaff8ddc02250959",
      "old_mode": 33188,
      "old_path": "webrtc.gni",
      "new_id": "b18c04d6bb547f62b7186ae2b811e61aff0691bd",
      "new_mode": 33188,
      "new_path": "webrtc.gni"
    }
  ]
}
