)]}'
{
  "commit": "71f37cd8a175ee00635cb91506d6810fd02b5b51",
  "tree": "644a6fc98cfff87246a11cf8d1531c9c528a6a09",
  "parents": [
    "804878f3a3ea40ace5bd572cee98f9e13a0dbf0b"
  ],
  "author": {
    "name": "Eric Laurent",
    "email": "elaurent@google.com",
    "time": "Wed Mar 31 12:21:17 2010 -0700"
  },
  "committer": {
    "name": "Eric Laurent",
    "email": "elaurent@google.com",
    "time": "Wed Mar 31 12:36:34 2010 -0700"
  },
  "message": "Fix isssue 2548710: Native AudioTrack resources never freed.\n\nThe problem is a bug in AudioFlinger::MixerThread::prepareTracks_l() that makes that even if the TrackHandle\nis destroyed, the corresponding Track will remain active as long as frames are ready for mixing.\nIf the track uses shared memory (static mode) and the sound is looped, this track will play for ever.\n\nThe fix consists in removing the track from active list immediately if the track is terminated.\n\nChange-Id: I4582aa1d981079ab79be442fb6185f5afaed5cf3\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "815a36737ef9cd10dbc1d8f463d0f237218f5bf7",
      "old_mode": 33188,
      "old_path": "libs/audioflinger/AudioFlinger.cpp",
      "new_id": "7166c89700c381bc8981bb820f301954aba31056",
      "new_mode": 33188,
      "new_path": "libs/audioflinger/AudioFlinger.cpp"
    }
  ]
}
