)]}'
{
  "commit": "2f5f3f21ca789dbffa4d2967350e599f997935a7",
  "tree": "cc5f2bc970fbbdd0fd9a9745c7b56ce9a2788f5e",
  "parents": [
    "6276d83854045d0c26d65521037e82e3c01cf5e7"
  ],
  "author": {
    "name": "luigi-rosso",
    "email": "hello@rive.app",
    "time": "Tue Apr 23 03:47:15 2024 +0000"
  },
  "committer": {
    "name": "luigi-rosso",
    "email": "hello@rive.app",
    "time": "Tue Apr 23 03:47:15 2024 +0000"
  },
  "message": "Fix audio instances\n\nFixes issue reported here: https://2dimensions.slack.com/archives/CSFM8K3CH/p1713795412798999\n\nPart of the problem here was that the audio clips were never getting their \"end\" callback called as miniaudio doesn\u0027t call the \"end\" callback when an end time is provided that is not the end of the actual audio file. I modified the AudioEngine to create an appropriately sized PCM buffer for buffered sources and wrap the decoder in an audio source that only decodes the necessary PCM frames before marking the file is actually at its end (based on desired end frame). This is the cleanest way to make miniaudio call the callback without modifying the miniaudio source itself.\n\nDiffs\u003d\n2b2e92ca7 Fix audio instances (#7113)\n\nCo-authored-by: Luigi Rosso \u003cluigi-rosso@users.noreply.github.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "584b93d5de33558cbbd1dc3c7a65830fdac6c2df",
      "old_mode": 33188,
      "old_path": ".rive_head",
      "new_id": "a56982635fa667a577230e0e2741d164fe2930f5",
      "new_mode": 33188,
      "new_path": ".rive_head"
    },
    {
      "type": "modify",
      "old_id": "5d34ca43584d01541b4b80fdacb813e3507c4bed",
      "old_mode": 33188,
      "old_path": "include/rive/audio/audio_sound.hpp",
      "new_id": "96d63f394b469f9feb22cf73dcd4772c40bdf72e",
      "new_mode": 33188,
      "new_path": "include/rive/audio/audio_sound.hpp"
    },
    {
      "type": "modify",
      "old_id": "076733d75e508ce2f19c9712734351522bbdaa99",
      "old_mode": 33188,
      "old_path": "src/audio/audio_engine.cpp",
      "new_id": "8f957e84dada8c973aa210d85a366a298258a326",
      "new_mode": 33188,
      "new_path": "src/audio/audio_engine.cpp"
    },
    {
      "type": "modify",
      "old_id": "6bc227d9f58af6fc2dab4493798f41f514e388bd",
      "old_mode": 33188,
      "old_path": "src/audio/audio_sound.cpp",
      "new_id": "052d17852b758493ce3b805a4ec42d313127c496",
      "new_mode": 33188,
      "new_path": "src/audio/audio_sound.cpp"
    }
  ]
}
