)]}'
{
  "log": [
    {
      "commit": "305f4b6dabe500b97062e72049a296d0699243d7",
      "tree": "46e8b917d03bd45c9b6ecccb63a3a97432f9aa70",
      "parents": [
        "4b8bb4ee7d1d64dc1cd5478a3772f97e4a4a00d7"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Oct 28 10:26:17 2011 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Oct 28 10:26:17 2011 -0700"
      },
      "message": "Bug 5522189 temporary workaround\n\nChange-Id: I21d91d7a24df7bb6e7fc3d0fbc4786d55391fc0e\n"
    },
    {
      "commit": "3856b090cd04ba5dd4a59a12430ed724d5995909",
      "tree": "a24e4c98fa6049fd8085826be838000f9a67e39b",
      "parents": [
        "1d2acaffde56ad79e6e96f228d7857863462397c"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Thu Oct 20 11:56:00 2011 +0100"
      },
      "committer": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Wed Oct 26 09:57:54 2011 +0100"
      },
      "message": "Rename (IF_)LOGV(_IF) to (IF_)ALOGV(_IF)  DO NOT MERGE\n\nSee https://android-git.corp.google.com/g/#/c/143865\n\nBug: 5449033\nChange-Id: I0122812ed6ff6f5b59fe4a43ab8bff0577adde0a\n"
    },
    {
      "commit": "eb8b914ad9d4331e1cdf4346731770ce69fd0e77",
      "tree": "cf0032240f144033db3c512063fbd7f8161e042f",
      "parents": [
        "5dc2812abddde309234edc786a541d251c4f820a"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Sep 16 13:14:16 2011 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Sep 16 13:14:16 2011 -0700"
      },
      "message": "AudioResampler: use relative instead of absolute labels\n\nThis change is needed to allow Android to compile with -fPIE\nBug: 5328392\n\nChange-Id: I84d947975776800a7b79c6ac75a881af461a631c\n"
    },
    {
      "commit": "4d0243980123378e9dd69022bf4ddca729d84126",
      "tree": "297e2b94a1675f8053588a445238acd6e8f99da4",
      "parents": [
        "17b32853e0bb44a7a34c436141ee26e1405243a9",
        "16bc76ae6b1ee053626695814742c807b42cbce6"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Mon Apr 11 17:27:12 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Apr 11 17:27:12 2011 -0700"
      },
      "message": "am 4430670f: am ca7ad44a: Merge \"audioflinger: Enable ARMv5TE optimized resampler\"\n\n* commit \u00274430670f48f75661293371dab8db55865f5f56e0\u0027:\n  audioflinger: Enable ARMv5TE optimized resampler\n"
    },
    {
      "commit": "0c0a1c0c37dbd2646a732da706d6777283c83e44",
      "tree": "cfd6eb43fd04ff7cc23e8930bc2355b599d2b8c3",
      "parents": [
        "ba0de09f9a221f14e812e2b6498b48cf782c7396"
      ],
      "author": {
        "name": "Jim Huang",
        "email": "jim.huang@linaro.org",
        "time": "Wed Apr 06 14:19:29 2011 +0800"
      },
      "committer": {
        "name": "Jim Huang",
        "email": "jserv@0xlab.org",
        "time": "Thu Apr 07 21:08:39 2011 +0800"
      },
      "message": "audioflinger: Enable ARMv5TE optimized resampler\n\nPreviously, the optimized asm option is only enabled when\n__ARM_ARCH_5E__ is defined, which is assigned in armv5te.mk\nrather than armv7-a series targets.  This patch checks the ARM CPU\nfeature about half-word multiply instructions to enable ARMv5TE\nresampler optimization routines properly.\n\nChange-Id: I4c5a5d8c932416f23bedb0b389db958349f21ea4\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"
    }
  ]
}
