)]}'
{
  "log": [
    {
      "commit": "071ccd5a9702500f3f7d62ef881300914926184d",
      "tree": "2ffdfd9dbc064aa3d2a9b229f87b679220ef4f79",
      "parents": [
        "69aac3e6cd68e8c305a41b2677123db7662efd4b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 22 16:08:41 2011 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 22 16:08:41 2011 -0800"
      },
      "message": "audioflinger: fix clicks on 48kHz audio.\n\nThe calculation done in prepareTracks_l() for the minimum amount\noff frames needed to mix one output buffer had 2 issues:\n- the additional sample needed for interpolation was not included\n- the fact that the resampler does not acknowledge the frames consumed\nimmediately after each mixing round but only once all frames requested have been used\nwas not taken into account.\nThus the number of frames available in track buffer could be considered sufficient although\nit was not and the resampler would abort producing a short silence perceived as a click.\n\nIssue 5727099.\n\nChange-Id: I7419847a7474c7d9f9170bedd0a636132262142c\n"
    },
    {
      "commit": "243f5f91755c01614a8cafe90b0806396e22d553",
      "tree": "d6f4e9f1593f468967f75a82f21d8058a93c5ed1",
      "parents": [
        "8ddeebb93cb41e7a8e9fe763afb6c6016b21fa61"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Feb 28 16:52:51 2011 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Feb 28 16:52:51 2011 -0800"
      },
      "message": "Fix issue 3479042.\n\nThe problem is that when an AudioRecord using the resampler is restarted,\nthe resampler state is not reset (as there is no reset function in the resampler).\nThe consequence is that the first time the record thread loop runs, it calls the resampler\nwhich consumes the remaining data in the input buffer and when this buffer is released\nthe input index is incremented over the limit.\n\nThe fix consists in implementing a reset function in the resampler.\n\nA similar problem was also present for playback but unoticed because the track buffer is always\ndrained by the mixer when a track stops. The only problem for playback was that the initial\nphase fraction was wrong when restarting a track after stop (it was correct after a pause).\n\nChange-Id: Ifc2585d685f4402d29f4afc63f6efd1d69265de3\n"
    },
    {
      "commit": "65ab47156e1c7dfcd8cc4266253a5ff30219e7f0",
      "tree": "da088916c7cadadcddf47467f20cc8b0b6ff7f41",
      "parents": [
        "98fe12aba55e8b8bb14b23c4c3cdba9a99a9753c"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 14 17:59:35 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 14 17:59:35 2010 -0700"
      },
      "message": "move native services under services/\n\nmoved surfaceflinger, audioflinger, cameraservice\n\nall native services should now reside in this location.\n\nChange-Id: Iee42b83dd2a94c3bf5107ab0895fe2dfcd5337a8\n"
    }
  ]
}
