)]}'
{
  "log": [
    {
      "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": "7f208022668b5f77fecaeff7a655c90f41712af6",
      "tree": "b1ee70858cac67b8512f6bdbd170eb9b8c6565df",
      "parents": [
        "6d91c4fc369f8c144c76d879489e84984325859f",
        "72db998b4f41e795420055cda362847d5c5f8c92"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 15 18:03:45 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Dec 15 18:03:45 2016 +0000"
      },
      "message": "DO NOT MERGE - improve audio effect framwework thread safety am: b378b73dd7 am: 993c09b27b\nam: 72db998b4f\n\nChange-Id: I0d46e03a152fa697a329e80d5976e55237493915\n"
    },
    {
      "commit": "98810b1a06eb3ea045b6f93b2d1327ca3dacd250",
      "tree": "c940b2674987a6165011058a258423293d0ba48e",
      "parents": [
        "c20366a8b76d78a2cfb1ead0bb27dbff5876085f",
        "993c09b27bc5b2b9f93b29fac8e212a196a52c67"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 15 17:55:44 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Dec 15 17:55:44 2016 +0000"
      },
      "message": "DO NOT MERGE - improve audio effect framwework thread safety am: b378b73dd7\nam: 993c09b27b\n\nChange-Id: I5c0f8aadc0929f9bb77e344fab6b3c257bc2b7cf\n"
    },
    {
      "commit": "72db998b4f41e795420055cda362847d5c5f8c92",
      "tree": "83e824d5f21d33051a683256f949d1f4c1b076e6",
      "parents": [
        "56d69ea84fb6c75cd5e855f067f90cae5a085d27",
        "993c09b27bc5b2b9f93b29fac8e212a196a52c67"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 15 17:55:44 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Dec 15 17:55:44 2016 +0000"
      },
      "message": "DO NOT MERGE - improve audio effect framwework thread safety am: b378b73dd7\nam: 993c09b27b\n\nChange-Id: Ib46c5c88aa112e819fe320857b2136f14f84db1a\n"
    },
    {
      "commit": "b378b73dd7480b584340b8028802c9ca2d625123",
      "tree": "00439baacf771d5439c6ec1747cfcdff13eeb4e5",
      "parents": [
        "5ed0c9ffdae597a023bdcade0868566832a01c2b"
      ],
      "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": "Fri Dec 09 10:25:06 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\nBug: 32707507\nChange-Id: Ia1098cba2cd32cc2d1c9dfdff4adc2388dfed80e\n"
    },
    {
      "commit": "78cbdfa7b68615cc61573f39a87563d891aed652",
      "tree": "970e75d4a0bf67c437fcaf889e236fc0e1039bf9",
      "parents": [
        "1029d18fc055b6831c46f365215552bda8b793db",
        "1f82f9569d257adc1d6d1c9a58e542c3c99c0109"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Dec 07 20:33:21 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Dec 07 20:33:21 2016 +0000"
      },
      "message": "Log audio information to ensure complete delivery\nam: 1f82f9569d\n\nChange-Id: I8c3045b0331a97b98168897d03ec1dc55235a59e\n"
    },
    {
      "commit": "1f82f9569d257adc1d6d1c9a58e542c3c99c0109",
      "tree": "9b634a2a96b4609a1a5a8fe1a7b68d5eb5338700",
      "parents": [
        "83cb42836108742727ba8fc0bf24ab832001d687"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Nov 28 19:01:02 2016 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Dec 05 16:25:54 2016 -0800"
      },
      "message": "Log audio information to ensure complete delivery\n\nTest: Audio playback\nBug: 30572472\nChange-Id: Ibad6fc202692cd3480ae726627252afdead083f3\n"
    },
    {
      "commit": "5bc5b90bbe3eae27c6de5a556eda531d4430dfab",
      "tree": "33c6c894943057ea9867ad8d396ec8f1fa04fdab",
      "parents": [
        "13c04bc10f428243921c71699646476a2b921363",
        "4a7ef5c1d70bbe944ca812769f98ff45400562c8"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Oct 12 19:48:55 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Oct 12 19:48:55 2016 +0000"
      },
      "message": "AudioFlinger: Improve effect compatibility with RAW and FAST am: d3bb0adfe4\nam: 4a7ef5c1d7\n\nChange-Id: Ia7d516d957b0582ec6776d4306019e6f2dfc10c0\n"
    },
    {
      "commit": "d3bb0adfe40e60bb94e9a87e8d5bffb4ea6863b0",
      "tree": "b9ee66240bf0caaaecfbb6d9ca7c1ce54d5e8697",
      "parents": [
        "2035bc0e096cbef893a36c1888da67a77d1330b9"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Oct 11 17:16:43 2016 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Oct 12 10:01:27 2016 -0700"
      },
      "message": "AudioFlinger: Improve effect compatibility with RAW and FAST\n\nEffects without process function now are allowed with RAW\nand FAST playback and record tracks.\n\nBug: 32053844\nChange-Id: I58064eb2c357043c2da1a781a20988f42570d97e\n"
    },
    {
      "commit": "5c24d28bfc72423ff5bb6de3d46fe4747d9b64b1",
      "tree": "9c1f9c68d80e8042e273626d2c1b9ac6959b87c9",
      "parents": [
        "a9f9acc3ba7502f0aede544c821cbe1c5f3bd992",
        "6cfa8fdc9f28dabe98c44e7317330f06f7a88813"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 23 19:08:03 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 23 19:08:03 2016 +0000"
      },
      "message": "audioflinger: limit max number of tracks per client am: ad7dd9610b\nam: 6cfa8fdc9f\n\nChange-Id: I1952387cd010a11ce9512a8b56a363cc4bb7a078\n"
    },
    {
      "commit": "6cfa8fdc9f28dabe98c44e7317330f06f7a88813",
      "tree": "72f4a6f51de98737236a97b033bd306e6c87f164",
      "parents": [
        "cfb81966d1ff5b7bdbb014d73e7946976efc0b8b",
        "ad7dd9610b6fafa81baf69607f4ac669da88182a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 23 19:06:07 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 23 19:06:07 2016 +0000"
      },
      "message": "audioflinger: limit max number of tracks per client\nam: ad7dd9610b\n\nChange-Id: I0dd67dfc1324cd4969561370faf105bcf7286949\n"
    },
    {
      "commit": "7bafda7a153cda393ce018241fa7304845225ae5",
      "tree": "b50b6e95c158427610b71aca1145e12b4b4fac30",
      "parents": [
        "cc0ec44a984b92535a9dc40873b551c5087df2d5",
        "ad7dd9610b6fafa81baf69607f4ac669da88182a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 23 18:55:08 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 23 18:55:08 2016 +0000"
      },
      "message": "Merge \"audioflinger: limit max number of tracks per client\" into nyc-mr1-dev"
    },
    {
      "commit": "39ed2aa31b0c6c8e485660c2aedff74f10d14411",
      "tree": "ccefc2d11804064a33fa4c6822b5b26240e84c80",
      "parents": [
        "162c17fad1ffa1db1588f82773933e8984661089",
        "6353f121d73b8312bfad6451c14213e64113999e"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Sep 23 00:29:45 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 23 00:29:45 2016 +0000"
      },
      "message": "Add logging of written frame counts am: 2c45393d84\nam: 6353f121d7\n\nChange-Id: I3f569f4587c09f9f3f85d2466a3c742e2720b529\n"
    },
    {
      "commit": "ad7dd9610b6fafa81baf69607f4ac669da88182a",
      "tree": "fb08c9c45c9db1d22c4828c4fb98ff8bc2a471df",
      "parents": [
        "08e1f41731ad95a0019b3733b999958a07f705ac"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 22 12:38:37 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 22 23:43:32 2016 +0000"
      },
      "message": "audioflinger: limit max number of tracks per client\n\nLimit max number of audio tracks for a given application to\nlimit the chance of denial of service by misbehaving apps\nnot releasing tracks.\n\nBug: 7007023\nChange-Id: Id7ac37450aabdbeaa5f83cb6e4b2a2b0c749f99c\n"
    },
    {
      "commit": "2c45393d842a5d2968ef78fa7a08667efdf15f2a",
      "tree": "d259a3720b7b676532ee145202827f00d580273e",
      "parents": [
        "3b0515db3405df2e759984aff7ac59aed0b16a98"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Sep 21 12:55:15 2016 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Sep 22 13:12:37 2016 -0700"
      },
      "message": "Add logging of written frame counts\n\nBug: 31591209\nChange-Id: Ife5917aa65b02c3b0791dfe1975c70ccf58f9a75\n"
    },
    {
      "commit": "77b44035440f4dfc1c8d29da7d800f111ebe6376",
      "tree": "16bb499a29cb5ac24acdaf0f350e6fd838972e36",
      "parents": [
        "b58c4e1bbd4e2420614e1bfe13f885e502301b63",
        "79c3335e35ce7dea158ac8bf03922c843987f5a9"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 16 16:37:18 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 16 16:37:18 2016 +0000"
      },
      "message": "audio flinger: add support for effects without process function am: 6dd0fd92d6\nam: 79c3335e35\n\nChange-Id: I719e0379c19d6e0e4e50597726f83b3a1d0b3cd8\n"
    },
    {
      "commit": "6dd0fd92d6cdeb2cf5b7127c0e880e5eacfd4574",
      "tree": "bbc1a7a950617900e093696c6e81c589151ba65c",
      "parents": [
        "7c6bd7b17835cfa615d1f74aa7fe7c45c7190e4d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 15 12:44:53 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 15 17:27:27 2016 -0700"
      },
      "message": "audio flinger: add support for effects without process function\n\nAdd support for effects indicating they do not implement a process\nfunction and do not consume CPU or add latency.\n\nEnable those effects on RAW and FAST outputs and inputs.\nDo not call the process function.\n\nBug: 31491112.\nChange-Id: If020c8bb3b180568dec5138b087edec8c2524182\n"
    },
    {
      "commit": "85cda4dc026ca3ce8725202738b2deb24ce94829",
      "tree": "b4c1227e1791e7566ad068ccfd2ff35daab218ec",
      "parents": [
        "56b0c92009e76851ed3a161804117971b4defa4b",
        "927fefa85b5acbb88b3ec4b49467286d0cc3bb9e"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Aug 26 22:37:37 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Aug 26 22:37:37 2016 +0000"
      },
      "message": "Do not park the FastMixer on AudioPatch changes am: f60abceac7\nam: 927fefa85b\n\nChange-Id: I175e8ebb94c97638707480b1725cea9491ea9a98\n"
    },
    {
      "commit": "f60abceac70c7a30dc2f888c4b80256b4a01a6dd",
      "tree": "1cc5171b3bd41042ec6f45556684056cdbc69963",
      "parents": [
        "7b960a5dc58cfcbb3ef5ac05c93549edf954e5d0"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Aug 26 11:37:54 2016 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Aug 26 13:23:48 2016 -0700"
      },
      "message": "Do not park the FastMixer on AudioPatch changes\n\nCan be turned on again by property af.patch_park.\n\nBug: 30952714\nChange-Id: Id7f7750e28ecf950d110379309d18819e169e999\n"
    },
    {
      "commit": "e50af19356b852781a28233d50f06b7adde7d470",
      "tree": "47834b3f887c40ff955a4c2f3bd93b057aa7c010",
      "parents": [
        "5e86258dca0694303b2549aaff1e22b30521a28f",
        "7cba7beec49e0509a0c7aebf0942dcf347b2a42b"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Aug 22 23:03:42 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Aug 22 23:03:42 2016 +0000"
      },
      "message": "audioflinger: Fix battery accounting for offload tracks am: e94c27a17f\nam: 7cba7beec4\n\nChange-Id: Id5d5b2e5ac25a167583243d84fd060698c18930f\n"
    },
    {
      "commit": "e94c27a17fd56fd5ac63fc2de9df08cfcc80b1e3",
      "tree": "d88183ad52dcb7f0c96426a59cb6ed4200a996be",
      "parents": [
        "15223ec262f8f1135be6ee727a480dd4a04457e7"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Aug 18 17:31:46 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Aug 18 17:31:46 2016 -0700"
      },
      "message": "audioflinger: Fix battery accounting for offload tracks\n\nEnsure that the list of wakelock UIDs is only cleared if\nthe offload playback wakelock is released during async completion\nwait.\n\nBug: 30830106\nChange-Id: Icf18b9e88e55c27bc03d8a904cc91f593cc95815\n"
    },
    {
      "commit": "5ca8f32280377dd923e72c3c6bd3994217461b8b",
      "tree": "b5146ce7885539d8b002d3270346f574e3965711",
      "parents": [
        "7aeb8c8d4437eb8f45be3ad3828764795e14ad4c",
        "63ef5a38f82d22c1f97922fe490a1fd336566d5c"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Aug 10 23:53:01 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Aug 10 23:53:01 2016 +0000"
      },
      "message": "resolve merge conflicts of fd923e7 to stage-aosp-master am: df5d9246f9\nam: 63ef5a38f8\n\nChange-Id: I516a43c5e56323e99ad7a8ca2e4811b77c9704f4\n"
    },
    {
      "commit": "df5d9246f9607b1c2f8b134c46a05af06e206da3",
      "tree": "7cd9fcb42c86c8cfe950db239e21e8b5ece98369",
      "parents": [
        "7ad2854adc0abe8dd7909a6ed401107ad09bc3d2",
        "fd923e7fe2779bcd69d79471b8c30c8b98918f62"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Aug 10 15:40:39 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Aug 10 16:10:32 2016 -0700"
      },
      "message": "resolve merge conflicts of fd923e7 to stage-aosp-master\n\nChange-Id: I75b44b89bae41197a1fd68362d20b8ba2b4dd192\n"
    },
    {
      "commit": "36d0ca16024820df9a12903d2ac443fabcc180bc",
      "tree": "51e8f285ae66ad7cb922caeb7ba8d5f1d20367e3",
      "parents": [
        "67fbddfdc2cafd63c83d3bb55a2451d4c26f546d"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Aug 09 14:31:32 2016 -0700"
      },
      "committer": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Aug 10 17:56:35 2016 +0000"
      },
      "message": "Fix clang-tidy warnings in audio and playerservice.\n\n* Add explicit keyword to conversion constructors.\nBug: 28341362\n* Use const reference type for read-only parameters.\nBug: 30407689\nTest: build with WITH_TIDY\u003d1\n\nChange-Id: I265f3b094e08d5705b506b3fbba51439c134af84\nMerged-In: I265f3b094e08d5705b506b3fbba51439c134af84\n"
    },
    {
      "commit": "54efaa90a110e50b1b9a5e4badaf30d494be56a0",
      "tree": "54a0dc254b619d92b5945c9bd0b45a40d693c188",
      "parents": [
        "d3c73b760b8dcabf0988105521b33cff1deccf13",
        "527185755453d8cbdde97e8c956daa18d8b60987"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Aug 01 22:29:29 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Aug 01 22:29:29 2016 +0000"
      },
      "message": "audioflinger: fix OutputTrack initial check am: af3ec7c9a0\nam: 5271857554\n\nChange-Id: Icf61ce31fb83cc5796be5122c65b483437b17365\n"
    },
    {
      "commit": "af3ec7c9a0cfc483017d4457e0e3d77de4b1a33a",
      "tree": "2de75cb35401811b038042d1b111451d3f029984",
      "parents": [
        "3e5605b8b8a8f349d70cdb0d53409cfe69cada7b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Aug 01 11:25:19 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Aug 01 11:34:34 2016 -0700"
      },
      "message": "audioflinger: fix OutputTrack initial check\n\nCall initCheck() on newly created OutputTrack in\nDuplicatingThread::addOutputTrack() to make sure that\nthe track is successfully attached to the AudioMixer.\n\nAlso make invalid track name always fatal in AudioMixer::deleteTrackName().\n\nBug: 29953737\nChange-Id: I47f2517bd53de940e125391de99c40611ad0fc9d\n"
    },
    {
      "commit": "648bc951b86860dd11463340029eaef4b4d90003",
      "tree": "c8f0cda636bf5f114f76f6eb517f8072193cf849",
      "parents": [
        "f413847e1e9932d74ea5c358d59db1cf29764c7c",
        "416601541797b132ee8abe1e1d15d773ad975ce5"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jul 29 00:36:58 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jul 29 00:36:58 2016 +0000"
      },
      "message": "Merge \\\\\"AudioFlinger: Account for frames dropped in suspend mode\\\\\" into nyc-mr1-dev am: f769ab76d1\nam: 4166015417\n\nChange-Id: Ied8c294777ddf380876197fe620c8931e681deb5\n"
    },
    {
      "commit": "5c42082da799fa6469321e621216922444678900",
      "tree": "a349987e30848fcf580ce138413227c6f713d077",
      "parents": [
        "b7e9c3b4d88582f040857d8733e6b0b43c2d774f",
        "ef0eed3d26e54c176b813fb7656c1cfb2c473062"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jul 29 00:36:48 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jul 29 00:36:48 2016 +0000"
      },
      "message": "AudioFlinger: Account for frames dropped in suspend mode am: 238fa3deff\nam: ef0eed3d26\n\nChange-Id: I0790c3ac10654142856c9e252277fc3c7880b7c4\n"
    },
    {
      "commit": "416601541797b132ee8abe1e1d15d773ad975ce5",
      "tree": "03b82bca32f9d5cde183a95919f9eec3b0c3e5c1",
      "parents": [
        "53ca0e79ee9b02309b6eb1b890a1c309b6dcb2b2",
        "f804475807407442d5596ab7378ed07d50664063"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jul 28 23:50:09 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jul 28 23:50:09 2016 +0000"
      },
      "message": "AudioFlinger: Prevent offload underrun during active playback\nam: f804475807\n\nChange-Id: Iefc9c73590b5aede7ef3ee1a2eaf728bdd01113e\n"
    },
    {
      "commit": "f929f9b203ef4787d45f8b24aab053aaab993be9",
      "tree": "03b82bca32f9d5cde183a95919f9eec3b0c3e5c1",
      "parents": [
        "f769ab76d185a63e6da12f58fe902e977f1ad0fd",
        "f804475807407442d5596ab7378ed07d50664063"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jul 28 23:40:56 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 28 23:40:56 2016 +0000"
      },
      "message": "Merge \"AudioFlinger: Prevent offload underrun during active playback\" into nyc-mr1-dev"
    },
    {
      "commit": "238fa3deff26d7e4d9e81bd0a88c936f16226c4e",
      "tree": "a14e74e084954b1a67625c52046ab5febe76a0c5",
      "parents": [
        "11dd692efa611d129167abea854dc14f0046d727"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jul 28 10:53:22 2016 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jul 28 12:29:04 2016 -0700"
      },
      "message": "AudioFlinger: Account for frames dropped in suspend mode\n\nThese frames must be added to the kernel position in timestamps.\n\nBug: 30025777\nChange-Id: I30c14503c9467059c3782e5c96c01ae1cf3709f6\n"
    },
    {
      "commit": "f804475807407442d5596ab7378ed07d50664063",
      "tree": "1912f24061d3d57d209eef933edf0e6c41203b82",
      "parents": [
        "11dd692efa611d129167abea854dc14f0046d727"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jul 27 14:58:11 2016 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jul 27 16:20:43 2016 -0700"
      },
      "message": "AudioFlinger: Prevent offload underrun during active playback\n\nBug: 29897830\nChange-Id: Id99d416cdaa8bf62daca8f92e3564f2895f15490\n"
    },
    {
      "commit": "cbbb9a50d30360794724a0eecc10fff726706cec",
      "tree": "04a79cb346adcd40272ccdd9c0aadcc1307fbc1f",
      "parents": [
        "012ff16b258c31ddaa210316610fcf7b3cba8245",
        "b5aac433cda041c1fde2fcfadf1835f3f8d19eeb"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jul 20 18:56:53 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jul 20 18:56:53 2016 +0000"
      },
      "message": "Merge \\\"Only read timestamps from HAL if not FastCapture\\\" into nyc-mr1-dev\nam: b5aac433cd\n\nChange-Id: I35220717ab32936421a8dc906c4af2cac979a5f5\n"
    },
    {
      "commit": "b5aac433cda041c1fde2fcfadf1835f3f8d19eeb",
      "tree": "03305459986d065b2e3b5ac49dfbb3320f24e78b",
      "parents": [
        "38c75d9d30b0b40e3d926503d553c869ce7bec1c",
        "69ce44d164c7b9963c06cb96ea9d25cf99e069c9"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jul 20 18:44:53 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 20 18:44:53 2016 +0000"
      },
      "message": "Merge \"Only read timestamps from HAL if not FastCapture\" into nyc-mr1-dev"
    },
    {
      "commit": "69ce44d164c7b9963c06cb96ea9d25cf99e069c9",
      "tree": "001637c0cae7a599c8b73b37dbeb82dda1f6c7d8",
      "parents": [
        "9f6392250bf6d02a514bd83b743906dda748dee9"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jul 18 12:14:25 2016 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jul 18 13:30:05 2016 -0700"
      },
      "message": "Only read timestamps from HAL if not FastCapture\n\nPrevents blocking FastCapture from the RecordThread\n\nBug: 29392543\nChange-Id: Icd00534677be121bc4f4e9a7a6bd5b44f6f14f50\n"
    },
    {
      "commit": "97a480927d83e4d79ec915a86262ac3489377bff",
      "tree": "15445fe00c00f18afbd888cc245fe74cde05d007",
      "parents": [
        "881f62d5a1da2f0cf7222a8d304fa58faa154197",
        "cecb30a22f3657483f07f259231b81b02b2a7305"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 18 16:29:19 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jul 18 16:29:19 2016 +0000"
      },
      "message": "Merge \\\"AudioFlinger: fix offload volume on resume\\\" into nyc-mr1-dev\nam: cecb30a22f\n\nChange-Id: I7c4165affd590a4f43d631006e02f92bc4fd0a9e\n"
    },
    {
      "commit": "cecb30a22f3657483f07f259231b81b02b2a7305",
      "tree": "4a5a62592ac3f8f96ea4cd8ebbd3393bc2e56fa6",
      "parents": [
        "bc7e8996c2be0377a659348649367c2d9455f21d",
        "3df841a10b4d553949c518ad52f1af8dcb365058"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 18 16:21:07 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 18 16:21:08 2016 +0000"
      },
      "message": "Merge \"AudioFlinger: fix offload volume on resume\" into nyc-mr1-dev"
    },
    {
      "commit": "3df841a10b4d553949c518ad52f1af8dcb365058",
      "tree": "4e3320a04ac63efdb74e903c376efcbd309acd9d",
      "parents": [
        "87cbfa8c5ecbe515c380d5592cef20c1fafe36b7"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 15 15:15:40 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 15 15:59:34 2016 -0700"
      },
      "message": "AudioFlinger: fix offload volume on resume\n\nMake sure that new volume is sent to audio effects and HAL\nimmediately upon resuming playback on direct and offload threads.\n\nAlso make sure that only the latest active track on thread controls\nvolume.\n\nBug: 30057465\nChange-Id: I846958b4aae5abd3740b8a2545b57bd8f3614031\n"
    },
    {
      "commit": "78f9c3ad666d832d423550ded32f3626abbe6e28",
      "tree": "96f3c4cba0a48de603651690e3a72d086e35b1a7",
      "parents": [
        "927326caf324d555d2966d40ff435222d913066e",
        "f9715e43ea73361321663514c44129c939c5db2f"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jul 15 17:30:10 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jul 15 17:30:10 2016 +0000"
      },
      "message": "Distinguish systrace timelines for playback and capture\nam: f9715e43ea\n\nChange-Id: I67d7f23998c10a554d53cea37ad443ca1fad3f6f\n"
    },
    {
      "commit": "f9715e43ea73361321663514c44129c939c5db2f",
      "tree": "60a0f90c5c13c59bd9f41ba26e7c9e8d6f59db31",
      "parents": [
        "9f6392250bf6d02a514bd83b743906dda748dee9"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 13 14:02:03 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jul 15 08:27:55 2016 -0700"
      },
      "message": "Distinguish systrace timelines for playback and capture\n\nBug: 30120068\nChange-Id: If416540f0785e83e7b1e8ba986ee55b5b9298a2a\n"
    },
    {
      "commit": "d7fdb3b5c3f8eca33b7462cc46093752d47203c1",
      "tree": "3d0f33cae75e06cc385e3555eebc024ca4c61fd1",
      "parents": [
        "9912625fff25e5677ef618a2a36e1ac9b1983090",
        "a5bcf56619a70b0b46c737a29d873bbff8fb77a4"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 14 15:46:44 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jul 14 15:46:44 2016 +0000"
      },
      "message": "Merge \\\"AudioFlinger: fix capture stop sequence\\\" into nyc-mr1-dev\nam: a5bcf56619\n\nChange-Id: I17cde8f3113d5371e24ce1d4adafa2413752b0e3\n"
    },
    {
      "commit": "a5bcf56619a70b0b46c737a29d873bbff8fb77a4",
      "tree": "8183234bb00a1f23ab0d7b36cc3e389efc1a5657",
      "parents": [
        "3d0d2ed84140eb505440102c017cf5108ad8807c",
        "5c25d5637ef3406883e0fc97a713f9d5cdca426f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 14 15:33:18 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 14 15:33:18 2016 +0000"
      },
      "message": "Merge \"AudioFlinger: fix capture stop sequence\" into nyc-mr1-dev"
    },
    {
      "commit": "5c25d5637ef3406883e0fc97a713f9d5cdca426f",
      "tree": "abb2f66193347d42bb1114686b0472fc9bba4ff0",
      "parents": [
        "bea67b8a707b8875419019ebd2d568090310b326"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jul 13 17:17:45 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 14 15:32:05 2016 +0000"
      },
      "message": "AudioFlinger: fix capture stop sequence\n\nMake sure that the HAL input stream is actually in standby when audio policy\nis notified by stopInput().\nThere was a race condition where it was possible for a new capture stream to be started\nin the interval between stopInput() notification and input stream going into\nstandby because of the state update and sleep sequence in the record thread loop.\n\nAlso make sure we interrupt the sleep period if a command is pending.\n\nBug: 29865791\nChange-Id: Ife720fbd2e5d0df8792669dc724b1fd70f63ab8a\n"
    },
    {
      "commit": "6a7f864490766020ef791d6c803364fdb7e79cbb",
      "tree": "11f605c7170a5c6534df5fff0cf268e4d370cf69",
      "parents": [
        "ab99bf8a017616c73193357c7815f60712570573",
        "93540a6b596b1660a453d344573571462a7e6587"
      ],
      "author": {
        "name": "Haynes Mathew George",
        "email": "hgeorge@codeaurora.org",
        "time": "Tue Jul 12 21:06:36 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jul 12 21:06:36 2016 +0000"
      },
      "message": "Merge \\\"audioflinger: async callback error handling\\\" into nyc-mr1-dev\nam: 93540a6b59\n\nChange-Id: Ifa8e386c0da9e30b90884e0a787e581ace151c64\n"
    },
    {
      "commit": "93540a6b596b1660a453d344573571462a7e6587",
      "tree": "303e48e072805b8715af006267ceb68eb1cf2885",
      "parents": [
        "af0c7dfd5744b7c9e67e9afd26af417aadc6dc20",
        "4527b9ebc6a37b861f5a3bba68bcc63dc8d69ada"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jul 12 21:01:40 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 12 21:01:40 2016 +0000"
      },
      "message": "Merge \"audioflinger: async callback error handling\" into nyc-mr1-dev"
    },
    {
      "commit": "8611d5135b6a62cc4bbf89404090c9f6ac3245f5",
      "tree": "07234e2bbf4576617e51cd249221ce2df00f9aea",
      "parents": [
        "94c68350979dac298143da5446ad5e42c231bce2",
        "b28d6117a5a63fd673a38be12e7e48bc65b05ad3"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Jul 12 16:57:21 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jul 12 16:57:21 2016 +0000"
      },
      "message": "Merge \\\"Fix non-offloadable effect creation on offload threads\\\" into nyc-mr1-dev\nam: b28d6117a5\n\nChange-Id: I273585d967945cadddcd70d10514dabb64b1f2e3\n"
    },
    {
      "commit": "4527b9ebc6a37b861f5a3bba68bcc63dc8d69ada",
      "tree": "3a61cce409f275881308a214fbe5b01e0b6154b0",
      "parents": [
        "bea67b8a707b8875419019ebd2d568090310b326"
      ],
      "author": {
        "name": "Haynes Mathew George",
        "email": "hgeorge@codeaurora.org",
        "time": "Thu Jul 07 19:54:17 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 11 17:16:51 2016 -0700"
      },
      "message": "audioflinger: async callback error handling\n\nInvalidate all tracks on receiving an async error\ncallback from the output stream.\n\nChange-Id: I92f441ed7fd904b85f464a041847880faac5b383\n"
    },
    {
      "commit": "773ee957aadbe86ee53ac96a108ce47f8e02b961",
      "tree": "e9512b60b19484ee3d8a9ca2108aeb66611687af",
      "parents": [
        "bea67b8a707b8875419019ebd2d568090310b326"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Jul 11 16:53:18 2016 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Jul 11 16:53:18 2016 -0700"
      },
      "message": "Fix non-offloadable effect creation on offload threads\n\nDo not prevent the creation of non-offloadable effects on\n  offload threads.\n\nBug 29229872\n\nChange-Id: I1deebb5c0973f67a9e925ef1278d22ef7f62c779\n"
    },
    {
      "commit": "4b06aec0d4ce89859c0376096fdffeec50c65c2f",
      "tree": "6c91488b275509a3eaa4c4a7a26088f3e4191c54",
      "parents": [
        "8d54707d1a6219c9b28d851794de831579de3be3",
        "bf6dc1af5bd88135f47c2489c03cdb9f95d57927"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jul 07 21:27:23 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jul 07 21:27:23 2016 +0000"
      },
      "message": "Merge \\\"Attribute throttle time to previous loops write time\\\" into nyc-mr1-dev\nam: bf6dc1af5b\n\nChange-Id: I4bc857144d49760097f7344c1d58ad7444b66548\n"
    },
    {
      "commit": "bf6dc1af5bd88135f47c2489c03cdb9f95d57927",
      "tree": "a005f9f0b508331cd1225ef5677b6b8a166999ad",
      "parents": [
        "b343e0444a3420321c606a827347f18445d76385",
        "0a31dddf67e739684f60aecc85311ff446fb68f9"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jul 07 21:19:29 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 07 21:19:30 2016 +0000"
      },
      "message": "Merge \"Attribute throttle time to previous loops write time\" into nyc-mr1-dev"
    },
    {
      "commit": "0a31dddf67e739684f60aecc85311ff446fb68f9",
      "tree": "684e50e1372f69b2dd58cad9ee9fc9f9dd3a6979",
      "parents": [
        "7b171a9e7be64e9881ed03baad1422d75ca768a4"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jul 06 19:10:29 2016 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jul 06 19:10:29 2016 -0700"
      },
      "message": "Attribute throttle time to previous loops write time\n\nBug: 29991292\nChange-Id: Ie3ecc9631e1dfa83fafc7b003495f59e981a0b6b\n"
    },
    {
      "commit": "bde5acd3a31b19a73e6877309ce3de27b211855a",
      "tree": "191d46ceba5f89ebf1a94e578ae42dff4bd3c982",
      "parents": [
        "37bdcf605bfdd64a670080039560a3a7d8908b8d",
        "bb3bee86d56930752cfef5197cd67c4495a946e6"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jun 30 01:36:13 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jun 30 01:36:13 2016 +0000"
      },
      "message": "Merge \\\"audioflinger: fix logcat\\\" into nyc-mr1-dev\nam: bb3bee86d5\n\nChange-Id: I1b5e4c626d686379c570316181c020c5e16aa378\n"
    },
    {
      "commit": "122f7e793fe6fb8904634cc6d2e35ac4b014ea72",
      "tree": "8518fa89f4854add0def8d88ec6a2bd399912ce4",
      "parents": [
        "d023a7707fe551817fb3f7539f68a388b3381f41"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jun 29 11:53:29 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jun 29 11:56:35 2016 -0700"
      },
      "message": "audioflinger: fix logcat\n\nFix build when verbose logging is enabled in Threads.cpp.\nRemove log spam for timestamp errors.\n\nChange-Id: I704527c60e48012c5dcc00cb0be08d14ec2ab2a6\n"
    },
    {
      "commit": "9ab9f6219a0274bed6a8d64169ab695ef77d29de",
      "tree": "209c75ace298a160761ec652e4810a1bf68c1b47",
      "parents": [
        "cfbaedf0096719fa3f43bec94a9bb2e0d18da582"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu May 05 16:48:37 2016 -0700"
      },
      "committer": {
        "name": "Andre Eisenbach",
        "email": "eisenbach@google.com",
        "time": "Mon Jun 27 23:17:22 2016 +0000"
      },
      "message": "Remove throttle logcat for bluetooth\n\nDue to reduced buffer sizes for bluetooth it is possible to throttle\nregularly, do not logcat throttle for bluetooth to avoid spamming.\n\nBug: 28286313\nChange-Id: I9a572077a58c8e5cce3d5ac4de3cc6d97d94d7a0\n"
    },
    {
      "commit": "ad67b138fcec25ba99254e826c559778adf0e7f3",
      "tree": "50b77768f0aa13f2e91c530eb0297105db626fe6",
      "parents": [
        "07303a000714949a7c3240b0a62216eac4d49ac5",
        "4c415062ad1bb53e9af8f644d8215837262b79bb"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jun 20 22:20:00 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jun 20 22:20:00 2016 +0000"
      },
      "message": "audioflinger: add check for effect vs thread compatibility\nam: 4c415062ad\n\nChange-Id: Idbdb7591b291c09ced94d4eabae0edc3581e1bcd\n"
    },
    {
      "commit": "4c415062ad1bb53e9af8f644d8215837262b79bb",
      "tree": "ef03f2781c22f245b13404d321f8f1bac9e24912",
      "parents": [
        "e8a984e43504890e0f676256a0445b9917a2af91"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jun 17 16:14:16 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jun 20 12:26:30 2016 -0700"
      },
      "message": "audioflinger: add check for effect vs thread compatibility\n\nMake sure that only HW accelerated effects are added on FAST\nplayback or record threads and no effect is added on threads with\nRAW flag.\n\nMake sure that tracks with RAW and FAST flags are compatible with exiting\neffects on a playback or record threads and clear flags accordingly.\n\nBug: 4999001\n\nChange-Id: I0c060f1ee4dfb9f1e206633536e67f7c3b7b3788\n"
    },
    {
      "commit": "b70868bb337f0b12f993494f4d110979a33ddd24",
      "tree": "bde43cc6ef3f51829fd1875013e0191ffa2b4915",
      "parents": [
        "fa877e53915259d8288fa6cf16d9ebe68d4a806d",
        "2f8e63b5be5b0160302cffe1f1f18e560d31d3e7"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Jun 04 01:21:52 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Jun 04 01:21:52 2016 +0000"
      },
      "message": "Merge \"Add AudioTrack and AudioRecord flag checks\" into nyc-mr1-dev\nam: 2f8e63b5be\n\n* commit \u00272f8e63b5be5b0160302cffe1f1f18e560d31d3e7\u0027:\n  Add AudioTrack and AudioRecord flag checks\n\nChange-Id: If9043721f4763ce0f4db96c63595f92c5ba22556\n"
    },
    {
      "commit": "050677873c10d4da308ac222f8533c96cca3207e",
      "tree": "fa2d3e91f74c5d838330f52cf158be8c774eec7f",
      "parents": [
        "53c87d5bb06a168290575099378bc7bfe1dca02b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jun 01 18:27:28 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jun 03 16:46:38 2016 -0700"
      },
      "message": "Add AudioTrack and AudioRecord flag checks\n\nVerify that the requested flags are compatible with the input\nor output flags when creating and AudioRecord or AudioTrack\n\nGet rid of IAudioFlinger::track_flags_t which was redundant\nwith audio_input_flags_t and audio_output_flags_t.\n\nChange-Id: I0dd9232f857b2737e99a8c668806e45bce09cdbd\n"
    },
    {
      "commit": "6b0a8693e169a97f5fd92260bcbd437b514d7691",
      "tree": "e66adddcd25634631a49bc08b404702654b4f278",
      "parents": [
        "6a0ed5ca8434b65a3fe8bf4a5f13a230e0e8502c",
        "b09a6d08321b9484d80a2a9dc11ed52623942c8d"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed May 25 19:34:10 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed May 25 19:34:10 2016 +0000"
      },
      "message": "resolve merge conflicts of 5d8e380 to nyc-mr1-dev\nam: b09a6d0832\n\n* commit \u0027b09a6d08321b9484d80a2a9dc11ed52623942c8d\u0027:\n  AudioTrack: Fix timestamp startup condition\n\nChange-Id: Id2c883949a47daac936266310ebe4d69a5965eb3\n"
    },
    {
      "commit": "b09a6d08321b9484d80a2a9dc11ed52623942c8d",
      "tree": "552dc523c1d69c52afc3b1dacb6eb8db393b4613",
      "parents": [
        "a1bcbfec34380c5993ed39680ec6b418f63c7021",
        "5d8e3808b4012fa72bedf5898803682831f88e84"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed May 25 11:45:16 2016 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed May 25 11:45:16 2016 -0700"
      },
      "message": "resolve merge conflicts of 5d8e380 to nyc-mr1-dev\n\nChange-Id: Ic3aacd191cae0749bb33fe9ccfdac743ff82a21f\n"
    },
    {
      "commit": "8572ee135c9af5aacf74f02dd3ce8e9eb3956ec4",
      "tree": "f48f156b0b3dbeccf126359e45c729dc12c874b5",
      "parents": [
        "2e75c84b7a95eceefbc00f9533e31eef983ec014",
        "5d8e3808b4012fa72bedf5898803682831f88e84"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed May 25 18:29:54 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed May 25 18:29:54 2016 +0000"
      },
      "message": "Merge \"AudioTrack: Fix timestamp startup condition\" into nyc-dev\nam: 5d8e3808b4\n\n* commit \u00275d8e3808b4012fa72bedf5898803682831f88e84\u0027:\n  AudioTrack: Fix timestamp startup condition\n\nChange-Id: Ibc54738fb4beee0db7559e5b9f76910d639e966f\n"
    },
    {
      "commit": "69488c4ef115c9de52c85f4fcae27c7774720298",
      "tree": "9f1be0c3a13dec3768aa3e314f346afa7aa96ff0",
      "parents": [
        "f3d9908a888203e7e70b8c2d43ee741a95e154ed"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon May 16 18:43:33 2016 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 24 18:59:42 2016 -0700"
      },
      "message": "AudioTrack: Fix timestamp startup condition\n\nSuppress timestamps without valid kernel information or\na server update.\n\nUpdate timing of server timestamp location to better indicate\nwhen the server pull occurs.\n\nUpdate write timing logic to suppress unneeded time calls\nand to ensure proper throttling.\n\nBug: 28771691\nChange-Id: I2cd25dad638ca1d0b1355d87d175d908f3bddb26\n"
    },
    {
      "commit": "a15b56e48406d8242e91629e748a1b90d5977381",
      "tree": "a26e988d9f62ef698469f3eceec30b80c32d6607",
      "parents": [
        "1da2d4be0c25469ec3bd80dd8f63abb970f4a62b",
        "4d1522bdc7efaa9677ac92b620cea9e9110ec2a4"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue May 24 18:50:40 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue May 24 18:50:40 2016 +0000"
      },
      "message": "resolve merge conflicts of 53529cf to nyc-dev-plus-aosp\nam: 4d1522bdc7\n\n* commit \u00274d1522bdc7efaa9677ac92b620cea9e9110ec2a4\u0027:\n  Fix misc-macro-parentheses warnings.\n\nChange-Id: Id828c632b701e19de541fab868484ae3d4bfab45\n"
    },
    {
      "commit": "4d1522bdc7efaa9677ac92b620cea9e9110ec2a4",
      "tree": "e6fbaf33f9204ac58f6ab8195e19666455f09f46",
      "parents": [
        "cc516cdd0293fead98ed33fa0334c79a940c8653",
        "53529cf975f5247bfa8dfd8bcbaaeb8ceebda3f0"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue May 24 11:32:12 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue May 24 11:32:12 2016 -0700"
      },
      "message": "resolve merge conflicts of 53529cf to nyc-dev-plus-aosp\n\nChange-Id: Iae19c31b9ce2d9c604040e54d6fbf125a3d3d362\n"
    },
    {
      "commit": "bf29173d6d63536ae9f8cfd1d02153237ee23612",
      "tree": "3f6fe33288711b73e8683d671a57860d6f14219d",
      "parents": [
        "0603c5dfc34923095218307674a60429bfa5873a"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue May 17 15:16:07 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue May 17 15:16:07 2016 -0700"
      },
      "message": "Fix misc-macro-parentheses warnings.\n\nBug: 28705665\nChange-Id: I97d1dec9a4397fd7a3cab5180a833066b8abe0ab\n"
    },
    {
      "commit": "a043ba313b68a7e6694b17faaca7f10dd4e5f1d2",
      "tree": "fc7dc88265351ae29ca7de06dab23dbcb33dc2ed",
      "parents": [
        "3b08fe36a07308b999664709e106edbbd5852a7a",
        "514d8c512d08824b288fa1784b33a294b0f7e81d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 17 19:31:21 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue May 17 19:31:21 2016 +0000"
      },
      "message": "audioflinger: fix invalidateTracks() on offload thread am: 1308462107\nam: 514d8c512d\n\n* commit \u0027514d8c512d08824b288fa1784b33a294b0f7e81d\u0027:\n  audioflinger: fix invalidateTracks() on offload thread\n\nChange-Id: I659f616463f5df569b958e8c6178a1f1da006839\n"
    },
    {
      "commit": "57fc788e8c924823c9026f1239282d39433da821",
      "tree": "9db371e1a4f7018b8c9faca5b58470f9983bd920",
      "parents": [
        "de023ce5d812a80951431af014cf15b9b3efeb97",
        "13084621072ea2e4c34e2a9d79793c621d9bf005"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 17 19:28:29 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue May 17 19:28:29 2016 +0000"
      },
      "message": "audioflinger: fix invalidateTracks() on offload thread\nam: 1308462107\n\n* commit \u002713084621072ea2e4c34e2a9d79793c621d9bf005\u0027:\n  audioflinger: fix invalidateTracks() on offload thread\n\nChange-Id: Ib4f9306ababd292b71d4a5026bc157ef40e61120\n"
    },
    {
      "commit": "13084621072ea2e4c34e2a9d79793c621d9bf005",
      "tree": "c6675537ca5bc09afe40d9b03ad9c332b3bf1341",
      "parents": [
        "78d4d1e46c546a29ec86b98f4bfce71424c42213"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 17 10:51:49 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 17 10:51:49 2016 -0700"
      },
      "message": "audioflinger: fix invalidateTracks() on offload thread\n\nCommit 05317d29 introduced a regression causing a systematic flush\non offload output thread when invalidateTracks() is called even if\nno track is using the stream type specified.\n\nBug: 28786996\nChange-Id: Iee393ee8b1093c40647235bd35f4a6fa9b62937a\n"
    },
    {
      "commit": "64a253562a0521f5f0b3205dae98367102ebe532",
      "tree": "cbfc3d04d574cbb87a9f249a44a73ec1cb4bc8be",
      "parents": [
        "86c54273d035ff1ee6efab1a56766f883e1c98f7",
        "227a14be87e8c63eb7a464b857a1d29c86c90e7c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed May 11 22:22:14 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 11 22:22:14 2016 +0000"
      },
      "message": "Merge \"audioflinger: update multiplier logic to calculate frameCount\" into nyc-mr1-dev"
    },
    {
      "commit": "86c54273d035ff1ee6efab1a56766f883e1c98f7",
      "tree": "a2b08a8017f3680f0eb5b9d9c041c9b0c6313c2b",
      "parents": [
        "e3fe4ffa3522d0f23decc341efec12c0afb404e0",
        "f92b2175cd4a8d0fa9aca6e660ed4e85f6b7078b"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed May 11 22:22:07 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 11 22:22:08 2016 +0000"
      },
      "message": "Merge \"audioflinger: Update throttling logic in MixerThread\" into nyc-mr1-dev"
    },
    {
      "commit": "e93cc03da360a1a0d2ad937c745ce8c8e8be81c2",
      "tree": "9deae98570f41fdec272a863a2e84c7828af1a64",
      "parents": [
        "038ccfd6ff5a32d6f559e5b479d6f8e55d0b5133"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 05 10:15:10 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 11 11:38:01 2016 -0700"
      },
      "message": "audioflinger: various offload playback fixes\n\nRevert underrun sleep time optimization added for\noffload by commit 51716185 which can cause music to pause for a few\nseconds in some corner cases.\n\nAllow underruns in STOPPING_1 state to avoid dropping last buffer\nreceived by the AudioTrack callback after stop() is called by the\nclient.\n\nAllow interruption of thread loop sleep if a command is pending to\nspeed up track start sequence.\n\nDo not wait for a full AudioTrack buffer before writing to audio HAL\nwhen resuming playback or transitioning to next track.\n\nAlso moved log level for underruns in AudioSink from I to D to reduce\nspam on user builds.\n\nBug: 28545177\nBug: 27682362\nBug: 28347796\n\nChange-Id: I05b651b7878a2d2eedcac43cd669e32add171d40\n"
    },
    {
      "commit": "227a14be87e8c63eb7a464b857a1d29c86c90e7c",
      "tree": "2e9bee17db02b4daecaf088dd8b510d6e7355ec2",
      "parents": [
        "76fa63ccefbac3ca3e722bc9ba016101858c3cdd"
      ],
      "author": {
        "name": "Haynes Mathew George",
        "email": "hgeorge@codeaurora.org",
        "time": "Mon May 09 12:45:48 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue May 10 16:12:05 2016 -0700"
      },
      "message": "audioflinger: update multiplier logic to calculate frameCount\n\nIf the value of the multiplier used in calculating\nmNormalFrameCount is odd, it is rounded off to a higher even value.\n\nThis results in an increase of mNormalFrameCount and thereby\nthe latency which is not expected.\n\nDo not prefer an even multiplier and let the value remain as is\neven if it is odd.\n\nBug: 25740205\n\nauthored-by: Satya Krishna Pindiproli\u003csatyak@codeaurora.org\u003e\n\nChange-Id: Ia60d87d01caef6f45998bffeafc3d6a24f7c7fb4\n"
    },
    {
      "commit": "f92b2175cd4a8d0fa9aca6e660ed4e85f6b7078b",
      "tree": "2077136ed6c73613f0e11dd8f79d2fd43f31f10a",
      "parents": [
        "76fa63ccefbac3ca3e722bc9ba016101858c3cdd"
      ],
      "author": {
        "name": "Haynes Mathew George",
        "email": "hgeorge@codeaurora.org",
        "time": "Mon May 09 11:34:15 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue May 10 16:01:58 2016 -0700"
      },
      "message": "audioflinger: Update throttling logic in MixerThread\n\nThe throttling logic in MixerThread only keeps track of\ntime spent during sink write. However, on low tier\nAPs and with high sample rate tracks, it is possible\nthat time spent in mixing the tracks is significant.\nThis inturn leads to sink writes returning earlier than\nexpected kicking in (incorrectly) the throttling logic.\n\nTo fix this, update throttling logic to include\nthe time spent in mixing buffers along with the time\nspent in sink write.\n\nauthored-by: Dhananjay Kumar \u003cdhakumar@codeaurora.org\u003e\n\nBug: 28672515\nChange-Id: Iac4994c3084850bb93640c978b4a519db8d7951d\n"
    },
    {
      "commit": "6d7b119a416c9f10288051e562f294365e5d954c",
      "tree": "734bff32a20de4a97c24271b745795db3871cd0f",
      "parents": [
        "0b667e2f6f9e871e2fdc89100b8ef4cc623adec2"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat May 07 22:59:48 2016 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon May 09 11:42:57 2016 -0700"
      },
      "message": "Improve timestamp jitter fix\n\nUse last valid kernel timestamp on server side, not client side.\n\nBug: 28465713\nChange-Id: I33590d6922980f288355f947bc56279245058429\n"
    },
    {
      "commit": "823b18ef45f0593386d9d5d20fbf9a0379ad0ebb",
      "tree": "8245a31aac2dad65d346cad5ae6c25caca7e989f",
      "parents": [
        "375a9c03550cc1bdca9e2cca862d6e549530bac6",
        "3ea004dd80c06c5b366e1a2547ea9b28fffc1865"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 06 00:15:10 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 06 00:15:10 2016 +0000"
      },
      "message": "Merge \"Remove throttle logcat for bluetooth\" into nyc-dev"
    },
    {
      "commit": "3ea004dd80c06c5b366e1a2547ea9b28fffc1865",
      "tree": "85a859d737496e163cea22e688ab20bd28a6a106",
      "parents": [
        "26583ffe69a7601ad29e00094fe66ce795356fab"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu May 05 16:48:37 2016 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu May 05 16:48:37 2016 -0700"
      },
      "message": "Remove throttle logcat for bluetooth\n\nDue to reduced buffer sizes for bluetooth it is possible to throttle\nregularly, do not logcat throttle for bluetooth to avoid spamming.\n\nBug: 28286313\nChange-Id: I9a572077a58c8e5cce3d5ac4de3cc6d97d94d7a0\n"
    },
    {
      "commit": "05317d29b27e5fda654bea21b80d4423a03f49b3",
      "tree": "7b1a73073296e1496864a0f8546993c7b0908f2e",
      "parents": [
        "5bdfad1a45a7d5fd03732c75768eef65975660dc"
      ],
      "author": {
        "name": "Haynes Mathew George",
        "email": "hgeorge@codeaurora.org",
        "time": "Tue May 03 16:34:26 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 04 21:34:35 2016 +0000"
      },
      "message": "audioflinger: set flush pending on invalidating offload track\n\nOn invalidating an offload track, the IAudioTrack instance is\ndestroyed and the offload output is released. If it so happens\nthat APM::getOutputForAttr for the new IAudioTrack is called before\nOffloadThread::prepareTracks_l checks and removes an invalid track,\nthe same output can get reused.\n\nThe side effect of this is data present in HAL and below from before the\ninvalidate will be rendered before data from the new seek position\nis rendered. This is unexpected.\n\nTo fix this, set hint to issue flush when an offload track is invalidated.\n\nBug: 28566885\nChange-Id: Ib6c38a3abb600598b87591bac90d03b7150d5216\n"
    },
    {
      "commit": "d0389b874d592b960bdc456c2514a36b082c2c94",
      "tree": "ee34a08571fcbd657040c8f9b7f90deb34adb6c4",
      "parents": [
        "dc2c50bad491d2c0c8a2efc0e24491076701c63c",
        "ea38ee7742e799b23bd8675f5801ef72f94de0f4"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Apr 29 14:25:44 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 29 14:25:44 2016 +0000"
      },
      "message": "Merge \"Can now indicate the desired number of notifications (sub-buffers)\" into nyc-dev"
    },
    {
      "commit": "ea38ee7742e799b23bd8675f5801ef72f94de0f4",
      "tree": "49a00a228e6304a36d19ff4126293c8fce16ff73",
      "parents": [
        "ecd0a41d9a2cc9efbc4ad6d4c91d417461772933"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Apr 18 11:08:01 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Apr 28 16:36:22 2016 -0700"
      },
      "message": "Can now indicate the desired number of notifications (sub-buffers)\n\nper fast track buffer when using the default buffer size.\n\nThere is no change for normal tracks, or fast tracks with a non-default buffer size.\n\nAlso fix related bugs:\nNotification period was not set correctly when fast multiplier is not 1.\nIncorrect warning when client adjusted notification frames.\n\nBug: 27819623\nBug: 28117362\nChange-Id: Ifc2121e874f51718cd56ec04e4bd5f89f4963132\n"
    },
    {
      "commit": "dc2c50bad491d2c0c8a2efc0e24491076701c63c",
      "tree": "b1b2eead0896ffa4b095bee9fb0a00c8cc8d5944",
      "parents": [
        "ecd0a41d9a2cc9efbc4ad6d4c91d417461772933"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Apr 21 08:13:14 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Apr 28 15:17:09 2016 -0700"
      },
      "message": "Make max fast tracks configurable using a property\n\nro.audio.max_fast_tracks\n\nRename the currently configured maximum number of fast tracks\nfrom FastMixerState::kMaxFastTracks to FastMixerState::sMaxFastTracks.\n\nThere is no guarantee that the CPU will be able to handle\nthe configured number of fast tracks.\n\nBug: 27564141\nChange-Id: If9af226d839b226503488c3cb20a4bb8950b429d\n"
    },
    {
      "commit": "4a8308b11b92e608cdaf29f73f7919e75706f9a2",
      "tree": "2358eaecf7bb7beafd3341927c1621ac1a594ed3",
      "parents": [
        "88bd61e31184a72e34e5a8c2ae11d034e01845aa"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Apr 18 14:10:01 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Apr 19 13:01:54 2016 -0700"
      },
      "message": "Add AudioSystem::getFrameCountHAL()\n\nAnd add comments about declaring methods in binder opcode order.\n\nBug: 28117362\nChange-Id: I3c4426fa4bb3ce9c4a207a44d3bb1103d7fef160\n"
    },
    {
      "commit": "fc302fd9e2d2cbafef771de77c47799488e1c044",
      "tree": "aae0fe55c9cb22243f438b25fc1732a19005917b",
      "parents": [
        "25df0fc0328920c585eb30cc21eb85b74d103eb2"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Apr 11 14:11:26 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Apr 11 14:13:04 2016 -0700"
      },
      "message": "Fix audio tee sink debugging tool\n\nBug: 28119692\nChange-Id: Ieb7b41754fab0111602dd29b63b0fd8c9c4b4d2d\n"
    },
    {
      "commit": "eebc3ad457d5b9a1acc0fe0393b770004016a014",
      "tree": "f8ab6a6f1f0fa5872093d6035315afac82bf1415",
      "parents": [
        "7c6a1621ef253989ab44cf68904531b35ae8b0b1",
        "3eaf66b860f9a0d8af0dd4d5ac6adb5b67d7b73a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 01 22:28:07 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 01 22:28:07 2016 +0000"
      },
      "message": "Merge \"audioflinger: fix offload underrun sleep logic\" into nyc-dev"
    },
    {
      "commit": "3eaf66b860f9a0d8af0dd4d5ac6adb5b67d7b73a",
      "tree": "53e01dd5294f835f149b3fcba8334e0353d2cef9",
      "parents": [
        "029aaa6887a86185c451b615fadcfd97b008e9b5"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 01 14:44:17 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 01 15:23:22 2016 -0700"
      },
      "message": "audioflinger: fix offload underrun sleep logic\n\nDo not sleep in case of underrun if not enough data has been\nsent to the audio HAL since last flush or standby.\n\nBug: 27898813\nChange-Id: Ic44bed97c7397ec1156d4fe9026c4fa9f00d651c\n"
    },
    {
      "commit": "c526e1ef36f8f0520a059c6cf304e12e86170c26",
      "tree": "058eba391db31963c1808e21c2747c52f9976fee",
      "parents": [
        "1e47cb09db479f29d80c5354a5f5ddc4973ef6a5",
        "646679779a8f952980a5d4219ad9c6f93efc4b92"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 01 16:17:48 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 01 16:17:48 2016 +0000"
      },
      "message": "Merge \"audioflinger: keep wakelock during offload playback\" into nyc-dev"
    },
    {
      "commit": "32f37c22f60b7a1a6ccfa351700f80c03918d4fe",
      "tree": "7bbba0ef3e9a1fc7e48d98681f376d33727580c9",
      "parents": [
        "9887c3e252ec0571ee8637310ea9ec2eec118044"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Mar 31 16:00:32 2016 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Mar 31 16:00:32 2016 -0700"
      },
      "message": "Ignore ro.audio.silent property when playing on REMOTE_SUBMIX\n\nIgnore the effect of the ro.audio.silent property for playback\n threads playing on AUDIO_DEVICE_OUT_REMOTE_SUBMIX as playing\n in those mixes doesn\u0027t make a sound.\n\nBug 27336527\n\nChange-Id: I933cfed29cd72636fd33282e5f2ad05693688b83\n"
    },
    {
      "commit": "646679779a8f952980a5d4219ad9c6f93efc4b92",
      "tree": "5724d8865f5060b1e60ed5744279fcb0790493cd",
      "parents": [
        "029aaa6887a86185c451b615fadcfd97b008e9b5"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 30 18:19:46 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 30 18:19:46 2016 -0700"
      },
      "message": "audioflinger: keep wakelock during offload playback\n\nAdd a system property ro.audio.offload_wakelock to select\nif a wakelock should be kept during offload playback while waiting for\nwrite completion callback.\nThe default is yes, keep the wakelock.\n\nOn some platforms, the cost of entering or exiting suspend is so high\nthat is it better to not release a wakelock at all rather than releasing\nit periodically.\n\nBug: 26208297\nChange-Id: Ib41c7e4ed9c8c0c063363eb9fe99a2ecc81b521b\n"
    },
    {
      "commit": "0be3be0cf5530d6faf655c325ec9d94a2bd53564",
      "tree": "3863687a9e7e04f67d4a1aa2c6a249ef8e07999f",
      "parents": [
        "45993ad8833063a50af83f76ec1ddeba673b5277",
        "e0a269a5f75956efdf78a9cacaefc428b352730c"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Mar 28 23:50:02 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 28 23:50:02 2016 +0000"
      },
      "message": "Merge \"Fix FastTrack creation buffer count irregularity\" into nyc-dev"
    },
    {
      "commit": "9ce67b524236db52eadf558e7765775acad89f1f",
      "tree": "003ec6dcd057d91ccc84cfaa714d5b6a6b0ce650",
      "parents": [
        "15ac558b0f1873dbe0d9c1e6fed042a349f8b5a4"
      ],
      "author": {
        "name": "Haynes Mathew George",
        "email": "hgeorge@codeaurora.org",
        "time": "Wed Sep 30 11:40:47 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 25 08:06:28 2016 -0700"
      },
      "message": "Park FastCapture in HOT_IDLE while processing new parameters\n\nWithout this, FastCapture can starve RecordThread delaying\nhandling of new parameters.\n\nBug: 24667895\nChange-Id: Idb7113b7b0f96f2c35c655b6fdb3279f119ad1a3\n"
    },
    {
      "commit": "c05b8d7df46619d3474356241d47655478b8bc82",
      "tree": "27f4ef067be509b845673b603d52e723b0146fec",
      "parents": [
        "f4044e892d3939fb99ee545a5e8e8e2999f476b2"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 24 09:48:17 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 24 13:34:44 2016 -0700"
      },
      "message": "Add AutoPark template class and use to control FastMixer\n\nBug: 24667895\nChange-Id: Id739a109aca13664b9390d2f9d9616fa2f88d188\n"
    },
    {
      "commit": "e0a269a5f75956efdf78a9cacaefc428b352730c",
      "tree": "df39c63afd12c3009c56a903779e2533aacf970f",
      "parents": [
        "5a898236109c3cb705241e66583d80df413198d2"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Mar 23 15:13:42 2016 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Mar 23 15:30:21 2016 -0700"
      },
      "message": "Fix FastTrack creation buffer count irregularity\n\nFor small values of buffer framecount, AudioFlinger may create a\nnormal track.\n\nBug: 27817933\nChange-Id: I7c69491fc1f2b204e14286fb4c2210c5983afb8b\n"
    },
    {
      "commit": "c42e9b462661673dff480ee71757a58b0f806370",
      "tree": "c9d53e761500f2466b7b8c4cfeb78b072d424e29",
      "parents": [
        "02c4f1c02b832868bbae2bf2c62039e54dc0b6d4"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 21 11:35:03 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 21 12:05:28 2016 -0700"
      },
      "message": "Fix build warnings\n\nChange-Id: Idfdaff3a7a8f60cd8817bd306bfba28020a391c8\n"
    },
    {
      "commit": "7be6866af78a86a89113e9b680f1a6416ae1f711",
      "tree": "e89bc6fbcaecddfe83a01af125880b284f7ed496",
      "parents": [
        "76f27134fb546340154216212d84243d56a8928a",
        "57c4e6f7464d458eb52d209c2a63524913d6406d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Sat Mar 19 00:40:45 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Mar 19 00:40:45 2016 +0000"
      },
      "message": "Merge \"Fix build warnings\" into nyc-dev"
    },
    {
      "commit": "57c4e6f7464d458eb52d209c2a63524913d6406d",
      "tree": "b7fae46bbc981c62460d572b51d6f68b9f9b847d",
      "parents": [
        "560a198f1f95a085e24944b20df536e75e21cedb"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 18 14:54:07 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 18 17:36:37 2016 -0700"
      },
      "message": "Fix build warnings\n\nChange-Id: I33178dbe0bfc087d6599579ca0529ad853c669ed\n"
    },
    {
      "commit": "76f27134fb546340154216212d84243d56a8928a",
      "tree": "86365d4f0c5611a78c73fdb723b159dfa919274f",
      "parents": [
        "1c65a1d6e4a4a7c7a534aa6b178f4bb6e0967fb9",
        "8379b72b3c7febc5268bc8f9c152fd433a1e6c70"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Sat Mar 19 00:27:21 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Mar 19 00:27:21 2016 +0000"
      },
      "message": "Merge \"Fix copy and paste error\" into nyc-dev"
    },
    {
      "commit": "1c65a1d6e4a4a7c7a534aa6b178f4bb6e0967fb9",
      "tree": "342906f6685f5b8f8614c10d2976df31e58f988b",
      "parents": [
        "c3418d0c742ecf6ee9719512325db974f4b743f3",
        "ec6a70345fc99cd9f8461749a7656b8240874a62"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Sat Mar 19 00:27:10 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Mar 19 00:27:10 2016 +0000"
      },
      "message": "Merge \"Add systrace for normal read()\" into nyc-dev"
    },
    {
      "commit": "9cd7ad101315e0bff4c5f171706c6f80c7e22644",
      "tree": "56ceda68334ad7b45e20ae40a8b4300239b86836",
      "parents": [
        "7f7052f5e45f8eb1df80a6978e0095d9e9c9eded"
      ],
      "author": {
        "name": "vivek mehta",
        "email": "mvivek@codeaurora.org",
        "time": "Thu Mar 17 00:18:29 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Mar 18 15:46:14 2016 -0700"
      },
      "message": "audio: allow standby for direct track\n\nDelay standby for offload track use case is not suitable for direct\ntrack in PCM format, because player torn down doesn\u0027t necessarily happen.\n\nTo avoid AP looping infinitely, allow standby right after direct track\nin PCM format is paused.\n\nBug: 27746493\n\nChange-Id: Id0026ac9891a12acc4affa446b2bc841559fcc28\n"
    },
    {
      "commit": "8379b72b3c7febc5268bc8f9c152fd433a1e6c70",
      "tree": "2055991561ab91205b6e2327cece99eb2a375c37",
      "parents": [
        "560a198f1f95a085e24944b20df536e75e21cedb"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 18 14:54:17 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 18 15:06:02 2016 -0700"
      },
      "message": "Fix copy and paste error\n\nChange-Id: I0976f5651e0004948108ef43eed3f89e21ecb38b\n"
    },
    {
      "commit": "ec6a70345fc99cd9f8461749a7656b8240874a62",
      "tree": "a1a7893d237f7d74128c0389ea4400c43fafdc19",
      "parents": [
        "560a198f1f95a085e24944b20df536e75e21cedb"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 14 07:40:23 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 18 15:00:23 2016 -0700"
      },
      "message": "Add systrace for normal read()\n\nChange-Id: Icba9c9fa648909604556305da7e2d9548f5b4b0c\n"
    }
  ],
  "next": "d848eb48c121c119e8ba7583efc75415fe102570"
}
