)]}'
{
  "log": [
    {
      "commit": "36d0ca16024820df9a12903d2ac443fabcc180bc",
      "tree": "51e8f285ae66ad7cb922caeb7ba8d5f1d20367e3",
      "parents": [
        "67fbddfdc2cafd63c83d3bb55a2451d4c26f546d"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Aug 09 14:31:32 2016 -0700"
      },
      "committer": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Aug 10 17:56:35 2016 +0000"
      },
      "message": "Fix clang-tidy warnings in audio and playerservice.\n\n* Add explicit keyword to conversion constructors.\nBug: 28341362\n* Use const reference type for read-only parameters.\nBug: 30407689\nTest: build with WITH_TIDY\u003d1\n\nChange-Id: I265f3b094e08d5705b506b3fbba51439c134af84\nMerged-In: I265f3b094e08d5705b506b3fbba51439c134af84\n"
    },
    {
      "commit": "9ab9f6219a0274bed6a8d64169ab695ef77d29de",
      "tree": "209c75ace298a160761ec652e4810a1bf68c1b47",
      "parents": [
        "cfbaedf0096719fa3f43bec94a9bb2e0d18da582"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu May 05 16:48:37 2016 -0700"
      },
      "committer": {
        "name": "Andre Eisenbach",
        "email": "eisenbach@google.com",
        "time": "Mon Jun 27 23:17:22 2016 +0000"
      },
      "message": "Remove throttle logcat for bluetooth\n\nDue to reduced buffer sizes for bluetooth it is possible to throttle\nregularly, do not logcat throttle for bluetooth to avoid spamming.\n\nBug: 28286313\nChange-Id: I9a572077a58c8e5cce3d5ac4de3cc6d97d94d7a0\n"
    },
    {
      "commit": "bf29173d6d63536ae9f8cfd1d02153237ee23612",
      "tree": "3f6fe33288711b73e8683d671a57860d6f14219d",
      "parents": [
        "0603c5dfc34923095218307674a60429bfa5873a"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue May 17 15:16:07 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue May 17 15:16:07 2016 -0700"
      },
      "message": "Fix misc-macro-parentheses warnings.\n\nBug: 28705665\nChange-Id: I97d1dec9a4397fd7a3cab5180a833066b8abe0ab\n"
    },
    {
      "commit": "c73c64a699df828bc02f556bd0bf1724532aac36",
      "tree": "65ea80f416342e543e1200f2951b64e328fe989d",
      "parents": [
        "1eb3cb0343eb11c658dcc402b017bf04305bc789",
        "ae9a5f1f1c15b894a762f66ff248fc840b7e72a5"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@android.com",
        "time": "Sat Mar 19 00:23:29 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Mar 19 00:23:29 2016 +0000"
      },
      "message": "Merge \"audioflinger: clear mMixerBuffer if frame is not ready\""
    },
    {
      "commit": "ae9a5f1f1c15b894a762f66ff248fc840b7e72a5",
      "tree": "f05aeb6b08783eef8a2e6f74750d2b6356d6772a",
      "parents": [
        "844fab9b2b751fe7af8be64e55b912bec12e7c0b"
      ],
      "author": {
        "name": "Mohan Kumar",
        "email": "mkumard@nvidia.com",
        "time": "Fri Dec 12 15:16:46 2014 +0530"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 07 13:41:07 2016 -0800"
      },
      "message": "audioflinger: clear mMixerBuffer if frame is not ready\n\nClear the mMixerBuffer if frame is not ready before the FastMixer\nstarts processing. Otherwise it might result in large glitches on\noutput device due to junk data present in the mixbuffer.\n\nChange-Id: I9f025234d4ac100f85d2ec67c06a8df4195bea98\n"
    },
    {
      "commit": "c29470f61a5f35f23c8f52851e778b6613ace6f8",
      "tree": "705c778de4f8a574236e5e39f22106132d090288",
      "parents": [
        "c25afe54c3d04acb44aba3330043e39f087c2b0a",
        "844fab9b2b751fe7af8be64e55b912bec12e7c0b"
      ],
      "author": {
        "name": "Sumit Bhattacharya",
        "email": "sumitb@nvidia.com",
        "time": "Mon Mar 07 21:05:32 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Mar 07 21:05:32 2016 +0000"
      },
      "message": "Merge \"AudioFlinger: Get shared heap size from property\"\nam: 844fab9b2b\n\n* commit \u0027844fab9b2b751fe7af8be64e55b912bec12e7c0b\u0027:\n  AudioFlinger: Get shared heap size from property\n"
    },
    {
      "commit": "cd64e0ed477fcaadd2ad03c5ef79d43ae98d7e44",
      "tree": "218bd0153ff132bf885775ca74c72f9a0bac2677",
      "parents": [
        "ee38fad5e9109f92b24c0e4d6d0d021b3d20e4e0"
      ],
      "author": {
        "name": "Sumit Bhattacharya",
        "email": "sumitb@nvidia.com",
        "time": "Thu Feb 11 01:37:20 2016 +0530"
      },
      "committer": {
        "name": "Sumit Bhattacharya",
        "email": "sumitb@nvidia.com",
        "time": "Fri Mar 04 16:29:44 2016 +0530"
      },
      "message": "AudioFlinger: Get shared heap size from property\n\nFor consecutive 24bit, 192kHz, 7.1 content 4MB heap is not enough.\nSo exposing a propery ro.af.client_heap_size_kbyte to set platform\nspecific shared client heap size.\n\nChange-Id: I2fb257c5fecc0245aa3a07998c2bfd6864a7d64f\n"
    },
    {
      "commit": "113efbb3ac8e7306ea8645cb53a96d1e81c2d041",
      "tree": "63217b89c2a382cb30d66e3682ad28491646e7d4",
      "parents": [
        "f27fc04067adfee74b90323c5219ff30f886d8d1"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jan 08 17:16:42 2016 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 12 19:14:40 2016 +0000"
      },
      "message": "audioflinger: fix standby delay on A2DP output\n\nMake sure that standby delay is never less than the audio flinger\ndefault on A2DP output.\nDue to variable latency and amount of buffering in A2DP sinks,\nan agressive standby delay could lead to truncated audio.\n\nBug: 25830539.\nChange-Id: I38be37ad346f5f4bf8303d3db4e3e911bf637968\n(cherry picked from commit 42537be61479e59c4718e1304364551c1454f63c)\n"
    },
    {
      "commit": "ea6a3dc069809ec071290eb2c8cacef3582ead98",
      "tree": "264f264b05209806e163ea41eeecd6f87f5e5271",
      "parents": [
        "2894d70256d3f53547807a5aacaf45df62342fb5",
        "aba407f1a6378ac2518d0d76d0d18419b7722a81"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Oct 14 01:13:35 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 14 01:13:35 2015 +0000"
      },
      "message": "Merge \"audioflinger: increase shared memory heap size\" into mnc-dr-dev"
    },
    {
      "commit": "aba407f1a6378ac2518d0d76d0d18419b7722a81",
      "tree": "23ecf127eabd7fa532a5f8b779f0323aaf16bdec",
      "parents": [
        "ce805c2a0c447dcdd4e649db7415020dbec1100b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Aug 20 16:18:53 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Oct 14 00:28:11 2015 +0000"
      },
      "message": "audioflinger: increase shared memory heap size\n\nBug: 21093153.\nChange-Id: I389af11451b01ce49fdb8957e2f322ba1925a62e\n(cherry picked from commit da73b6c7474aaa5616f0214e238776f12717f32b)\n"
    },
    {
      "commit": "954ca45ac30539a49f179580b667b0ab1056d113",
      "tree": "33adc92ecf3ea0bbafa97882e61381e3a8bf1204",
      "parents": [
        "e5200ea76c5d180b53087ae7825326ec61cc4687"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Sep 09 14:39:02 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Oct 13 15:48:31 2015 -0700"
      },
      "message": "For static obtainBuffer(), do not set mUnreleased if acknowledging flush.\n\nstatic audio tracks use obtainBuffer() to update position in start().\n\nBug: 22938515\nChange-Id: I8ae32f6cce4d122386d2cf8982e158049b04ba9a\n"
    },
    {
      "commit": "403bff76dbde57fdcfce84292a5e42fa33c37842",
      "tree": "2dd1dd0197746aa4e5d4dc8ce8d783d60c9100e1",
      "parents": [
        "036b6593eec6ced2f34293e8407f1cb86ae1e75f",
        "4c6e77ff8e18a1551320a6b42f6a45e19dcce748"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Oct 13 19:55:16 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Oct 13 19:55:16 2015 +0000"
      },
      "message": "am 4c6e77ff: AudioFlinger: Clear record buffers when starting RecordThread\n\n* commit \u00274c6e77ff8e18a1551320a6b42f6a45e19dcce748\u0027:\n  AudioFlinger: Clear record buffers when starting RecordThread\n"
    },
    {
      "commit": "4c6e77ff8e18a1551320a6b42f6a45e19dcce748",
      "tree": "97d86a674d1cecec6da60dfb0ec0c2eae1e2b644",
      "parents": [
        "5076a51e0572246f7062e48761766c01f17233c2"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Sep 21 12:44:54 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Oct 13 12:17:53 2015 -0700"
      },
      "message": "AudioFlinger: Clear record buffers when starting RecordThread\n\nBug: 24211743\nBug: 24267152\nChange-Id: I58c55e56b85067b71e4e300f947b4dfc159637ba\n"
    },
    {
      "commit": "f99498ee4de7123e2fd71778c6877be44fbd1506",
      "tree": "76fc5f13ab660c053101f09a701187259952e90a",
      "parents": [
        "8595eaab5884bb74d884d366ad6e371a296bf576"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Sep 25 16:52:55 2015 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Sat Sep 26 11:22:20 2015 -0700"
      },
      "message": "CameraService: Use SCHED_FIFO for request queue thread in HFR\n\n- Move SchedulingPolicyService from audioservice to mediautils\n\n- When starting up a high speed stream config, set request queue thread\n  to SCHED_FIFO using SchedulingPolicyService\n\nBug: 24227252\nChange-Id: I224b59142bd111caf563779f55cddd62385b9bac\n"
    },
    {
      "commit": "5c0adc3e632fbb2929cb20e32a8a9f2864c01490",
      "tree": "9c11b5a85c2e73e23ca0e57633ba4b4288a28523",
      "parents": [
        "014e91e471edba3f9b2c71ff6025274716b0f587",
        "a542782d0045588e55e075a763cedcd2d504ad22"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Sep 12 01:26:56 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Sep 12 01:26:56 2015 +0000"
      },
      "message": "Merge \"Workaround static fast track start-after-stop issue\" into mnc-dr-dev"
    },
    {
      "commit": "a542782d0045588e55e075a763cedcd2d504ad22",
      "tree": "972b585a13ec997abea11db48f4c438c6a93bf05",
      "parents": [
        "0f05031545e43c8fe49a9dda0cfd9dce202d1ef3"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Sep 11 16:15:35 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Sep 11 16:18:12 2015 -0700"
      },
      "message": "Workaround static fast track start-after-stop issue\n\nBug: 23291988\nBug: 23614327\nBug: 23924081\nChange-Id: Id1a519ed4bb2a6f4cb197da8450f7069b55c0d48\n"
    },
    {
      "commit": "a2ab4505c807f42afe34809409c4e85d91618a8c",
      "tree": "cffdeb827eb93870aa692b8a9d3a0842ff8405de",
      "parents": [
        "0f05031545e43c8fe49a9dda0cfd9dce202d1ef3"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Sep 09 12:25:51 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Sep 10 10:31:27 2015 -0700"
      },
      "message": "audio flinger: force audio path start from normal mixer\n\nThe audio HAL wakes up and configures the audio path when receiving\nthe first write() in standby state. This causes a certain amount of\nprocess to take place in the mixer threads which is problematic for\nfast mixer running at FIFO priority.\n\nWe now force a fake write() of 0 bytes from normal mixer to trigger\nthe audio path configuration before starting the fast mixer.\n\nBug: 23791972.\n\nChange-Id: I54311b337fda956444846f5d2f53a3263d54e04b\n"
    },
    {
      "commit": "564d144fc28917d42e3a67718ac51d61bfc36315",
      "tree": "6db8c93d002f5594bf80ee709706609a4df92fb4",
      "parents": [
        "27e0350ae57184d5e300f96c8338379f5d3d0fbc"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Sep 09 12:26:52 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Sep 09 12:41:10 2015 -0700"
      },
      "message": "Revert \"Do not acknowledge flush() on start() for static tracks\"\n\nThis reverts commit cafe86a9cb6625bb1ec6383e16e28e4c9e455f87.\n\nBug: 23924093.\nChange-Id: I186d1013b06a286eca93c30bb9b3545dc36695ff\n"
    },
    {
      "commit": "cafe86a9cb6625bb1ec6383e16e28e4c9e455f87",
      "tree": "14b334794322ae63ad0e1478bf9ccdc38335a55d",
      "parents": [
        "b3b34074477b9f8713924e18f7a0120965112720"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Aug 14 09:34:50 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Aug 24 19:07:39 2015 +0000"
      },
      "message": "Do not acknowledge flush() on start() for static tracks\n\nBug: 22938515\nChange-Id: I1de653de169a3fbbaa693da6057897ea57772447\n"
    },
    {
      "commit": "6d62669e2796df93135e58388f75e6780f6a207e",
      "tree": "aef82aa15844e145a28e5e27798bc83a7224a2db",
      "parents": [
        "4327df2af078894c38a8eb69f4873bef92cc0f83"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Aug 21 12:53:46 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Aug 21 13:00:48 2015 -0700"
      },
      "message": "TimestretchBufferProvider: getNextBuffer should follow API\n\nIf no data, should return 0 frame count and NULL ptr.\n\nBug: 23293002\nChange-Id: Ib5364e5bceb15c2dddc4a16e85299b409cf4e137\n"
    },
    {
      "commit": "41ae1d663d896a9ec22299d95c01940313a9b276",
      "tree": "0d6246404b453fd7ebb7d134d3b02ce6e01c5869",
      "parents": [
        "6134ad6fdeab91e54a1abc8f00eafc956e42fb3d"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Aug 04 11:11:28 2015 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Aug 04 11:11:28 2015 -0700"
      },
      "message": "AudioFlinger: tell HAL the PCM is non-audio\n\nAdd a bit to tell the HAL that the PCM data is really encoded audio\nwrapped in a data burst.\nOtherwise the device may try to play the encoded data directly\nwhich will sound like modulated white noise.\n\nBug: 22576112\nChange-Id: Ib140da96876e849023858fe2510612310501d1ee\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "5ce059661dcbab8924edab400681fc408ee76123",
      "tree": "82709f0f74d4c8e89e8acdd751784a5f9103d620",
      "parents": [
        "9f00e69c5f2702b66e9bdf8f4f75f99a338738d7",
        "eb9487e10294a4e73977f460f30eeaff503acd21"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jul 24 20:28:43 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 24 20:28:43 2015 +0000"
      },
      "message": "Merge \"Fix capture overruns at non-primary sample rate\" into mnc-dev"
    },
    {
      "commit": "a97630bda8815958587ca31adb2d37090022af25",
      "tree": "edff2365d23d227a22248f30dd8acf217801fa8d",
      "parents": [
        "17d0efd17fbb2573adcde8dcbe77726f622817da"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jul 22 23:27:24 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jul 22 23:31:54 2015 -0700"
      },
      "message": "Fix record memory buffer allocation for legacy upmix/downmix\n\nBug: 22173057\nChange-Id: I8f5056ff5a1252c71a3d3b354440551bcd9fd466\n"
    },
    {
      "commit": "eb9487e10294a4e73977f460f30eeaff503acd21",
      "tree": "fdd7dfd6fd2074f9d0684ed9b11dd851dc469d50",
      "parents": [
        "8f0547a954b39d5750488be7e060ebe1ebfdf666"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 22 09:15:17 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 22 12:20:43 2015 -0700"
      },
      "message": "Fix capture overruns at non-primary sample rate\n\nand small buffer size.  Also:\nPull out the magic number \"12 ms\" to a named constant.\nRemove obsolete AudioFlinger::mPrimaryOutputSampleRate.\n\nBug: 22662814\nChange-Id: I261f75a222c4505a84aad2493d251bd2dea59f68\n"
    },
    {
      "commit": "ca5e6143740299c877d69e97f7968cd04476d32c",
      "tree": "50101b57406c5abce066ec90120d91d3dfd0152b",
      "parents": [
        "bc24bb8a552097e7975d0c16fad80158b542ba62"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Jul 14 09:42:29 2015 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Jul 17 20:56:04 2015 +0000"
      },
      "message": "AudioFlinger: fix repeated underruns for compressed audio\n\nThe AudioFlinger kept pausing the audio when playing compressed AC3 or DTS.\nThis caused pause/resume loops that were hard to break out of.\n\nThe AudioFlinger was thinking that the compressed audio was PCM\nbecause the HAL was in PCM mode playing SPDIF data bursts.\nIt also thought that EAC3 was at 192000 Hz instead of 48000\nHz because the data bursts are played at a higher rate.\n\nThis CL adds more calls to the shim that separates the AudioFlinger.\nNow the AudioFlinger gets information about the HAL sample rate,\nchannel masks and format from the shim instead of calling the HAL directly.\n\nThe AudioFlinger now uses a different threshold for detecting\nunderruns when the audio is compressed.\n\nBug: 19938315\nBug: 20891646\nChange-Id: Ib16f539346d1c7a273ea4feb3d3afcc3dc60237d\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "4b33e0838fdb1b5e545449add02005916b512c99",
      "tree": "e38ce9db4984ec035c05ffa7832e2bad50fe2bd2",
      "parents": [
        "9ad9e7471629f7b9061569a50555a1722047f38d",
        "0f0631eb55b1f0a7f4b62212b78a3faa0b49919b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 13 15:52:35 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 13 15:52:36 2015 +0000"
      },
      "message": "Merge \"audioflinger: flush HAL when transitioning to next direct track\" into mnc-dev"
    },
    {
      "commit": "7c1ec5f038e63a5eb8b04434577c25bc23f5f410",
      "tree": "f6b8feda43ba0bb6666171b57318ad3cea48a45e",
      "parents": [
        "54c0659b9efa72d11997c590c4d377c44789c7fd"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 09 14:52:47 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 10 10:58:41 2015 -0700"
      },
      "message": "audio: several fixes in audio routing callbacks\n\n- audio policy:\nForce device change to ensure new audio patch creation\nupon first track activity on a given output.\nFix function device_distinguishes_on_address() which could mistake\nsome output device with remote submix input device.\n\n- audio flinger:\nReduce number of binder calls upon new client registration by only\nsending ioConfigChanged() callbacks to newly registered client.\nFix first patch after output thread creation not triggering an\nioConfigChanged() callback.\n\n-audio system:\nForce client registration upon routing callback installation to force\nnew ioConfigChanged() callback from audio flinger.\n\nBug: 22381136.\n\nChange-Id: Ieb0d9f92f563a40552eb31bc0499c8ac65f78ce4\n"
    },
    {
      "commit": "47f986637d7b4d63abe0ab9e1cf6eb23766c6669",
      "tree": "0b5a7b383a6104096a3be059b51df4e11ea9bb7c",
      "parents": [
        "065f6572752dca646b7d60df8e80b6d4ac159281",
        "90eea7631b07117e46ae8b84889a2baa3eee7aea"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Jul 08 17:56:23 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 08 17:56:24 2015 +0000"
      },
      "message": "Merge \"AudioFlinger: reset frame position on standby\" into mnc-dev"
    },
    {
      "commit": "0f0631eb55b1f0a7f4b62212b78a3faa0b49919b",
      "tree": "0ccee662c252bcb9741f233e5bdc6e42278c3da5",
      "parents": [
        "065f6572752dca646b7d60df8e80b6d4ac159281"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 06 18:01:25 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jul 07 19:30:48 2015 -0700"
      },
      "message": "audioflinger: flush HAL when transitioning to next direct track\n\nSend flush command to the audio HAL when transtioning to\nnext track on direct output thread, even if both tracks are in the\nsame audio session.\n\nCommit 43b4dcc to fix issue 21145353 did only flush the HAL if the\naudio session was different for the new track because the logic was\ncopied from the offload thread.\n\nBug: 22019044.\nChange-Id: I89b217580023ed7449a58e9bf3dc068ce7a84487\n"
    },
    {
      "commit": "90eea7631b07117e46ae8b84889a2baa3eee7aea",
      "tree": "e31c07b33a68919b011a031f08eb785bba0c066d",
      "parents": [
        "29b7cec9a248828d2371bc8758d819308d0e84a4"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Jul 06 16:24:14 2015 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Jul 07 16:40:00 2015 -0700"
      },
      "message": "AudioFlinger: reset frame position on standby\n\nThe HAL does not reset the frame position on standby().\nBut applications expect the frame position to be reset.\nSo we subtract the position at standby from the current position.\n\nBug: 21724210\nBug: 21930805\nChange-Id: I0c4520ba1c6c06a580f45f6bafc8cf1d56969f07\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "a0169a073d88efefbfb35fa0ea8e94f7b31d7469",
      "tree": "42240d72b6de6728a4bbe92f3ed8ddba338d5c02",
      "parents": [
        "e59c6a33e724579f4b8ac76586e6f667fa0b8572"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 06 18:32:01 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 06 18:32:01 2015 -0700"
      },
      "message": "audio: Do not delete PatchRecord before Peer is stopped\n\nPatchPanel::clearPatchConnections deletes PatchRecord before\nthe peer PatchTrack is stopped. This can cause an access to already\nfree\u0027ed memory leading to a crash in PatchTrack::getNextBuffer.\n\nFix is to delete PatchRecord and PatchTrack only after removing\nboth of them from active tracks list\n\nBug: 22304526.\nChange-Id: I7003756d3d2dd8912ce5e3b2fc31f5e82f455888\n"
    },
    {
      "commit": "b9d73333cce3f9da3a7a0b33589f6bbe0f992a92",
      "tree": "960da701639ef27e3f2f41bbf6120b351380d99f",
      "parents": [
        "dfad5454e0caf46f8732f1415d3b9a76f2a1242e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jun 30 17:09:20 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 06 12:13:30 2015 -0700"
      },
      "message": "audio: add definitions for devices connected over IP\n\nBug: 22068684.\nChange-Id: Idde0eaf7121d2e43f32eee3e6b10e99d8cff4912\n"
    },
    {
      "commit": "e8726fea8a53bf3474aa3c6deaf2f6c1f565e694",
      "tree": "d72b6ffcc7e33c178e3cac7c108b102041451cb6",
      "parents": [
        "ed8505836c0b2fba0ab4be0c1eff31d4f241bc1d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jun 26 09:39:24 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jun 26 12:38:13 2015 -0700"
      },
      "message": "reduce number of binder calls from mediaserver\n\nReduce the number of audio port, audio patch and\nIO config changed binder calls from mediaserver to\nclient processes:\n- Do not call IO config changed callback if selected\ndevice is the same as previously selected one on a given\naudio flinger playback or capture thread.\n- Do not call the audio port or audo patch list update\ncallback on a client if this client as no listener registered.\n\nBug: 22045560.\n\nChange-Id: If780e105404de79b7cb5c80c27b793ceb6b1c423\n"
    },
    {
      "commit": "55a2dcce3a409393dc51ab2eb433914331f2df51",
      "tree": "ce69e72bd8520a05807a88a64bb58d33b0dc7962",
      "parents": [
        "2b343b1b2dd9e4885ef2b7ec2f798215d714ab3a",
        "6c7f062d3149d6890daaee64828959ad6f61ea54"
      ],
      "author": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Tue Jun 23 00:25:07 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 23 00:25:08 2015 +0000"
      },
      "message": "Merge \"Using centralized isAudioPlaybackRateValid to validate parameters\" into mnc-dev"
    },
    {
      "commit": "6c7f062d3149d6890daaee64828959ad6f61ea54",
      "tree": "dcab2e17178bf6d01ead75fad5df883961a6e195",
      "parents": [
        "fa907d4ee326c7bb9cbb4882ab7c0ec42bbceee3"
      ],
      "author": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Thu Apr 30 18:39:16 2015 -0700"
      },
      "committer": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Mon Jun 22 16:08:40 2015 -0700"
      },
      "message": "Using centralized isAudioPlaybackRateValid to validate parameters\n\nCentralized validation code\nbug: 20701446\n\nChange-Id: I9d9941c7639c05b2afe069ff4f858c693c910bfe\n"
    },
    {
      "commit": "42193b96b22782fce14c55314dfc269fb4a4ed22",
      "tree": "181361af67b8ba467038d96befcad57d207919dd",
      "parents": [
        "4d622375dc6c9d6b6b817cce598692ae491b2496",
        "60c545dfc4160a6d46febb9aa6684f6d300ec74d"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jun 22 15:41:41 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 22 15:41:42 2015 +0000"
      },
      "message": "Merge \"Fix FastMixer high bit depth Hal support\" into mnc-dev"
    },
    {
      "commit": "ecf7bdb0c5a9914564f8a8c91ffc4bd24ebfb0ac",
      "tree": "11ba02303a494f8346b85b2db21549102422e2a1",
      "parents": [
        "9a92255484adef1ae82f4c77d654ad47997c0439",
        "48e6ea95dc23e1c84911f1f907403ac1729c6b78"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Sat Jun 20 00:48:07 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Jun 20 00:48:08 2015 +0000"
      },
      "message": "Merge \"AudioFlinger: reset SPDIF encoder on flush\" into mnc-dev"
    },
    {
      "commit": "60c545dfc4160a6d46febb9aa6684f6d300ec74d",
      "tree": "a5a24b638cb8641e971909ba1a741e64bcaf098a",
      "parents": [
        "b36bc776545d9758f3bc9a853a5a0fd51280e9fb"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jun 19 17:34:53 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jun 19 17:34:53 2015 -0700"
      },
      "message": "Fix FastMixer high bit depth Hal support\n\nBug: 21959591\nChange-Id: Ia3351ea5644b36852a1f0dad1314beac97d840e1\n"
    },
    {
      "commit": "48e6ea95dc23e1c84911f1f907403ac1729c6b78",
      "tree": "d02ec907f02e33d5cd6d9d870898d461557e3305",
      "parents": [
        "91b0018d658a509aacceddf9cde84afca591d014"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Jun 18 15:37:08 2015 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Jun 19 17:11:30 2015 -0700"
      },
      "message": "AudioFlinger: reset SPDIF encoder on flush\n\nThis may prevent corrupt data from reaching the AVR.\n\nBug: 19604395\nChange-Id: I3dbdd002326917b9f14dda46a3e5170e1ec799bb\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "ee140da3422212153f88357725f3fc614de5eb44",
      "tree": "b4f3e6bc623ef86ab509d5fc1c2c643a763baa65",
      "parents": [
        "f86e831ec0cbdce2d34c48fc567ad91a47099b70",
        "83ffcfb53b62489de9d2bd0b0277e879c3e57ab6"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jun 19 15:57:19 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 19 15:57:20 2015 +0000"
      },
      "message": "Merge \"Fix clamp issue with AudioMixer with float input and int16 output\" into mnc-dev"
    },
    {
      "commit": "83ffcfb53b62489de9d2bd0b0277e879c3e57ab6",
      "tree": "8a4cae1ab38a419c70a18dbd6adc020d26f2110a",
      "parents": [
        "bd974011599b6d4ff47c1cee36d617f191dc0c2f"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jun 18 17:34:40 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jun 18 17:49:04 2015 -0700"
      },
      "message": "Fix clamp issue with AudioMixer with float input and int16 output\n\nBug: 20706338\nChange-Id: I7e3ab0da96901870cc57fbe2e79163bc81157465\n"
    },
    {
      "commit": "40eb1a1f8871909c272e72afaf7d5af84fea2412",
      "tree": "93cd7cb7f509034600ea627568e2e25a159d3242",
      "parents": [
        "bd974011599b6d4ff47c1cee36d617f191dc0c2f"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jun 18 13:42:02 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jun 18 13:43:51 2015 -0700"
      },
      "message": "Reduce log messages on AudioFlinger throttle\n\nBug: 21858740\nChange-Id: I8f291b64c1033867bb57ffceaa3b7d94aa998715\n"
    },
    {
      "commit": "0907d87dca62cd5bc12d26892c411b7140d148b0",
      "tree": "a940141ccc51b5b84028e0627bf747cda2e6f1f4",
      "parents": [
        "efabeff16f479924547136bb88ee295fea718183",
        "4c6afaf1053ecbfda6d95098e0f49772ecbcf2e1"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Jun 13 01:52:50 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Jun 13 01:52:51 2015 +0000"
      },
      "message": "Merge \"Fix AudioRecord cleanup if construction fails\" into mnc-dev"
    },
    {
      "commit": "4c6afaf1053ecbfda6d95098e0f49772ecbcf2e1",
      "tree": "0b22dbafb75fc4c064b25f3b3f923cf39664ece2",
      "parents": [
        "ca097142ba4664858bc29bb538bcfcf5ea03ebe7"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jun 12 18:23:35 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jun 12 18:23:35 2015 -0700"
      },
      "message": "Fix AudioRecord cleanup if construction fails\n\nBug: 11671194\nChange-Id: Id48350264f8b5ce53bf7ce2b308bf4ba21e59241\n"
    },
    {
      "commit": "ad9ef61e770c0751a9983aa5c9844dfeb9ed665b",
      "tree": "e8ab7db05298c171c55954e4dffbf9a99d59953c",
      "parents": [
        "cd644a3f7bd16b25a6fd202ce3eb8c7138572712",
        "43b4dcc660e6da96285e4672ae371070ab845401"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Jun 11 18:22:43 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 11 18:22:44 2015 +0000"
      },
      "message": "Merge \"AudioFlinger: flush stream when switching tracks\" into mnc-dev"
    },
    {
      "commit": "43b4dcc660e6da96285e4672ae371070ab845401",
      "tree": "f03f4f3817afd22eb759962cde571029f312e1b6",
      "parents": [
        "afd492436efc7f66b958da14659b52232efa5910"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Jun 09 16:53:44 2015 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Jun 11 10:37:21 2015 -0700"
      },
      "message": "AudioFlinger: flush stream when switching tracks\n\nFor direct threads, when recycling a stream, perform a flush so\nthat the frame position is reset.\n\nBug: 21145353\nChange-Id: I08611cd64bb249a9659c44f9e4c47e7455f4838f\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "e1635ec096d1110c33a5aa46847af59c261fb7fa",
      "tree": "440b1c8f000d3a7d6eebf92f48e49e9376fa3a5f",
      "parents": [
        "d16a8ef26fd1f7a86061c396c5865564af2f1abb"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jun 08 15:46:49 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jun 09 08:56:37 2015 -0700"
      },
      "message": "Take advantage of audio_channel_in_mask_from_count\n\nBug: 21375533\nBug: 21721483\nChange-Id: I1ccd5d1d68a25f415dc4a62bf7a44d9db12a256b\n"
    },
    {
      "commit": "9cf332ca156132931da397bae94b89debb40de10",
      "tree": "151b5c652bcd2035d6cd65ec633933bd1634c30f",
      "parents": [
        "3f980665acd86698a2f8cfce65ab38a7270a5e97",
        "08fb1743f80437c38b4094070d851ea7f6d485e5"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jun 03 20:30:00 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 03 20:31:03 2015 +0000"
      },
      "message": "Merge \"Throttle MixerThread data pull to no more than twice expected rate\" into mnc-dev"
    },
    {
      "commit": "08fb1743f80437c38b4094070d851ea7f6d485e5",
      "tree": "5c2c3d8a6401247415e5e106140afdea2113661f",
      "parents": [
        "0eafa9d8ee4069aa709ff85ceffe94d12995956d"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sun May 31 23:22:10 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jun 03 13:28:27 2015 -0700"
      },
      "message": "Throttle MixerThread data pull to no more than twice expected rate\n\nThis helps prevent underruns with NuPlayer and other applications\nwhich set up buffers that are close to minimum size or use deep\nbuffers, and rely on a double-buffering sleep strategy to fill.\n\nEnabled by default.  Disabled by setting af.thread.throttle 0\n\nBug: 19062223\nBug: 21198655\nChange-Id: Ia52b48e0c99588af5db53c43fede2afd775b8899\n"
    },
    {
      "commit": "40b26470dd29e44f1601ceb6e60948586a4d9f88",
      "tree": "bcb5f8f286fcd50bf36b69246e2e01e5e4a70197",
      "parents": [
        "de07e3743ef9c3dfe45864bf941b918147126500"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jun 02 14:42:49 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jun 02 14:42:49 2015 -0700"
      },
      "message": "Fix build\n\nChange-Id: I4d1e396d812b6a22087d35156633451d5c1c36bc\n"
    },
    {
      "commit": "de07e3743ef9c3dfe45864bf941b918147126500",
      "tree": "c71aad9e0ae06c24cfe53af452268705b8011503",
      "parents": [
        "0eafa9d8ee4069aa709ff85ceffe94d12995956d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jun 02 12:34:11 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jun 02 12:39:22 2015 -0700"
      },
      "message": "Allow capture by root for command-line native testing\n\nChange-Id: I3cafd70b7770c7e4b578d39a8d570572829f2c59\n"
    },
    {
      "commit": "e1f939bf0e1bac806b7da1b316e70c96426dc1b6",
      "tree": "915bde554563a4d65e978430bdfa0bf4e7ada350",
      "parents": [
        "76b1d55b69f0d1d36bb96ab0c206ef1eff715d82",
        "84d61caa6040e346df68dbe6f8e4fe339906de08"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri May 29 22:16:20 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 29 22:16:20 2015 +0000"
      },
      "message": "Merge \"Add more device codes for symbolic display\" into mnc-dev"
    },
    {
      "commit": "76b1d55b69f0d1d36bb96ab0c206ef1eff715d82",
      "tree": "0755e0d33e740bf4c66c8ee852cc309857e3b39d",
      "parents": [
        "db431db53fbbb9024b6e72c528e2d195d63ad544",
        "d11da70f0e1d06ee6c7b2f83fcfb06257a1c90f2"
      ],
      "author": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Fri May 29 01:28:47 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 29 01:28:48 2015 +0000"
      },
      "message": "Merge \"Fix for audio effects in offload path for mono content\" into mnc-dev"
    },
    {
      "commit": "d11da70f0e1d06ee6c7b2f83fcfb06257a1c90f2",
      "tree": "3620c1269dd9a73cf533cbed5888459edbf87abf",
      "parents": [
        "70b2313318aaf245d185b6ddb188606608bdf7c9"
      ],
      "author": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Thu May 28 12:14:12 2015 -0700"
      },
      "committer": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Thu May 28 14:28:40 2015 -0700"
      },
      "message": "Fix for audio effects in offload path for mono content\n\nEffects path is always stereo, and it should be initialized as thus even\nif the source is mono. Fixed condition check before initialization.\n\nbug: 18157592\nChange-Id: Idd7241931e4ba6085fd804345128d898c8511e11\n"
    },
    {
      "commit": "ad9cb8b88e4f8face23f01d8dc89fa769dacb50f",
      "tree": "bfa8ce6b4b9f6f00c6d2bcc639e482e80aa9cc0a",
      "parents": [
        "3ab77c1e93f3da5da0d18ff998f1bd6db19534f3"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 26 16:38:19 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 27 17:59:12 2015 +0000"
      },
      "message": "audio flinger: add suffix to time variables names\n\nAdd suffix to clarify units for the following variables:\n standbyTime -\u003e mStandbyTimeNs\n standbyDelay -\u003e mStandbyDelayNs\n activeSleepTime -\u003e mActiveSleepTimeUs\n idleSleepTime -\u003e mIdleSleepTimeUs\n sleepTime -\u003e mSleepTimeUs\n\nChange-Id: I7f5d602c39e0ef3f6fe9ef99eaf1b351c7bd4fc3\n"
    },
    {
      "commit": "3ab77c1e93f3da5da0d18ff998f1bd6db19534f3",
      "tree": "62dd0ec770bc7e883083a5cb2f2c8ba5163c124f",
      "parents": [
        "5eabb0191ab25a45ae19575a7a443ba12bd1800a",
        "5cff403679fc44c8293de81aed31c459c6129243"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 27 17:58:00 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 27 17:58:00 2015 +0000"
      },
      "message": "Merge \"audio flinger: pause direct output when underrunning\" into mnc-dev"
    },
    {
      "commit": "84d61caa6040e346df68dbe6f8e4fe339906de08",
      "tree": "eaeda93ba5803d63e142caaee24624eb3741f793",
      "parents": [
        "92d824426e4621c2e8dfdd4e0f00d19c35d3c481"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed May 06 18:32:13 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed May 27 10:11:21 2015 -0700"
      },
      "message": "Add more device codes for symbolic display\n\nChange-Id: I08553f0e94d0a0931ccf98ee04f53686b96c8b03\n"
    },
    {
      "commit": "5cff403679fc44c8293de81aed31c459c6129243",
      "tree": "6461ccb9f276df2f1f37b2e29381fd564f2e5f26",
      "parents": [
        "4a95e69406aa2e9896d865962d6d947ebbdac6fc"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 26 13:49:58 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 26 23:37:14 2015 +0000"
      },
      "message": "audio flinger: pause direct output when underrunning\n\nIf a direct output supports pause, pause the stream\ninstead of placing it into standby when the audio track\nunderruns. This will avoid resetting the presented frame count\nand preserve A/V sync.\n\nBug: 21437855.\n\nChange-Id: I598346edb62a1864126acdb1d9a937c82eac2191\n"
    },
    {
      "commit": "aa4817489d0c68449769a888ca9507bd09648b01",
      "tree": "0b7081f51f0c64bc6f6fcfbd46ade0f3a07e2e00",
      "parents": [
        "748a792be85838c429ebf46acf7d6eb02e79f00b",
        "e09c994e7a3e73d5dbdc73d1f2d3556ec2203b0d"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu May 21 22:33:46 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 21 22:33:46 2015 +0000"
      },
      "message": "Merge \"Improve volume input check for AudioMixer\" into mnc-dev"
    },
    {
      "commit": "e09c994e7a3e73d5dbdc73d1f2d3556ec2203b0d",
      "tree": "c064071eb6abe386343478b11ab86c5d85e41c75",
      "parents": [
        "523d08709ba4a0124eb2117907d79113fbe00cfb"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 08 16:58:13 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu May 21 14:20:53 2015 -0700"
      },
      "message": "Improve volume input check for AudioMixer\n\nChange-Id: I5b656b123847529f2b76af2a68bd4e9b691882f4\n"
    },
    {
      "commit": "748a792be85838c429ebf46acf7d6eb02e79f00b",
      "tree": "5f9aa67825176080016baabc4cf844abd1e25ecb",
      "parents": [
        "2232aee25e4df7d04446912e8ad9e9dc44d8ec16",
        "72e3f39146fce4686bd96f11057c051bea376dfb"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 21 16:12:36 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 21 16:12:37 2015 +0000"
      },
      "message": "Merge \"audio flinger: do not call JAVA services until system is ready\" into mnc-dev"
    },
    {
      "commit": "72e3f39146fce4686bd96f11057c051bea376dfb",
      "tree": "00e43a5392f717a49a3569de3a5bdce9aa7b6a6e",
      "parents": [
        "4a95e69406aa2e9896d865962d6d947ebbdac6fc"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 20 14:43:50 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 20 17:35:37 2015 -0700"
      },
      "message": "audio flinger: do not call JAVA services until system is ready\n\nWait for system ready indication form AudioService before enabling\ncalls to scheduling service or power manager.\n\nBug: 11520969.\nChange-Id: I221927394f4a08fd86c9d457e55dd0e07949f0cf\n"
    },
    {
      "commit": "8ef66c6662002279a606df70f41651491a349126",
      "tree": "9c49cfce7c271b0e7ff8ba0c2f24c6adb447bfdc",
      "parents": [
        "9f7eddb757d84640786174e8ce78a3221e829cd4",
        "1f439e1cf16a29347288ba9ddd06c0b6d086a145"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 19 23:42:25 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 19 23:42:25 2015 +0000"
      },
      "message": "Merge \"Update FastTrack channel conversion check\" into mnc-dev"
    },
    {
      "commit": "9f7eddb757d84640786174e8ce78a3221e829cd4",
      "tree": "439a8f370306ce36564ca29fc3c980a048dbdc7e",
      "parents": [
        "856f37a8b62bb3732d4a92b0278672819720b3f1",
        "f98ec8d0d42e6952c0a7cc5027935851073f7426"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 19 23:41:03 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 19 23:41:04 2015 +0000"
      },
      "message": "Merge changes Iba5ccd18,I97e578f3 into mnc-dev\n\n* changes:\n  Fix channel mask dump in AudioFlinger\n  Allow creation of output endpoints with channel index masks\n"
    },
    {
      "commit": "1f439e1cf16a29347288ba9ddd06c0b6d086a145",
      "tree": "d4a7b6501598b794b0ceffcf6c473520fda5e323",
      "parents": [
        "64b6cb2cd5646a5ffcdb2cccee09a170ef2882d5"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 19 12:57:41 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 19 13:08:45 2015 -0700"
      },
      "message": "Update FastTrack channel conversion check\n\nChange-Id: Ia1a3124e6408859bf4d95ff9fd95dda6970a4a7f\n"
    },
    {
      "commit": "f98ec8d0d42e6952c0a7cc5027935851073f7426",
      "tree": "99379816526b00add39e7921d364f2a731668af7",
      "parents": [
        "64b6cb2cd5646a5ffcdb2cccee09a170ef2882d5"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 19 12:53:24 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 19 13:04:44 2015 -0700"
      },
      "message": "Fix channel mask dump in AudioFlinger\n\nChange-Id: Iba5ccd1885775b14c44342c7b169a0672b93549b\n"
    },
    {
      "commit": "64b6cb2cd5646a5ffcdb2cccee09a170ef2882d5",
      "tree": "40c1f747e33929aa133c4671b603fadea10b635e",
      "parents": [
        "467b6e152e3064b8da58551effb39e72acec14af"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 19 12:32:58 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 19 13:01:13 2015 -0700"
      },
      "message": "Allow creation of output endpoints with channel index masks\n\nBug: 21301523\nChange-Id: I97e578f3da933f7086e4f431a199ed907f04cbc8\n"
    },
    {
      "commit": "88063ca54bc064fedb836fa020b699f8c61ce6ed",
      "tree": "872820901f4c0da447d54ba7cfe3cc1f409efed5",
      "parents": [
        "f71f5afcd87e8037350f8630e6d40da0a9b2aa60",
        "926ac73529a3b1fc614f8e7f1b2ed35564fc51e6"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri May 15 23:32:57 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 15 23:32:57 2015 +0000"
      },
      "message": "Merge changes Ia529bf53,I10888d0b into mnc-dev\n\n* changes:\n  Enable building with clang/llvm.\n  Enable clang compilation.\n"
    },
    {
      "commit": "926ac73529a3b1fc614f8e7f1b2ed35564fc51e6",
      "tree": "33776a181b2a48ef5f6cf19ba82ac514296f495d",
      "parents": [
        "ff2116e805a3d72cf8bdb07fb47554b93faa93fa"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue May 12 11:18:15 2015 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri May 15 16:02:53 2015 -0700"
      },
      "message": "Enable building with clang/llvm.\n\nThe llvm bug https://llvm.org/bugs/show_bug.cgi?id\u003d21572 was fixed.\n\nBUG: 18373866\nChange-Id: Ia529bf53267f636880515ccefb4ca1cf7d731baf\n(cherry picked from commit 7630881d853b130e2c1f11cb2dafebe684bcfa91)\n"
    },
    {
      "commit": "ff2116e805a3d72cf8bdb07fb47554b93faa93fa",
      "tree": "16c01dbc7b0f194415e45d63b0ef14c67250a3ed",
      "parents": [
        "d9f493ebcd1830c76d7b1782e64c7ba9ad8ab4bd"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu May 14 10:51:23 2015 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri May 15 16:01:20 2015 -0700"
      },
      "message": "Enable clang compilation.\n\nPrevious clang/llvm bug was fixed.\n\nBUG: 18373866\nChange-Id: I10888d0bc1cf8f621c719a705b1f77ff0d0ecca5\n(cherry picked from commit 1ab4ff2355e934517751e40573e4163cb49b1676)\n"
    },
    {
      "commit": "617575b17de9b22247eb59948f134939641bd1bd",
      "tree": "127beaf927eccf7277a4e7b3d5b17348c101017e",
      "parents": [
        "d9f493ebcd1830c76d7b1782e64c7ba9ad8ab4bd"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 12 18:32:04 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 12 18:32:04 2015 -0700"
      },
      "message": "audio flinger: fix record permission check\n\nBug: 21022842.\nChange-Id: Iff7c2ce715fa5e7ff029dbf6a3f27c6a8bc0735d\n"
    },
    {
      "commit": "d9f493ebcd1830c76d7b1782e64c7ba9ad8ab4bd",
      "tree": "1d075b113943a8e3a032b9162100f05490213250",
      "parents": [
        "69dce3343ffe33d2ba60ab4c6755953a7ec96899",
        "db4c031f518ae5806af73756273ff32cd8d0e4f8"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 12 18:42:59 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 12 18:43:00 2015 +0000"
      },
      "message": "Merge \"Update sampling rate to 192kHz for devices\" into mnc-dev"
    },
    {
      "commit": "69dce3343ffe33d2ba60ab4c6755953a7ec96899",
      "tree": "71e7ceb677e83c6496e4d87bc578d3203858e1b9",
      "parents": [
        "d0e25a2529584b07e4fe3544f973c6b0ebda7fc3",
        "078538cfc6c4682889ed52de460d29c0d15bb9eb"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue May 12 17:40:16 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 12 17:40:18 2015 +0000"
      },
      "message": "Merge \"Work around bug in offload driver\" into mnc-dev"
    },
    {
      "commit": "078538cfc6c4682889ed52de460d29c0d15bb9eb",
      "tree": "80c1fcdd039f5ab2481f6fb93077176d6d9331d8",
      "parents": [
        "3af8a321d06b3ee59afe159479c58e6b549c7b8f"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue May 12 09:17:57 2015 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue May 12 10:35:39 2015 -0700"
      },
      "message": "Work around bug in offload driver\n\nThere is a bug in the offload driver that causes the last offload buffer(s)\nto be dropped unless the device is on power or holding a wake lock.\nTo avoid truncated playback, we now hold a wake lock during the drain phase\nof offloaded playback.\n\nBug: 19928717\nChange-Id: I8df22e965ec791448aa5d9b74e743f48ef886fc4\n"
    },
    {
      "commit": "db4c031f518ae5806af73756273ff32cd8d0e4f8",
      "tree": "62f9e0541acccc3acacf808d2a3cdad130eb819b",
      "parents": [
        "18aa27016a94d0fee243637a80fd0741f89e08f2"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed May 06 08:46:52 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 12 09:30:51 2015 -0700"
      },
      "message": "Update sampling rate to 192kHz for devices\n\nChange-Id: I0a83206be51d7ae18ccf85b94b2127356307be69\n"
    },
    {
      "commit": "fedef1384d5ff758285fb19161a0348e1e32ab3f",
      "tree": "659818942c7df772681839a0fbdc0aefe6b69c0e",
      "parents": [
        "af49160aa75d4e1750f3ed56b812ec9cc448fa46",
        "18aa27016a94d0fee243637a80fd0741f89e08f2"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 12 00:36:07 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 12 00:36:07 2015 +0000"
      },
      "message": "Merge \"Support channel index masks for output hal\" into mnc-dev"
    },
    {
      "commit": "af49160aa75d4e1750f3ed56b812ec9cc448fa46",
      "tree": "28be21137eef5113692cbf9f6ab904c7f476b1c4",
      "parents": [
        "1ea0262553d7b88849c6392585e7173d8dc4bde6",
        "d1abb8f94d7ed749ee959655db1e07d26dad074d"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 12 00:30:51 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 12 00:30:52 2015 +0000"
      },
      "message": "Merge \"Allow 8 channels in RecordThread\" into mnc-dev"
    },
    {
      "commit": "badb2c466b9a9e84ad1cd794c52052a436b661fa",
      "tree": "22774d5c856e0d3e6be731ad84abc691c852a4bf",
      "parents": [
        "ef2c7aa096d95bbc74a75078c07f300fb2d94172",
        "43412fc79ceda964cf9d16e3b4c563849db57d3a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat May 09 00:34:22 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat May 09 00:34:23 2015 +0000"
      },
      "message": "Merge \"AudioMixer: fix for volume ramp in float mode\" into mnc-dev"
    },
    {
      "commit": "ef2c7aa096d95bbc74a75078c07f300fb2d94172",
      "tree": "5d603278cc8934d3aa7a5826e09ea0349ad432c7",
      "parents": [
        "70f0d62d5f9b81d53f4ca28cd5dbb39ca0a2cdc2",
        "1924c9b12eae39d074235a3ec25770795d220157"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat May 09 00:34:14 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat May 09 00:34:15 2015 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Enable full floating point path in AudioMixer\"\"\" into mnc-dev"
    },
    {
      "commit": "43412fc79ceda964cf9d16e3b4c563849db57d3a",
      "tree": "98c5f3ccebfd54d45ed631256b47febfe03c3505",
      "parents": [
        "70c75d8c15707d5eade38fe3e622f8500c29556b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 08 16:14:36 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 08 16:29:24 2015 -0700"
      },
      "message": "AudioMixer: fix for volume ramp in float mode\n\nBug: 20912450.\nBug: 19952126.\nChange-Id: I1ff3c3f4c0dd673bbbc17ce8da14d446fdb7e8a8\n"
    },
    {
      "commit": "1924c9b12eae39d074235a3ec25770795d220157",
      "tree": "2db493f9d8a10aece6aded5af55afb782f2bb389",
      "parents": [
        "5dcaebbea5dca62ca55d6137777caa67fc757dd6"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 08 23:18:07 2015 +0000"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 08 23:18:07 2015 +0000"
      },
      "message": "Revert \"Revert \"Enable full floating point path in AudioMixer\"\"\n\nThis reverts commit 5dcaebbea5dca62ca55d6137777caa67fc757dd6.\n\nChange-Id: I8bfc668baf53dc03a9516c50e2a4d625ec767d0a\n"
    },
    {
      "commit": "70f0d62d5f9b81d53f4ca28cd5dbb39ca0a2cdc2",
      "tree": "7899aff1381807be15a46d38e9f653e38ba06ce8",
      "parents": [
        "8bae3aa349f9d03934a170d3bafbf0008bfc3a9d",
        "f6870aefc5e31d4220f3778c4e79ff34a61f48ad"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 08 21:17:42 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 08 21:17:44 2015 +0000"
      },
      "message": "Merge \"audio flinger: fix fuzz test crash\" into mnc-dev"
    },
    {
      "commit": "f6870aefc5e31d4220f3778c4e79ff34a61f48ad",
      "tree": "6943c86c7143ffc113d91b8ed7a34d75ab183434",
      "parents": [
        "70c75d8c15707d5eade38fe3e622f8500c29556b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 08 10:50:03 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 08 13:23:51 2015 -0700"
      },
      "message": "audio flinger: fix fuzz test crash\n\nClear output stream pointer in duplicating thread\nwhen the main output to which it is attached is closed.\n\nAlso do not forward master mute and volume commands to\nduplicating threads as this is not applicable.\n\nAlso fix logic in AudioFlinger::primaryPlaybackThread_l()\nthat could accidentally return a duplicating thread.\nThis never happens because the primary thread is always\nfirst in the list.\n\nBug: 20731946.\nChange-Id: Ic8869699836920351b23d09544c50a258d3fb585\n"
    },
    {
      "commit": "5dcaebbea5dca62ca55d6137777caa67fc757dd6",
      "tree": "47925f1faeaf80e4c257da583c390d897872a159",
      "parents": [
        "49822fe2aa38cab4a8cdf2221480181ae7a5f9d0"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 07 15:35:42 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 07 15:35:42 2015 -0700"
      },
      "message": "Revert \"Enable full floating point path in AudioMixer\"\n\nThis reverts commit 5b8fde71e08f57478ef25d040fc5f66294011ac6.\n\ntemporary revert while we investigate.\n\nBug: 20912450.\n"
    },
    {
      "commit": "d7ab7afa57ed1fa6fb9c4ce18ea0df3ec939c067",
      "tree": "ed0fd03c176ba5ae421795f4665d47faec653c52",
      "parents": [
        "eb58c6d9ee8eac81864aaecb38a1831014ebf152",
        "296fb13dd9b5e90d6a05cce897c3b1e7914a478a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 06 17:51:41 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 06 17:51:42 2015 +0000"
      },
      "message": "Merge \"Implement audio device callback\" into mnc-dev"
    },
    {
      "commit": "18aa27016a94d0fee243637a80fd0741f89e08f2",
      "tree": "35a0e32b3d526daba44572ff9516076ad43d4974",
      "parents": [
        "d1abb8f94d7ed749ee959655db1e07d26dad074d"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 05 23:48:38 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed May 06 10:28:06 2015 -0700"
      },
      "message": "Support channel index masks for output hal\n\nChange-Id: Ib3e61ff6faf91c71b85102b5d77f90f124c08220\n"
    },
    {
      "commit": "296fb13dd9b5e90d6a05cce897c3b1e7914a478a",
      "tree": "d3ed4e6ff2902da6f556d038c71605c091b75f64",
      "parents": [
        "32fa6d0e65dbf956e253a1006e9419dce2fe75c9"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 01 11:38:42 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 06 10:14:42 2015 -0700"
      },
      "message": "Implement audio device callback\n\nAdd class AudioSystem::AudioDeviceCallback notifying\nAudioSystem clients upon device selection change on a given\ninput or output thread.\nMaintain a list of installed callback per I/O handle in AudioSystem\nand call registered callbacks when an OPEN of CONFIG_CHANGED event\nis received on IAudioFlingerClient::ioConfigChanged().\nAdd methods to AudioTrack and AudioRecord to add and remove device\nchange callbacks.\nAdd methods to AudioTrack and AudioRecord to query currently selected\ndevice.\nioConfigChanged() events now convey the audio patch describing\nthe input or output thread routing.\n\nFix AudioRecord failure to start when invalidation is\nhandled by start().\n\nChange-Id: I9e938adf025fa712337c63b1e02a8c18f2a20d39\n"
    },
    {
      "commit": "d1abb8f94d7ed749ee959655db1e07d26dad074d",
      "tree": "19df13c5fcba2ebca2793ab5ac1570348b7e42af",
      "parents": [
        "8b07404cfe564885045a63bb592d6b6dc838b408"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 05 23:42:34 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 05 23:42:34 2015 -0700"
      },
      "message": "Allow 8 channels in RecordThread\n\nChange-Id: I738d4975188695e568015e1bc64d160550e958f5\n"
    },
    {
      "commit": "9f578d3297782be6de5373e171f3b4af49726709",
      "tree": "d6063a06edf2c17868195472d63869c069dbfbb8",
      "parents": [
        "c8a70d340f0ce610dfb8bd44d833708269484e99",
        "4cb668392ee0433462251afbee109405c6efacc8"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue May 05 15:55:07 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 05 15:55:08 2015 +0000"
      },
      "message": "Merge \"AudioRecord keeps track of UID\" into mnc-dev"
    },
    {
      "commit": "4cb668392ee0433462251afbee109405c6efacc8",
      "tree": "50e324bd1af8951136ec9b7c4a7538e514490e80",
      "parents": [
        "1de1e25cba872bd4c077c2e394f8ca9c70b65856"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri May 01 18:34:17 2015 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue May 05 02:04:33 2015 +0000"
      },
      "message": "AudioRecord keeps track of UID\n\nBug 20832981\n\nChange-Id: If5f3c61fae02d86b9d6fdf411711f854fd56c77d\n"
    },
    {
      "commit": "8ce74c3c11458faa34395591a3424e90db856bfc",
      "tree": "e3e1f5120c35890402528e2959e77be85aaa1bfd",
      "parents": [
        "8651c6f5069cca40ef805b800a9730617ff7f9b8",
        "6fc2a7c81f62b1e21487ae37e11aae6241bc3ead"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Sat May 02 02:31:19 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat May 02 02:31:20 2015 +0000"
      },
      "message": "Merge \"AudioTrack: fix direct tracks not pausing\" into mnc-dev"
    },
    {
      "commit": "6fc2a7c81f62b1e21487ae37e11aae6241bc3ead",
      "tree": "2b8396ccca007dfb36b825df49d4a430b3dd3d1c",
      "parents": [
        "1de1e25cba872bd4c077c2e394f8ca9c70b65856"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Apr 30 16:08:10 2015 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri May 01 17:17:44 2015 -0700"
      },
      "message": "AudioTrack: fix direct tracks not pausing\n\nWhen a Direct Track is paused and the HAL does not support\npause() and resume() then the HW never gets paused.\nThe app can just keep writing data, which gets played.\n\nBug: 18899620\nChange-Id: Ice0f360956ff7ca425f6f24a0a2a8640d8b43fa8\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "cc85abcf4ac398dca240db356b8b4db052b415a4",
      "tree": "65f9eccab6b0d9b9f3dcee48e2c44326b0edbef4",
      "parents": [
        "0bbf8b213ad96051357e3ad6d6d2808bfa31a59a",
        "73e26b661af50be2c0a4ff6c9ac85f7347a8b235"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 01 19:10:25 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 01 19:10:26 2015 +0000"
      },
      "message": "Merge \"AudioSystem: refactor audio config cache and callbacks\" into mnc-dev"
    },
    {
      "commit": "73e26b661af50be2c0a4ff6c9ac85f7347a8b235",
      "tree": "7290cb83e5f7df830447fe2badf99c43e0afc020",
      "parents": [
        "054d9d3dea1390294650ac704acb4aa0a0731217"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 27 16:55:58 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 01 11:45:07 2015 -0700"
      },
      "message": "AudioSystem: refactor audio config cache and callbacks\n\nClean up implementation of audio configuration cache and\ncallback events from AudioFlinger:\n\n- Define class AudioIoDescriptor for audio input and output\nconfigurations outside of AudioSystem class.\n- Do not use void * but an AudioIoDescriptor as argument to\naudio config callbacks from AudioFlinger.\n- Remove unused configuration events.\n- Move AudioSystem audio input and output cache from static singletons to\nmembers of AudioFlingerClient subclass.\n\nChange-Id: I67c196c32c09ce2756af0755ee1fe631040c3270\n"
    },
    {
      "commit": "850206ed9ebc6c663a957a656966bce2604dc170",
      "tree": "e7b0bdb5dee5a44524afc0f9c89e4bba878bfbb4",
      "parents": [
        "94ce218596a88cc6d37098cce4e17e68f7405603",
        "054d9d3dea1390294650ac704acb4aa0a0731217"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 01 01:03:59 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 01 01:03:59 2015 +0000"
      },
      "message": "Merge \"PatchPanel: do not use setParameters() internally.\" into mnc-dev"
    },
    {
      "commit": "1b42097f38e72574ed853a35f4e8a66e4739c421",
      "tree": "e708293755e42bca48d47380b8b8568cfc3d2f1f",
      "parents": [
        "5f88cdae61079be7920aee166eaac4941f65fb9f"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Apr 22 10:52:21 2015 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Apr 29 23:36:01 2015 +0000"
      },
      "message": "AudioTrack: fix spurious retrograde messages\n\nThe retrograde motion was confused by some positions coming from\nthe DSP on offloaded tracks. So the retrograde check was moved up\ninto AudioTrack.cpp. This allows us to take advantage of the checks\nfor invalid positions based on timing.\n\nBug: 2047891\nChange-Id: Ifcad2349201443a7f1711347c203297100449536\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "be71aa29a3c86d2e01cd17839d2a72ab09a1bce5",
      "tree": "ca29cd10f78ff053761eb809c391019180836742",
      "parents": [
        "f62a067a5b21c840c915d36392679346ac0abfd7"
      ],
      "author": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Apr 28 12:06:02 2015 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Apr 29 19:06:41 2015 +0000"
      },
      "message": "Respect the record audio app op - media\n\nChange-Id: I3a97977b6e9a09355e2008f780d22d480fb7308b\n"
    },
    {
      "commit": "054d9d3dea1390294650ac704acb4aa0a0731217",
      "tree": "4d67c48a2cf367d661f1e33a6670cda052a569a3",
      "parents": [
        "f62a067a5b21c840c915d36392679346ac0abfd7"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 24 08:48:48 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 28 19:05:19 2015 -0700"
      },
      "message": "PatchPanel: do not use setParameters() internally.\n\nDo not use setParameters() with AUDIO_PARAMETER_STREAM_ROUTING\nwhen communicating the input or output device selected to playback or\nrecord threads, even for HAL version less than 3.0.\nUse createAudioPatch()/releaseAudioPatch() instead.\nThis allows to send more information on the output or input device being\nselected.\n\nAlso fix a regression introduced in L where the output device selection\nwas not communicated to effects on record threads.\n\nChange-Id: I4780ada53241d56694b005c992171e173c3bf8f5\n"
    },
    {
      "commit": "d330ee46022f34da76d14d0c4d2910526ecc2321",
      "tree": "05df908a6cd115a92eb1e15a2daa191c14a441b2",
      "parents": [
        "f27e2fbfc3284c00a60fa68edc51d436f75b1e32"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 20 13:23:41 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 22 12:42:52 2015 -0700"
      },
      "message": "Add floating and multichannel record to AudioFlinger\n\nChange-Id: Ia388fb012a0b6d81613ef87142a97d76836338f9\n"
    },
    {
      "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\""
    }
  ],
  "next": "20bd9bfc3ae429412c8eb98619b40fb8e3671bbc"
}
