)]}'
{
  "log": [
    {
      "commit": "b3cf7e656db20c65c0d7c779640db7f5f2a52baf",
      "tree": "82a21b169c3fd2d3afb9cfbf95e7949779db8a55",
      "parents": [
        "ad4dbf550debd0fa2794eba7c772b85445115181"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Jun 02 10:24:24 2017 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Jun 02 10:24:24 2017 -0700"
      },
      "message": "audioflinger: Extend debug logs in RecordThread\n\nThis seems to be helpful to figure out why requesting\nlow latency recording fails. E.g. it can fail because\nRecordThread just doesn\u0027t enable fast capture, or because\npipe memory allocation has failed, or due to parameters\nincompatibility.\n\nChange-Id: Ia5122b0591836c4999e73f3460c761484f5c2859\nTest: manual\n"
    },
    {
      "commit": "2ee7aab4a39139a86a24ca14f718eb20a1b355db",
      "tree": "1a7501567d6af64aa958f26453ee9360833bfd4a",
      "parents": [
        "bcbc56bfd43e071cf8b199e9e6dfc835d1f29ab6"
      ],
      "author": {
        "name": "YOUNG HO CHA",
        "email": "ganadist@gmail.com",
        "time": "Thu May 25 23:16:51 2017 +0900"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu May 25 11:26:52 2017 -0700"
      },
      "message": "Android.mk: remove $TOP in LOCAL_C_INCLUDES\n\nTest: make systemimage\n\nChange-Id: I5f83786afe3f2c65819b127b041cb74fc4c989ac\nSigned-off-by: YOUNG HO CHA \u003cganadist@gmail.com\u003e\n"
    },
    {
      "commit": "af9a7b52b2273ea5c2b30350bdd0fce39a8b16d2",
      "tree": "e0c66e6f6b031293496bc4a4008d76d45cf5bc13",
      "parents": [
        "d0ebc4ce66090107dbda021cb395f1d3c11b9525"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 29 11:29:39 2017 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue May 23 11:26:14 2017 -0700"
      },
      "message": "Add comments for bool parameter forApp\n\nTest: builds OK\nChange-Id: I71d0a76225c90e8c30979a579bacf2bd3ce8e492\n"
    },
    {
      "commit": "cc49b266bb2a6dcc4249afe26f6374f48b753396",
      "tree": "cbc3930f0a6f8d611a2789307156a20d9013d747",
      "parents": [
        "121c79d2f8a980d1e55db5af8b8c48281072ca8b",
        "f12f9ca0bef555f59b4ba34f220207e9a20f2875"
      ],
      "author": {
        "name": "rago",
        "email": "rago@google.com",
        "time": "Fri May 05 00:34:48 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri May 05 00:34:48 2017 +0000"
      },
      "message": "Merge \"Fix wait time for audio threads in suspend mode\" into oc-dev am: 24fd2f7d29\nam: f12f9ca0be\n\nChange-Id: I31eac5f1953eb00c253a140dd9d3959055936eba\n"
    },
    {
      "commit": "f12f9ca0bef555f59b4ba34f220207e9a20f2875",
      "tree": "60b1869265a2ba92fa9af91b1475a7c3dc0ce33e",
      "parents": [
        "56fa0f3e36481d26ee201fd92d7e770e747efbf5",
        "24fd2f7d2900797b1300d6bc89d28bd94a31c3cb"
      ],
      "author": {
        "name": "rago",
        "email": "rago@google.com",
        "time": "Fri May 05 00:31:52 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri May 05 00:31:52 2017 +0000"
      },
      "message": "Merge \"Fix wait time for audio threads in suspend mode\" into oc-dev\nam: 24fd2f7d29\n\nChange-Id: Idfb70a5c7f3d532e9946940ef15639abe884bba2\n"
    },
    {
      "commit": "24fd2f7d2900797b1300d6bc89d28bd94a31c3cb",
      "tree": "8b9db5adea9c0bc45c84b59e3f3b732938e13afe",
      "parents": [
        "8e301b17a297234757959ace170e3d77ef87b5a6",
        "1bb9082596c9cac2995dc9b4465a7c6d5666d099"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 05 00:23:52 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 05 00:23:53 2017 +0000"
      },
      "message": "Merge \"Fix wait time for audio threads in suspend mode\" into oc-dev"
    },
    {
      "commit": "ab37fbfcdc197429d59f6926ba970b3e68bbbadf",
      "tree": "b996f5b97e90646a4a44244874cca7a5e1b57d74",
      "parents": [
        "9be44dcb02e01e26cccd8334223f75174fbb3f26",
        "8c9796628b8aa19adb3787dae7de0989b5b5ef4c"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu May 04 23:03:00 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu May 04 23:03:00 2017 +0000"
      },
      "message": "Merge \"audioflinger: Do not report underruns for stopped or paused tracks\" into oc-dev am: bc4040efd0\nam: 8c9796628b\n\nChange-Id: I819e1361dd3245f35fe06691a4758fe43febc3d0\n"
    },
    {
      "commit": "8c9796628b8aa19adb3787dae7de0989b5b5ef4c",
      "tree": "4a63ed8c21517ab5589f4db00e9ab44040816f70",
      "parents": [
        "cd3b59c8ba5da18eb4f501b62f4e583027bc3e9d",
        "bc4040efd06835a620d97a5dc8cc2fd0c8830de3"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu May 04 22:59:46 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu May 04 22:59:46 2017 +0000"
      },
      "message": "Merge \"audioflinger: Do not report underruns for stopped or paused tracks\" into oc-dev\nam: bc4040efd0\n\nChange-Id: I5cb91b0223c6302f1b08450f2bfeb5ebf390cc95\n"
    },
    {
      "commit": "1bb9082596c9cac2995dc9b4465a7c6d5666d099",
      "tree": "7d3b5fc5f617f395167f07282d686857e15ac032",
      "parents": [
        "01506e4ad26d1f1bf5b81121a8d17b3305940eab"
      ],
      "author": {
        "name": "rago",
        "email": "rago@google.com",
        "time": "Tue May 02 18:31:48 2017 -0700"
      },
      "committer": {
        "name": "rago",
        "email": "rago@google.com",
        "time": "Thu May 04 15:21:18 2017 -0700"
      },
      "message": "Fix wait time for audio threads in suspend mode\n\nBetter estimation of wait time in suspended audio threads.\n\nBug: 34772697\n\nTest: phone calls with BT headset.\nChange-Id: Icf99c0671def810b57332a321e4de4680697715b\n"
    },
    {
      "commit": "a66d3899f7d13e69ee451f1071f0d999678803ce",
      "tree": "542dcd3c8d5ad1c2963d8b8aba0156c52fac655f",
      "parents": [
        "f1e459c6400a774d99390227e853a30f58cee4a2"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed May 03 16:50:56 2017 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu May 04 11:25:59 2017 -0700"
      },
      "message": "audioflinger: Do not report underruns for stopped or paused tracks\n\nPlaybackThread::Track is missing checks for the track state\nwhen reporting underruns. These checks present on other instances\nwhen tallyUnderrunFrames is being called.\n\nThis eliminates fake underrun reportings when playing\nmultichannel tracks via deep buffer.\n\nBug: 36181621\nTest: play multichannel track and check underrun count at the end\nChange-Id: Ieff338b33807e66df91234d85b782ee383fe95b9\n"
    },
    {
      "commit": "952a05feddbab2097e4dc4fb72438d51da198396",
      "tree": "8cb58369709691781257115f67a8c00550b36044",
      "parents": [
        "86175456fb088c8cda6c3d6ee3f77254aa1318cd",
        "8aa96b78076a10f803329a49abcdc38204372f6f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon May 01 15:01:51 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon May 01 15:01:51 2017 +0000"
      },
      "message": "Merge \"Remove unused #include.\" am: 66f70d2c8f am: ad06541333 am: dfb2379a16\nam: 8aa96b7807\n\nChange-Id: I3c04d3d225e9ebeca3ab6a9bf8a632e3ef2237b4\n"
    },
    {
      "commit": "8aa96b78076a10f803329a49abcdc38204372f6f",
      "tree": "c97c94d2a5d6f4b8a59a1a14c479ff8112cf9e79",
      "parents": [
        "dc57616ef1949898a92d2ef86433dd1918be7b8e",
        "dfb2379a1669a1a50d26fd67742593c1141cd723"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon May 01 14:59:23 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon May 01 14:59:23 2017 +0000"
      },
      "message": "Merge \"Remove unused #include.\" am: 66f70d2c8f am: ad06541333\nam: dfb2379a16\n\nChange-Id: Ic8190f5093c56e5f1b949b7e96aa75fba14e42ad\n"
    },
    {
      "commit": "dfb2379a1669a1a50d26fd67742593c1141cd723",
      "tree": "924ec985e1514985006330642a52b0aa0fd702f3",
      "parents": [
        "f5668638ee2e7a0b56476b8204265fc8789d4383",
        "ad06541333d6774238fa91289f2b2e359d9ad3a7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon May 01 14:56:21 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon May 01 14:56:21 2017 +0000"
      },
      "message": "Merge \"Remove unused #include.\" am: 66f70d2c8f\nam: ad06541333\n\nChange-Id: I69824d7d03c110442325d61ed898ec5b99769494\n"
    },
    {
      "commit": "aa4db8923757ec876c7cb8472cf3a937480d6189",
      "tree": "1999d8769bc46751c6e44812f699b37d61b479b7",
      "parents": [
        "f99ffd986c98b9e888678f63202788c59a9867e8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Apr 29 10:16:54 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Apr 29 12:39:18 2017 -0700"
      },
      "message": "Remove unused #include.\n\nBug: N/A\nTest: builds\nChange-Id: Ia493566414e7d08ae12bb9ba754d5c207eed8d3e\n"
    },
    {
      "commit": "fa382b7165edc0eba84975a0abaf159a70ea9d86",
      "tree": "4d451c2eb2133c391bfbb064ac6bf08cbca8be83",
      "parents": [
        "084ad5a4e0af7f816e3279359ed49ae18f8c7d74",
        "f417a01ad53982f5fa0b3b0d4f7e78d6b19d11f9"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 27 17:41:05 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Apr 27 17:41:05 2017 +0000"
      },
      "message": "Merge \"audioflinger: improve mmap stream volume\" into oc-dev am: 9ba03c881f\nam: f417a01ad5\n\nChange-Id: I34d42c70991e76d3f4c398d958ac02c92977d85e\n"
    },
    {
      "commit": "9ba03c881f92f1bd62b28f1c38dc7579382ebdbc",
      "tree": "2cbccc394638af148b21522b0d7fb889f407e96e",
      "parents": [
        "abbb67724e5600c17450ed148fb2c214c5aac9ee",
        "dff774afa22569774eb2c8c25b1b3f934badea4b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 27 17:19:55 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 27 17:19:57 2017 +0000"
      },
      "message": "Merge \"audioflinger: improve mmap stream volume\" into oc-dev"
    },
    {
      "commit": "93d7b51f52a9a5b44d4873f69feefc1709d872c8",
      "tree": "ea87e65e62200823b44853f6b63174e00a6fe9b8",
      "parents": [
        "7b4f926ce4b0b298b5157186347a90dcbc543a70",
        "db59802a59365408b19d95375b8b39fd0a05e002"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 25 16:30:51 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Apr 25 16:30:51 2017 +0000"
      },
      "message": "Merge \"VolumeShaper: improve logging and dumpsys\" into oc-dev am: 9706527f86\nam: db59802a59\n\nChange-Id: I119a0c5cf44a9efaa0190c33a302730a4c756970\n"
    },
    {
      "commit": "9706527f86fc9895ffd0bf288bab6a2b5749a822",
      "tree": "62bb529f4105eac6055ded032b44a90f355eebb3",
      "parents": [
        "79a89ef4eb06a2d29fc3d083112de398111a9ddb",
        "da540db0fc21bc9319d9602aefe1a109d00a7e6c"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 25 16:23:15 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 25 16:23:16 2017 +0000"
      },
      "message": "Merge \"VolumeShaper: improve logging and dumpsys\" into oc-dev"
    },
    {
      "commit": "da540db0fc21bc9319d9602aefe1a109d00a7e6c",
      "tree": "4d2bf652c1c8e523ae1bf28bf5e67e20289be6c8",
      "parents": [
        "5551797eb2d813ef01e23eb93fd680bc1e0dd886"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Apr 20 14:06:17 2017 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 24 15:22:44 2017 -0700"
      },
      "message": "VolumeShaper: improve logging and dumpsys\n\nTest: CTS and dumpsys\nBug: 37536598\nChange-Id: I9a838a8605defde3aaf42a872e48f01425df0f0e\n"
    },
    {
      "commit": "dff774afa22569774eb2c8c25b1b3f934badea4b",
      "tree": "123482f94f2a9246407e4cdad103c599cfa60acc",
      "parents": [
        "6534425f9f508561928fa5c39dd315fd4c354060"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 21 15:29:38 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 21 15:35:23 2017 -0700"
      },
      "message": "audioflinger: improve mmap stream volume\n\nFirst try to use HW volume control and then fall back\nto volume control in AAudio service.\n\nBug: 37518243\nTest: play a sound and check AAudio volume  callback is called\nwhen pressing volume  keys.\n\nChange-Id: Ie18be9f553ae23c247974d8923e7dcddeb1047c8\n"
    },
    {
      "commit": "b04bbe15df0d40ae5d305f3b565cbac89c08a702",
      "tree": "f880ffa90f07b680dce00385c6d10556e18ac9d1",
      "parents": [
        "533800d478e81bc920bd4a3bae9d02f9982ba50a",
        "e0ca8fcf0bb527ff9c6c53ba5412a4b113118305"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 21 19:08:16 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Apr 21 19:08:16 2017 +0000"
      },
      "message": "Merge \"audioflinger: fix mmap stream volume\" into oc-dev am: 6534425f9f\nam: e0ca8fcf0b\n\nChange-Id: Ibadb00dc1dbdb8658dee5b75e54f6f011932d899\n"
    },
    {
      "commit": "7459b90d769a85a4727a2fc02aa96695454ba652",
      "tree": "df9fb1db712ad5fa2219bb081d9152821db53f1b",
      "parents": [
        "24059088a46160f731903cc66404184a531d0478"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 19 18:10:41 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Apr 21 05:10:54 2017 +0000"
      },
      "message": "audioflinger: fix mmap stream volume\n\nFix bad casting from MmapPlaybackThread to VolumeInterface causing\nvolume commands to be lost by audio flinger for MMAP threads.\n\nBug: 37518243\nTest: Verify volume is received by the audio HAL on MMAP streams\n      Verify no regression for other stream types.\n\nChange-Id: I584ae868245358b2edefecc46a5249092f8be229\n"
    },
    {
      "commit": "bf49308851509d38dbf3f57d9682a819d9f983c9",
      "tree": "89168af93deeb8337376b130e40db86179f4a4d2",
      "parents": [
        "064ac067e3e9c2e68d363aa5db57cdd6e2911cdd"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Apr 17 17:37:12 2017 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Apr 17 17:43:36 2017 -0700"
      },
      "message": "audioflinger: Make use of android-base/macros.h\n\nReplace local definitions of \"array size\" macro, and\ndeclarations of non-copyable objects with corresponding\nconstructs from android-base/macros.h.\n\nAlso change \"protected:\" to \"private:\" for classes\nnot designed to be inherited.\n\nChange-Id: I2d1e6d153511ed84d52fe6377879f83258890653\nTest: make\n"
    },
    {
      "commit": "444841ffd7f56f7eadc3cccd59e62738626f0c33",
      "tree": "aa221059eeba7e4b10174a565a27d61a6ea2ba40",
      "parents": [
        "fbd7e12c373435c77aa5b20bdf321a0589521746"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Dec 16 15:36:43 2016 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Apr 13 12:52:05 2017 -0700"
      },
      "message": "Get declarations from the proper header file\n\nTest: builds OK\nChange-Id: I759e49570cd00b3e5101f38164fcac5ac53faa6c\n"
    },
    {
      "commit": "5b2191a4a36746b66ba3e8f73b711f49fdb83b4b",
      "tree": "1a9844681191d98fe5a92c3463de78f99453e01b",
      "parents": [
        "fb91f95fb75b2c2f4247b7fef8674e46ea0bc978"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Aug 19 11:44:47 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Apr 13 09:39:48 2017 -0700"
      },
      "message": "Add a tee sink filename suffix to distinguish type\n\nTest: tee sink filenames have a _C (capture), _P (playback), or _T (track) suffix\nChange-Id: Ib8ddadb0f3e3ba3ac620e33072bb212d5cde4978\n"
    },
    {
      "commit": "fb91f95fb75b2c2f4247b7fef8674e46ea0bc978",
      "tree": "2f7b9bbaa985e245cf61370a67f8b1f81f6f5c0e",
      "parents": [
        "5ede4eef66a3908d1289e2b3baaa692c5492914b",
        "388d57148e8bd330e855be0f51c72d577feb2ee9"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Apr 13 16:38:45 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 13 16:38:46 2017 +0000"
      },
      "message": "Merge \"Rename logWriterTLS to tlNBLogWriter\""
    },
    {
      "commit": "2dc0a5b768b5bac4ab017d3da68b1e97a162296f",
      "tree": "776df15bebc40b62d3edffbdceb17a71e33aeb4b",
      "parents": [
        "0e335f151fbd115d9173741cbe0f87ce38bd3d4d",
        "eef598c5539aa2be5a106f2483b19e368e4b8c0e"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Apr 13 00:47:38 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 13 00:47:39 2017 +0000"
      },
      "message": "Merge \"Add histograms for FastMixer\""
    },
    {
      "commit": "d9534fb35245b8bcd2489e717bdd1ad9269b3000",
      "tree": "e952072b004f3a743465cf67d89e9420246f7bc3",
      "parents": [
        "0de04e850beced076e4b1fcf0e513255f62a7d85",
        "c0c70e3c7dd10bc2c0caffcab1f3f5fb406b35fb"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Apr 12 20:04:06 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 12 20:04:07 2017 +0000"
      },
      "message": "Merge \"AAudioService: integrated with audioserver\" into oc-dev"
    },
    {
      "commit": "c0c70e3c7dd10bc2c0caffcab1f3f5fb406b35fb",
      "tree": "2544186372c9778460821e410c09a0edba8a17bf",
      "parents": [
        "d1b4d0a6a65476236f972cfc181a1db2b96d93ef"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Feb 09 13:18:38 2017 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Apr 12 18:26:12 2017 +0000"
      },
      "message": "AAudioService: integrated with audioserver\n\nCall the MmapStreamInterface from AudioFlinger instead of the FakeHAL.\nFix sending timestamps from the thread.\nAdd shared mode in service.\n\nBug: 35260844\nBug: 33398120\nTest: CTS test_aaudio.cpp\nChange-Id: I44c7e4ecae4ce205611b6b73a72e0ae8a5b243e5\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n(cherry picked from commit 7f6b40d78b1976c78d1300e8a51fda36eeb50c5d)\n"
    },
    {
      "commit": "e73909ebf4728a73cbe19449003ba6b36f2955f6",
      "tree": "a6d773f7b0ab59107dd819433575f0adab0b8aa2",
      "parents": [
        "ba9a9622afc6370e4180dacb6c3169cbfe153446",
        "3ab8d66ad1c47a5ee1f87ad9f5ee2666cf89b32d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Apr 12 16:21:40 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 12 16:21:41 2017 +0000"
      },
      "message": "Merge \"Rename symbols to be more consistent\""
    },
    {
      "commit": "ddb332138cc8f3b4efad9b14b038f0a462b1b661",
      "tree": "867840ca5a15bf27c03946b9cefe07df4c0ccb8e",
      "parents": [
        "a4fe7d9cd54753ac068699eaf5750d34603220e9",
        "6d8018f0b7be9deec6b0acab10a0dca6e91d0fb8"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Apr 12 16:15:31 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 12 16:15:32 2017 +0000"
      },
      "message": "Merge \"Improve audio logs and dumpsys media.audio_flinger\" into oc-dev"
    },
    {
      "commit": "a4fe7d9cd54753ac068699eaf5750d34603220e9",
      "tree": "c3e6c161805715a07bdfb480985ae0bf3d40ea50",
      "parents": [
        "cbd0e571958736a4036bcd0496d4933780af880e",
        "3ac24a14e36085bb26b65652e11747deda0f1e18"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Apr 12 16:15:14 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 12 16:15:15 2017 +0000"
      },
      "message": "Merge \"Fix log spam for media.log\" into oc-dev"
    },
    {
      "commit": "1e037fa24aba83bac2b05a66123c99889cd7e301",
      "tree": "4c29d05a94d8c97d2bfed32debcff30fa70f3384",
      "parents": [
        "00f4a983d6de013045669e0545cf6d7ca232fb2b",
        "fb77f14d64d2dc8b8b2023e12a7ae34f1e053cff"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 12 02:09:55 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Apr 12 02:09:55 2017 +0000"
      },
      "message": "Merge \"Audio policy / flinger: updates to recording callback and record stop\" into oc-dev am: d9d9ae2973\nam: fb77f14d64\n\nChange-Id: I493fb706f5e2eab6500bf23a872eaa46d6ececce\n"
    },
    {
      "commit": "38f86713cbd22caae9fdd4ac2f0bb76ff91df34d",
      "tree": "0a63e9771a87a74837cad231f54e15c1ce8eb635",
      "parents": [
        "ef0b6b64144b6e062bbb445a6df73c365b66646d"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Apr 11 14:10:17 2017 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Apr 11 15:03:51 2017 -0700"
      },
      "message": "Audio policy / flinger: updates to recording callback and record stop\n\nDo not trigger the callback for recording events when the patch\n  handle is NONE, the patch handle will be updated for the\n  recording session later.\nWhen stopping recording, only stop the record thread if the\n  track is not active, not if it\u0027s not the first one.\n\nTest: cts-tradefed run cts-dev -m CtsMediaTestCases -t android.media.cts.AudioRecordingConfigurationTest\nBug: 36569938\n\nChange-Id: I1b7445ef4115d6337ba7b926f7e6b068361926a7\n"
    },
    {
      "commit": "3ac24a14e36085bb26b65652e11747deda0f1e18",
      "tree": "4d0336a8da1b211e559f1348625d4c8e5f63c7e9",
      "parents": [
        "dab5aae9390dccda539c2c805904440bc1e41e9e"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Apr 10 14:58:47 2017 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Apr 11 15:20:51 2017 +0000"
      },
      "message": "Fix log spam for media.log\n\nBug: 36481537\nTest: logcat does not show \"Waiting for service media.log\"\nChange-Id: Ia69b679d3b1f1dd292237c63855ff650566df133\n(cherry picked from commit 04b96fc3a6cfa8312c51bbba4e5729c9dd869f78)\n"
    },
    {
      "commit": "317751902ea3ab0365dfe57a4094c5a605b09e0e",
      "tree": "a79096eb1fd51c2a34ee1bd65b6c02a62426d56d",
      "parents": [
        "e809c801009493f8b18dffdd6d07bf68f1790825",
        "04b96fc3a6cfa8312c51bbba4e5729c9dd869f78"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Apr 11 14:58:58 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 11 14:58:58 2017 +0000"
      },
      "message": "Merge \"Fix log spam for media.log\""
    },
    {
      "commit": "60aec5bddfb5db89f2a33271127a330357f60656",
      "tree": "4c3a9e8fdbf3411db272b6a75169e795354b847d",
      "parents": [
        "5f5e06a6ecfd11f8964e90c390ef7115f1ccc236",
        "8ae038e457b0b01c4f082ff5504f8b880b087f77"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Apr 10 22:08:05 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 10 22:08:06 2017 +0000"
      },
      "message": "Merge \"TypedLogger check for logWriterTLS \u003d\u003d nullptr\""
    },
    {
      "commit": "04b96fc3a6cfa8312c51bbba4e5729c9dd869f78",
      "tree": "065b2ffc851bf6f18119cdf628f1a5d9ad1b3332",
      "parents": [
        "b783ad2fc3880af2c31febb95fa3889ee878aa3b"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Apr 10 14:58:47 2017 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Apr 10 15:05:31 2017 -0700"
      },
      "message": "Fix log spam for media.log\n\nBug: 36481537\nTest: logcat does not show \"Waiting for service media.log\"\nChange-Id: Ia69b679d3b1f1dd292237c63855ff650566df133\n"
    },
    {
      "commit": "7f6b40d78b1976c78d1300e8a51fda36eeb50c5d",
      "tree": "78d0268547b2ca08c89e11a3fcc4a6acafed9a54",
      "parents": [
        "a2e1b6dfd047c148a639cbaff7e3f857d7b3fddc"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Feb 09 13:18:38 2017 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Apr 07 17:26:11 2017 -0700"
      },
      "message": "AAudioService: integrated with audioserver\n\nCall the MmapStreamInterface from AudioFlinger instead of the FakeHAL.\nFix sending timestamps from the thread.\nAdd shared mode in service.\n\nBug: 35260844\nTest: CTS test_aaudio.cpp\nChange-Id: I44c7e4ecae4ce205611b6b73a72e0ae8a5b243e5\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "388d57148e8bd330e855be0f51c72d577feb2ee9",
      "tree": "576d550bcbed7d5de386d3abc4970e59f59e3390",
      "parents": [
        "1c446273e6ebfe55ef293a0b7e78525b1b40ce84"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Apr 07 14:38:41 2017 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Apr 07 14:47:02 2017 -0700"
      },
      "message": "Rename logWriterTLS to tlNBLogWriter\n\nBug: 37153050\nTest: builds OK\nChange-Id: I6b6d673fc02942d4ea7d2022fce06ec2b0e42c2e\n"
    },
    {
      "commit": "eef598c5539aa2be5a106f2483b19e368e4b8c0e",
      "tree": "677e3f98c4f1b3deb9d653dc5ad00b4a7e881028",
      "parents": [
        "3ab8d66ad1c47a5ee1f87ad9f5ee2666cf89b32d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Apr 03 14:41:13 2017 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Apr 07 14:46:35 2017 -0700"
      },
      "message": "Add histograms for FastMixer\n\nBug: 37153050\nTest: dumpsys media.log shows histograms for audio activity on FastMixer\nChange-Id: I6bb4bf19d62da1ed1d8cda43d428b03153a35de3\n"
    },
    {
      "commit": "3ab8d66ad1c47a5ee1f87ad9f5ee2666cf89b32d",
      "tree": "4e0b0664033e13a14ad1c05652b7ccded31ee87c",
      "parents": [
        "8ae038e457b0b01c4f082ff5504f8b880b087f77"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Apr 03 14:35:09 2017 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Apr 07 14:46:29 2017 -0700"
      },
      "message": "Rename symbols to be more consistent\n\nBug: 37153050\nTest: builds OK\nChange-Id: I7e55a03ca8e1f22901db6c8f6f2ad32e4c95a0cd\n"
    },
    {
      "commit": "8ae038e457b0b01c4f082ff5504f8b880b087f77",
      "tree": "523429f63344048229a7fce1aa4a8d03a4230d2e",
      "parents": [
        "9c37337c402d6b19c2a2d1ee50002cbf56f3bc78"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Apr 03 13:43:41 2017 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Apr 07 14:35:42 2017 -0700"
      },
      "message": "TypedLogger check for logWriterTLS \u003d\u003d nullptr\n\nlogWriterTLS !\u003d nullptr\n\nBug: 37153050\nTest: builds OK\nChange-Id: I4f1202ee68a27c637ead2ff520b248a2cfe27508\n"
    },
    {
      "commit": "6d8018f0b7be9deec6b0acab10a0dca6e91d0fb8",
      "tree": "2ce104a9e93cd8604e6624517a818ef8ddedb241",
      "parents": [
        "eb12e8bd16208fdd3017e2d99fee721993efdaa4"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Feb 21 13:05:56 2017 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Apr 07 15:30:08 2017 +0000"
      },
      "message": "Improve audio logs and dumpsys media.audio_flinger\n\nInclude mFrameCount in shared memory corrupt error log.\n\nFix typo in log for primary audio interface.\n\nInclude the new server frame count in logs for fast tracks.\n\nAlways log when fast is successful for output tracks, as it helpful\n  (was already there for input).\n\nCleanup dumpsys for threads.\n\nBug: 37153050\nTest: builds OK, and logs contain more information\nChange-Id: I2b5b4d700e8eb7c261a3125fb03ddc00bf08537e\n(cherry picked from commit 1bfe09a0b1755a79abd32b41c0dd433b88fc260c)\n"
    },
    {
      "commit": "0b9e783197bcd5e5866e1f23ebcde78f786b38bf",
      "tree": "625f2f48670c2e1720a727d8b3760f568aaaa304",
      "parents": [
        "4f3de352284f0d52716f01e627a9ee49414e9817",
        "f42f15685ee622b1e341c8958f616c17801a1ad0"
      ],
      "author": {
        "name": "Nicolas Roulet",
        "email": "nicoroulet@google.com",
        "time": "Sat Apr 01 20:48:54 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Apr 01 20:48:55 2017 +0000"
      },
      "message": "Merge changes I19384478,I71c4df28,I2e0b48c6,I7fb9b899\n\n* changes:\n  NBLog change timespec to int64_t nanoseconds\n  NBLog: add buffer hex dump\n  Add histogram entries (timestamp and flush)\n  Add unique IDs to log entry\n"
    },
    {
      "commit": "537ad7dab88ee1b489331094a325726a26b8c1b1",
      "tree": "6802a41bd8f10166d42d437b5a4a110e2d17d1fe",
      "parents": [
        "bd0c6b47a93840e166f34308eb7660d81e949666"
      ],
      "author": {
        "name": "Nicolas Roulet",
        "email": "nicoroulet@google.com",
        "time": "Tue Mar 21 16:24:30 2017 -0700"
      },
      "committer": {
        "name": "Nicolas Roulet",
        "email": "nicoroulet@google.com",
        "time": "Fri Mar 31 12:36:33 2017 -0700"
      },
      "message": "Add histogram entries (timestamp and flush)\n\nAdd functions to write these entries into log\n\nAdd functionality to dump them in dumpsys\n\nBug: 36490717\nTest: Write format entries and histogram entries in the log.\n      Verify that format entries and histograms are dumped correctly\n\nChange-Id: I2e0b48c63031e62875c08461b98653ecfe1442be\n"
    },
    {
      "commit": "bd0c6b47a93840e166f34308eb7660d81e949666",
      "tree": "a3656aaed131ed4cef317e58231caeabb2933ca3",
      "parents": [
        "1ca75129a63a1064df311f7c33049d48ac8cdb2d"
      ],
      "author": {
        "name": "Nicolas Roulet",
        "email": "nicoroulet@google.com",
        "time": "Thu Mar 16 13:54:23 2017 -0700"
      },
      "committer": {
        "name": "Nicolas Roulet",
        "email": "nicoroulet@google.com",
        "time": "Fri Mar 31 12:36:00 2017 -0700"
      },
      "message": "Add unique IDs to log entry\n\nBug: 36366838\nTest: add hash entry to logs and display it in dump\nChange-Id: I7fb9b8997e46456331a946e03bfe040c47fa20b8\n"
    },
    {
      "commit": "1bfe09a0b1755a79abd32b41c0dd433b88fc260c",
      "tree": "eec723f657fc89b21f3cfc91b27c68eceac4add7",
      "parents": [
        "a29cd562f6f5839cce7e3be2e547d19c2d27f15d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Feb 21 13:05:56 2017 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 29 11:39:04 2017 -0700"
      },
      "message": "Improve audio logs and dumpsys media.audio_flinger\n\nInclude mFrameCount in shared memory corrupt error log.\n\nFix typo in log for primary audio interface.\n\nInclude the new server frame count in logs for fast tracks.\n\nAlways log when fast is successful for output tracks, as it helpful\n  (was already there for input).\n\nCleanup dumpsys for threads.\n\nTest: builds OK, and logs contain more information\nChange-Id: I2b5b4d700e8eb7c261a3125fb03ddc00bf08537e\n"
    },
    {
      "commit": "293558ad1977e24e65f7ba78f47382d33fc77d64",
      "tree": "125f39f7efcb1c44fde136bdfefeef1bdc8af2a4",
      "parents": [
        "01c10f8cdcd58d1e7025f426a72e6e75ba5d7fc2"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Mar 21 12:19:20 2017 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Mar 24 17:06:30 2017 -0700"
      },
      "message": "AudioFlinger: Improve Thread logging.\n\nTest: dumpsys media.audio_flinger\nBug: 30572472\nChange-Id: I43f72354a6ece045f5f9f664946a406166974258\n"
    },
    {
      "commit": "6fcb1488b835568dd1423ccd5f0b09483b8d9917",
      "tree": "ca9472bc7e1002e75088b621fdf4d61eb194ea0e",
      "parents": [
        "efb7b9b26b966f6440bc8c5126c78c46090bf590",
        "91164e7f94030b3e49a31d88c91d70d4bd358ebe"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 16 23:01:31 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 16 23:01:32 2017 +0000"
      },
      "message": "Merge \"Use static_assert instead of COMPILE_TIME_ASSERT_FUNCTION_SCOPE\""
    },
    {
      "commit": "886deb506ea2938cfec40fc0dd2bff072850386b",
      "tree": "c766adb78101eaee0cf091d14cbd26f3377f14e1",
      "parents": [
        "1e039394f351ef77592689f32294a1c73840ad0e",
        "d3bb645f0b7f567b033b8664499d685f8ec10628"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 13 16:37:07 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 13 16:37:08 2017 +0000"
      },
      "message": "Merge \"Re-format to decrease the maximum line length of files to 100 characters\""
    },
    {
      "commit": "d3bb645f0b7f567b033b8664499d685f8ec10628",
      "tree": "1f1093b9594df4691cc99a2e2c81bc67ea0de136",
      "parents": [
        "0012417ddc1320c6df79258266da1e869036b211"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Dec 05 18:14:37 2016 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 13 16:36:17 2017 +0000"
      },
      "message": "Re-format to decrease the maximum line length of files to 100 characters\n\nTest: compiles OK\nChange-Id: Ibe663032cd390ed2bcca6dc921d47732e6e15e21\n"
    },
    {
      "commit": "1e039394f351ef77592689f32294a1c73840ad0e",
      "tree": "551c0992185c35afed61e1e9dfeecee98756a7a3",
      "parents": [
        "00bf9d385f4dbfd11debd89b9fe7d5547aea5956",
        "6bf707f4c0752643757a7389384817da41d34fab"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 13 16:34:22 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 13 16:34:23 2017 +0000"
      },
      "message": "Merge \"Rename audio_utils/conversion.h to mono_blend.h\""
    },
    {
      "commit": "91164e7f94030b3e49a31d88c91d70d4bd358ebe",
      "tree": "7dd1d0ea1f841ff949f0fb40afef6471d15690ea",
      "parents": [
        "0e4b8e9cb1b422195c49be49b48d039aa0814acf"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 15 15:55:01 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 13 09:01:58 2017 -0700"
      },
      "message": "Use static_assert instead of COMPILE_TIME_ASSERT_FUNCTION_SCOPE\n\nTest: builds OK\nChange-Id: I5923dce96e43d7107f1d8e3145ad4bb5eca261e7\n"
    },
    {
      "commit": "00bf9d385f4dbfd11debd89b9fe7d5547aea5956",
      "tree": "725823dd80a9b4f60b05fb047ae248156a3acc7c",
      "parents": [
        "6b57f954a732129479f3e0604bed7fa40e36f3a2",
        "60fd12ab581e151522cf6d73f86031acf8fb46e7"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 13 15:57:12 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 13 15:57:13 2017 +0000"
      },
      "message": "Merge \"FastMixerState was missing a LOG_TAG\""
    },
    {
      "commit": "6bf707f4c0752643757a7389384817da41d34fab",
      "tree": "4b5fc278ee8a74ae100b2aadea46a6f9b4c2da1b",
      "parents": [
        "0012417ddc1320c6df79258266da1e869036b211"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Feb 23 16:53:58 2017 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 10 15:34:17 2017 -0800"
      },
      "message": "Rename audio_utils/conversion.h to mono_blend.h\n\nThere is only one function declared in that header file, and it is\nmono_blend, so a more specific filename may be easier to understand.\n\nTest: compiles OK\nChange-Id: Ie2aec6c706b1822581b34d3702818b8200a1db8a\n"
    },
    {
      "commit": "8649ed0e5096ae2f47e8015ac43dd9e874976245",
      "tree": "450fd7703b92e65b7aa73370de29af684bd7c825",
      "parents": [
        "6bf6de375299db41d5510dca3321ebe42ceeb007",
        "cd0677fdfde5d4962c432b698faba222878e219c"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Mar 10 23:11:02 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Mar 10 23:11:02 2017 +0000"
      },
      "message": "Merge \"AudioFlinger: Check framecount overflow when creating track\" into lmp-dev am: 51a3483ec9 am: 5dc0e88cc1 am: 6d4b5fc334 am: 5562d70451 am: 3fb4149ed2 am: 78ec332732 am: 9262496af9 am: 12b5b3b008 am: dfecfdb28f am: 3c93457cfc am: a447516329\nam: cd0677fdfd\n\nChange-Id: Ie1e192c8b0013797c9e08194b6d4bf75ae536538\n"
    },
    {
      "commit": "3c93457cfce2c82ee17b226c46942d133ed24b61",
      "tree": "ab4b48798998243c5f00b5dc3a7eda2bce5a6411",
      "parents": [
        "5b8300076839ec3628db9fe44f1eca6e7d3e2acf",
        "dfecfdb28fbc99b87588a9db0dd5dde9d621ea30"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Mar 10 23:00:31 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Mar 10 23:00:31 2017 +0000"
      },
      "message": "Merge \"AudioFlinger: Check framecount overflow when creating track\" into lmp-dev am: 51a3483ec9 am: 5dc0e88cc1 am: 6d4b5fc334 am: 5562d70451 am: 3fb4149ed2 am: 78ec332732 am: 9262496af9 am: 12b5b3b008\nam: dfecfdb28f\n\nChange-Id: I0b4de04aab9058db4beb6346c00208b697ed4f78\n"
    },
    {
      "commit": "dfecfdb28fbc99b87588a9db0dd5dde9d621ea30",
      "tree": "5a265de943f39ce2f164ea95a9800610aab3d26e",
      "parents": [
        "028e36fe3261f07544af356ac61286fe9d9213ce",
        "12b5b3b00803eac0ab5b6c7ff09b8aad3d78c2e1"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Mar 10 22:56:31 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Mar 10 22:56:31 2017 +0000"
      },
      "message": "Merge \"AudioFlinger: Check framecount overflow when creating track\" into lmp-dev am: 51a3483ec9 am: 5dc0e88cc1 am: 6d4b5fc334 am: 5562d70451 am: 3fb4149ed2 am: 78ec332732 am: 9262496af9\nam: 12b5b3b008\n\nChange-Id: I9a46a6aaa2ff3afc4be729f7877703d1bf97faa7\n"
    },
    {
      "commit": "12b5b3b00803eac0ab5b6c7ff09b8aad3d78c2e1",
      "tree": "163be6a31a0ee086d52b40564d5576c523665208",
      "parents": [
        "437d60bffb4217f997298a281d08c0d8fce7f562",
        "9262496af91c790d865e31a1f550410f088ba642"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Mar 10 22:53:00 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Mar 10 22:53:00 2017 +0000"
      },
      "message": "Merge \"AudioFlinger: Check framecount overflow when creating track\" into lmp-dev am: 51a3483ec9 am: 5dc0e88cc1 am: 6d4b5fc334 am: 5562d70451 am: 3fb4149ed2 am: 78ec332732\nam: 9262496af9\n\nChange-Id: I8df7a4c1308afb39a1f1a37a588e70e049a868fa\n"
    },
    {
      "commit": "9262496af91c790d865e31a1f550410f088ba642",
      "tree": "151e606862444fadf76559966f9d330ca080bd06",
      "parents": [
        "3b57c387ed039efd227e069c8f46aed2a15abf27",
        "78ec332732fa4e1669eb1a791da31103eb379f5e"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Mar 10 22:49:30 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Mar 10 22:49:30 2017 +0000"
      },
      "message": "Merge \"AudioFlinger: Check framecount overflow when creating track\" into lmp-dev am: 51a3483ec9 am: 5dc0e88cc1 am: 6d4b5fc334 am: 5562d70451 am: 3fb4149ed2\nam: 78ec332732\n\nChange-Id: I50a7b9f86a494bff6aa43e719e5c819eb0c191ae\n"
    },
    {
      "commit": "3fb4149ed2983be6f0f9a32fff2646f37eca6759",
      "tree": "daab4eee4244294df72d4605c605fc740a811bd8",
      "parents": [
        "1dfa5905430f351843272dd53740d9deca957c7b",
        "5562d704519b5662d2165d688c50f85ff3d7aedd"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Mar 10 22:42:59 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Mar 10 22:42:59 2017 +0000"
      },
      "message": "Merge \"AudioFlinger: Check framecount overflow when creating track\" into lmp-dev am: 51a3483ec9 am: 5dc0e88cc1 am: 6d4b5fc334\nam: 5562d70451\n\nChange-Id: Ia73c4a1d2911cf930700bf796fc7ee18d94500fe\n"
    },
    {
      "commit": "5562d704519b5662d2165d688c50f85ff3d7aedd",
      "tree": "41c43929eef9526fecbd100c893b1655165512c7",
      "parents": [
        "292dc7e025e983b4dfdf50961601c713ee9a2ec1",
        "6d4b5fc3344cff6f0c1feed36e558144b2c7355c"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Mar 10 22:39:59 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Mar 10 22:39:59 2017 +0000"
      },
      "message": "Merge \"AudioFlinger: Check framecount overflow when creating track\" into lmp-dev am: 51a3483ec9 am: 5dc0e88cc1\nam: 6d4b5fc334\n\nChange-Id: Ie47307f09c5fcb49f81a2d034c42d69b8417c9a6\n"
    },
    {
      "commit": "5dc0e88cc14128d54bae2297c0ee1bac2042b6a1",
      "tree": "5a146d2eab3e3afc789d151ea6e5f6d80e7bd4fe",
      "parents": [
        "1760d73fbc270e64b3804fedacaf73029140d612",
        "51a3483ec97434c29113ef3c6a04480e0cdafaf7"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Mar 10 22:32:59 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Mar 10 22:32:59 2017 +0000"
      },
      "message": "Merge \"AudioFlinger: Check framecount overflow when creating track\" into lmp-dev\nam: 51a3483ec9\n\nChange-Id: I6fe5fb0a7142218b16c84bc1966a84ac920fd70a\n"
    },
    {
      "commit": "60fd12ab581e151522cf6d73f86031acf8fb46e7",
      "tree": "75498b8a13effabaf172bb62acf657334568765b",
      "parents": [
        "0012417ddc1320c6df79258266da1e869036b211"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Feb 21 13:06:16 2017 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 10 14:31:14 2017 -0800"
      },
      "message": "FastMixerState was missing a LOG_TAG\n\nTest: logs in FastMixerState module have the correct tag\nChange-Id: Id38826754e35803a72376a9198d2839fe195b0b2\n"
    },
    {
      "commit": "89e5a2b102b484fe19dbda2a0b118edfefc70241",
      "tree": "7d569d72d3a2e16c77a10e08de04746fab6ad52e",
      "parents": [
        "ca47e6d574cd3d02821b87657a80d84b328d4f26",
        "dcdfaecc1fa630a799e1fdb508a9b92da55abc36"
      ],
      "author": {
        "name": "Nicolas Roulet",
        "email": "nicoroulet@google.com",
        "time": "Thu Mar 09 22:55:06 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 09 22:55:06 2017 +0000"
      },
      "message": "Merge \"NBLog periodic merging thread\""
    },
    {
      "commit": "dcdfaecc1fa630a799e1fdb508a9b92da55abc36",
      "tree": "407138ab3b7cef085ca4f283ea24378910ce775e",
      "parents": [
        "cca34c05ca2d5e7ac6c2fbee3ac2db88f059143d"
      ],
      "author": {
        "name": "Nicolas Roulet",
        "email": "nicoroulet@google.com",
        "time": "Tue Feb 14 10:18:39 2017 -0800"
      },
      "committer": {
        "name": "Nicolas Roulet",
        "email": "nicoroulet@google.com",
        "time": "Thu Mar 09 12:30:24 2017 -0800"
      },
      "message": "NBLog periodic merging thread\n\nBug: 35468674\nTest: no change in functionality, everything works as before\nChange-Id: Id2cea243bc15767ca6803c9505bf23a18411500e\n"
    },
    {
      "commit": "22fd9de35b387f1ed808f4fe6e0b87eac3e82690",
      "tree": "693af83a6fce5b6bcab600a3b9c3c279c9a7d16f",
      "parents": [
        "f687b91129586fd1212bcb041d3f9aeb84635eb5",
        "18b570146c971fe729c391bfbb869391084e623d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 08 16:42:33 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 08 16:42:34 2017 +0000"
      },
      "message": "Merge \"audioflinger: add standby() method to MmapStreamInterface\""
    },
    {
      "commit": "18b570146c971fe729c391bfbb869391084e623d",
      "tree": "44427ed969851fc0e8638b508e265d6d039556b9",
      "parents": [
        "421c434e615a417d9f5443af9e52a30e3b29c256"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Feb 13 16:23:52 2017 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 08 00:33:34 2017 +0000"
      },
      "message": "audioflinger: add standby() method to MmapStreamInterface\n\nBug: 33398120\nTest: open/start/stop/close MMAP no IRQ stream for capture and playback\n\nChange-Id: I48ec202a71565f759c441c2a835d8c8190e76334\n"
    },
    {
      "commit": "05d19b08f3affa6fa8407e779f67e7ad1c1ca84f",
      "tree": "d2c99a03302a60a9ab3db1a9f5cc90640686009a",
      "parents": [
        "4ec4e6b1073b0dc1b608aeeaf4e3129ea1a725c8"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Feb 28 16:28:19 2017 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Mar 03 12:37:45 2017 -0800"
      },
      "message": "fallout of cleaning-up libutils includes\n\nTest: run \u0026 compile\nBug: n/a\nChange-Id: I63585ed5a764b9ce7af2187b79ca0c83e683fd7f"
    },
    {
      "commit": "6141fe19f1e16330dab3632cf8b93e54b6417164",
      "tree": "7618a13b4abf2f39be0e6a1da79034a948e76e87",
      "parents": [
        "d48b3a7a3bd95d9efb157ebbfc0f11dc8d7a87fb",
        "869fab171971f350d5adf4680608ff39049270c3"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Feb 28 16:46:34 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 28 16:46:35 2017 +0000"
      },
      "message": "Merge \"AudioFlinger: fix Effects handling for MMapThread\""
    },
    {
      "commit": "869fab171971f350d5adf4680608ff39049270c3",
      "tree": "39f4990725b81c5d837db554c3e55d260108d453",
      "parents": [
        "a45c300fcad38e23107b3ad8dd1d3935f5127f9c"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Feb 27 18:44:19 2017 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Feb 27 18:44:19 2017 -0800"
      },
      "message": "AudioFlinger: fix Effects handling for MMapThread\n\nTest: CTS test_aaudio.cpp in Exclusive mode\nChange-Id: Iac63d901822255028b16c5b90ca07a72ceec372a\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "10cbff139360f3f642e0e3b3ccf2d463dbed22cf",
      "tree": "85bef4f57dd8ff375059a1682c64941da884d0d5",
      "parents": [
        "1e50d1daa696e159d1ed0606de373c1cccef2c84"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Feb 21 17:30:14 2017 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Feb 24 18:56:55 2017 -0800"
      },
      "message": "VolumeShaper: Enable for offload and direct tracks\n\nTest: Play Music in offload mode\nBug: 31015569\nChange-Id: I00bb59e3e6809d4682f42057b1cc083f4fa9b9d1\n"
    },
    {
      "commit": "7ac1f99edbb6857d5ce07fd08784cd4db077207e",
      "tree": "12f7689373c8b35de026da64093913a2142581cd",
      "parents": [
        "fa4baa3422c095e7c640c5725b5f6bba8b467cca",
        "a2e67eb95e8dafeffb75c4e65f2648dedaa50a7d"
      ],
      "author": {
        "name": "Yunlian Jiang",
        "email": "yunlian@google.com",
        "time": "Wed Feb 22 02:26:53 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Feb 22 02:26:53 2017 +0000"
      },
      "message": "Merge \"fix warning: Dereference of null pointer\"\nam: a2e67eb95e\n\nChange-Id: I37a6738f637cfa1a5fa0ccdf0ed7f3aa2986b207\n"
    },
    {
      "commit": "a2e67eb95e8dafeffb75c4e65f2648dedaa50a7d",
      "tree": "014c8d6df539447c5e0792984c2af91dc494943d",
      "parents": [
        "4ad8990c1466fe3a43c9726e96416032be28c709",
        "c9d24d07ec243a183993595a6902c0687a937ddc"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 22 02:21:11 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 22 02:21:12 2017 +0000"
      },
      "message": "Merge \"fix warning: Dereference of null pointer\""
    },
    {
      "commit": "d5973043bed640cf634a26d65dedcde5d5ab3037",
      "tree": "338921b361392c03b1c7e34fb4ed3ae80672c175",
      "parents": [
        "8dc323ef737babc1b1c0b0347b4b895969aee77b",
        "4da7820be451847bad698ac0f687b964d9b5d34f"
      ],
      "author": {
        "name": "Nicolas Roulet",
        "email": "nicoroulet@google.com",
        "time": "Fri Feb 17 19:46:18 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 17 19:46:19 2017 +0000"
      },
      "message": "Merge \"Minor code style changes and namespace fix\""
    },
    {
      "commit": "8dc323ef737babc1b1c0b0347b4b895969aee77b",
      "tree": "4afdfab9a14f359bf13e87d9f120fb0363032049",
      "parents": [
        "ca8126c04c91b6b5030be2e2c8cff786c160faac",
        "c20cb50c1c14cd765874511872f087c875f43ed9"
      ],
      "author": {
        "name": "Nicolas Roulet",
        "email": "nicoroulet@google.com",
        "time": "Fri Feb 17 19:41:23 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 17 19:41:24 2017 +0000"
      },
      "message": "Merge \"Added process name to PID log\""
    },
    {
      "commit": "4da7820be451847bad698ac0f687b964d9b5d34f",
      "tree": "5f0f110685f4f4d4c908834a589748addbf39bbd",
      "parents": [
        "c20cb50c1c14cd765874511872f087c875f43ed9"
      ],
      "author": {
        "name": "Nicolas Roulet",
        "email": "nicoroulet@google.com",
        "time": "Fri Feb 03 12:53:39 2017 -0800"
      },
      "committer": {
        "name": "Nicolas Roulet",
        "email": "nicoroulet@google.com",
        "time": "Thu Feb 16 14:22:28 2017 -0800"
      },
      "message": "Minor code style changes and namespace fix\n\nBug: 35329090\nTest: recompile, no change of functionality\nChange-Id: Ied3ec7d95ce29896e8bf1851b08345da74bf8299\n"
    },
    {
      "commit": "c20cb50c1c14cd765874511872f087c875f43ed9",
      "tree": "4da5367ebd84ebeac6dd927d535a5b1dd84c79e4",
      "parents": [
        "2f77a2229be73b222098c45aed73728842667e12"
      ],
      "author": {
        "name": "Nicolas Roulet",
        "email": "nicoroulet@google.com",
        "time": "Wed Feb 01 12:35:24 2017 -0800"
      },
      "committer": {
        "name": "Nicolas Roulet",
        "email": "nicoroulet@google.com",
        "time": "Thu Feb 16 14:22:16 2017 -0800"
      },
      "message": "Added process name to PID log\n\nBug: 35357686\nTest: included in CL\nChange-Id: Ie4d3cb66a2c766ce87ebabcc9c0d3aa988702e09\n"
    },
    {
      "commit": "9ee35d72c4b89db99c2df0b0125373f360b337f8",
      "tree": "413fd927c46dc9a96d8cd73bb9d0dcaa658b4663",
      "parents": [
        "2f77a2229be73b222098c45aed73728842667e12",
        "fda69406966f8578a7827e889bff615f0144b441"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 16 01:40:05 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 16 01:40:06 2017 +0000"
      },
      "message": "Merge \"AudioFlinger: Prevent FastMixer for A2DP sink\""
    },
    {
      "commit": "fda69406966f8578a7827e889bff615f0144b441",
      "tree": "fd68918b0b249545de38ab704a15bbe625318720",
      "parents": [
        "36b31c87807a4f8cd22e73da9bf2df7babdb906e"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Feb 15 14:33:12 2017 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Feb 15 15:53:12 2017 -0800"
      },
      "message": "AudioFlinger: Prevent FastMixer for A2DP sink\n\nAlso avoids issues with FastMixer and BT suspend.\n\nTest: BT with Play Movies\nBug: 34335167\nBug: 35166960\nBug: 35384619\nChange-Id: Ie1bfaf2d09b7cfe6b86a1d26fc1d5fdabf82c020\n"
    },
    {
      "commit": "45e4bf1cb9b202a7f25f8dc890e32e12fb60d982",
      "tree": "6457a737936c1e5a56dc21377d048ecd65f3b887",
      "parents": [
        "3db4f4f85cfe90013952590b1aaea97dc62a243d",
        "f228531c5d01f497f5802c44545e0000ec44ab83"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 15 22:24:37 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 15 22:24:38 2017 +0000"
      },
      "message": "Merge \"AudioFlinger: Do not wait for FastMixer if in cold idle.\""
    },
    {
      "commit": "f228531c5d01f497f5802c44545e0000ec44ab83",
      "tree": "097e67199b3cf43ed1a07448c9f41df9da123d81",
      "parents": [
        "36b31c87807a4f8cd22e73da9bf2df7babdb906e"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Feb 14 18:31:59 2017 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Feb 15 09:55:04 2017 -0800"
      },
      "message": "AudioFlinger: Do not wait for FastMixer if in cold idle.\n\nTest: BT outgoing call\nBug: 34335167\nBug: 35166960\nChange-Id: I1da0de844560bf77b4149dc30979eebc131d009e\n"
    },
    {
      "commit": "09cf7cab168663ca98a440a9473b1515e0eb0cfa",
      "tree": "88047fb13a5f38720af752a7b5b089594f3a2e7f",
      "parents": [
        "30ba02eab9e5075df2a5ee78f7cf298697dbf39f",
        "afb31487f3156a7284d2f0d06646c7bc00d99537"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Feb 15 04:27:04 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 15 04:27:04 2017 +0000"
      },
      "message": "Merge \"AudioFlinger: Fix memory allocation for client-less tracks\""
    },
    {
      "commit": "eaa3969f757291f151efedde17ec529b8659024d",
      "tree": "da8f3a44d66a2c8f16114aab652a58079487cce9",
      "parents": [
        "e5a54485e08400a976092cd5b1c6d909d0e1a4ab"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Feb 13 18:48:39 2017 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Feb 15 00:38:02 2017 +0000"
      },
      "message": "AudioFlinger: Check framecount overflow when creating track\n\nTest: Native POC\nBug: 34749571\nChange-Id: I7529658e52ac7e64d162eb5338f10fb25eaa8fe7\n(cherry picked from commit 1883f69de5f2c4e71df58d5b71d7c39f9779b50c)\n"
    },
    {
      "commit": "afb31487f3156a7284d2f0d06646c7bc00d99537",
      "tree": "78c18043878f0872011be59ec51c4df60ce99a33",
      "parents": [
        "23db2486baec1b7fcd9a8a0bd9c6df0adf1c7f32"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Feb 13 18:50:48 2017 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Feb 14 21:57:13 2017 +0000"
      },
      "message": "AudioFlinger: Fix memory allocation for client-less tracks\n\nTest: Ringtone with BT\nBug: 35350587\nChange-Id: If247d319d58f8f4d18b49f58ec950491871ebb2d\n"
    },
    {
      "commit": "1883f69de5f2c4e71df58d5b71d7c39f9779b50c",
      "tree": "e0dcf14a5f7f71de058b759d36e5cbab7ba7358a",
      "parents": [
        "36b31c87807a4f8cd22e73da9bf2df7babdb906e"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Feb 13 18:48:39 2017 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Feb 14 13:47:51 2017 -0800"
      },
      "message": "AudioFlinger: Check framecount overflow when creating track\n\nTest: Native POC\nBug: 34749571\nChange-Id: I7529658e52ac7e64d162eb5338f10fb25eaa8fe7\n"
    },
    {
      "commit": "30d48d9542fb3f85889108c1ee2daff98a4860e7",
      "tree": "b85955dd0493f049b91a5b4ab32527f39a4ba6e2",
      "parents": [
        "b129be34d1b08440d2867702b22e81c037be899a",
        "9fc8b5cd4a64ef07e84c69112461324d5c13a0b0"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Feb 14 01:38:56 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 14 01:38:57 2017 +0000"
      },
      "message": "Merge \"VolumeShaper: Initial implementation\""
    },
    {
      "commit": "9fc8b5cd4a64ef07e84c69112461324d5c13a0b0",
      "tree": "2d058e73f09f1822108daad51948a34c420634e3",
      "parents": [
        "ed1abbfc73d4ade0ef08239fc56ac66d70a00a92"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jan 24 13:36:48 2017 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Feb 13 14:31:46 2017 -0800"
      },
      "message": "VolumeShaper: Initial implementation\n\nThe VolumeShaper is used to apply a volume\nenvelope to an AudioTrack or a MediaPlayer.\n\nTest: CTS\nBug: 30920125\nBug: 31015569\nChange-Id: I42e2f13bd6879299dc780e60d143c2d465483a44\n"
    },
    {
      "commit": "f5f4056014118f6ddd16affe853fd0605001ab40",
      "tree": "3b556420f26402317914702ed0cc86e1564428f4",
      "parents": [
        "2d6140b8dce137f89029b12468e25d5911f23420",
        "555530ab903504ad3586bc24cd8a4f200f5c39ae"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Feb 13 19:30:47 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 13 19:30:48 2017 +0000"
      },
      "message": "Merge \"audio: several concurrent capture fixes\""
    },
    {
      "commit": "7863c791dba8c4e5e9591b6837d410e580be0a25",
      "tree": "5199273fa3bac5303b0aa8dcdfd984f49f75e30f",
      "parents": [
        "94a20830fc0768efc138ab7f746f80e8b3d60c15",
        "6acd1d432f526ae9a055ddaece28bf93b474a776"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Feb 10 20:24:21 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 10 20:24:22 2017 +0000"
      },
      "message": "Merge changes from topic \u0027mmap_no_irq\u0027\n\n* changes:\n  Add support for mmap stream\n  audioflinger: define MMAP HAL Stream control interface\n"
    },
    {
      "commit": "555530ab903504ad3586bc24cd8a4f200f5c39ae",
      "tree": "1c7904daf0e13a86bb225d2e52f791ef84ec85a5",
      "parents": [
        "c96fc852f010f9254a38a0073a4de7a848e33e44"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Feb 07 18:17:24 2017 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Feb 09 21:09:55 2017 -0800"
      },
      "message": "audio: several concurrent capture fixes\n\nMake sure AudioRecord clients are invalidated synchronously\nwhen closing an input stream instead of when the capture thread\nexits.\n\nFix AudioPolicyManager::getInputForDevice() logic to make sure that\nnot only the first opened input encountered is considered when looking\nfor a compatible input to reuse for concurrent capture.\n\nBug: 22702906\nTest: run CTS test\nChange-Id: I7f69609d4ee70a37ab06753ff970b12df17d885b\n"
    },
    {
      "commit": "83f042776b131b149f803fff6ab184ae2c4d98cd",
      "tree": "d3c78a3313c94799261a927c84cddc7c0ebdd398",
      "parents": [
        "ba05ff122c080be9fafe1f8112052cacfcd2b6fe"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Feb 07 10:45:09 2017 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Feb 09 15:51:36 2017 -0800"
      },
      "message": "audioflinger: Adjust priority of hal threads\n\nHALs are prohibited from using framework binder, and there is\nno equivalent scheduling policy service in hwbinder. Thus, in order\nto match priorities of FastCapture / Mixer threads with their\ncounterparts in the HAL, it is needed to request the priority boost\nfrom audioflinger on behalf of the HAL.\n\nTest done to verify the priority was correctly set.\n\nBug: 34131400\nChange-Id: If8b6b031c0fcba771fae901a5b8e7da89b3a1570\nTest: check priority match between audioflinger\u0027s and hal\u0027s threads\n"
    },
    {
      "commit": "8eacd8090e16c022dcbb11850cff83f984fe2357",
      "tree": "8efbb8305163d4956d8e096e769801a11e6ba2b8",
      "parents": [
        "c17c28aac0fa31be3fc4068da5e2f95731e7c361",
        "fe1e1449cadff4f946c33403aecc73b4b4a11e56"
      ],
      "author": {
        "name": "Nicolas Roulet",
        "email": "nicoroulet@google.com",
        "time": "Fri Feb 03 17:35:28 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 03 17:35:29 2017 +0000"
      },
      "message": "Merge \"Implemented typed, thread-specific logging system. Currently supported types are:  * Strings  * Integers  * Floats  * Timestamps  * Process IDs\""
    },
    {
      "commit": "fe1e1449cadff4f946c33403aecc73b4b4a11e56",
      "tree": "500bb66d15abbbd9b48dce430480cc35d4e6245b",
      "parents": [
        "5a3b54df3014ece49eb1f339e5598c01c6126251"
      ],
      "author": {
        "name": "Nicolas Roulet",
        "email": "nicoroulet@google.com",
        "time": "Mon Jan 30 12:02:03 2017 -0800"
      },
      "committer": {
        "name": "Nicolas Roulet",
        "email": "nicoroulet@google.com",
        "time": "Thu Feb 02 16:45:04 2017 -0800"
      },
      "message": "Implemented typed, thread-specific logging system. Currently supported types are:\n * Strings\n * Integers\n * Floats\n * Timestamps\n * Process IDs\n\nAdded printf-like formatted logging using mentioned types.\n\nTest: included in this CL\nBug: 29421410\nChange-Id: Ie07b78d8d39c32fcc8a122ffa9b1b7082800b990\n"
    },
    {
      "commit": "32ba98626834cb77e5d14b3e419385f0e32ec0bc",
      "tree": "45f64b266d374bf82354dd2c60873e930988c329",
      "parents": [
        "a1ee4c28facd2e4ae0eb288178c8988bf1806148"
      ],
      "author": {
        "name": "Yunlian Jiang",
        "email": "yunlian@google.com",
        "time": "Tue Jan 31 15:55:00 2017 -0800"
      },
      "committer": {
        "name": "Yunlian Jiang",
        "email": "yunlian@google.com",
        "time": "Wed Feb 01 00:44:06 2017 +0000"
      },
      "message": "Fix warning: Dereference of null pointer.\n\nBug: None\nTest: The warning is gone.\nChange-Id: I4c08397c0ee18c7714eb9b1029844d427259907b\n"
    },
    {
      "commit": "8345f77901ff4715a450c025807eac05aefda761",
      "tree": "dc43bae534d33505451b054f8c87b6ee2ef102a5",
      "parents": [
        "7364259af42a8348efe0ef5ab8b3a160dce303a3",
        "1da5859d05267b336325f2662a72c1456f61e430"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jan 31 05:08:19 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jan 31 05:08:19 2017 +0000"
      },
      "message": "DO NOT MERGE Revert \"Log audio information to ensure complete delivery\"\nam: 1da5859d05\n\nChange-Id: Ie5b427db9af0fdb8427e0985450328f3a2977013\n"
    },
    {
      "commit": "1da5859d05267b336325f2662a72c1456f61e430",
      "tree": "46d0941487442650d0e5ce45056a7ab6abd16c9f",
      "parents": [
        "97b02cc554dfb677bea4bb6bd77e5670ee88ea40"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jan 30 17:44:03 2017 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jan 30 17:44:03 2017 -0800"
      },
      "message": "DO NOT MERGE Revert \"Log audio information to ensure complete delivery\"\n\nThis reverts commit 1f82f9569d257adc1d6d1c9a58e542c3c99c0109.\n"
    },
    {
      "commit": "c778e59330a01a9aee6ad354c1e53462df4c88af",
      "tree": "1a1e994236e73f2088f84b710c0d5a189f56f177",
      "parents": [
        "c0461f5b18eb6d5516804810f315e6c23879a09d"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Jan 25 10:35:30 2017 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Jan 25 10:35:30 2017 -0800"
      },
      "message": "audioflinger: Fix crash in EffectChain::dump\n\nCheck for null buffer in dumpInOutBuffer\n\nBug: 34691158\nChange-Id: I5d11fcb1ce0170da7a742fdbe42a7eaeba4370fe\nTest: try bug repro steps\n"
    },
    {
      "commit": "0688880d2862e6cddfea1fceca24e8a081a6be60",
      "tree": "0ddffd4d8d70f0fad63e6c1738fdd55d86b3db08",
      "parents": [
        "dffb51f4e35fe93215b025bdf4216f3b411c734b"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Jan 19 12:47:55 2017 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Jan 19 14:06:37 2017 -0800"
      },
      "message": "audioflinger and hal: Compatibility fixes for Treble\n\n 1. Treat both reply size being 0 and reply buffer being NULL\n    as an indication that the reply isn\u0027t needed.\n\n 2. Synchronize both input and output effect chain buffers,\n    and avoid excessive copies when the input buffer is the same as\n    the output buffer.\n\n 3. Improve effect chain debug dump by showing both\n    \"external\" and \"allocated\" pointers for effect audio data buffers.\n\nBug: 34368451\nChange-Id: I56aba6908408b5fce3f15c8d29138555101e8720\nTest: volume controls works when both Bass Boost and EQ effects enabled\n"
    }
  ],
  "next": "7da83aadf4e765c38bc6cad04ce086dad20ef54a"
}
