)]}'
{
  "log": [
    {
      "commit": "04f07fd61022dac46ddda9c815d65bc3d3278b84",
      "tree": "d7d4a83f5190b4f917a608de504814e824862569",
      "parents": [
        "20bd9bfc3ae429412c8eb98619b40fb8e3671bbc",
        "5744661e85981f8a9456bf470e2761235fc026da"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 22 19:16:25 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 22 19:16:26 2015 +0000"
      },
      "message": "Merge \"Make record buffer in RecordThread variable format\""
    },
    {
      "commit": "20bd9bfc3ae429412c8eb98619b40fb8e3671bbc",
      "tree": "fd3901e733e87aeac5ec506070f66a2702c30a7c",
      "parents": [
        "983f2e02b342ef3ac4004471cbfd4cd8d5aecf7d",
        "73e62e2ea12e46825958eba718bd8d5e23064ec5"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 22 19:16:15 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 22 19:16:16 2015 +0000"
      },
      "message": "Merge \"Fix single channel playback that does not use AUDIO_CHANNEL_OUT_MONO\""
    },
    {
      "commit": "5a8a95de6dad1a3bcf3da5a37b35766e89086e13",
      "tree": "64b82016eaef26f51b75470714172c06287c9c56",
      "parents": [
        "ea44f41bb142555e747cc11382296e94af99d312"
      ],
      "author": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Sat Apr 18 14:47:04 2015 -0700"
      },
      "committer": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Wed Apr 22 10:57:24 2015 -0700"
      },
      "message": "Use AudioPlaybackRate to hold TimestretchBufferProvider parameters\n\nUse this struct to handle the parameters for TimestretchBufferProvider all\nacross the system.\nAdd stretch mode and fallback mode to TimestretchBuffer Provider.\n\nChange-Id: I19099924a7003c62e48bb6ead56c785cb129fba2\n"
    },
    {
      "commit": "5744661e85981f8a9456bf470e2761235fc026da",
      "tree": "ff5478072359cf1a910140000fa844322004c1f0",
      "parents": [
        "73e62e2ea12e46825958eba718bd8d5e23064ec5"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sun Apr 19 23:56:46 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 21 15:30:49 2015 -0700"
      },
      "message": "Make record buffer in RecordThread variable format\n\nChange-Id: Id4bb9b973eeea16946fba3bc084c7ac270d9fa33\n"
    },
    {
      "commit": "73e62e2ea12e46825958eba718bd8d5e23064ec5",
      "tree": "db5c4e3ffa06df9196ebbc4e5d3dff90e3c81b6a",
      "parents": [
        "7184bab920699d49718e8fc3cf8a23d3c9d8d54a"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 20 12:06:38 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 21 15:28:48 2015 -0700"
      },
      "message": "Fix single channel playback that does not use AUDIO_CHANNEL_OUT_MONO\n\nMono channel playback without resampling and not using\nAUDIO_CHANNEL_OUT_MONO can show low frequency garbling.\n\nBug: 20463456\nChange-Id: I0c1bbf957ea439bb8d8da57b9e78938e1acb4793\n"
    },
    {
      "commit": "cf31941ef4cf1a882cc23743ada41e49f8e1be03",
      "tree": "efeb057430dea9922e6421e65a76a963c76a57c4",
      "parents": [
        "af52793677e26d76788fc63d2df08d0c141013bc",
        "f097cae65bfce7200938c5bd89e7e9b61cba78b3"
      ],
      "author": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Tue Apr 14 00:23:59 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 14 00:24:01 2015 +0000"
      },
      "message": "Merge \"TimestretchBufferProvider integration with Sonic Library\""
    },
    {
      "commit": "f097cae65bfce7200938c5bd89e7e9b61cba78b3",
      "tree": "c69ed57deac44c243d914a3c8fa7b88bf3327ca6",
      "parents": [
        "db93079daf06a94e50622d0383b9ed8e767e2f92"
      ],
      "author": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Mon Apr 13 12:17:21 2015 -0700"
      },
      "committer": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Mon Apr 13 17:20:19 2015 -0700"
      },
      "message": "TimestretchBufferProvider integration with Sonic Library\n\nUsing Sonic as backbone for time stretching algorithm.\nAdding libsonic to needed makefiles.\n\nbug: 19196501\nChange-Id: I1ea9221d2f56e4e79fba8746ce0ad350b5079e82\n"
    },
    {
      "commit": "221a33890fa8b3c3c43c94327305b8e7717c412f",
      "tree": "6953a583833355b48db57da5d3a326e505f96aaa",
      "parents": [
        "db93079daf06a94e50622d0383b9ed8e767e2f92",
        "ab300c8cbf5df98fddca39e8d1698b0307432152"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 13 22:43:07 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 13 22:43:07 2015 +0000"
      },
      "message": "Merge \"audio polciy: remove FM audio capture permission.\""
    },
    {
      "commit": "ab300c8cbf5df98fddca39e8d1698b0307432152",
      "tree": "083c508fb62b4456a2c903045a165d9ef001b8fb",
      "parents": [
        "31ffe45a22b72ee5d25bb4932d0525e90dbc19fe"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 13 13:47:33 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 13 13:47:33 2015 -0700"
      },
      "message": "audio polciy: remove FM audio capture permission.\n\nChange-Id: I2607d89b0bd87cdd2f4084dfdb55135509a824d5\n"
    },
    {
      "commit": "de5e5d7141e7816a006e9a890bb68fc2d6581e0e",
      "tree": "746e10786cdba136ac803b3e34e1f37eda70a1ee",
      "parents": [
        "7d014e50b3acd60e73ed7d7a74dc58485c7a413c",
        "23d8997f58bb9c59fa3a1b9a6b2edbf1b2b0f4c6"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Apr 10 16:22:35 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 10 16:22:36 2015 +0000"
      },
      "message": "Merge \"AudioFlinger: more DTS passthrough support\""
    },
    {
      "commit": "8edb8dc44b8a2f81bdb5db645b6b708548771a31",
      "tree": "663bda0f8a3d43894fa6d3d3f4283ed0df427f03",
      "parents": [
        "c5656cc900aeb4a705e27508dd82c70030a97709"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Mar 26 19:13:55 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Apr 09 18:49:15 2015 -0700"
      },
      "message": "Add playback rate to AudioTrack\n\nBug: 19196501\nChange-Id: I6411e1d3ce652b711a71a6d9df020cb5f60d4714\n"
    },
    {
      "commit": "23d8997f58bb9c59fa3a1b9a6b2edbf1b2b0f4c6",
      "tree": "eed231c9bd5dc2523b7a0cf7c8b142810079dabc",
      "parents": [
        "31ffe45a22b72ee5d25bb4932d0525e90dbc19fe"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Apr 06 16:22:23 2015 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Apr 09 16:18:34 2015 -0700"
      },
      "message": "AudioFlinger: more DTS passthrough support\n\nPass format for AC3 or DTS to SPDIF encoder.\n\nBug: 18292317\nChange-Id: I6d80eb548cb431bac3390ebb3235146171344291\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "c5656cc900aeb4a705e27508dd82c70030a97709",
      "tree": "930d4266db7b4d93eb7ade5629812a722dc7920f",
      "parents": [
        "857d5a20a956ef61b64ae07b018ecc2f1eb0a503"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Mar 26 19:04:33 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Apr 09 12:37:01 2015 -0700"
      },
      "message": "Add playback rate to AudioMixer\n\nBug: 19196501\nChange-Id: I42d1f90e6297cf3f1304860d1691a5dfedd4c37d\n"
    },
    {
      "commit": "857d5a20a956ef61b64ae07b018ecc2f1eb0a503",
      "tree": "6b0e743b3c7f027aff568ac842c629291d1d4207",
      "parents": [
        "f129b03fa583d4cc26fd9c9171b8fb3b0ed8d4f4"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Mar 26 18:46:00 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 08 23:31:22 2015 -0700"
      },
      "message": "Factor out buffer provider code from AudioMixer\n\nIn preparation for playback rate support and timestretching.\n\nBug: 19196501\nChange-Id: I435accb852d32110dd0b3a9917488522c567ba80\n"
    },
    {
      "commit": "3277877a576b079ebce444075735f45259660e58",
      "tree": "d81436236b20ce4fbe111913dc38af4d32e21a80",
      "parents": [
        "86f79e3f3bc1de7b4e4dd045de8962b8a62ab5d5",
        "6770c6faa3467c92eabc5ec9b23d60eb556a0d03"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Apr 09 00:34:57 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 09 00:34:57 2015 +0000"
      },
      "message": "Merge \"Enable 8 bit and float pcm record formats for AudioFlinger\""
    },
    {
      "commit": "86f79e3f3bc1de7b4e4dd045de8962b8a62ab5d5",
      "tree": "222616b4bb2cb2cbfcc0d7c14581e182143e87cd",
      "parents": [
        "77a44e8d1f902a100500ea69a450e22889dcff31",
        "73c02e4277b399c2ec1555d32b6ad5df23bb83dc"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 08 23:30:58 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 08 23:30:58 2015 +0000"
      },
      "message": "Merge \"Improve ResamplerBufferProvider\""
    },
    {
      "commit": "6770c6faa3467c92eabc5ec9b23d60eb556a0d03",
      "tree": "45470127b227dbda5a346bb1902f92f8998c25bb",
      "parents": [
        "73c02e4277b399c2ec1555d32b6ad5df23bb83dc"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 07 13:43:36 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 08 15:58:56 2015 -0700"
      },
      "message": "Enable 8 bit and float pcm record formats for AudioFlinger\n\nUpdate sampling rate handling as well.\n\nBug: 19570772\nChange-Id: I872248e64c0578b2e48869a68fee0d51bd0640c3\n"
    },
    {
      "commit": "73c02e4277b399c2ec1555d32b6ad5df23bb83dc",
      "tree": "c42d75e42eda5b09915c0962107083f1c55dc74a",
      "parents": [
        "97a893eb34f8687485c88eaf15917974a203f20b"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sun Mar 29 01:13:58 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 08 15:55:46 2015 -0700"
      },
      "message": "Improve ResamplerBufferProvider\n\nChange-Id: I3cc3af221ad5797ff219d75227350733afa180db\n"
    },
    {
      "commit": "77a44e8d1f902a100500ea69a450e22889dcff31",
      "tree": "0e1ca5b8a21f3d99141542b0d866e382db140591",
      "parents": [
        "0c0acdadc9ca961acd1f3b4b85c2befef2dc7161",
        "97a893eb34f8687485c88eaf15917974a203f20b"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 08 22:54:38 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 08 22:54:39 2015 +0000"
      },
      "message": "Merge \"Add RecordBufferConverter for RecordThread data processing\""
    },
    {
      "commit": "97a893eb34f8687485c88eaf15917974a203f20b",
      "tree": "6a103ab6f76dcabb0416677055dab4a8454f9fd7",
      "parents": [
        "6b3b7e304e0f8f167241b2c75f1eb04a9ef192ec"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sun Mar 29 01:03:07 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 08 15:23:30 2015 -0700"
      },
      "message": "Add RecordBufferConverter for RecordThread data processing\n\nChange-Id: Ia3aab8590cd41e8a7cba0a7345d70d2866d92045\n"
    },
    {
      "commit": "0c0acdadc9ca961acd1f3b4b85c2befef2dc7161",
      "tree": "7f0237c465a72f3a7e7f447835a7b558dc58a795",
      "parents": [
        "303db9de6506db0c2b300863c39ece81721dd4e9",
        "6b3b7e304e0f8f167241b2c75f1eb04a9ef192ec"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 08 22:23:03 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 08 22:23:03 2015 +0000"
      },
      "message": "Merge \"Return number of frames output from resample method\""
    },
    {
      "commit": "6b3b7e304e0f8f167241b2c75f1eb04a9ef192ec",
      "tree": "1cec011ad26676dc9dc3eea778e18136c083e04f",
      "parents": [
        "25f82752942b1c78aec8ee303d61afff85cff9d1"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sun Mar 29 00:49:22 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 08 14:31:58 2015 -0700"
      },
      "message": "Return number of frames output from resample method\n\nChange-Id: Ic297e2ed59839f1788c83e099ef1a9e4af29591f\n"
    },
    {
      "commit": "3bcf8597189c592713675ec58326ecbef0ac4ae9",
      "tree": "5656987c2e9d6fe9c99bb632865318489432fe36",
      "parents": [
        "322b4d25387a04c9afebe998326d005bbdf17ede"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 03 12:13:24 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 08 12:38:08 2015 -0700"
      },
      "message": "audio flinger: improve device to device audio patches\n\nAllow creation of audio patches between input and output\ndevices managed by the same audio HW module.\n\nChange-Id: I4b83268a4d5c41f3d5905d7581202cf5193efd32\n"
    },
    {
      "commit": "b369cafd67beb63dd0278dba543f519956208a7f",
      "tree": "c50687a52df6b28cb071b36a5377cae9054bbefa",
      "parents": [
        "253930b927d375413a42f170fa1ef8d98b8f7cb4"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 30 20:51:47 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 01 00:03:48 2015 +0000"
      },
      "message": "audio flinger: fix standby on output with HW A/V sync\n\nFix a bug in audio HAL pause logic on output threads with\nHW A/V sync preventing the HAL to enter standby when\nthe audio track is stopped and detroyed.\n\nBug: 19980184.\n\nChange-Id: Ia497dad23159038b447fcbc18a67bb61b70b79cc\n"
    },
    {
      "commit": "ae9710473b88592c557488bfcae71616d9e9b75f",
      "tree": "40878341868ee948401ae73696fa857d1ce7a156",
      "parents": [
        "40272963eb8f8d8d7a1f39e6a25ae73bc755e553",
        "062e67a26e0553dd142be622821f493df541f0c6"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Mar 24 22:51:26 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 24 22:51:26 2015 +0000"
      },
      "message": "Merge \"AudioFlinger: call SPDIF wrapper from AudioFlinger\""
    },
    {
      "commit": "1147314379fccebdb072cd0c1a246b505839a2b0",
      "tree": "2c91d537bfc2ade4684afec9d45f27197b639538",
      "parents": [
        "957af4cef721c1eec1606850e77ad2ef1fd0eb0a",
        "b7fbf7ecc6b034243ec64f79f3113675b5e3c941"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 24 21:48:03 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 24 21:48:04 2015 +0000"
      },
      "message": "Merge \"AudioRecord TRANSFER_OBTAIN can be used with FAST flag\""
    },
    {
      "commit": "062e67a26e0553dd142be622821f493df541f0c6",
      "tree": "125d28264adfc5b7bd993bb343569eea63bfb95d",
      "parents": [
        "21b51b61ee52e6aa74d98b138d3dd4f0e17b1441"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Feb 11 13:40:50 2015 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Mar 24 13:24:18 2015 -0700"
      },
      "message": "AudioFlinger: call SPDIF wrapper from AudioFlinger\n\nCreate an interface layer between the AudioFlinger and the HAL\nthat manages the wrapping and format conversion.\n\nRemoved unnecessary includes.\nHandle rate conversion in getRenderPosition().\nTry to open HAL with encoded format before wrapping with SPDIF.\n\nBug: 17566660\nChange-Id: I00ad888ca15ff0f85b85efb8167c7f5ea761a244\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "3fac40b9e80e7d27fa613afe22048872f2ff6d9e",
      "tree": "62e4f9248e3cf766ce0ee65d24538f9856e62d52",
      "parents": [
        "ebb80468d8e31e22b867744d86b57bd4bc3186fd",
        "6140c79c31f5dc237fba69554de5be641cedf113"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Mar 24 19:00:07 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 24 19:00:08 2015 +0000"
      },
      "message": "Merge \"AudioFlinger: prevent retrograde timestamps for direct mode\""
    },
    {
      "commit": "b7fbf7ecc6b034243ec64f79f3113675b5e3c941",
      "tree": "c90e057b2756c80dd371adc82e5431bb6e044236",
      "parents": [
        "4c36d6f48f4eecacc148317f775f65961a4f03d2"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 18 12:57:28 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 23 14:50:42 2015 -0700"
      },
      "message": "AudioRecord TRANSFER_OBTAIN can be used with FAST flag\n\nChange-Id: I001ba1a88150dddf79d99baf5927f31799745eef\n"
    },
    {
      "commit": "6140c79c31f5dc237fba69554de5be641cedf113",
      "tree": "47bd7b5544c7e76f49956629f91168e3b493add7",
      "parents": [
        "377165c24968b044faccaf366a2377fa32143e2f"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Mar 19 14:30:21 2015 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Mar 23 12:49:00 2015 -0700"
      },
      "message": "AudioFlinger: prevent retrograde timestamps for direct mode\n\nPrevent retrograde motion in the HAL or drivers from making it\nup through the AudioFlinger to the app.\n\nBug: 19604395\nChange-Id: I11d6c0f7cab69e75fd4b4a2a90f64960b4bb6d5a\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "d198b85a163330b03e7507c9e8bfeb5f4d958a6c",
      "tree": "0c682560d50acec9efeca2a1d706b3a09c6ecdc5",
      "parents": [
        "0e4421286b92a81e952f53210227adbf05d97c25"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 16 14:55:53 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 23 08:02:41 2015 -0700"
      },
      "message": "Fix typos\n\nFix typos in comments\nAdd formal parameter name to declaration where it was missing\nFix out of order comments\n\nChange-Id: I1de81ae82af5ca507864e4c7b959111bac898b98\n"
    },
    {
      "commit": "0e4421286b92a81e952f53210227adbf05d97c25",
      "tree": "e9a496cd2d5ec0bc2612e845732c2bbd5447d9fd",
      "parents": [
        "7c963e92bc11d4b6a22696c51f9abf42987a1f74",
        "5b8fde71e08f57478ef25d040fc5f66294011ac6"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Mar 20 01:52:15 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 20 01:52:16 2015 +0000"
      },
      "message": "Merge \"Enable full floating point path in AudioMixer\""
    },
    {
      "commit": "5a23aa949188fafe1d8d35966ff5a73974294dfd",
      "tree": "51100d1057123aa3d7b6fd40a54c2b5611a82172",
      "parents": [
        "d58b2ac7244a964caa3f4e386b8280ae2f5d2125",
        "17c9c998afed5ed9df7495eeed5822f3ed53ebec"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 19 14:49:46 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 19 14:49:47 2015 +0000"
      },
      "message": "Merge \"Initial implementation of fast capture dump\""
    },
    {
      "commit": "a1a847a509c5670276568d9945509677d92507ed",
      "tree": "040a4e6c97488ca5f775ce3395d719ea90d45b14",
      "parents": [
        "4604458dfe57b0e91a464aefafea50ae7b9876c1",
        "240934ba80d6c6165749db7681d243c6857a092f"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Mar 17 22:50:13 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 17 22:50:14 2015 +0000"
      },
      "message": "Merge \"audioflinger: refresh fast track underrun state upon start\""
    },
    {
      "commit": "240934ba80d6c6165749db7681d243c6857a092f",
      "tree": "ed11373a97a1e0815e6949dc4f7d08d449a6fecc",
      "parents": [
        "1a86a8adbf4ab43a6aed2c3c8aa0830c001adb77"
      ],
      "author": {
        "name": "Haynes Mathew George",
        "email": "hgeorge@codeaurora.org",
        "time": "Wed Mar 11 18:25:50 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Mar 16 10:47:09 2015 -0700"
      },
      "message": "audioflinger: refresh fast track underrun state upon start\n\nFalse underrun is detected when starting recycled fast tracks, which\nleads to continuous fatal assertion failures and even AP reboot.\n\nTrack\u0027s last mObservedUnderruns isn\u0027t updated one at previous stop()\ncall. Hence, when we start the same track again, we should synchronize\nit to the latest state instead of relying on stale one.\n\nauthored-by: Weiyin Jiang\u003cwjiang@codeaurora.org\u003e\nCRs-Fixed: 803389\nBug: 19635137\nSigned-off-by: Andy Hung \u003chunga@google.com\u003e\nChange-Id: Ia003a49c6896dba965798c062c98b8c367ef8369\n"
    },
    {
      "commit": "f59497bd3c190e087202043de5450ef06e92b27d",
      "tree": "52ff88a5a4bd358358850e0ca16d0f9527fded4e",
      "parents": [
        "802a568f77b9a372537e4216b2a7cbb203958a87"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jan 26 16:35:47 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 13 16:22:16 2015 -0700"
      },
      "message": "Update comments\n\nChange-Id: I37d3c4ce22b74fe8581a886fe5a7f9fef8266dad\n"
    },
    {
      "commit": "b4f18f964cba9f124e5a264428290ada6eb4aa00",
      "tree": "758ad996c40893bbb89b04b248f2cb28e35dc448",
      "parents": [
        "172e2c5a41275efbd5a9c343fa8b8c4c653061b4",
        "1dfe2f9c2d03fc8d0ed0cdfe0b9fb894bc0bcc11"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 09 21:34:23 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 09 21:34:24 2015 +0000"
      },
      "message": "Merge \"Allow TRANSFER_OBTAIN to be used for fast tracks\""
    },
    {
      "commit": "1dfe2f9c2d03fc8d0ed0cdfe0b9fb894bc0bcc11",
      "tree": "1863bd0a9a9d1c0a0ab2055e345d9f86b9986151",
      "parents": [
        "b46f394a85d704dd05287cf9bb77cf86e3c02a38"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 09 12:03:14 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 09 14:19:35 2015 -0700"
      },
      "message": "Allow TRANSFER_OBTAIN to be used for fast tracks\n\nChange-Id: I8fa20c26f076567b38210af4a680fe1cb2eacee4\n"
    },
    {
      "commit": "17c9c998afed5ed9df7495eeed5822f3ed53ebec",
      "tree": "9b146046584a7093410ecb23b1265d770383c376",
      "parents": [
        "44182c206f7c5584ef2cf504da6be98fab665dbf"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 02 15:53:01 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 06 09:35:19 2015 -0800"
      },
      "message": "Initial implementation of fast capture dump\n\nChange-Id: I898d903e539f760ef7caa80f41ca21c223f67264\n"
    },
    {
      "commit": "44182c206f7c5584ef2cf504da6be98fab665dbf",
      "tree": "6b3c4134c8cdd0d92aff4f917dfa3134c2c43bf4",
      "parents": [
        "0b89bc0d285b8fd4798df1ff0ba9f93851a3bd48"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 05 17:12:23 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 06 09:31:03 2015 -0800"
      },
      "message": "Dump generic information first for each thread\n\nalso mBufferSize was already being displayed as part of dumpBase\n\nChange-Id: I17f3062fcc076c594b5fd6b8fca286b27067e07c\n"
    },
    {
      "commit": "0b89bc0d285b8fd4798df1ff0ba9f93851a3bd48",
      "tree": "9c7813d20bf4cd16d9cec1ae464877432751703e",
      "parents": [
        "d7dca050c630bddbd73a6623271b34b4290460ee"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 05 16:37:47 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 06 09:29:51 2015 -0800"
      },
      "message": "Display more fields in thread dumpBase\n\nChange-Id: Ice15e999dda2f6cf9d23685ade4a87f74180322d\n"
    },
    {
      "commit": "d7dca050c630bddbd73a6623271b34b4290460ee",
      "tree": "c95d8f92b3fcaa95a712f862486bc07589ac746f",
      "parents": [
        "bcb1486d052e329ae4790d93055d1c51017286c3"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 05 16:05:54 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 06 09:23:25 2015 -0800"
      },
      "message": "Rename mName to mThreadName and kNameLength to kThreadNameLength\n\nChange-Id: I0adfcdcab7923a07a840ec0e04528cb8bfc41f10\n"
    },
    {
      "commit": "bcb1486d052e329ae4790d93055d1c51017286c3",
      "tree": "27c26a78aea2bfe71a07b61543b4a488e422a4e0",
      "parents": [
        "2f55e7632dfa0dafde58efd8cb2af6593217fd91"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 05 17:11:21 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 06 09:23:23 2015 -0800"
      },
      "message": "Whitespace\n\nswitch indent\n\nChange-Id: I652c798dd37a80634d247c4d881fb1cce92c4bd6\n"
    },
    {
      "commit": "2f55e7632dfa0dafde58efd8cb2af6593217fd91",
      "tree": "98919a61809f20da6186d3e54537546604d7ff22",
      "parents": [
        "e7d6671c1ab1fea7ab1c4a9ebd1cd8f899c87628"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 05 16:05:08 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 06 09:22:51 2015 -0800"
      },
      "message": "Rename tee sink file name and add prefix to macros\n\nChange-Id: If316b9e32963d9baef8f4382fcc73dc6c4ff684d\n"
    },
    {
      "commit": "e7d6671c1ab1fea7ab1c4a9ebd1cd8f899c87628",
      "tree": "0d55fe4b6aa3009acd3f9253b42d19a3214ed029",
      "parents": [
        "0f5b562737d6b5457aa83a4fdce9c6fb32584d9d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 05 13:46:52 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 06 09:16:44 2015 -0800"
      },
      "message": "Rename formal parameter to match type name\n\nChange-Id: I0761005b751f5c4a4b28729b1820961ff3077afd\n"
    },
    {
      "commit": "0f5b562737d6b5457aa83a4fdce9c6fb32584d9d",
      "tree": "a3d8ffcaf5015d9d66ef5a3f10c7d13bbb278e94",
      "parents": [
        "6ffc14ab6b43d4239f5adb4e6c642b7875d26432"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Feb 18 14:33:30 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 06 09:16:41 2015 -0800"
      },
      "message": "Add devicesToString, inputFlagsToString, and sourceToString\n\nChange-Id: I0c09d76c204ffc5579f62d2ed1faef07922a5962\n"
    },
    {
      "commit": "6ffc14ab6b43d4239f5adb4e6c642b7875d26432",
      "tree": "64acadc3635637aa5681ccc9ec3092912518c314",
      "parents": [
        "fa8b4792228083a4c95e8bd1c28690d44bb48bd6",
        "dfb0e115d827887e2f56a8877fe41b256d24360e"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 06 16:14:37 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 06 16:14:38 2015 +0000"
      },
      "message": "Merge \"Fix typo in string table\""
    },
    {
      "commit": "dfb0e115d827887e2f56a8877fe41b256d24360e",
      "tree": "6a43958eaf694d463f19a68193d37e285d548beb",
      "parents": [
        "e8c9a8f78a9f9213060e5d54a15cde364df3e0d0"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Feb 18 14:33:39 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 05 17:33:48 2015 -0800"
      },
      "message": "Fix typo in string table\n\nChange-Id: Iaf3d3c77129c62cf3dcad21fc754f390eb43b28e\n"
    },
    {
      "commit": "df68f07ca7cdeb500fcf101b317c61a0f0865723",
      "tree": "9b5ae71ee622c6d05270c5cd18f0d41e8374a563",
      "parents": [
        "60d5023f92f344d1c4e72d8b1eee54a1d014f36c",
        "6b667dde03a5707285a2ff76ada525075d4c60ef"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Mar 04 18:42:32 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 04 18:42:43 2015 +0000"
      },
      "message": "Merge \"Improve resampler speed for floating point and arm64\""
    },
    {
      "commit": "5115777127bb4d2d50833537e09054dcdffdfc76",
      "tree": "70e9d2aeb62926d0d9513fad6f607904a43de74f",
      "parents": [
        "8a0554c63dc40a2a7c066b03041079ec9eb220e5"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 03 11:48:45 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 03 15:56:01 2015 -0800"
      },
      "message": "Remove PCM16 assumption from FastCapture\n\nBug: 19586911\nChange-Id: I74d4ddc09a9eb9c651f874482639d39a56f8ca1f\n"
    },
    {
      "commit": "8a0554c63dc40a2a7c066b03041079ec9eb220e5",
      "tree": "4e3739739382f654e9c7b4eb1335e0346ae9f967",
      "parents": [
        "4dd03b5b68dcd8eb5f5ffe2cfe93d26b8f08b848"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 03 12:17:06 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 03 15:56:01 2015 -0800"
      },
      "message": "Pull up comment to superclass\n\nChange-Id: I2e3632ee80744f2f8d932ac1a8597ff805883851\n"
    },
    {
      "commit": "4dd03b5b68dcd8eb5f5ffe2cfe93d26b8f08b848",
      "tree": "203ce41ac6f50f6a4c90cefd3b33f6d351037163",
      "parents": [
        "e4a7ce250cb94a00aa2f76e5edca1c4479dc5401"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 03 11:32:04 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 03 15:56:00 2015 -0800"
      },
      "message": "Remove redundant this-\u003e\n\nChange-Id: Iaa11bcce94dd331425197aab49065939e226a6a2\n"
    },
    {
      "commit": "e4a7ce250cb94a00aa2f76e5edca1c4479dc5401",
      "tree": "90743cbfc56a46b815fc5118b0695f5130e8d6a5",
      "parents": [
        "d702a568cb62e5aebe048147350bb3c76f9386ba"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 03 11:23:17 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 03 15:55:56 2015 -0800"
      },
      "message": "Add \"m\" prefix to fields\n\nChange-Id: Ifdb8fa886d1ff53cd7c8aff3c2f8286e6e18dec2\n"
    },
    {
      "commit": "6b667dde03a5707285a2ff76ada525075d4c60ef",
      "tree": "1034167044ecb2bb9551020bd19441da40748904",
      "parents": [
        "bf31b3301676ad86151f632e9ca186fd02445d86"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Feb 06 15:05:37 2015 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Mar 03 15:23:19 2015 -0800"
      },
      "message": "Improve resampler speed for floating point and arm64\n\nAdd floating point intrinsics for arm32 and arm64 devices.\nAdd integer intrinsics for arm64 devices.\n\nBug: 17366024\nChange-Id: Id4240f549033deb262815c7145d69820e5fd7b92\n"
    },
    {
      "commit": "d702a568cb62e5aebe048147350bb3c76f9386ba",
      "tree": "507e18b27556b74262a527a7378515fbdcf9b573",
      "parents": [
        "fbdb2aceab7317aa44bc8f301a93eb49e17b2bce"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 02 15:51:38 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 03 08:52:56 2015 -0800"
      },
      "message": "Pull out commandToString() from FastMixerDumpState.cpp\n\nto FastThreadState.cpp, FastMixerState.cpp, and FastCaptureState.cpp\n\nChange-Id: I872efb211e8a0335c42906367859d3674340e374\n"
    },
    {
      "commit": "fbdb2aceab7317aa44bc8f301a93eb49e17b2bce",
      "tree": "97defd36379d3d4770dbd02dbacf046084889761",
      "parents": [
        "63238efb0d674758902918e3cdaac322126484b7"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 02 14:47:19 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 03 08:50:40 2015 -0800"
      },
      "message": "Pull up increaseSamplingN and kSamplingNforLowRamDevice\n\nfrom FastMixerDumpState to FastThreadDumpState, and remove unused parameter\nfrom FastMixerDumpState constructor.\n\nChange-Id: Ib8937b106622a8da28a6ef6043de4528ae82cb05\n"
    },
    {
      "commit": "63238efb0d674758902918e3cdaac322126484b7",
      "tree": "07fdf37a2bc73a886d8ea41f69e722ed914754af",
      "parents": [
        "d7e1d08c2ac21cdd2f3b7f83fec7094f6a98fc08"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 02 15:50:29 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 03 08:50:40 2015 -0800"
      },
      "message": "Remove redundant semicolon from namespace closing\n\nChange-Id: I163f9d3d216c283ae1160ce4802e5247cf44fba7\n"
    },
    {
      "commit": "13e71707522a212b192063acb0b221abbe618f60",
      "tree": "e96e4f768235dc77478aef7d9a086b8f61f31d4d",
      "parents": [
        "785b34e6b2743e3303dcd56d269259da73c40dfb",
        "d797a9d5daad3051f9ac1d348abc2f434ea3ddcf"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 03 01:01:05 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 03 01:01:05 2015 +0000"
      },
      "message": "Merge \"Fix compile error if FAST_THREAD_STATISTICS not defined\""
    },
    {
      "commit": "785b34e6b2743e3303dcd56d269259da73c40dfb",
      "tree": "d6cc5eb0be4404b51a59f5460a76a3ecb355ba21",
      "parents": [
        "a5c5ad3615613ac0f15012e9e07a34582da7fe77",
        "214b406c813e5baca3e4b5cdc1d986de35f09bbb"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 03 01:00:53 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 03 01:00:54 2015 +0000"
      },
      "message": "Merge \"Rename FAST_MIXER_STATISTICS to FAST_THREAD_STATISTICS\""
    },
    {
      "commit": "d797a9d5daad3051f9ac1d348abc2f434ea3ddcf",
      "tree": "ce8626ab8016e1d162c2adcb14bbf2e3d9731267",
      "parents": [
        "214b406c813e5baca3e4b5cdc1d986de35f09bbb"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 02 14:19:25 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 02 14:50:26 2015 -0800"
      },
      "message": "Fix compile error if FAST_THREAD_STATISTICS not defined\n\nChange-Id: I3a4ac558e61ad956a7a6e325534e722066e49b2f\n"
    },
    {
      "commit": "214b406c813e5baca3e4b5cdc1d986de35f09bbb",
      "tree": "9e39728f873648da62d84e101b8dfcb25c58f4f7",
      "parents": [
        "bf31b3301676ad86151f632e9ca186fd02445d86"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 02 14:15:47 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 02 14:17:05 2015 -0800"
      },
      "message": "Rename FAST_MIXER_STATISTICS to FAST_THREAD_STATISTICS\n\nChange-Id: Idb5f5bf0c20bffff8536cf4a46f696e12e99e81b\n"
    },
    {
      "commit": "a5c5ad3615613ac0f15012e9e07a34582da7fe77",
      "tree": "36bd8363a603868b2b3b57e47727d932c299dcdf",
      "parents": [
        "bf5d0666b803921541e6a5d6abae05316e533855"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 02 11:19:12 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 02 11:23:35 2015 -0800"
      },
      "message": "Re-generate sinc tables with comment and indent by 4\n\nChange-Id: I349273969dfd7e9d7f896f8bd6d552bd6b56ba54\n"
    },
    {
      "commit": "bf31b3301676ad86151f632e9ca186fd02445d86",
      "tree": "4cdb7c795f3fb11cc9c9c730a869e25eb2c29d01",
      "parents": [
        "b2b152afbefb2a3d67c142174da9b7d6ebf8630c",
        "2f5aa01e52b8869515373b5047f00272f245883e"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 02 18:39:19 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 02 18:39:20 2015 +0000"
      },
      "message": "Merge \"Line length 100\""
    },
    {
      "commit": "ad3738ccfadc1b57428c28e91c5428939bbf19b1",
      "tree": "7daee377cbd216cb85ec1b44ea6627fc63d44d37",
      "parents": [
        "566729efce4035ac4fa09c2c106bcf6756451387",
        "675933be11f2c24f9f66011345377d2840938646"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 02 18:37:53 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 02 18:37:53 2015 +0000"
      },
      "message": "Merge \"Extract resampler coefficient tables to separate files\""
    },
    {
      "commit": "2f5aa01e52b8869515373b5047f00272f245883e",
      "tree": "b44c62dca5f9a925ce3b3d860376164597c2780f",
      "parents": [
        "e1984fc72d9f814461992b9f5b1e5f9d45ce7afa"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Feb 17 15:04:28 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Feb 27 18:29:48 2015 -0800"
      },
      "message": "Line length 100\n\nChange-Id: Ic0ae92c300df221387bdd9669e4b7b995d83d28a\n"
    },
    {
      "commit": "675933be11f2c24f9f66011345377d2840938646",
      "tree": "c102134a72b0c8a9948cb6a6b75b431cb444af74",
      "parents": [
        "9060199701c97b290aa4a4184d147e0311ab8897"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Feb 17 14:23:04 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Feb 27 18:29:47 2015 -0800"
      },
      "message": "Extract resampler coefficient tables to separate files\n\nChange-Id: I2e186bd3172cecc08c436e6bf7546b913249e6c8\n"
    },
    {
      "commit": "566729efce4035ac4fa09c2c106bcf6756451387",
      "tree": "65a7fe79cd56ffeeb5fa8b9bb4d864de7b2093c3",
      "parents": [
        "66bcde4a112de4057f80bdef1c8955597d5cca50",
        "d7a77156eb13973f7fce5c9db6113bef83bc205b"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Feb 28 02:12:36 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Feb 28 02:12:36 2015 +0000"
      },
      "message": "Merge \"Fix comments in resampler assembly\""
    },
    {
      "commit": "66bcde4a112de4057f80bdef1c8955597d5cca50",
      "tree": "4aa8edb37e27830497768883f6daa01ec3c2f192",
      "parents": [
        "d4bd93b22ab9f7dfa32dfc6d48e008db3ea9c634",
        "650ceb93e58435c3cb1fd1860393130121023c0d"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Feb 28 01:05:51 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Feb 28 01:05:52 2015 +0000"
      },
      "message": "Merge \"Add channel index mask to AudioMixer\""
    },
    {
      "commit": "d4bd93b22ab9f7dfa32dfc6d48e008db3ea9c634",
      "tree": "6e1effbb661cd90a1c09aed0db9cc44cedaf1544",
      "parents": [
        "9060199701c97b290aa4a4184d147e0311ab8897",
        "0e48d25606c82def035ad10a5b3923767a765cdd"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Feb 28 00:38:24 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Feb 28 00:38:25 2015 +0000"
      },
      "message": "Merge \"Change AudioTrack resampling buffers from 3 to 2\""
    },
    {
      "commit": "9060199701c97b290aa4a4184d147e0311ab8897",
      "tree": "ca4bdc0a66470f17929b4c77e43a9d1c6273d7e5",
      "parents": [
        "7841f704fee0e5acd45fa6e47a336120c3cad42c",
        "d2123e631834a887c2d8600c3ac43dda02d47cb9"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Feb 27 22:55:14 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 27 22:55:15 2015 +0000"
      },
      "message": "Merge \"Warmup cycles must be in range and consecutive\""
    },
    {
      "commit": "650ceb93e58435c3cb1fd1860393130121023c0d",
      "tree": "5f33a1ae10e8145bbd914014ec8ce86711811883",
      "parents": [
        "9ee53a49860e91c2b012883eef09d669a7829e06"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jan 29 13:31:12 2015 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Feb 27 12:44:13 2015 -0800"
      },
      "message": "Add channel index mask to AudioMixer\n\nChange-Id: Ifbcb61cc24111b7efab5e8d119d44dab26ba1778\n"
    },
    {
      "commit": "7841f704fee0e5acd45fa6e47a336120c3cad42c",
      "tree": "c75096dc548d0bdb9eec94663e08dc59fe287fc5",
      "parents": [
        "364b2600670e178931f0e88dbffb4f1f3dccc4ea",
        "5bedff60b2facaa1ec5b9433647ebf1504f065ca"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Feb 26 23:39:12 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 26 23:39:14 2015 +0000"
      },
      "message": "Merge \"Do not pre-fill OutputTrack buffer for duplicating thread\""
    },
    {
      "commit": "364b2600670e178931f0e88dbffb4f1f3dccc4ea",
      "tree": "a9e0663ae0afba69cc1fa0cd1c55fc0be303ab8f",
      "parents": [
        "212765f2d5ee6e533f3d032d6609125faa95bf48",
        "4019a1e408c12040fc13f7bd0027def630efcc18"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Feb 26 20:05:50 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 26 20:05:52 2015 +0000"
      },
      "message": "Merge \"Remove unused stride-by-8 resampling code\""
    },
    {
      "commit": "0fbad3c813cdd67dcab95f998f1982b2180dc322",
      "tree": "1401cfae977d096245441ce047425e80a1db1633",
      "parents": [
        "a52b8d1f4890f0a695cfbffda106579bcc3a16b5",
        "3e91b5d11866599e8f33e63fb3b6c1d81ce1a1d2"
      ],
      "author": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Fri Feb 20 00:36:25 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 20 00:36:26 2015 +0000"
      },
      "message": "Merge \"Fix for getMicMute in AudioFlinger\""
    },
    {
      "commit": "3e91b5d11866599e8f33e63fb3b6c1d81ce1a1d2",
      "tree": "44923162a2e46fcd80271fb04975526081a34aac",
      "parents": [
        "ea78b1497eef36b6a3ba783be20615989e87ed08"
      ],
      "author": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Thu Feb 19 10:54:52 2015 -0800"
      },
      "committer": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Thu Feb 19 15:49:36 2015 -0800"
      },
      "message": "Fix for getMicMute in AudioFlinger\n\nPrevious logic will only check for mic state of Primary Hardware\nDevice. Current logic checks state of all devices with valid\nmicrophone input.\nThis is needed for audio_output feature support.\n\nbug: 19439530\nChange-Id: Ibbb92412ac70cf2915bbe8660c04fbaf0ab74171\n"
    },
    {
      "commit": "d2123e631834a887c2d8600c3ac43dda02d47cb9",
      "tree": "1b0fbc7dd7ffb18d7a7084f2cff34f82c61a25b2",
      "parents": [
        "ad8510a339ffab330c2c46e5c247dd1cf9e15c22"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jan 29 10:02:44 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Feb 19 09:47:44 2015 -0800"
      },
      "message": "Warmup cycles must be in range and consecutive\n\nChange-Id: Ie8a40ec3547bdd62a1e2e05b11fb107c25841784\n"
    },
    {
      "commit": "ad8510a339ffab330c2c46e5c247dd1cf9e15c22",
      "tree": "f8643e6711ce756876c02cbb2c0ed4ed459c6187",
      "parents": [
        "04333cdc8d6a3c8e4a11835371e8ad13adf3f7f0"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Feb 17 16:24:07 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Feb 19 09:47:41 2015 -0800"
      },
      "message": "Include what you use\n\nChange-Id: I1967861f383bb5ed6743fb69e3bd439907ed7033\n"
    },
    {
      "commit": "04333cdc8d6a3c8e4a11835371e8ad13adf3f7f0",
      "tree": "ff205682f760786e3d195f297d60207af0e40792",
      "parents": [
        "658fc18d8e632441cd5d83a4f74b53620cbac1fe"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Feb 17 16:23:03 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Feb 19 09:47:39 2015 -0800"
      },
      "message": "Pull out FastCaptureDumpState and FastMixerDumpState\n\nChange-Id: I8e44dbfe02338622eb69193b234743b50f0dd79f\n"
    },
    {
      "commit": "045ee7ea3e42b8657869d81c917feed5fb0c2b4a",
      "tree": "aee4e457c5ae65d9135f5008fa239e295162fb2d",
      "parents": [
        "ea78b1497eef36b6a3ba783be20615989e87ed08"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Feb 17 16:22:04 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Feb 17 17:19:17 2015 -0800"
      },
      "message": "Pull out FastThreadDumpState\n\nChange-Id: Ic99890bbba4f856b65535f3df0f928de9e3e9748\n"
    },
    {
      "commit": "d7a77156eb13973f7fce5c9db6113bef83bc205b",
      "tree": "a900af86d420f9514201a871e7faf481373a4186",
      "parents": [
        "4019a1e408c12040fc13f7bd0027def630efcc18"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Feb 06 14:58:38 2015 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Feb 09 18:01:14 2015 -0800"
      },
      "message": "Fix comments in resampler assembly\n\nChange-Id: Iedbd14a2c6c73dd9631813bd2414bf11cee78c32\n"
    },
    {
      "commit": "4019a1e408c12040fc13f7bd0027def630efcc18",
      "tree": "2faae9fa56d6674a2fc283e97fc1661325c6deac",
      "parents": [
        "27a3e954a587c2cf070fdd2aae7d93d839888db9"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Feb 06 14:53:01 2015 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Feb 09 18:00:44 2015 -0800"
      },
      "message": "Remove unused stride-by-8 resampling code\n\nChange-Id: Id8b0343efd4c6fb9668524fb5fe231b05c7cf31f\n"
    },
    {
      "commit": "0e48d25606c82def035ad10a5b3923767a765cdd",
      "tree": "2811d0042ca0c670bb6fb9cffa83b82de33f8ff8",
      "parents": [
        "c42ab4fcd42875ef74f8e9b8d8150f7bcfd0cd3b"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jan 26 11:43:15 2015 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Feb 06 11:51:26 2015 -0800"
      },
      "message": "Change AudioTrack resampling buffers from 3 to 2\n\nMove computation of minimum AudioTrack buffer size to server\nfor normal streaming PCM tracks.\n\nUse server-side computation to exactly determine requirements\nfor the resampler to avoid triple buffering.\n\nThis reduces latency for normal audio tracks that require resampling,\nand makes things consistent with the minimum buffer size.\n\nChange-Id: I2f2ca0e599ee20e16559bc5c5dab61ed100da16c\n"
    },
    {
      "commit": "5bedff60b2facaa1ec5b9433647ebf1504f065ca",
      "tree": "d9d22703626906b38ee1f5c571f21f49ce447199",
      "parents": [
        "7790a33241f773d8a99c6f27d3bde36da08d6238"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jan 16 11:05:32 2015 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jan 22 13:48:03 2015 -0800"
      },
      "message": "Do not pre-fill OutputTrack buffer for duplicating thread\n\nIt is not necessary to start the downstream MixerThread early,\nrather allow stop() to flush the remaining frames.\n\nChange-Id: Ibcf8e7f5eda09d0f915d50697ff0c24c32fd11c4\n"
    },
    {
      "commit": "dce27d0ebab31e82543bb777ed3eb04955cd18ff",
      "tree": "f3dcc003f0c96b18d74c46547c10ef819e083b07",
      "parents": [
        "2d2bd6af573383bced45e2f610e11193e28fdcdb",
        "fbfc3959f4aac839445edc7075532067fef497c2"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Jan 17 01:36:52 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Jan 17 01:36:52 2015 +0000"
      },
      "message": "Merge \"Update duplicating thread to use float audio\""
    },
    {
      "commit": "2d2bd6af573383bced45e2f610e11193e28fdcdb",
      "tree": "9adcafb234c0c027683f08538322e0fa0fa601aa",
      "parents": [
        "50870c983127f2c9e0a3c04a46ea7c24ad2271cf",
        "c25b84abdd7ff229d0af663fbf3a37bd9512939d"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jan 16 21:17:12 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 16 21:17:12 2015 +0000"
      },
      "message": "Merge \"Allow duplicating thread to use native mixing audio format\""
    },
    {
      "commit": "fbfc3959f4aac839445edc7075532067fef497c2",
      "tree": "75c11d45346280301eb7206d7189881c523fddf3",
      "parents": [
        "c25b84abdd7ff229d0af663fbf3a37bd9512939d"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jan 15 13:33:51 2015 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jan 15 18:18:27 2015 -0800"
      },
      "message": "Update duplicating thread to use float audio\n\nPreviously device format was used, typically pcm 16 bit.\n\nChange-Id: I70a8b594820e948a2caa299194807ec17348b0e9\n"
    },
    {
      "commit": "c25b84abdd7ff229d0af663fbf3a37bd9512939d",
      "tree": "f6b95e15432dfac6410a1c61bd34e1f8aacdbb3e",
      "parents": [
        "abdb990953ffe94a9dc544aea0bed17ef7d5f484"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jan 14 19:04:10 2015 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jan 15 16:57:42 2015 -0800"
      },
      "message": "Allow duplicating thread to use native mixing audio format\n\nUpdate OutputTrack to take variable formats.\nPreviously conversion to AUDIO_FORMAT_PCM_16_BIT was required.\n\nChange-Id: I4a96a60ddd8d8dfe651405a0bcd4f98c89bc1ade\n"
    },
    {
      "commit": "dda683a2ccb84ccc840b76e2ced10052f65ce43e",
      "tree": "dcea45fba84635e924e42c60c710ae2b8789c9d2",
      "parents": [
        "d488982887e24f4a8e61f68d945a2f113f43579e",
        "abdb990953ffe94a9dc544aea0bed17ef7d5f484"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jan 15 22:56:03 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 15 22:56:03 2015 +0000"
      },
      "message": "Merge \"Allow AUDIO_FORMAT_PCM_8_BIT AudioTrack buffers\""
    },
    {
      "commit": "abdb990953ffe94a9dc544aea0bed17ef7d5f484",
      "tree": "a5cba46c6820b02771d0759bdb1ef6b6d6292356",
      "parents": [
        "2d85f097d653b21d1ff2c34f0b732c674d20ccc2"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jan 12 15:08:22 2015 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jan 14 13:11:38 2015 -0800"
      },
      "message": "Allow AUDIO_FORMAT_PCM_8_BIT AudioTrack buffers\n\nPreviously conversion to AUDIO_FORMAT_PCM_16_BIT was required.\nClient shared memory for static tracks and AudioFlinger track creation\nand buffer delivery now use native 8 bit PCM data.\n\nChange-Id: I485c07a4971fde9a25442bd43fed95019d39abcc\n"
    },
    {
      "commit": "36d560b1f1146da34016744bb7a72b2f4f348c9d",
      "tree": "4a6a6ff797c152731c35426af06feb8e47f0170a",
      "parents": [
        "e6910780274fb818f1432d10672af4b813c2bc59",
        "27a78b56e1cf9814971192883cb7d15c186465f7"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Jan 07 20:37:49 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jan 07 20:37:49 2015 +0000"
      },
      "message": "am 27a78b56: am 78c02ddb: am cfa5bf04: Merge \"make libserviceutility a shared lib\" into lmp-mr1-dev\n\n* commit \u002727a78b56e1cf9814971192883cb7d15c186465f7\u0027:\n  make libserviceutility a shared lib\n  audio policy: fix remote mic capture\n  audio policy: suppport for dynamic source\n  Fix overload of SoftVideoDecoderOMXComponent::updatePortDefinitions\n  Fix race condition in signaling completion for decode.\n  AnotherPacketSource: need reset some members before returning from queueDiscontinuity().\n  Fix looping sound playback\n  AnotherPacketSource.cpp: Do not queue discontinity signal buffer resulted from seek.\n"
    },
    {
      "commit": "27a78b56e1cf9814971192883cb7d15c186465f7",
      "tree": "78d22ab6884bade675def21c48c251c9a9a15bc0",
      "parents": [
        "69158e3e7b565a5ca131a2efaa9b76615ca80cbb",
        "78c02ddb6bf0d676160244a62c11dceb68301b73"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Jan 07 19:30:17 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jan 07 19:30:17 2015 +0000"
      },
      "message": "am 78c02ddb: am cfa5bf04: Merge \"make libserviceutility a shared lib\" into lmp-mr1-dev\n\n* commit \u002778c02ddb6bf0d676160244a62c11dceb68301b73\u0027:\n  make libserviceutility a shared lib\n  audio policy: fix remote mic capture\n  audio policy: suppport for dynamic source\n  Fix overload of SoftVideoDecoderOMXComponent::updatePortDefinitions\n  Fix race condition in signaling completion for decode.\n  AnotherPacketSource: need reset some members before returning from queueDiscontinuity().\n  Fix looping sound playback\n  AnotherPacketSource.cpp: Do not queue discontinity signal buffer resulted from seek.\n"
    },
    {
      "commit": "cfa5bf04ff250a14b11a75bcfa35ee2d6dbab4e9",
      "tree": "b985df2fc3985bfe5589cb6955ed3369d7d9feef",
      "parents": [
        "610255e8f2d02cb3513695eacf1c37d66b3553d6",
        "5db7897ddd32e3ec3ab45ecdb6f21b6265e7e14a"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Jan 07 19:19:32 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 07 19:19:33 2015 +0000"
      },
      "message": "Merge \"make libserviceutility a shared lib\" into lmp-mr1-dev"
    },
    {
      "commit": "5db7897ddd32e3ec3ab45ecdb6f21b6265e7e14a",
      "tree": "e586c65974e885af85d209c811acb3d3cd592736",
      "parents": [
        "71d13d4c94cea2113d074cf0d0c6e07ad68ff3ec"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Jan 07 10:42:33 2015 -0800"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Jan 07 10:50:09 2015 -0800"
      },
      "message": "make libserviceutility a shared lib\n\nso that we have only one getpid_cached in mediaserver process\n\nbug: 18919657\n\nChange-Id: Iff3cd932c9110e874b3885f79705f49bf3e3f1fc\n"
    },
    {
      "commit": "81879df8dc51df4d8a3880349e9e1e6b5e3cebfb",
      "tree": "920af202ad4576e997a540bfc98479aa97b2a0e2",
      "parents": [
        "197f84845ccea9319a1589b85edeb2dcf56b81b3",
        "69158e3e7b565a5ca131a2efaa9b76615ca80cbb"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 07 16:02:57 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jan 07 16:02:57 2015 +0000"
      },
      "message": "am 69158e3e: am 6ab33981: am 610255e8: Merge \"audioflinger: pause HW A/V sync output when AudioTrack underruns\" into lmp-mr1-dev\n\n* commit \u002769158e3e7b565a5ca131a2efaa9b76615ca80cbb\u0027:\n  audioflinger: pause HW A/V sync output when AudioTrack underruns\n"
    },
    {
      "commit": "69158e3e7b565a5ca131a2efaa9b76615ca80cbb",
      "tree": "4dfbea14cb9503808fab3f532c1335d457142e40",
      "parents": [
        "644afb88421ac0e71d526f9b6726404a90c7cccd",
        "6ab33981d45cd69e683a143fec6530e66bd3e371"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 07 15:57:49 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jan 07 15:57:49 2015 +0000"
      },
      "message": "am 6ab33981: am 610255e8: Merge \"audioflinger: pause HW A/V sync output when AudioTrack underruns\" into lmp-mr1-dev\n\n* commit \u00276ab33981d45cd69e683a143fec6530e66bd3e371\u0027:\n  audioflinger: pause HW A/V sync output when AudioTrack underruns\n"
    },
    {
      "commit": "610255e8f2d02cb3513695eacf1c37d66b3553d6",
      "tree": "de334953c45a0c9f692a83d3ac97b33cd6ffae1d",
      "parents": [
        "8140a2b7ef0650e8cce6be16efcbfce56d0ed1e4",
        "0f7b5f2b231caf87da9b20b74d086e5a9d6f4a9d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 07 15:47:53 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 07 15:47:54 2015 +0000"
      },
      "message": "Merge \"audioflinger: pause HW A/V sync output when AudioTrack underruns\" into lmp-mr1-dev"
    },
    {
      "commit": "e443ffac2a09b69470c4663ee031a527c53738d9",
      "tree": "7db596e90207472c7ff018f4778d16de8c806e62",
      "parents": [
        "0d19abb440c7e62e944efbeadf02299990f9a589"
      ],
      "author": {
        "name": "soon1.choi",
        "email": "soon1.choi@lge.com",
        "time": "Mon Jan 05 14:27:42 2015 +0900"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jan 05 15:34:15 2015 -0800"
      },
      "message": "DO NOT MERGE - fix memory leak in PatchPanel\n\nBefore the audio patch is created, audio patch with same handle is\nremoved from vector for patches. At this time, Patch allocated in the\nheap is not freed. This causes memory leaks in the mediaserver.\n\nBug: 18904322.\n\nChange-Id: Id0d28c36a7e7fbf473753bf4ead7518f28c1b998\n"
    },
    {
      "commit": "5111fe3ea0a5ba4fd0735535ae7e08a0c563353d",
      "tree": "114803ffbd0fdc0e959caeced2ec04d96992829d",
      "parents": [
        "7d0fe65b0aa437d62c56653856a7cc79ee373a53",
        "645b0192ad5d9b46b06aa06ac5670a8390d35f6f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jan 05 20:08:24 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jan 05 20:08:24 2015 +0000"
      },
      "message": "am 645b0192: am 76758100: am 43637c2e: Merge \"fix memory leak in PatchPanel\"\n\n* commit \u0027645b0192ad5d9b46b06aa06ac5670a8390d35f6f\u0027:\n  fix memory leak in PatchPanel\n"
    },
    {
      "commit": "645b0192ad5d9b46b06aa06ac5670a8390d35f6f",
      "tree": "29e8dae955b11910d44929c18d50ac9e1d56175a",
      "parents": [
        "51281663443ea39db9b4c6e2415343e26a6b3fb8",
        "76758100c85622c178355959e454651310ea0011"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jan 05 20:02:56 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jan 05 20:02:56 2015 +0000"
      },
      "message": "am 76758100: am 43637c2e: Merge \"fix memory leak in PatchPanel\"\n\n* commit \u002776758100c85622c178355959e454651310ea0011\u0027:\n  fix memory leak in PatchPanel\n"
    },
    {
      "commit": "d8cd47792bac11a44096ef8233bb5268a6674bec",
      "tree": "a297a02667e5b2dbed97c6aa03afda3c33aaab1b",
      "parents": [
        "bd08223c450a7a2e8e8d79e6be148ed1ac64caa3"
      ],
      "author": {
        "name": "soon1.choi",
        "email": "soon1.choi@lge.com",
        "time": "Mon Jan 05 14:27:42 2015 +0900"
      },
      "committer": {
        "name": "Soon-won Choi",
        "email": "soon1.choi@lge.com",
        "time": "Mon Jan 05 07:57:42 2015 +0000"
      },
      "message": "fix memory leak in PatchPanel\n\nBefore the audio patch is created, audio patch with same handle is\nremoved from vector for patches. At this time, Patch allocated in the\nheap is not freed. This causes memory leaks in the mediaserver.\n\nChange-Id: Id0d28c36a7e7fbf473753bf4ead7518f28c1b998"
    }
  ],
  "next": "b187de1ada34a9023c05d020a4592686ba761278"
}
