)]}'
{
  "commit": "8101b33e6c59b51b22aeeeaf39045e34a402b01f",
  "tree": "a5c0471ff666864caaae97beec621e9ead5ccb30",
  "parents": [
    "ccaaffa9a3ee427e9401c4dcf6462e378d9a4694"
  ],
  "author": {
    "name": "Mark Harris",
    "email": "mark.hsj@gmail.com",
    "time": "Mon Jun 20 22:23:26 2022 -0700"
  },
  "committer": {
    "name": "Mark Harris",
    "email": "mark.hsj@gmail.com",
    "time": "Sat Jun 25 14:10:35 2022 -0700"
  },
  "message": "Correct redundancy handling with lost/DTX frames\n\nIn https://github.com/xiph/opus/issues/253, the encoder generates a\nHybrid frame with redundancy, to switch to CELT-only mode, and then\nactivates DTX immediately afterwards.  The decoder ran Hybrid PLC,\nwhich isn\u0027t right.  Use CELT PLC instead if there was already a\ntransition to CELT via redundancy at the end of the previous frame.\n\nAlso do not use a stale CELT decoder to decode a second redundancy\nframe when the first redundancy frame for a transition from SILK-only\nmode was lost.  Instead of mixing in old audio from the last time\nthat CELT was used, ignore the second redundancy frame in this case.\nAlternatively the CELT decoder could be reset before decoding, but\nit would not be ready until after the 2.5 ms of audio that is needed.\n\nReviewed by Jean-Marc Valin.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9113638a000bab2a01977b81c8fd7fb03281750d",
      "old_mode": 33188,
      "old_path": "src/opus_decoder.c",
      "new_id": "0be87dc0a1ecc7a870451b64b6203d5b740156b5",
      "new_mode": 33188,
      "new_path": "src/opus_decoder.c"
    }
  ]
}
