)]}'
{
  "log": [
    {
      "commit": "a9565fba8b0bd53e72bb0784764a06844d9ce7b7",
      "tree": "f7fa8385ca921f5546bbb1c24a20aae9095ca786",
      "parents": [
        "a67eacace769095eb04b01681c99d931e68a4b08",
        "62948f53a2c71ee6da13016b940824984af63a69"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 10 20:22:05 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jul 10 20:22:05 2017 +0000"
      },
      "message": "Merge \"audio effects: filter reserved effect commands\" into klp-dev am: f57dc8b72f am: dc2efe3808 am: 4324bdc8f7 am: acbb8e7dd1 am: c6358fa910\nam: 62948f53a2\n\nChange-Id: Ia99ed9e04cf2d90ee3f201efd9f238fb06e3be88\n"
    },
    {
      "commit": "c6358fa9106246bb32709aea63f1b30d83543b17",
      "tree": "a54a434b6cf69ccdc54ef7a417c533bf58b4934a",
      "parents": [
        "81c98dbb7e46fa1f20cab472bebd26ff68775325",
        "acbb8e7dd14793991a3e231f086fadc76e903216"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 10 20:13:34 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jul 10 20:13:34 2017 +0000"
      },
      "message": "Merge \"audio effects: filter reserved effect commands\" into klp-dev am: f57dc8b72f am: dc2efe3808 am: 4324bdc8f7\nam: acbb8e7dd1\n\nChange-Id: Ie2cd641decc7e654f021df75fd4f600f7255eea2\n"
    },
    {
      "commit": "acbb8e7dd14793991a3e231f086fadc76e903216",
      "tree": "22cf4629c6137993b8742bfea7df875ac3dbbc27",
      "parents": [
        "abbc9ab00608f0502fbe30384c0b1b612dd59114",
        "4324bdc8f7a995bf05be8c6db8e9b1528b46c197"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 10 20:09:02 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jul 10 20:09:02 2017 +0000"
      },
      "message": "Merge \"audio effects: filter reserved effect commands\" into klp-dev am: f57dc8b72f am: dc2efe3808\nam: 4324bdc8f7\n\nChange-Id: I161bc14d3059af24463cfa4f473305b516a3bcd8\n"
    },
    {
      "commit": "4324bdc8f7a995bf05be8c6db8e9b1528b46c197",
      "tree": "3c6c2b4cf5c7c276029ea9e5757182860e634c7f",
      "parents": [
        "6235afe24e4f6cf5eba433789ca8944225ddf6b0",
        "dc2efe380852beb88e71e360211e5ca4579eb2f6"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 10 20:04:31 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jul 10 20:04:31 2017 +0000"
      },
      "message": "Merge \"audio effects: filter reserved effect commands\" into klp-dev am: f57dc8b72f\nam: dc2efe3808\n\nChange-Id: I7a613ea97315971ce0abfc34ce5f1fc4034d5ad8\n"
    },
    {
      "commit": "f57dc8b72fc16d170b17d55608f07648855257f3",
      "tree": "737cf4e43879c7e3e577e3474cb62bafd3d24f27",
      "parents": [
        "cf39f0e67ab16d96b9b862641194e226d35afb79",
        "0882414c30cbe31dfe69fa261e3286fa04c553ba"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jul 10 19:52:17 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 10 19:52:17 2017 +0000"
      },
      "message": "Merge \"audio effects: filter reserved effect commands\" into klp-dev"
    },
    {
      "commit": "6235afe24e4f6cf5eba433789ca8944225ddf6b0",
      "tree": "614e0d25845f60f855ec1888adcd5b1e37591167",
      "parents": [
        "24ef54ecb8e825f51b2750dbb8b2ea2139cebd8c",
        "6790e790ef9d5f2b49d6f86188e104f6fe500023"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jun 19 16:56:43 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jun 19 16:56:43 2017 +0000"
      },
      "message": "Track: Check buffer size of static tracks am: cf39f0e67a\nam: 6790e790ef\n\nChange-Id: I2cb0ce9e086e15b037f6de6086072d107fbaf571\n"
    },
    {
      "commit": "483cf88382bd6c8b9523d9d57eafd693cd06aaec",
      "tree": "31319a05d978ede365da4746f9e3881a8d45ecd5",
      "parents": [
        "6ce4126a09190954a69dfc97f1f340fe9e139431",
        "42f2fab126561094ec38aac25b9db200dcfb28b6"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jun 19 16:56:42 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jun 19 16:56:42 2017 +0000"
      },
      "message": "Merge \"Track: Check buffer size of static tracks\" into lmp-dev am: 782a30d2ab am: a3416fc6b4\nam: 42f2fab126\n\nChange-Id: Ifb95a65ef32c643b94554c3904b84678d5459625\n"
    },
    {
      "commit": "a3416fc6b4fc40e65f36dc83038a40a2d778ddfa",
      "tree": "dc0563876c8a5581516d643bd48acf806611e196",
      "parents": [
        "2ace148c06da2e79234cab43db9a6d3dc9220b7c",
        "782a30d2abbf20bf617c19983829fe78cdc235f1"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jun 19 16:45:42 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jun 19 16:45:42 2017 +0000"
      },
      "message": "Merge \"Track: Check buffer size of static tracks\" into lmp-dev\nam: 782a30d2ab\n\nChange-Id: Ie27330ced83beccaed5a5a3d69ec6833be7e36e1\n"
    },
    {
      "commit": "782a30d2abbf20bf617c19983829fe78cdc235f1",
      "tree": "824f3768fd99df018be0164572a7ed7aa82b56f8",
      "parents": [
        "d971d188737cb179dba19a27e513e07c78252bf5",
        "f4aeab2bd69bead05ed75ae3254f53a6ab2316b5"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jun 19 16:35:00 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 19 16:35:01 2017 +0000"
      },
      "message": "Merge \"Track: Check buffer size of static tracks\" into lmp-dev"
    },
    {
      "commit": "0882414c30cbe31dfe69fa261e3286fa04c553ba",
      "tree": "5559abaf90754b43d118e1962d9569fa5cb9638d",
      "parents": [
        "1159ffd5e3f832206982d45a7b030b943cc4775e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jun 15 18:43:46 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Jun 17 21:47:52 2017 +0000"
      },
      "message": "audio effects: filter reserved effect commands\n\nBlock effect commands reserved for framework use when\nreceived on server side IAudioEffect. Applications have no reason\nto use these commands and they present a unnecessary attack surface.\n\nBug: 62019992\nTest: run CTS tests for audio effects\nChange-Id: Ie680d5d5650f99dbabf93891703e1cde2c2e852d\n"
    },
    {
      "commit": "103b751e5511c2cf4b250455e07ec1e1fc4befe2",
      "tree": "1f3ed539aba84c2a89d3279ceb2fd4904856530b",
      "parents": [
        "7c86ed20b2de9eb0334ffe2d7b4502c9bb719790",
        "d06e47540d0817bab04a017e8242a25c17cebd76"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Jun 17 00:02:09 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Jun 17 00:02:09 2017 +0000"
      },
      "message": "AudioFlinger: Fix memory allocation for client-less tracks am: 1159ffd5e3 am: f242b890c4 am: 24ef54ecb8 am: a35816475b am: 1ce123cf91\nam: d06e47540d\n\nChange-Id: I22405b81c7351961f8aca57289a15cc99e67525a\n"
    },
    {
      "commit": "1ce123cf912a00547830fc742b927cf72007ff86",
      "tree": "fa752d996ffc18dbc8b27548dc8a980248c28b31",
      "parents": [
        "b91cfc3589922da3d038a01fe628353ce589f253",
        "a35816475b907f3cead491f1c39ea72967f49fe5"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jun 16 23:58:10 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jun 16 23:58:10 2017 +0000"
      },
      "message": "AudioFlinger: Fix memory allocation for client-less tracks am: 1159ffd5e3 am: f242b890c4 am: 24ef54ecb8\nam: a35816475b\n\nChange-Id: I77aa056b71679b0d0d6703a59f46c788e77d5351\n"
    },
    {
      "commit": "a35816475b907f3cead491f1c39ea72967f49fe5",
      "tree": "4b1bfcaa3885a8d64b625e44313021237bde2601",
      "parents": [
        "8818bf1fbb9ea6b65cd61543ed7db986c3d65d13",
        "24ef54ecb8e825f51b2750dbb8b2ea2139cebd8c"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jun 16 23:54:39 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jun 16 23:54:39 2017 +0000"
      },
      "message": "AudioFlinger: Fix memory allocation for client-less tracks am: 1159ffd5e3 am: f242b890c4\nam: 24ef54ecb8\n\nChange-Id: I0b413afa5c0e41fadcd0320f7481172cc2398018\n"
    },
    {
      "commit": "24ef54ecb8e825f51b2750dbb8b2ea2139cebd8c",
      "tree": "2b7f50cb76a81fdabe3f0f91f534fae2085967da",
      "parents": [
        "966e572c69397616d31f378fe10089ca99373824",
        "f242b890c45ef019d1cf131d3289ba72a06451e0"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jun 16 23:51:37 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jun 16 23:51:37 2017 +0000"
      },
      "message": "AudioFlinger: Fix memory allocation for client-less tracks am: 1159ffd5e3\nam: f242b890c4\n\nChange-Id: I5bd38c33b13de93e641e50c39cdfe37dbae59923\n"
    },
    {
      "commit": "cf39f0e67ab16d96b9b862641194e226d35afb79",
      "tree": "6f0700eee053d88429fc5cbf59aecf8de79019a8",
      "parents": [
        "1159ffd5e3f832206982d45a7b030b943cc4775e"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jun 12 17:22:46 2017 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jun 15 18:10:10 2017 -0700"
      },
      "message": "Track: Check buffer size of static tracks\n\nMerged-In: Ia7edd9a802905214a27961dbcec6352f6ef98f73\nMerged-In: I633caf563d3607dbe4b9be10be1687efce33469c\nTest: Native POC\nBug: 38340117\nChange-Id: I633caf563d3607dbe4b9be10be1687efce33469c\n"
    },
    {
      "commit": "f4aeab2bd69bead05ed75ae3254f53a6ab2316b5",
      "tree": "683ef1ac8035e7bc783d68e7ebd8a7e20dc84893",
      "parents": [
        "ea83248dfb1822e0c0d507f38b13d90a9641261e"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jun 12 17:22:46 2017 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jun 15 18:08:47 2017 -0700"
      },
      "message": "Track: Check buffer size of static tracks\n\nMerged-In: Ia7edd9a802905214a27961dbcec6352f6ef98f73\nTest: Native POC\nBug: 38340117\nChange-Id: I633caf563d3607dbe4b9be10be1687efce33469c\n"
    },
    {
      "commit": "1159ffd5e3f832206982d45a7b030b943cc4775e",
      "tree": "aef16a6e9d49e0d1b59bef3b487f21244e1ab8ee",
      "parents": [
        "ef3a4aead0eb4d6b0615159489d4a187ce90de2c"
      ],
      "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": "Mon Jun 12 17:52:06 2017 -0700"
      },
      "message": "AudioFlinger: Fix memory allocation for client-less tracks\n\nTest: Ringtone with BT\nBug: 35350587\nBug: 38340117\nChange-Id: If247d319d58f8f4d18b49f58ec950491871ebb2d\n(cherry picked from commit afb31487f3156a7284d2f0d06646c7bc00d99537)\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": "de6072164a8d2bca2cd404741a121344a3e8bc33",
      "tree": "c81db7db73896f62bab63d3349e08277f2af7b2a",
      "parents": [
        "daaabdcaac696870285d8ad83502fe4319c5e719",
        "737754e97a7b33909f47b2d19cb3544f3b598413"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Mar 10 22:36:28 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Mar 10 22:36:28 2017 +0000"
      },
      "message": "Merge \"DO NOT MERGE AudioFlinger: Check framecount overflow when creating track\" into klp-dev am: e0da30dc57\nam: 737754e97a\n\nChange-Id: Ide9fb3f4955a31ade22f99c299f441d8413c1b88\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": "64e843f1c312382e3e1a6f6e17f8d895e9c6efe8",
      "tree": "ef414eb6b5d745aba49a9bb3823470ace97265e6",
      "parents": [
        "b6aa3901ceb4b51ca1e51799e8cc95f630d49c33"
      ],
      "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 16:39:50 2017 -0800"
      },
      "message": "DO NOT MERGE AudioFlinger: Check framecount overflow when creating track\n\nTest: Native POC\nBug: 34749571\nChange-Id: I7529658e52ac7e64d162eb5338f10fb25eaa8fe7\n"
    },
    {
      "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": "7da83aadf4e765c38bc6cad04ce086dad20ef54a",
      "tree": "3fd145a1d5ca06ee32ae79651a6ab9e11667a81f",
      "parents": [
        "a5333c0056c270975754b614118eabfc7db31cbd"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 01 15:28:29 2016 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 18 00:18:37 2017 +0000"
      },
      "message": "DO NOT MERGE - improve audio effect framwework thread safety\n\n- Reorganize handle effect creation code to make sure the effect engine\nis created with both thread and effect chain mutex held.\n- Reorganize handle disconnect code to make sure the effect engine\nis released with both thread and effect chain mutex held.\n- Protect IEffect interface methods in EffectHande with a Mutex.\n- Only pin effect if the session was acquired first.\n- Do not use strong pointer to EffectModule in EffectHandles:\nonly the EffectChain has a single strong reference to the EffectModule.\n- Check reply size before writing status in EffectHandle::command()\n\nBug: 32707507\nBug: 32095713\nChange-Id: Ia1098cba2cd32cc2d1c9dfdff4adc2388dfed80e\n(cherry picked from commit 84c392104e905bfacc753ec0ddb96ce7813d1889)\n"
    },
    {
      "commit": "73a152960b7c795f1fe2e16a09451417181a998c",
      "tree": "30adc56c560dad2f381fd664e5052ea13c0055f4",
      "parents": [
        "94d5167a916bef88fe5980bdfb8ba019fd302641",
        "26cf2f4d73b256b2d766be254830f8254895f632"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 04 22:17:58 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jan 04 22:17:58 2017 +0000"
      },
      "message": "DO NOT MERGE - improve audio effect framwework thread safety am: b47a5ab107\nam: 26cf2f4d73\n\nChange-Id: I6513190cce6756c47e5ede0dc578fa0d2c5889b3\n"
    },
    {
      "commit": "bc7f347ff5dc890ad0fa306f58d145e934e31ed4",
      "tree": "0164bf05d87776c3e073a32fba021b041f7a45b1",
      "parents": [
        "ec982d462866b8b985b4ed13a2e99556de094c0d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 01 15:28:29 2016 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 15 19:27:57 2016 -0800"
      },
      "message": "DO NOT MERGE - improve audio effect framwework thread safety\n\n- Reorganize handle effect creation code to make sure the effect engine\nis created with both thread and effect chain mutex held.\n- Reorganize handle disconnect code to make sure the effect engine\nis released with both thread and effect chain mutex held.\n- Protect IEffect interface methods in EffectHande with a Mutex.\n- Only pin effect if the session was acquired first.\n- Do not use strong pointer to EffectModule in EffectHandles:\nonly the EffectChain has a single strong reference to the EffectModule.\n- Check reply size before writing status in EffectHandle::command()\n\nBug: 32707507\nBug: 32095713\n\nChange-Id: Ia1098cba2cd32cc2d1c9dfdff4adc2388dfed80e\n"
    },
    {
      "commit": "84c392104e905bfacc753ec0ddb96ce7813d1889",
      "tree": "0e240354e488fc2694c20c30404dbc1cc98833b3",
      "parents": [
        "98c2151dc33db451ebf7351bdbcb70c163f602b9"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 01 15:28:29 2016 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 15 18:22:49 2016 -0800"
      },
      "message": "DO NOT MERGE - improve audio effect framwework thread safety\n\n- Reorganize handle effect creation code to make sure the effect engine\nis created with both thread and effect chain mutex held.\n- Reorganize handle disconnect code to make sure the effect engine\nis released with both thread and effect chain mutex held.\n- Protect IEffect interface methods in EffectHande with a Mutex.\n- Only pin effect if the session was acquired first.\n- Do not use strong pointer to EffectModule in EffectHandles:\nonly the EffectChain has a single strong reference to the EffectModule.\n- Check reply size before writing status in EffectHandle::command()\n\nBug: 32707507\nBug: 32095713\nChange-Id: Ia1098cba2cd32cc2d1c9dfdff4adc2388dfed80e\n"
    },
    {
      "commit": "b47a5ab10732758aa84a064a0729314f3897d802",
      "tree": "e199df1695a26ec44920c5f7336a25f8160bd56a",
      "parents": [
        "1576f5968c4458af357065bf0f10acf71754cc21"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 01 15:28:29 2016 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 15 17:43:51 2016 -0800"
      },
      "message": "DO NOT MERGE - improve audio effect framwework thread safety\n\n- Reorganize handle effect creation code to make sure the effect engine\nis created with both thread and effect chain mutex held.\n- Reorganize handle disconnect code to make sure the effect engine\nis released with both thread and effect chain mutex held.\n- Protect IEffect interface methods in EffectHande with a Mutex.\n- Only pin effect if the session was acquired first.\n- Do not use strong pointer to EffectModule in EffectHandles:\nonly the EffectChain has a single strong reference to the EffectModule.\n- Check reply size before writing status in EffectHandle::command()\n\nBug: 32707507\nBug: 32095713\n\nChange-Id: Ia1098cba2cd32cc2d1c9dfdff4adc2388dfed80e\n"
    },
    {
      "commit": "39ca98f547e786a6c0258f17bd496a206f4a0ac3",
      "tree": "bcc9d473e7ddb2eb8fef08a62a4d0e21e87d3c66",
      "parents": [
        "72729c449d9f7a6f217be629066cb683ad27b37b",
        "b45c856249d678df55d609e734fee66fa0b333e1"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Dec 03 00:47:04 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Dec 03 00:47:04 2016 +0000"
      },
      "message": "Effect: Use local cached data for Effect commit am: dd79ccda92 am: 82c8c7656f am: 9851dee7da am: 4242950061 am: a661c82829\nam: b45c856249\n\nChange-Id: I6cb0c8e2dbaa2ebe3d4fd4f283a2028ac099f3c3\n"
    },
    {
      "commit": "a661c8282967a16dc5fb957eaf161a6866edcc59",
      "tree": "58f4c6a045b7f8bbc013c6d85380abd8825b6ef1",
      "parents": [
        "ad29b47d91c26f65d1d9a58d2dac1970175a885c",
        "42429500612b768902442c9fe594327511462cc5"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Dec 03 00:42:33 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Dec 03 00:42:33 2016 +0000"
      },
      "message": "Effect: Use local cached data for Effect commit am: dd79ccda92 am: 82c8c7656f am: 9851dee7da\nam: 4242950061\n\nChange-Id: I9cee35a3c8df1747c5461dc62c3210a0de134b87\n"
    },
    {
      "commit": "42429500612b768902442c9fe594327511462cc5",
      "tree": "db679b7d174cfb79cc290af0ecedea5c38306946",
      "parents": [
        "9161586309fd018a1503dc5227f2cb329b935213",
        "9851dee7da476848ae9ef5e8fe07d3634d50c208"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Dec 03 00:40:33 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Dec 03 00:40:33 2016 +0000"
      },
      "message": "Effect: Use local cached data for Effect commit am: dd79ccda92 am: 82c8c7656f\nam: 9851dee7da\n\nChange-Id: I3d375c671122e61cf0b530457c37c1cd5c06e563\n"
    },
    {
      "commit": "9851dee7da476848ae9ef5e8fe07d3634d50c208",
      "tree": "1d377280d0fc010e3bb64a78150537750f779221",
      "parents": [
        "3e8ab60b7f65dd4c5c9efa4a1c388a51fbbb5d11",
        "82c8c7656f7c7b7269fd7f7a9f1e657109824123"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Dec 03 00:38:33 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Dec 03 00:38:33 2016 +0000"
      },
      "message": "Effect: Use local cached data for Effect commit am: dd79ccda92\nam: 82c8c7656f\n\nChange-Id: I8819bc1146b0b751abc0790edd4b7d73f2198038\n"
    },
    {
      "commit": "82c8c7656f7c7b7269fd7f7a9f1e657109824123",
      "tree": "656627902f4f2db291620bee9b17c251b9fa164f",
      "parents": [
        "01e854056a73ee914bbac079389c720e813e4c57",
        "dd79ccda92c1e9b982b2d0f8877d98e5258fbb73"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Dec 03 00:36:01 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Dec 03 00:36:01 2016 +0000"
      },
      "message": "Effect: Use local cached data for Effect commit\nam: dd79ccda92\n\nChange-Id: Ide8165907e03b9d400eaa33a222ceeae782d6509\n"
    },
    {
      "commit": "1576f5968c4458af357065bf0f10acf71754cc21",
      "tree": "656627902f4f2db291620bee9b17c251b9fa164f",
      "parents": [
        "e275907e576601a3579747c3a842790bacf111e2",
        "dd79ccda92c1e9b982b2d0f8877d98e5258fbb73"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Dec 03 00:32:27 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Dec 03 00:32:27 2016 +0000"
      },
      "message": "Merge \"Effect: Use local cached data for Effect commit\" into klp-dev"
    },
    {
      "commit": "72729c449d9f7a6f217be629066cb683ad27b37b",
      "tree": "a6b4eec1bebefc9e08adb56308caf33c87ba9ea1",
      "parents": [
        "e6dfef5e91847a0a3af510761dddf4d920f7b375",
        "8b9b199891bb1374e0aa9f68c911999285d04af4"
      ],
      "author": {
        "name": "rago",
        "email": "rago@google.com",
        "time": "Wed Nov 30 19:38:50 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Nov 30 19:38:50 2016 +0000"
      },
      "message": "Fix security vulnerability: potential OOB write in audioserver am: e275907e57 am: 01e854056a am: 3e8ab60b7f am: 9161586309 am: ad29b47d91\nam: 8b9b199891\n\nChange-Id: Id1d62d9ebabab42f5ca82ff2fbbcf14d130466f4\n"
    },
    {
      "commit": "ad29b47d91c26f65d1d9a58d2dac1970175a885c",
      "tree": "f1bf7a176ba76118ff2c6fa27ef6f997dcfd6417",
      "parents": [
        "b926fff90e70a45107a8b76928eaf5606fe4ace7",
        "9161586309fd018a1503dc5227f2cb329b935213"
      ],
      "author": {
        "name": "rago",
        "email": "rago@google.com",
        "time": "Wed Nov 30 19:28:49 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Nov 30 19:28:49 2016 +0000"
      },
      "message": "Fix security vulnerability: potential OOB write in audioserver am: e275907e57 am: 01e854056a am: 3e8ab60b7f\nam: 9161586309\n\nChange-Id: Ibcceb08d7db77f67f3dfc3cdad1d2bd6994183ae\n"
    },
    {
      "commit": "9161586309fd018a1503dc5227f2cb329b935213",
      "tree": "b4017c17bc9ddbd82a9e92f57e41dc609da2eff4",
      "parents": [
        "8b850ec8d52d436f273ecbd745fa906f0aeb54a7",
        "3e8ab60b7f65dd4c5c9efa4a1c388a51fbbb5d11"
      ],
      "author": {
        "name": "rago",
        "email": "rago@google.com",
        "time": "Wed Nov 30 19:23:21 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Nov 30 19:23:21 2016 +0000"
      },
      "message": "Fix security vulnerability: potential OOB write in audioserver am: e275907e57 am: 01e854056a\nam: 3e8ab60b7f\n\nChange-Id: Ib575df34ec5bb7dc2cd83a859e10abe94e894317\n"
    },
    {
      "commit": "3e8ab60b7f65dd4c5c9efa4a1c388a51fbbb5d11",
      "tree": "b1852edf3c7b545717eec35f61b134f6d6fc79be",
      "parents": [
        "756f8dcdc1550b9115fe2369dfa14f46a5854d1e",
        "01e854056a73ee914bbac079389c720e813e4c57"
      ],
      "author": {
        "name": "rago",
        "email": "rago@google.com",
        "time": "Wed Nov 30 19:17:48 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Nov 30 19:17:48 2016 +0000"
      },
      "message": "Fix security vulnerability: potential OOB write in audioserver am: e275907e57\nam: 01e854056a\n\nChange-Id: I7ea6a871eed4b9e1c56c5350c4e5fb5eb628e816\n"
    },
    {
      "commit": "e275907e576601a3579747c3a842790bacf111e2",
      "tree": "6a6550b1636a64348b4d53d38fdb3039482f5c98",
      "parents": [
        "501aee7a542a8c461d48c27cb1148a0936e3a9e5"
      ],
      "author": {
        "name": "rago",
        "email": "rago@google.com",
        "time": "Tue Nov 22 18:02:48 2016 -0800"
      },
      "committer": {
        "name": "rago",
        "email": "rago@google.com",
        "time": "Tue Nov 29 12:17:49 2016 -0800"
      },
      "message": "Fix security vulnerability: potential OOB write in audioserver\n\nBug: 32705438\nBug: 32703959\nTest: cts security test\nChange-Id: I8900c92fa55b56c4c2c9d721efdbabe6bfc8a4a4\n"
    },
    {
      "commit": "dd79ccda92c1e9b982b2d0f8877d98e5258fbb73",
      "tree": "eb7a2f14f528ad018d570b1412fcdcf3c03d57ea",
      "parents": [
        "501aee7a542a8c461d48c27cb1148a0936e3a9e5"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Nov 15 17:19:58 2016 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Nov 16 02:33:53 2016 +0000"
      },
      "message": "Effect: Use local cached data for Effect commit\n\nTest: POC, Cts Effect, BassBoost, EnvReverb, Equalizer,\nTest: LoudnessEnhancer, PresetReverb, Virtualizer, Visualizer\nBug: 32220769\nChange-Id: Iea96ba0daf71691ee8954cca4ba1c10fe827626e\n"
    },
    {
      "commit": "134e20847763b64ae4afb968f55801c0cfb26c5f",
      "tree": "307050ea3490fe852fb16185ca9905eca944a3f6",
      "parents": [
        "a44d1479c6f4264898a2ea44e358a1290da1e9b5",
        "f0f864a1e45b63a6614e90f86a576e7dfa0008c1"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Nov 10 19:52:27 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Nov 10 19:52:27 2016 +0000"
      },
      "message": "Effects: Check get parameter command size am: 3d34cc76e3 am: 59920bf785 am: 14d87911d7 am: 79a088a065 am: 58e5681c96\nam: f0f864a1e4\n\nChange-Id: I4e1a1cbcc97223abf9f87a0e575f198342c2accf\n"
    },
    {
      "commit": "58e5681c969afd6dfe708476b75ac253b02eff4c",
      "tree": "94f81889c4619021c348f9035152767d27bf85f4",
      "parents": [
        "b52c98e44c592d7c64442c014d48e8e8cb04dc09",
        "79a088a065f04239f404c4f94bc0d8bcc82ffaad"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Nov 10 19:39:52 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Nov 10 19:39:52 2016 +0000"
      },
      "message": "Effects: Check get parameter command size am: 3d34cc76e3 am: 59920bf785 am: 14d87911d7\nam: 79a088a065\n\nChange-Id: I9d46fdc8a919d5339dddac558f1f5496f35b498a\n"
    },
    {
      "commit": "79a088a065f04239f404c4f94bc0d8bcc82ffaad",
      "tree": "3ccd5506f9dd4185a308776a29c63a434b94dd82",
      "parents": [
        "354864c4438b3110dd58710845246872d267aca6",
        "14d87911d7409ce7ccea00980fafccf2bd60e301"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Nov 10 19:33:22 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Nov 10 19:33:22 2016 +0000"
      },
      "message": "Effects: Check get parameter command size am: 3d34cc76e3 am: 59920bf785\nam: 14d87911d7\n\nChange-Id: Icbc43a1d34af774dcf500cdb3548d0399f0b6943\n"
    },
    {
      "commit": "14d87911d7409ce7ccea00980fafccf2bd60e301",
      "tree": "8a9341761d5c7736db3c006ef09f600c5ed3912d",
      "parents": [
        "684314f19610388729dabcc4991c94fb1cba2f6c",
        "59920bf785ccc85eb9a4d372bb5d88097454c1a4"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Nov 10 19:26:21 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Nov 10 19:26:21 2016 +0000"
      },
      "message": "Effects: Check get parameter command size am: 3d34cc76e3\nam: 59920bf785\n\nChange-Id: I2d90659faa7d0085b33d0f527a97fa6dc82a70d7\n"
    },
    {
      "commit": "3d34cc76e315dfa8c3b1edf78835b0dab4980505",
      "tree": "fb24b34565049a9208769dc0424aba9d0cd666fd",
      "parents": [
        "2c28e5b1266a12163fed8236d34830f69f8216a2"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Nov 04 19:40:53 2016 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Nov 05 02:52:49 2016 +0000"
      },
      "message": "Effects: Check get parameter command size\n\nTest: Custom test.\nBug: 32438594\nBug: 32624850\nBug: 32635664\nChange-Id: I9b1315e2c02f11bea395bfdcf5c1ccddccbad8a6\n"
    },
    {
      "commit": "18e5ce689152760c29dbe83e68371b116a8f0605",
      "tree": "f0626a37f128d36bc34f78063e803c95a02a7000",
      "parents": [
        "1dd4973234911d447f7cae02c4beace1ef231bbd",
        "1ab50af9c1c1617a3d25dfc0458b428db69630c0"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Aug 19 19:24:45 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Aug 19 19:24:45 2016 +0000"
      },
      "message": "Add EFFECT_CMD_SET_PARAM parameter checking am: e4a1d91501 am: 19d8a61324 am: ebd9f1029e am: d37cf46848 am: ced0dd635e am: 00acbf03be\nam: 1ab50af9c1\n\nChange-Id: I5be11eba820ccb3f6c3bb97b3fa417504306bb3f\n"
    },
    {
      "commit": "1ab50af9c1c1617a3d25dfc0458b428db69630c0",
      "tree": "7426649fa9eda708a8f441d7c91879adafc9d090",
      "parents": [
        "ab5c805aecab4586882f89d1f3740c22dc4ab3e9",
        "00acbf03be60ef645bfa8bbd1e888fef13b0074f"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Aug 19 19:21:26 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Aug 19 19:21:26 2016 +0000"
      },
      "message": "Add EFFECT_CMD_SET_PARAM parameter checking am: e4a1d91501 am: 19d8a61324 am: ebd9f1029e am: d37cf46848 am: ced0dd635e\nam: 00acbf03be\n\nChange-Id: I34a722f8440d79dd539a170ea28344d79df6e8c9\n"
    },
    {
      "commit": "ced0dd635e77d0d120d36fad2ba037882ffecb8b",
      "tree": "504db5c7ae4de10535caabf7edd0ec91c9cc5b93",
      "parents": [
        "45cd2f896bd647d54e96585400e927c6a46742ae",
        "d37cf46848ff1eeedcf2c05bf00c18582941a412"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Aug 19 19:07:45 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Aug 19 19:07:45 2016 +0000"
      },
      "message": "Add EFFECT_CMD_SET_PARAM parameter checking am: e4a1d91501 am: 19d8a61324 am: ebd9f1029e\nam: d37cf46848\n\nChange-Id: Ibe08f642742e6db44b16d9827dceeb984e6419f3\n"
    },
    {
      "commit": "d37cf46848ff1eeedcf2c05bf00c18582941a412",
      "tree": "bec8df82d205971616059be56b15999e3e69f605",
      "parents": [
        "83cf293b73ed9ddff3162b75083f6a75dd07b7f2",
        "ebd9f1029e5e317e0fcf37163b741a0e48a39fa1"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Aug 19 19:04:15 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Aug 19 19:04:15 2016 +0000"
      },
      "message": "Add EFFECT_CMD_SET_PARAM parameter checking am: e4a1d91501 am: 19d8a61324\nam: ebd9f1029e\n\nChange-Id: Ic2fa5bba22d9ffc7b69ea97e2e4bc44d8a0fa42d\n"
    },
    {
      "commit": "ebd9f1029e5e317e0fcf37163b741a0e48a39fa1",
      "tree": "931343ad910a5eba7aafea38f52f340ca8f9b528",
      "parents": [
        "2a21f09fff5e80b306ec30a618d54a4827447f3a",
        "19d8a613243886f40660fd6bb50ba9138149421e"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Aug 19 18:59:06 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Aug 19 18:59:06 2016 +0000"
      },
      "message": "Add EFFECT_CMD_SET_PARAM parameter checking am: e4a1d91501\nam: 19d8a61324\n\nChange-Id: I002990dc446d8a713f41b77671d17dbb11a914f9\n"
    },
    {
      "commit": "e4a1d91501d47931dbae19c47815952378787ab6",
      "tree": "427ee53e773dbdbb8b60f10ac9c8ae068bd30fdd",
      "parents": [
        "17a10c50e20d934c1ac5956fe9019d3013e3f8b3"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Aug 17 14:11:13 2016 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Aug 18 15:56:23 2016 -0700"
      },
      "message": "Add EFFECT_CMD_SET_PARAM parameter checking\n\nBug: 30204301\nChange-Id: Ib9c3ee1c2f23c96f8f7092dd9e146bc453d7a290\n"
    },
    {
      "commit": "97dc6890807d2cf861bac781acad375173906e62",
      "tree": "9809fc859f6dd936c532ed064dc443bb8758eef3",
      "parents": [
        "69367123bee39b647d9c72e8f88cea4d241123e0",
        "4d942ffdf7cfbfe43133bf1c87eda4e4569f3507"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jun 21 17:52:29 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jun 21 17:52:29 2016 +0000"
      },
      "message": "Check effect command reply size in AudioFlinger am: 110bc9547a am: 075c8f7713 am: c971a59f4c am: 195f7c6125 am: 1e1b7e4c3d am: d34a9dfc5e\nam: 4d942ffdf7\n\nChange-Id: I5d59510f7bd7c8b72deef4de177193028af1f4c7\n"
    },
    {
      "commit": "4d942ffdf7cfbfe43133bf1c87eda4e4569f3507",
      "tree": "88116eeb17ed2868dc6252faab13fa0fa18c16af",
      "parents": [
        "8d1b421d2de1bd574136466ab2ced18d57c24535",
        "d34a9dfc5ec334a06d1791d359c2aa5ba810a825"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jun 21 17:49:41 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jun 21 17:49:41 2016 +0000"
      },
      "message": "Check effect command reply size in AudioFlinger am: 110bc9547a am: 075c8f7713 am: c971a59f4c am: 195f7c6125 am: 1e1b7e4c3d\nam: d34a9dfc5e\n\nChange-Id: I2705198deaaeb485503135fe97bc0d6f5ba8cf70\n"
    },
    {
      "commit": "1e1b7e4c3d513ea947b79fe9d0d4cf9a8e1242a3",
      "tree": "856d7a7b625973b25453be2f1a57a62e7418a9dd",
      "parents": [
        "924aa7861479389e5a1880b4312c81dfb5169f90",
        "195f7c6125d7c0a48c9f7f0aeb0311ba076a8df7"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jun 21 17:44:05 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jun 21 17:44:05 2016 +0000"
      },
      "message": "Check effect command reply size in AudioFlinger am: 110bc9547a am: 075c8f7713 am: c971a59f4c\nam: 195f7c6125\n\nChange-Id: I8da29433f8dabffc94a82617e325a314c4ae84d0\n"
    },
    {
      "commit": "195f7c6125d7c0a48c9f7f0aeb0311ba076a8df7",
      "tree": "0cf37057165f2c538565caa6eec53e26346c053b",
      "parents": [
        "719fd3c0625705777f1ef0667005b111733c2e0b",
        "c971a59f4c2491a2e5143f7118debd7c92fa3333"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jun 21 17:41:26 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jun 21 17:41:26 2016 +0000"
      },
      "message": "Check effect command reply size in AudioFlinger am: 110bc9547a am: 075c8f7713\nam: c971a59f4c\n\nChange-Id: I86d971f1a537a34e90e4f0697c9c9a43e509cfc4\n"
    },
    {
      "commit": "c971a59f4c2491a2e5143f7118debd7c92fa3333",
      "tree": "caf1614ded00369deac9f23323e267f599ba3ab8",
      "parents": [
        "fad42aa98d692c5fd830f7c61b4eb9faf4f7cdca",
        "075c8f7713c880986b98b81938bf56f2d036c369"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jun 21 17:38:37 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jun 21 17:38:37 2016 +0000"
      },
      "message": "Check effect command reply size in AudioFlinger am: 110bc9547a\nam: 075c8f7713\n\nChange-Id: I7b70873d12dc258b362c88c8a9ea47ca0e0578ca\n"
    },
    {
      "commit": "110bc9547a0c851ff1f20f5d7579b34f942947b8",
      "tree": "b719fae497302d432d53af62476ca1508f4854cc",
      "parents": [
        "dc7357d20175fadfabd903370094917408bf6e3e"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jun 20 15:22:52 2016 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jun 20 15:22:52 2016 -0700"
      },
      "message": "Check effect command reply size in AudioFlinger\n\nBug: 29251553\nChange-Id: I1bcc1281f1f0542bb645f6358ce31631f2a8ffbf\n"
    },
    {
      "commit": "77ab176ae7c9158be47c993bc5d7a54b997a15e9",
      "tree": "d75fe35853cffe25e1e32bc9053f127a724cdfc0",
      "parents": [
        "602343bb7c64bec625a17e2a825e4d2b50f359fe",
        "149fc59ee66ee84c02e3c705e6264213ab4401a7"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Oct 14 20:54:16 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 14 20:54:16 2015 +0000"
      },
      "message": "am 149fc59e: am 1f42a6cc: am c57ad1ed: am 55d1ea47: Merge \"DO NOT MERGE - AudioFlinger: Clear record buffers when starting RecordThread\" into lmp-dev\n\n* commit \u0027149fc59ee66ee84c02e3c705e6264213ab4401a7\u0027:\n  DO NOT MERGE - AudioFlinger: Clear record buffers when starting RecordThread\n"
    },
    {
      "commit": "1f42a6cc1edd96030478a8bc1e05a0ff7710e539",
      "tree": "bd3201353b9cc3582c32f9960817123c546c976b",
      "parents": [
        "9d1bc9f252edae3a31decf5c18e971c6ab424b26",
        "c57ad1ed177ab58ae759a5054d8a14a306715f85"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Oct 14 20:44:40 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 14 20:44:40 2015 +0000"
      },
      "message": "am c57ad1ed: am 55d1ea47: Merge \"DO NOT MERGE - AudioFlinger: Clear record buffers when starting RecordThread\" into lmp-dev\n\n* commit \u0027c57ad1ed177ab58ae759a5054d8a14a306715f85\u0027:\n  DO NOT MERGE - AudioFlinger: Clear record buffers when starting RecordThread\n"
    },
    {
      "commit": "5a018d15da438933c30de4b25bcff527331cf8df",
      "tree": "e6f52d6f8fca7722062c34eaedbda04d7c04326d",
      "parents": [
        "dd184a4824acc31160895e2c6f8d93a7facfc2c8",
        "0f21a6880e74b56834940a131df912a49b70e82d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Oct 14 20:40:42 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 14 20:40:42 2015 +0000"
      },
      "message": "am 0f21a688: Merge \"DO NOT MERGE - AudioFlinger: Clear record buffers when starting RecordThread\" into klp-dev\n\n* commit \u00270f21a6880e74b56834940a131df912a49b70e82d\u0027:\n  DO NOT MERGE - AudioFlinger: Clear record buffers when starting RecordThread\n"
    },
    {
      "commit": "c57ad1ed177ab58ae759a5054d8a14a306715f85",
      "tree": "bec088678169b14f75c48fe9b80cda92414ffcbc",
      "parents": [
        "4beea2778db2b9c236761676d105e38d60c675a6",
        "55d1ea47c8aac1d5c6e887e06e8c36bf40eca7d7"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Oct 14 20:37:45 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 14 20:37:45 2015 +0000"
      },
      "message": "am 55d1ea47: Merge \"DO NOT MERGE - AudioFlinger: Clear record buffers when starting RecordThread\" into lmp-dev\n\n* commit \u002755d1ea47c8aac1d5c6e887e06e8c36bf40eca7d7\u0027:\n  DO NOT MERGE - 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": "ab0ea0fe9a1e4afad5b39e094f6640318aefdd33",
      "tree": "66a8bd4ee6e4aa4ccdd31f98ce2769cd7683026f",
      "parents": [
        "6272fa1baf361a6a89607243638cc592047947b3"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Sep 24 15:08:13 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Sep 24 16:50:20 2015 -0700"
      },
      "message": "DO NOT MERGE - AudioFlinger: Clear record buffers when starting RecordThread\n\nBug: 24211743\nBug: 24267152\nChange-Id: I58c55e56b85067b71e4e300f947b4dfc159637ba\n"
    },
    {
      "commit": "8c987fa71326eb0cc504959a5ebb440410d73180",
      "tree": "5d7b75a17bf736d15f95880a06b564f03cd03ee1",
      "parents": [
        "a8f90d57f5b3ad4ef7194501aa20f0a0bd903e8f"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Sep 24 16:36:56 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Sep 24 16:49:57 2015 -0700"
      },
      "message": "DO NOT MERGE - AudioFlinger: Clear record buffers when starting RecordThread\n\nBug: 24211743\nBug: 24267152\nChange-Id: I58c55e56b85067b71e4e300f947b4dfc159637ba\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": "899ad39be5466d341f648e4a1584db64d99555ca",
      "tree": "7e6301cbb2f40e8560c37f9d6280b13c82f0b97c",
      "parents": [
        "d9f0be89f812883128683776498b3387abbf63b5",
        "ba20a08670dfb3bb0ab58b0e1e48fe1178c7cfcb"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Aug 20 19:30:48 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 20 19:30:48 2015 +0000"
      },
      "message": "am ba20a086: am bc167f83: resolved conflicts for merge of 84fb58bd to lmp-mr1-dev\n\n* commit \u0027ba20a08670dfb3bb0ab58b0e1e48fe1178c7cfcb\u0027:\n  DO NOT MERGE - audio flinger: fix fuzz test crash\n"
    },
    {
      "commit": "bc167f832db091e490b552a147ec73412241e1e5",
      "tree": "86972791c54bc87fe26cab132734a24971c8f0c8",
      "parents": [
        "bfadec126c43cff30aa8445d8d42265c39a03ad5",
        "84fb58bdf6bfb5bf362c0e1cc6a5bad41e8554f5"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Aug 18 18:27:54 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Aug 18 18:27:54 2015 -0700"
      },
      "message": "resolved conflicts for merge of 84fb58bd to lmp-mr1-dev\n\nChange-Id: I9b2b1ff690d35e0da644bdb52c8c42a72e5fd4f6\n"
    },
    {
      "commit": "84fb58bdf6bfb5bf362c0e1cc6a5bad41e8554f5",
      "tree": "d86313cb7e53e112ce872189cec811c7aec89e3b",
      "parents": [
        "25c00122a640ee311e6e72df401c362ec798617d",
        "bdb5e49787dcb56fec68a2410a0985bfe388cd14"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Aug 18 21:52:31 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 18 21:52:31 2015 +0000"
      },
      "message": "am bdb5e497: Merge \"DO NOT MERGE - audio flinger: fix fuzz test crash\" into lmp-dev\n\n* commit \u0027bdb5e49787dcb56fec68a2410a0985bfe388cd14\u0027:\n  DO NOT MERGE - audio flinger: fix fuzz test crash\n"
    },
    {
      "commit": "6b52d191f96c611b768318eec74d25908da76d03",
      "tree": "988dd6b443bf363307033e527734dbebf994d342",
      "parents": [
        "5d7a381b9c86ff4f00a95063d57ad0a80467799c",
        "916a9684295fb578f4b3c6c16b621ef201a49964"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Aug 18 21:45:18 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 18 21:45:18 2015 +0000"
      },
      "message": "am 916a9684: Merge \"DO NOT MERGE - audio flinger: fix fuzz test crash\" into klp-dev\n\n* commit \u0027916a9684295fb578f4b3c6c16b621ef201a49964\u0027:\n  DO NOT MERGE - audio flinger: fix fuzz test crash\n"
    },
    {
      "commit": "b97ee930e4f7ed1587b869c92b4aa1dc90b641cc",
      "tree": "b4917494c7a99ff9d4ed9552d2a5f205931593ca",
      "parents": [
        "65842db06c2d77e53cc5ac61692160d844cc7d0a"
      ],
      "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": "Tue Aug 18 11:25:37 2015 -0700"
      },
      "message": "DO NOT MERGE - 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(cherry picked from commit f6870aefc5e31d4220f3778c4e79ff34a61f48ad)\n"
    },
    {
      "commit": "22ac20eff5b67f33b9d04ca54abeaa22ce201039",
      "tree": "e0fcb0e06bb14a3e9d34a514be6e912e6b6c8192",
      "parents": [
        "1a09d3521e8849dcb1090ecb50393f6e9ee140ec"
      ],
      "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": "Mon Aug 17 18:11:04 2015 -0700"
      },
      "message": "DO NOT MERGE - 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": "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"
    }
  ],
  "next": "de07e3743ef9c3dfe45864bf941b918147126500"
}
