)]}'
{
  "log": [
    {
      "commit": "bcbcb1bdda4f1970830fa4924e3a5f24171ae005",
      "tree": "9b1523a2e1e60e1a44582240f040581617fedaf0",
      "parents": [
        "823267338b2bee8c279306c07775feabfc2434a5"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Dec 13 13:03:35 2017 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Sat Dec 16 00:52:18 2017 +0000"
      },
      "message": "audiopolicy: Add more tests, fix issues found\n\nAdded tests that ensure correct initialization of APM.\n\nFixed issues:\n\n  -- UB in VolumeCurvesForStream::volIndexToDb due to not\n     checking that the pointer is non-null;\n\n  -- AudioInputDescriptor::open and SwAudioOutputDescriptor::open\n     were not checking that the returned IO handle is valid,\n     this was causing an infinite loop in\n     AudioPolicyManager::selectOutputForMusicEffects, added an\n     assertion.\n\n  -- Memory leak of VolumeCurves collection in APM.\n\nTest: audiopolicy_tests\nChange-Id: Ia4ecca1dd03b74d7f93720f042da05d5a0c74a6b\n"
    },
    {
      "commit": "823267338b2bee8c279306c07775feabfc2434a5",
      "tree": "6290eaae534daf3dadd93d8974863ea5b17a50c3",
      "parents": [
        "65f6932447d4c40d986d7c56806dc84ff7ca667b",
        "6428a766411880964e0c6609606d0f814bf5b674"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Sat Dec 16 00:33:20 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Dec 16 00:33:20 2017 +0000"
      },
      "message": "Merge \"Use %d for int32_t\" am: 240201e27b am: 63c04ff2b7\nam: 6428a76641\n\nChange-Id: I8b601680923641d7aa7f7aabed4e072fb77a24e5\n"
    },
    {
      "commit": "6428a766411880964e0c6609606d0f814bf5b674",
      "tree": "4305e1631019249459bdcfe69508e5ac7c6da555",
      "parents": [
        "3169eaa60aa85883f232e878043520ae5bd05e5e",
        "63c04ff2b789c39e52ef6a3813fd95f1197e3541"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Sat Dec 16 00:20:15 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Dec 16 00:20:15 2017 +0000"
      },
      "message": "Merge \"Use %d for int32_t\" am: 240201e27b\nam: 63c04ff2b7\n\nChange-Id: Ie30c55232b8b228fab1de5d827dc1bcf29c0f4a7\n"
    },
    {
      "commit": "0f414de66cda78cd019df9f791cb17889cfc8bca",
      "tree": "1baa4f64921ca64954c8c98f293a14da2bf91d39",
      "parents": [
        "aba76c0dbdf3ef55206c4c97d9a2f4f3d7aa69c2"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Fri Dec 15 13:48:50 2017 -0800"
      },
      "committer": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Fri Dec 15 13:50:25 2017 -0800"
      },
      "message": "Use %d for int32_t\n\nDiscovered by the upcoming compiler update.\n\nTest: build\nChange-Id: I0314ae298bc84fb07fda8736a827642c849afdc9\n"
    },
    {
      "commit": "2a8dbc7611d3861d696c167ebdced50158bbebe1",
      "tree": "3344d4d0969a5165a4ff962a0026ee77bc05493a",
      "parents": [
        "f053e8c9c858f31888665fa5deb74eacce877ec6"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Dec 15 09:31:34 2017 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Dec 15 09:32:44 2017 -0800"
      },
      "message": "audiopolicy: Add MULTILIB statement into makefile\n\nThis fixes builds that have only 32-bit or 64-bit version\nof audio server libraries.\n\nTest: build\nChange-Id: I4dc3bbe2e266a0b24d25ac00a8a2b54382b76e3d\n"
    },
    {
      "commit": "f053e8c9c858f31888665fa5deb74eacce877ec6",
      "tree": "d33a61581d8ad1d035ef026016ee2bd89d07cf5f",
      "parents": [
        "56953624a163173421297e934e1595cd816cf359",
        "05083ac19249d90af77a23c46f4229a7a002320a"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Dec 15 17:03:15 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 15 17:03:15 2017 +0000"
      },
      "message": "Merge \"EffectModule: robust computation of mMaxDisableWaitCnt\""
    },
    {
      "commit": "56953624a163173421297e934e1595cd816cf359",
      "tree": "eb05479d7cec86265ec942b3fc5b617ea16bb6b3",
      "parents": [
        "85359426edaf36ebef530d13c27d927150febf43",
        "62aef7d364670c9c255f8470b0ea874ac2cca293"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Dec 15 16:07:48 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 15 16:07:48 2017 +0000"
      },
      "message": "Merge \"EffectModule: initialize all member variables in constructor\""
    },
    {
      "commit": "05083ac19249d90af77a23c46f4229a7a002320a",
      "tree": "515a40fd7ca344de258cb5bec3afe2623d217880",
      "parents": [
        "62aef7d364670c9c255f8470b0ea874ac2cca293"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Dec 14 15:00:28 2017 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Dec 14 16:19:20 2017 -0800"
      },
      "message": "EffectModule: robust computation of mMaxDisableWaitCnt\n\nTo compensate for overflow / underflow.\n\nTest: Solo Tester and CTS effects\nBug: 70684279\nChange-Id: I7ac3d74c43320a2c6427ba2b424c8edb5a0250b1\n"
    },
    {
      "commit": "62aef7d364670c9c255f8470b0ea874ac2cca293",
      "tree": "a3a0a713b480a85ea4fbaae85dbbb7b80f211808",
      "parents": [
        "ab30516bf9e5f371b720f9cdcd6adfc11e278648"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Dec 14 14:50:40 2017 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Dec 14 16:15:39 2017 -0800"
      },
      "message": "EffectModule: initialize all member variables in constructor\n\nTest: Solo Tester and CTS effect tests\nBug: 70674145\nChange-Id: I9a9e137b8c612f0ea8862da3973d142636fad34d\n"
    },
    {
      "commit": "35268c9631ec524771580187d6a2df268e089e75",
      "tree": "2ee50d796b3edc2ecb953491ceb856fee146f19e",
      "parents": [
        "dbb54d7369deee47c439a9484d2e483dfee45849",
        "ab30516bf9e5f371b720f9cdcd6adfc11e278648"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Dec 14 23:08:00 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 14 23:08:00 2017 +0000"
      },
      "message": "Merge \"EffectModule: Update mConfig initialization\""
    },
    {
      "commit": "ab30516bf9e5f371b720f9cdcd6adfc11e278648",
      "tree": "181303738783e64189fc9933cb3265338fff4101",
      "parents": [
        "d5de81458b829504237b8e044adb3808e96ebe10"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Dec 14 12:42:22 2017 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Dec 14 12:56:31 2017 -0800"
      },
      "message": "EffectModule: Update mConfig initialization\n\nUse aggregate-initialization of mConfig to zero.\n\nTest: instrumented memcmp with static decltype(mConfig) ZERO\nBug: 70674145\nChange-Id: Ifdc8780b5da4e0e959f144a1b927ed9bd48edddf\n"
    },
    {
      "commit": "00afb7b521a47d1be4ed9f6fa7d72572756042d3",
      "tree": "4619d4ce6551517e8e170e7b55fa915828d4bfed",
      "parents": [
        "d5de81458b829504237b8e044adb3808e96ebe10",
        "ad3f8a1082c101f2c218be64e48ae615676952ea"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Dec 14 16:41:57 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 14 16:41:57 2017 +0000"
      },
      "message": "Merge \"audiopolicy: Add unit tests build target\""
    },
    {
      "commit": "d5de81458b829504237b8e044adb3808e96ebe10",
      "tree": "a91a6009a4d4b9a2335d460ee8d1186208ce25d2",
      "parents": [
        "4f5acf877822555415d7cac66f149677abf77e41",
        "c880baf8eeb521f6be8bc4720bb227eeb05d635a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Dec 14 04:01:12 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 14 04:01:12 2017 +0000"
      },
      "message": "Merge \"Reland \"Remove conditional vndbinder usage in OMX.\"\""
    },
    {
      "commit": "6f88dc4f4e71b6d54359ffa01c7521a384483810",
      "tree": "b8baa538f64f993b3ad1e4d6488e28c1bf973eb0",
      "parents": [
        "8bdef6aa8c5a0eda695259cad75be24bfd402aaf"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Dec 13 16:19:39 2017 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Dec 13 17:01:52 2017 -0800"
      },
      "message": "AudioEffect: initialize configuration in constructor\n\nTo avoid uninitialized use in setInBuffer() and setOutBuffer().\n\nTest: simulate high uninitialized frame counts and check memory usage.\nBug: 69927864\nChange-Id: I8aa68a70596bb3eaca2d4c90915f17272d90fe82\n"
    },
    {
      "commit": "ad3f8a1082c101f2c218be64e48ae615676952ea",
      "tree": "ec94ad27cebafe5eccc8e04fa9b80ad20932813d",
      "parents": [
        "ceedc87e48c92e248123b9a9476053456e62e006"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Dec 12 13:24:23 2017 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Dec 13 16:20:45 2017 -0800"
      },
      "message": "audiopolicy: Add unit tests build target\n\nThis change adds audiopolicy_tests target for running\nunit tests of AudioPolicyManager class.\n\nAudioPolicyManager class is modified to allow\nfiner control over the configuration loading.\n\nTest: audiopolicy_tests\nChange-Id: Icf0cd7ff5b3b8b827b4f6909ff2c138ac2a2b82e\n"
    },
    {
      "commit": "c880baf8eeb521f6be8bc4720bb227eeb05d635a",
      "tree": "e61c7b78e81c522d82f7149c1f5abaf06cd13dd8",
      "parents": [
        "5486f8ade279bcf0e15f68e7de39ce4072f85659"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Dec 13 20:30:27 2017 +0000"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Dec 13 21:35:40 2017 +0000"
      },
      "message": "Reland \"Remove conditional vndbinder usage in OMX.\"\n\nFugu kernels have been updated.\nBug: 70393284\nTest: fugu boots\n\nThis reverts commit 5486f8ade279bcf0e15f68e7de39ce4072f85659.\n\nChange-Id: I44142ba158f22a6a8b2f654a2cfd788dda723c3d\n"
    },
    {
      "commit": "8bdef6aa8c5a0eda695259cad75be24bfd402aaf",
      "tree": "b49ea394232ad8338a18c5196a023a367920def8",
      "parents": [
        "12f427ae00298ffcdeb2befe310a487753faca55",
        "9d5b41ac3e22040f2386b57626a74c1e29d36459"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Wed Dec 13 03:09:34 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Dec 13 03:09:34 2017 +0000"
      },
      "message": "Merge \"android.hardware.media.omx@1.0-service is not using libgui\" am: aba76c0dbd am: d6285f6bf4\nam: 9d5b41ac3e\n\nChange-Id: Id90b92c2d6c97337fdddb5c5df23eb39f8738d1a\n"
    },
    {
      "commit": "9d5b41ac3e22040f2386b57626a74c1e29d36459",
      "tree": "8e55b93ef1e4ef87ac63fb5c6dedff2561443392",
      "parents": [
        "d4fec5bea9fdf67fc436d0bd56fafa626ed5900d",
        "d6285f6bf4838655ab396ffb7d4b481502930456"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Wed Dec 13 02:42:37 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Dec 13 02:42:37 2017 +0000"
      },
      "message": "Merge \"android.hardware.media.omx@1.0-service is not using libgui\" am: aba76c0dbd\nam: d6285f6bf4\n\nChange-Id: Ide74203d4a844e06c6f1e7720b4a15e8f9363746\n"
    },
    {
      "commit": "aba76c0dbdf3ef55206c4c97d9a2f4f3d7aa69c2",
      "tree": "d61b32413a863a8af4ee794c4e1ce4136a8521ba",
      "parents": [
        "52b4df3292c54f430eb19093cd969eedbb14eaf8",
        "8c9a1779cd305a87beb3d2f9533818ea5d894003"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Dec 13 01:49:50 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 13 01:49:50 2017 +0000"
      },
      "message": "Merge \"android.hardware.media.omx@1.0-service is not using libgui\""
    },
    {
      "commit": "dc634a8b1f3f17ea99f79004830583945a27befd",
      "tree": "c85161478154b3ffac7624fa9176557d936e4010",
      "parents": [
        "deda8bf5901a8551e69b9cde9ba6efc494f5e891",
        "1b35dd6ec11bfb96fd946d6d2ec18e6938bfa090"
      ],
      "author": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Wed Dec 13 01:06:22 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 13 01:06:22 2017 +0000"
      },
      "message": "Merge \"Fix sanitizer in audioflinger Threads.cpp.\""
    },
    {
      "commit": "deda8bf5901a8551e69b9cde9ba6efc494f5e891",
      "tree": "a32321db311176c796e3aab0155b0d8196664930",
      "parents": [
        "8bc4e75f07c74dd4ec7e9492b5616d6cb35b5ad6",
        "733ce945741b1fc12cee92d8133c3136b4e6e0e0"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Dec 13 00:06:37 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 13 00:06:37 2017 +0000"
      },
      "message": "Merge \"audio policy: fix HAL stream activity ref counting\""
    },
    {
      "commit": "8bc4e75f07c74dd4ec7e9492b5616d6cb35b5ad6",
      "tree": "d6f4b945446e3b73612f359cc1b8ee5851501472",
      "parents": [
        "4ca628c4e41947c0c9bf0d98bce116f51fdbdc08",
        "0a7885e717e498167520a6ed2fdec45fb472ceee"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Dec 12 23:58:15 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 12 23:58:15 2017 +0000"
      },
      "message": "Merge changes I0d1b596c,I4b313360,Ifc835fdd,I263aa1ed,I45394bcc\n\n* changes:\n  add test for AudioRecord constructor\n  add dump() method to AudioRecord\n  audioflinger: fix recursive mutex locking\n  Revert \"Revert \"restrict binder transactions to audioserver\"\"\n  Revert \"Revert \"refactor AudioRecord and AudioFlinger openRecord()\"\"\n"
    },
    {
      "commit": "896c9670846cc66d54ba86a978109817818c3929",
      "tree": "fbc235a850cab5e27e0adffe64a3a63a1a0c7da3",
      "parents": [
        "b1cc36b5d52de7cb3d78426d41dee87f25d7164a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 08 14:08:45 2017 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 12 14:29:33 2017 -0800"
      },
      "message": "audioflinger: fix recursive mutex locking\n\nCommit 3e1acc0c5 introduced a possible recursive mutex locking when\nan AudioRecord creation request with FAST flag is rejected by\nAudioFlinger after the input was opened by audio policy.\n\nBug: 70388312\nTest: AudioRecord CTS, Audio smoke tests\nChange-Id: Ifc835fddd7e819600a834a8d058a9c98bddbee4e\n"
    },
    {
      "commit": "f14db3c3ebc1ea29b3eb5b7e9b944cabcb5f83ff",
      "tree": "ebe89d037006cc16ed8a9284563a475b6eee3348",
      "parents": [
        "ea5523d88c6dc9662621db5fc62bf50eff0fe4ba"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 08 14:20:36 2017 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 12 14:28:41 2017 -0800"
      },
      "message": "Revert \"Revert \"refactor AudioRecord and AudioFlinger openRecord()\"\"\n\nThis reverts commit 0aa3c6eba07f987fe84b5fa450274a8e730971e3.\n\nBug: 70388312\nTest: AudioRecord CTS, Audio smoke tests\nChange-Id: I45394bccf82b922aa2b68fee3e02afc280f6729c\n"
    },
    {
      "commit": "733ce945741b1fc12cee92d8133c3136b4e6e0e0",
      "tree": "fbf765136f3dcccf9595c49bdc949e426194c379",
      "parents": [
        "447d53631b7560eace6016b2711a75533339cbcc"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 07 12:18:25 2017 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 12 12:45:51 2017 -0800"
      },
      "message": "audio policy: fix HAL stream activity ref counting\n\ncommit f05fc906 did not take into account the specificities of duplicated\noutputs causing a crash when accessing the profile (null for duplicated outputs)\nand not counting activity resulting from duplicated output activity.\nAlso account for HW source activity when connected to an output mix.\n\nBug: 70319466\nTest: CTS tests for AudioTrack and AudioRecord\nTest: audio smoke tests\n\nChange-Id: Id0364170794302e42212a90e1b40e28c1e7193fe\n"
    },
    {
      "commit": "447d53631b7560eace6016b2711a75533339cbcc",
      "tree": "aee66d64d06c2651d19e09774d824aeabb7a0933",
      "parents": [
        "ae60317f881c9ed064a2cc75a091d2451ae23a0a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 07 17:59:20 2017 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 12 12:45:51 2017 -0800"
      },
      "message": "Revert \"Revert \"audio policy: fix regression in A2DP playback\"\"\n\nThis reverts commit 460451e5d7b9813926fe8fc17283e77b63adaee7.\n"
    },
    {
      "commit": "ae60317f881c9ed064a2cc75a091d2451ae23a0a",
      "tree": "976efafd8eb23d9e0b08d4ea06e92ea876c9ef7d",
      "parents": [
        "3974e3b22856ef35dd73760056ff38b7a4062176"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 07 17:59:01 2017 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 12 12:45:51 2017 -0800"
      },
      "message": "Revert \"Revert \"audio policy: add parsing for profile max open and active count\"\"\n\nThis reverts commit 79e94ec95e5d2a8c13998c2f05ae63326f7468d0.\n"
    },
    {
      "commit": "3974e3b22856ef35dd73760056ff38b7a4062176",
      "tree": "2d6d5c222659f327302f69a833744b5ba7e1f74f",
      "parents": [
        "ea5523d88c6dc9662621db5fc62bf50eff0fe4ba"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 07 17:58:43 2017 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 12 12:45:51 2017 -0800"
      },
      "message": "Revert \"Revert \"audio policy: add open and active count for IO profiles\"\"\n\nThis reverts commit 7b0e95327267f08e36b38fdd8fb2624e251b8e97.\n"
    },
    {
      "commit": "ea5523d88c6dc9662621db5fc62bf50eff0fe4ba",
      "tree": "0488edf8c95d5f52319a640ad171194460cefb99",
      "parents": [
        "1d8e6ea955b5369a183384a9dea883580c26188a",
        "d9ad45b8a538b448737d38746771b1a0fcf7b0c1"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Dec 12 19:08:53 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Dec 12 19:08:53 2017 +0000"
      },
      "message": "Merge \"Use -Werror in frameworks/av/services/mediaextractor\" am: 5988a68bb3 am: 868705c87f\nam: d9ad45b8a5\n\nChange-Id: Ic6679ffafbad08d2b6b6bac9bd8bcdddcd1c9c7a\n"
    },
    {
      "commit": "d9ad45b8a538b448737d38746771b1a0fcf7b0c1",
      "tree": "c3b5dbbdcc375e8220db200bdad056cf9fbbf3f5",
      "parents": [
        "e0911cb26af225a0c0b5bec7f5e130026e51a3e6",
        "868705c87f1c69879a805dace7ce378d785eddde"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Dec 12 19:05:00 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Dec 12 19:05:00 2017 +0000"
      },
      "message": "Merge \"Use -Werror in frameworks/av/services/mediaextractor\" am: 5988a68bb3\nam: 868705c87f\n\nChange-Id: Id59c46831b4a3b33f979315d6a640a6852de8cd3\n"
    },
    {
      "commit": "5988a68bb31ab5cfb385a06e8e9432d3c5a4d05e",
      "tree": "b49a51e07e0868efaa08c2aa51dd04c1fa50417c",
      "parents": [
        "dfd91c514fa281b1314473eb6b949c43aa5d85e7",
        "2cf9b81a67ccd98e845182f0aa784dd92a09960a"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Dec 12 18:49:25 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 12 18:49:25 2017 +0000"
      },
      "message": "Merge \"Use -Werror in frameworks/av/services/mediaextractor\""
    },
    {
      "commit": "9890519c56c3ed7e1e33b8bf3494048dfb6e4573",
      "tree": "10c15fc96da52c8eb7078f729a2244101be2e48f",
      "parents": [
        "7b9317ae3ff924762d7fd7702c8416b1199d3d93",
        "53b810ead5b726994fe6a28c6fa955e7b8799aaa"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Dec 12 00:12:22 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 12 00:12:22 2017 +0000"
      },
      "message": "Merge \"audio policy: fix device address passed when opening HAL  streams\""
    },
    {
      "commit": "53b810ead5b726994fe6a28c6fa955e7b8799aaa",
      "tree": "15653882b1b062369bc046d9ef92ccfdffbe1281",
      "parents": [
        "5fb93fa294ee05a25f86312e926b5ca4e0d1d3b2"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sun Dec 10 17:25:10 2017 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Dec 11 14:30:37 2017 -0800"
      },
      "message": "audio policy: fix device address passed when opening HAL  streams\n\nCommit fe231127 caused a regression where the device address is\nnot passed properly to audio HAL by openInputStream() or\nopenOutputStream(). The address must be read from available\ndevice descriptors, not supported devices in profiles which do not\nhave the current device address for removable devices.\n\nBug: 70321528\nTest: audio smoke tests,CTS  AudioRecordTest\nChange-Id: I83211a31f86391b80c3c244b436a2e36923ccea0\n"
    },
    {
      "commit": "b72033db3884d544987dc62297859cd6d96d4b09",
      "tree": "52ec38532314e0186ded30276dcf0edf1087eaa4",
      "parents": [
        "5fb93fa294ee05a25f86312e926b5ca4e0d1d3b2",
        "a75526626f89b08c41a2064872a1c3e65bb63778"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Mon Dec 11 22:13:21 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Dec 11 22:13:21 2017 +0000"
      },
      "message": "Merge \"CameraService: Update camera and torch state lists also at runtime\" am: 900596ac1e am: 5eeb6b1e43\nam: a75526626f\n\nChange-Id: I0abceaeb72773d0a8e15f96cc4fa595ccc0499e9\n"
    },
    {
      "commit": "a75526626f89b08c41a2064872a1c3e65bb63778",
      "tree": "1205f1888445e1e151831de42fd7ae46237a117d",
      "parents": [
        "3ede36262494cadfeec276c26897a6ab5cd3d6a9",
        "5eeb6b1e434c368dac6d2bce56759f217baf33d4"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Mon Dec 11 22:09:13 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Dec 11 22:09:13 2017 +0000"
      },
      "message": "Merge \"CameraService: Update camera and torch state lists also at runtime\" am: 900596ac1e\nam: 5eeb6b1e43\n\nChange-Id: Ie7decb502cbe7b0e6ac0f4aa5d8b82615d32de34\n"
    },
    {
      "commit": "900596ac1e4cb5b505c1279a060096b799ff8e25",
      "tree": "875ce1d9a135f9516d68f4098631caf9b529041d",
      "parents": [
        "f325208b4dd14453f04b7144b0639b93cb525a6b",
        "151e3be07d27883ee590a4c4765077ffea16c954"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Mon Dec 11 21:58:59 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 11 21:58:59 2017 +0000"
      },
      "message": "Merge \"CameraService: Update camera and torch state lists also at runtime\""
    },
    {
      "commit": "5fb93fa294ee05a25f86312e926b5ca4e0d1d3b2",
      "tree": "626a9d4c8961913ec3a992537d1b9f8b476cd95a",
      "parents": [
        "3700e162a5526ada762d081de34c9abdd085c5fe",
        "b567ba06331aeac314f74c87f2e7b9badb4d6518"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Dec 11 19:04:01 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Dec 11 19:04:01 2017 +0000"
      },
      "message": "Merge changes Ia0217951,Ie8293036,Ic359e977,I9d939d17\n\n* changes:\n  audiopolicy: Refactor AudioPolicyManager::updateCallRouting\n  audiopolicy: Remove ; after namespace bracket\n  audiopolicy: Use C++11 atomics, factor out handle generation\n  audiopolicy: Make fields of HwModule private\n"
    },
    {
      "commit": "151e3be07d27883ee590a4c4765077ffea16c954",
      "tree": "d5674b073241be20113e36af6466ccba1e88eeb0",
      "parents": [
        "d9272a936e92e8142a32e5a4b4af777ef7ab06c8"
      ],
      "author": {
        "name": "Guennadi Liakhovetski",
        "email": "guennadi.liakhovetski@intel.com",
        "time": "Tue Nov 28 16:34:18 2017 +0100"
      },
      "committer": {
        "name": "Guennadi Liakhovetski",
        "email": "guennadi.liakhovetski@intel.com",
        "time": "Mon Dec 11 10:45:35 2017 +0100"
      },
      "message": "CameraService: Update camera and torch state lists also at runtime\n\nThe Camera subsystem maintains lists of camera and torch states, that\nare updated during Camera Provider enumeration. These lists have to\nbe updated at runtime when a camera is plugged in or unplugged too.\nReuse the same code for both cases.\n\nAlso fix a bogus PRESENT callback in stopCameraOps.\n\nChange-Id: I9028a3b25d8d983441e89d52a354bed61e3f8976\nSigned-off-by: Guennadi Liakhovetski \u003cguennadi.liakhovetski@intel.com\u003e\n"
    },
    {
      "commit": "b567ba06331aeac314f74c87f2e7b9badb4d6518",
      "tree": "e94de3eaa72bdec82109bce2ed608fa95ba3a604",
      "parents": [
        "1b2a794a27caab3a1320d22b872b04ef73e96555"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Dec 08 11:16:27 2017 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Dec 08 17:23:26 2017 -0800"
      },
      "message": "audiopolicy: Refactor AudioPolicyManager::updateCallRouting\n\nThe code of the function had almost identical paths for\nRx and Tx patches creation. Factored them out, now it\u0027s much\neasier to see what is common, and what differs.\n\nTest: audio in still present incoming and outgoing telephony calls\nChange-Id: Ia02179513d76809e33c65b2dad465358acdbfc63\n"
    },
    {
      "commit": "cef7b7a656aaa1d6e875a0f0ffdf6e31f17d1aa6",
      "tree": "800a56dafa0a81c311b839a71e1184912733c9a9",
      "parents": [
        "316c3176b8b839a8465d0c0dfa3878a14d3454c0",
        "0aa3c6eba07f987fe84b5fa450274a8e730971e3"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Dec 08 21:23:29 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 08 21:23:29 2017 +0000"
      },
      "message": "Merge \"Revert \"refactor AudioRecord and AudioFlinger openRecord()\"\""
    },
    {
      "commit": "1b2a794a27caab3a1320d22b872b04ef73e96555",
      "tree": "79f53eef61b788a5f49aaf26b5c897d7a6dac49f",
      "parents": [
        "2773dd7219e6cdc56471501c90808a1bafc31d39"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Dec 08 10:18:09 2017 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Dec 08 12:06:18 2017 -0800"
      },
      "message": "audiopolicy: Remove ; after namespace bracket\n\nSemicolons are not needed after the closing bracket of\na namespace, remove it.\n\nTest: compiles\nChange-Id: Ie82930365f738fd9c95a9163839a68b772e49d95\n"
    },
    {
      "commit": "2773dd7219e6cdc56471501c90808a1bafc31d39",
      "tree": "9a514d61c4b618a1a2599c766e0e5b088876e542",
      "parents": [
        "a5e165d3a9074c09b67df5a89aa26b153cf69562"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Dec 08 10:12:11 2017 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Dec 08 12:03:28 2017 -0800"
      },
      "message": "audiopolicy: Use C++11 atomics, factor out handle generation\n\nUpdate the code to use C++11 atomics. Make sure that\nunsigned ints are used as id counters (signed ints have undefined\noverflow behavior). Factor out common code from AudioPatch\nand AudioPort.\n\nTest: compiles\nChange-Id: Ic359e97795a6282a2937d88bead8a1de27c8db7a\n"
    },
    {
      "commit": "a5e165d3a9074c09b67df5a89aa26b153cf69562",
      "tree": "c41079e712a68ff295d8bb7bf713885ca63a2682",
      "parents": [
        "22f920a8a520614d872024400bf0e371c77dcc7e"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Dec 07 17:08:02 2017 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Dec 08 12:01:19 2017 -0800"
      },
      "message": "audiopolicy: Make fields of HwModule private\n\nIt\u0027s a good practice not to expose fields of the class.\nUse getter / setter methods instead.\n\nTest: compiles\nChange-Id: I9d939d17fafdfff016a300d4f5a979bdc8414f2b\n"
    },
    {
      "commit": "316c3176b8b839a8465d0c0dfa3878a14d3454c0",
      "tree": "3284e34559f1e1069f9d1b56f14ddbe26140e2db",
      "parents": [
        "22f920a8a520614d872024400bf0e371c77dcc7e",
        "5486f8ade279bcf0e15f68e7de39ce4072f85659"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Dec 08 19:40:47 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 08 19:40:47 2017 +0000"
      },
      "message": "Merge \"Revert \"Remove conditional vndbinder usage in OMX.\"\""
    },
    {
      "commit": "5486f8ade279bcf0e15f68e7de39ce4072f85659",
      "tree": "304742b85ca8c1f6aa537c388af0781dfd934801",
      "parents": [
        "3a84fd689da769358b2025ce5632f237be681892"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Dec 08 19:33:06 2017 +0000"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Dec 08 19:40:16 2017 +0000"
      },
      "message": "Revert \"Remove conditional vndbinder usage in OMX.\"\n\nThis reverts commit 3a84fd689da769358b2025ce5632f237be681892.\n\nBug: 70393284\nReason for revert: Fugu doesn\u0027t have vndbinder\nExempt-From-Owner-Approval: Device doesn\u0027t boot.\nChange-Id: I50484019606a1d14ce31fa18f2e52b1dce1b0fa7\n"
    },
    {
      "commit": "0aa3c6eba07f987fe84b5fa450274a8e730971e3",
      "tree": "69c1c59218c8ae0e5165f71a392a8666c8b74ad6",
      "parents": [
        "3e1acc0c58b337dec4054d78c28b48b2e77e0784"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 08 18:13:22 2017 +0000"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 08 18:18:50 2017 +0000"
      },
      "message": "Revert \"refactor AudioRecord and AudioFlinger openRecord()\"\n\nThis reverts commit 3e1acc0c58b337dec4054d78c28b48b2e77e0784.\n\nbug: 70388312\n\nChange-Id: I6782d6eceeece1bad998b02af26c0119da70a13d\n"
    },
    {
      "commit": "2478d528186436f693b02c3534f04425086b638c",
      "tree": "d0b3cd0db05607b688da0b4c24f23513dcb47c46",
      "parents": [
        "cf84e596c53d5f85b64665a66ed2ec212ecff618"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Dec 07 13:02:28 2017 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Dec 07 16:43:38 2017 -0800"
      },
      "message": "audiopolicy: Use range for loops in managerdefinitions classes\n\nUse \"range for\" loops where it improves readability.\n\nChange-Id: I4fc0360956b7aa70b9e282b83f6bb371c05a8522\nTest: compiles\n"
    },
    {
      "commit": "cf84e596c53d5f85b64665a66ed2ec212ecff618",
      "tree": "37382644a3e514337cdbb1882ee6a272680758fd",
      "parents": [
        "7e22e94d0654d7ab4c31aee7f7120542e358a5ab"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Dec 07 11:25:11 2017 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Dec 07 16:43:38 2017 -0800"
      },
      "message": "audiopolicy: Refactor and fix loops in AudioPolicyManager\n\n  -- Use range for loops where possible.\n\n  -- Replace some loops over DeviceVector with a call to already\n     existing search function.\n\n  -- Fix unsigned integer overflow in a loop that decrements\n     the loop counter.\n\nChange-Id: I2ab544b8176310c15c16c04b72c2800d8526e5a5\nTest: compiles\n"
    },
    {
      "commit": "7e22e94d0654d7ab4c31aee7f7120542e358a5ab",
      "tree": "4ac3687d1298ab0c5387f8346318272792c4e23e",
      "parents": [
        "4f1e084744ee82f29a8e6c04f99a1d915e44be12"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Dec 07 10:04:29 2017 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Dec 07 16:40:20 2017 -0800"
      },
      "message": "audiopolicy: Minor cleanups\n\n  -- ensure opening bracket in \u0027for\u0027 loops is at the same line\n     with the loop statement;\n\n  -- remove \"-\" probably appeared from merge conflict resolution.\n\nChange-Id: I1ac5bc51def6f1a208042d55608e9f6e90ef8205\nTest: compiles\n"
    },
    {
      "commit": "c2845ea1aad5b1b60dc3eaa777393df38378b848",
      "tree": "ab94d7804676f75491d22bc6ab6a4a3189a4f5f1",
      "parents": [
        "7b0e95327267f08e36b38fdd8fb2624e251b8e97",
        "fa69ca3012fb4065dd892f363957a4f9a6d24757"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Dec 07 22:56:32 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 07 22:56:32 2017 +0000"
      },
      "message": "Merge \"AudioEffect: clean up format conversion in EffectModule::process()\""
    },
    {
      "commit": "7b0e95327267f08e36b38fdd8fb2624e251b8e97",
      "tree": "0c412e78c95e72016e18612167e463ccb3205da2",
      "parents": [
        "79e94ec95e5d2a8c13998c2f05ae63326f7468d0"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 07 12:20:56 2017 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 07 22:26:21 2017 +0000"
      },
      "message": "Revert \"audio policy: add open and active count for IO profiles\"\n\nBug: 70319466\n\nThis reverts commit f05fc9061254a3329bf0a3b40e27cac87b51b4cc.\n"
    },
    {
      "commit": "79e94ec95e5d2a8c13998c2f05ae63326f7468d0",
      "tree": "54df020a89feb83f12f0fd0ecef243e1c8d3f875",
      "parents": [
        "64ed5cb45b3226c5c946603c026e1b73d14ee7d8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 07 12:20:45 2017 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 07 22:24:40 2017 +0000"
      },
      "message": "Revert \"audio policy: add parsing for profile max open and active count\"\n\nBug: 70319466\n\nThis reverts commit 89984a0cbb2bc52112d7b98f5f1c13001326b130.\n"
    },
    {
      "commit": "64ed5cb45b3226c5c946603c026e1b73d14ee7d8",
      "tree": "75df581a30722231c471363983f5bff75b2cede0",
      "parents": [
        "44804b4c684b4b870cf0df1e7ace11a152eeec19",
        "460451e5d7b9813926fe8fc17283e77b63adaee7"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Dec 07 21:53:30 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 07 21:53:30 2017 +0000"
      },
      "message": "Merge \"Revert \"audio policy: fix regression in A2DP playback\"\""
    },
    {
      "commit": "460451e5d7b9813926fe8fc17283e77b63adaee7",
      "tree": "7fb04597d265f47100d93d98ae91a394ae2ade21",
      "parents": [
        "3a0bd6fcb215376eb3f27b5b4588a13f6f0f9a34"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 07 12:20:33 2017 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 07 21:17:40 2017 +0000"
      },
      "message": "Revert \"audio policy: fix regression in A2DP playback\"\n\nBug: 70319466\n\nThis reverts commit 995ba712ed77e36129485f5ac811cf328d0a27f6.\n"
    },
    {
      "commit": "44804b4c684b4b870cf0df1e7ace11a152eeec19",
      "tree": "0da1c4240615fdac87dfa2de5a293dae6e2cdd4b",
      "parents": [
        "3ad57c2e5b0e8d58f05314c947ff615671571e97",
        "d4120148e72b2352f19f74dd493e903992371ef9"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Dec 07 16:41:57 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 07 16:41:57 2017 +0000"
      },
      "message": "Merge \"audiopolicy: Refactor HwModuleCollection\""
    },
    {
      "commit": "fa69ca3012fb4065dd892f363957a4f9a6d24757",
      "tree": "f016b2927a782e3d0355a01622823bd3647eb835",
      "parents": [
        "14093dd03ceec781072b8c53693fcb5d631cddea"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Nov 30 10:07:53 2017 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Dec 06 19:19:31 2017 -0800"
      },
      "message": "AudioEffect: clean up format conversion in EffectModule::process()\n\nEditing for clarity, no change in operation.\n\nTest: Solo Tester\nBug: 69984406\nChange-Id: I683fd9b83417c3d1c6d63339537d03c55625ac13\n"
    },
    {
      "commit": "d4120148e72b2352f19f74dd493e903992371ef9",
      "tree": "fe81d9ec22eda9966fddaf89388c7870efb76a58",
      "parents": [
        "3a5608cf069994725f6e50950f0462e91dcd8c51"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Dec 06 15:49:22 2017 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Dec 06 18:00:54 2017 -0800"
      },
      "message": "audiopolicy: Refactor HwModuleCollection\n\n -- make AudioPolicyManager::mHwModules to only store\n    loaded modules; all modules stored in mHwModulesAll;\n    this removes lots of checks for HwModule::mHandle;\n\n -- use \"for range\" loops when iterating over mHwModules;\n\n -- use HwModulesCollection::getModuleFromName for finding\n    the remote submix module;\n\n -- log statements print HwModule\u0027s name instead of index.\n\nTest: audio still works\nChange-Id: I2d86caae23e87e25b6a367cb4042741f0b32e99c\n"
    },
    {
      "commit": "1b35dd6ec11bfb96fd946d6d2ec18e6938bfa090",
      "tree": "a60f889afa1282d0e37525bb78577329671bf6fe",
      "parents": [
        "eda72c27cab52c41016d8ce138438a2d59973231"
      ],
      "author": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Wed Dec 06 16:55:10 2017 -0800"
      },
      "committer": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Wed Dec 06 16:55:10 2017 -0800"
      },
      "message": "Fix sanitizer in audioflinger Threads.cpp.\n\nIn RecordThread::start(), an unsigned integer is negated before being\nset to mFramesToDrop (which is ssize_t). This causes a runtime error on\ninteger sanitized builds.\n\n runtime error: negation of 1323000 cannot be represented in type\n \u0027unsigned int\u0027\n\nThis makes the conversion to ssize_t explicitly occur before the\nnegation.\n\nBug: 30969751\nTest: Compiles.\nChange-Id: I9cf2e31728ff715c9755f257c1abf10fa5efbf82\n"
    },
    {
      "commit": "a44e24ea53e61be704387ed8b567818a184e6f25",
      "tree": "253b5b65efbd5f20aa17533ba390017b52f34b43",
      "parents": [
        "99da22681968f6b84ff804bc3b46fd46331c2229",
        "5ec161bb6845402ceed033c0f9d91127127b27e6"
      ],
      "author": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Wed Dec 06 23:03:00 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 06 23:03:00 2017 +0000"
      },
      "message": "Merge \"Fix audioflinger in overflow sanitized builds.\""
    },
    {
      "commit": "99da22681968f6b84ff804bc3b46fd46331c2229",
      "tree": "6a897bb1c345445e0757f5e0a834ba4ea218d185",
      "parents": [
        "22e91601a37e01509e3a9229e3db3242d79fe38b",
        "e71027ef59e4e48140b6fc1b5fd7a7037d2dee67"
      ],
      "author": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Wed Dec 06 22:54:28 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 06 22:54:28 2017 +0000"
      },
      "message": "Merge \"Fix integer sanitizer in FastMixerDumpState.\""
    },
    {
      "commit": "5ec161bb6845402ceed033c0f9d91127127b27e6",
      "tree": "d57e2f88d50e4eb8dbf4ab7b7dac66f94eda7ebd",
      "parents": [
        "eda72c27cab52c41016d8ce138438a2d59973231"
      ],
      "author": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Wed Dec 06 10:00:28 2017 -0800"
      },
      "committer": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Wed Dec 06 13:21:54 2017 -0800"
      },
      "message": "Fix audioflinger in overflow sanitized builds.\n\nThe loop as constructed in Track::triggerEvents potentially leads to\ntwo unsigned integer overflows on the i \u003d 0 loop.\n\nThis refactors the loop to prevent the overflow.\n\nBug: 30969751\nTest: Compiles and device boots.\nChange-Id: I7ac3223ab3197f5c475a4d09c99e6f05d0ddb208\n"
    },
    {
      "commit": "2cf9b81a67ccd98e845182f0aa784dd92a09960a",
      "tree": "27e29b241dd23682c2ca1ee22a423532fffb70c5",
      "parents": [
        "6313143933d8c3e3e3edd67a4be07379f27ca467"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Dec 06 12:37:58 2017 -0800"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Dec 06 12:37:58 2017 -0800"
      },
      "message": "Use -Werror in frameworks/av/services/mediaextractor\n\n* Allow redefinition of CHECK_OP in ADebug.h.\n\nBug: 66996870\nTest: build with WITH_TIDY\u003d1\nChange-Id: Ia6dd0ac147f586ebdc4bbc63ac63b8b73040a83d\n"
    },
    {
      "commit": "bad8babebfdf0cb92d60f92a01deeab23b463686",
      "tree": "e2e524df216db5d3e60ac8d40d131079c29fafcb",
      "parents": [
        "3d968a5a3132c4bce03f174a343d71cdcd9c0c10",
        "bded9c8bd20c6cc55d4e4f73b56fdfe86e6fbc69"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Dec 06 18:38:55 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 06 18:38:55 2017 +0000"
      },
      "message": "Merge \"AudioEffect: rename m(In|Out)Buffer16 to m(In|Out)ConversionBuffer\""
    },
    {
      "commit": "e34500b742657a60c60f69db1e6033803c7bf330",
      "tree": "96bee93ee918e4d9328bfdda269c58ec2486d071",
      "parents": [
        "0a45bd549165667dc634c3b47661c5006d8c4b22",
        "3a84fd689da769358b2025ce5632f237be681892"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Dec 06 16:58:37 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 06 16:58:37 2017 +0000"
      },
      "message": "Merge \"Remove conditional vndbinder usage in OMX.\""
    },
    {
      "commit": "0a45bd549165667dc634c3b47661c5006d8c4b22",
      "tree": "71124a7cc06dcbe38971b3a6706ae4ac39663287",
      "parents": [
        "b86313b6b3d38632fe0969f94607e66e457dfd5c",
        "995ba712ed77e36129485f5ac811cf328d0a27f6"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 06 16:41:16 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 06 16:41:16 2017 +0000"
      },
      "message": "Merge \"audio policy: fix regression in A2DP playback\""
    },
    {
      "commit": "995ba712ed77e36129485f5ac811cf328d0a27f6",
      "tree": "9159f47fec4b7e14b950cd3602bfefba8bb84997",
      "parents": [
        "1b2de88f1659106dadf31794907f4fb66d8baec1"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 05 18:45:46 2017 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 05 18:45:46 2017 -0800"
      },
      "message": "audio policy: fix regression in A2DP playback\n\ncommit f05fc906 introduced a regression preventing playback over A2DP\nto resume after the second time an A2DP device is connected.\n\nBug: 70245910\nTest: Audio smoke test, CTS test for AudioTrack.\nChange-Id: Ic6b5da96debf62be08ae12efec27ad36854fe3c5\n"
    },
    {
      "commit": "bded9c8bd20c6cc55d4e4f73b56fdfe86e6fbc69",
      "tree": "fd7748b3e070bb6760a2b3e662e0b5ad84dedcbe",
      "parents": [
        "cc25a713d9c3ea87299324d0f44864e78710020e"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Nov 30 18:47:35 2017 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Dec 05 17:05:21 2017 -0800"
      },
      "message": "AudioEffect: rename m(In|Out)Buffer16 to m(In|Out)ConversionBuffer\n\nThese buffers will be used later for channel conversion as well.\n\nTest: Solo Tester\nBug: 69984406\nChange-Id: I551a256d79793b4137b2689be1140d1d6e35ef71\n"
    },
    {
      "commit": "c32ac6d96717126bef002ccdc67c92faac9b89a7",
      "tree": "b5f5135aeb5c8b93414f174e789390a65e4da192",
      "parents": [
        "cf4fc73c89985b6b0622a5247b88a514cf2005cd",
        "94862529bf1d1506bc09a05788e56aafb5c6e7f5"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Dec 05 23:57:41 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 05 23:57:41 2017 +0000"
      },
      "message": "Merge \"aaudio: defer closing of stream until safe\""
    },
    {
      "commit": "b4e7ed5264e396b0785ca3aaca611d0db4dfdb7b",
      "tree": "688490d10c93aad995dff5c433289f0c6b2bda38",
      "parents": [
        "173524ac7ae08c7f3603ca837b7fe8537616f11b",
        "4e2eeffb7d8cbe8add700ad699afc2614668706b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Dec 05 20:12:18 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 05 20:12:18 2017 +0000"
      },
      "message": "Merge \"Update to support long version codes.\""
    },
    {
      "commit": "2d8876492d9031978a917764bb3e38c2927284ea",
      "tree": "9a59021ff6c1e016067be3d5509089e79f741c94",
      "parents": [
        "ad95755fa20a6a058e61d4a836acbadbc7bb6364",
        "3e1acc0c58b337dec4054d78c28b48b2e77e0784"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 05 18:36:05 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 05 18:36:05 2017 +0000"
      },
      "message": "Merge \"refactor AudioRecord and AudioFlinger openRecord()\""
    },
    {
      "commit": "3e1acc0c58b337dec4054d78c28b48b2e77e0784",
      "tree": "effae4bc8d462d03cb0bc1507ac0222ac47c90eb",
      "parents": [
        "eda72c27cab52c41016d8ce138438a2d59973231"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 01 16:07:37 2017 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 05 17:33:35 2017 +0000"
      },
      "message": "refactor AudioRecord and AudioFlinger openRecord()\n\nRefactor the mechanism used by audio record tracks to query and\nattach to an input mixer/stream in audio flinger. This will:\n - reduce the number of binder transactions needed to create a record track\n - move sample rate, framecount and flags validations to audio server side\n - move audio session allocation to audio server side\n - prepare restriction of certain binder transactions to audioserver only\n\nAlso:\n - renamed openRecord() to createRecord() for consistency with AudioTrack\n - make AudioRecord mStatus update consistent when calling default\n contructor + set() or constructor with arguments\n - make AudioClient, CreateTrackXXX and  CreateRecordXXX classes derive\n from Parcelable\n - restore audio session ID validity check in AudioFlinger::createTrack()\n\nTest: CTS tests: AudioRecordTest, AudioRecordingConfigurationTest, AudioPreProcessingTest\nTest: manual test for capture use cases: camcorder, OK Google, VoIP calls\nChange-Id: I72edaa7ddef1da11c77df21e88378e3aa9012d58\n"
    },
    {
      "commit": "94862529bf1d1506bc09a05788e56aafb5c6e7f5",
      "tree": "7eb5ea6b757f88bfb25f667a88ee684226243470",
      "parents": [
        "3a5608cf069994725f6e50950f0462e91dcd8c51"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Sep 13 21:31:36 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Dec 05 09:28:38 2017 -0800"
      },
      "message": "aaudio: defer closing of stream until safe\n\nWhen a client asks to close the stream, we mark it as\ncloseable. When the last client finishes with the stream\nthen we actually close it.  References to the stream are counted.\n\nThis will prevent a stream from getting closed while another thread is\ntrying to start it or stop it, etc.\n\nTest: CTS nativemedia/aaudio\nChange-Id: Ic1c7eceded6bff9899f37a5e7d9f2b695b8cdc97\n"
    },
    {
      "commit": "ad95755fa20a6a058e61d4a836acbadbc7bb6364",
      "tree": "21f586305d0ef6366be616019bd8cde2a5de5177",
      "parents": [
        "3a5608cf069994725f6e50950f0462e91dcd8c51",
        "c8842416dee22cee65f797284ba896f96f53d994"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Tue Dec 05 01:15:53 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Dec 05 01:15:53 2017 +0000"
      },
      "message": "Merge \"Revert \"Workaround for Clang emitting spurious Wunused-lambda-capture warning\"\" am: 61a7b9f0fe am: 15b0a63b27\nam: c8842416de\n\nChange-Id: I589bb9d9ffca97de92ae3655ea64b2e5cbe7a716\n"
    },
    {
      "commit": "c8842416dee22cee65f797284ba896f96f53d994",
      "tree": "f3cd74af46ecb941656441e133634a18c7653454",
      "parents": [
        "092cedda098d1f41e59fb0b48d6aad7e14426b61",
        "15b0a63b2754388468e9ed5aef2b42bd151102eb"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Tue Dec 05 01:13:20 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Dec 05 01:13:20 2017 +0000"
      },
      "message": "Merge \"Revert \"Workaround for Clang emitting spurious Wunused-lambda-capture warning\"\" am: 61a7b9f0fe\nam: 15b0a63b27\n\nChange-Id: I9292894d1b10914f0ad92bc958a358f39ca65afb\n"
    },
    {
      "commit": "15b0a63b2754388468e9ed5aef2b42bd151102eb",
      "tree": "2a383d86e2b7be2ef39a990d99768fd5de427f2d",
      "parents": [
        "8b6831cf7bd1ee7eb944b7506ed7fa2f203ea902",
        "61a7b9f0feb3f7f31e31f541d241e9cbc6090957"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Tue Dec 05 00:55:08 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Dec 05 00:55:08 2017 +0000"
      },
      "message": "Merge \"Revert \"Workaround for Clang emitting spurious Wunused-lambda-capture warning\"\"\nam: 61a7b9f0fe\n\nChange-Id: I1db8899fd0388579dcbcbf1e1aaaecb6630d62cc\n"
    },
    {
      "commit": "61a7b9f0feb3f7f31e31f541d241e9cbc6090957",
      "tree": "71efc3a9f45aaee05247e04695dccd2a6ee7152c",
      "parents": [
        "bc5a836479a6f93cc9ef29a2cc4e8dbe1d9c7de1",
        "38ec4cfcf422e9890b391552661165d01d3a4f28"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Dec 05 00:25:22 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 05 00:25:22 2017 +0000"
      },
      "message": "Merge \"Revert \"Workaround for Clang emitting spurious Wunused-lambda-capture warning\"\""
    },
    {
      "commit": "e71027ef59e4e48140b6fc1b5fd7a7037d2dee67",
      "tree": "03a63300f9e883c0d57faa61e5c0c6b4a4c187c7",
      "parents": [
        "eda72c27cab52c41016d8ce138438a2d59973231"
      ],
      "author": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Mon Dec 04 16:09:10 2017 -0800"
      },
      "committer": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Mon Dec 04 16:09:10 2017 -0800"
      },
      "message": "Fix integer sanitizer in FastMixerDumpState.\n\nPrevent FastMixerDumpState::dump(int) from throwing a runtime error on\ninteger sanitized builds.\n\n runtime error: unsigned integer overflow: 3912 - 36680 cannot be\n represented in type \u0027unsigned int\u0027\n\nThe overflow looks intentional, so this refactors the code to use\nthe builtin overflow function.\n\nBug: 30969751\nTest: Compiled and device boots.\nChange-Id: Ic84a1bd08839fe1af7f3b5318cd8d6ccee777443\n"
    },
    {
      "commit": "3a84fd689da769358b2025ce5632f237be681892",
      "tree": "e61c7b78e81c522d82f7149c1f5abaf06cd13dd8",
      "parents": [
        "f7e309d64bdbc37da47a6863025281c321f3cfd5"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon Dec 04 13:25:20 2017 -0800"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon Dec 04 13:25:20 2017 -0800"
      },
      "message": "Remove conditional vndbinder usage in OMX.\n\nPlatform consistency, removing overload of meaning\nbehind PRODUCT_FULL_TREBLE/treble variable.\n\nBug: 67975337\nTest: boot\nChange-Id: Ice340cce7053b419ba6c0ec6780e7bbdccf0cbe1\n"
    },
    {
      "commit": "3b935c6d9ada8fed370106c7741919e68e6e7c39",
      "tree": "7c7bd12ac4240bd4dc1349651efd77515511b9f4",
      "parents": [
        "f7e309d64bdbc37da47a6863025281c321f3cfd5",
        "89984a0cbb2bc52112d7b98f5f1c13001326b130"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Dec 04 20:46:30 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Dec 04 20:46:30 2017 +0000"
      },
      "message": "Merge \"audio policy: add parsing for profile max open and active count\""
    },
    {
      "commit": "f7e309d64bdbc37da47a6863025281c321f3cfd5",
      "tree": "304742b85ca8c1f6aa537c388af0781dfd934801",
      "parents": [
        "1ac4db1cbe8ce9da74a54cad95879499d536ffb4",
        "4aa219984d1b634a490ef3fe8ae6e16a4ef48d3b"
      ],
      "author": {
        "name": "Android Build Merger (Role)",
        "email": "noreply-android-build-merger@google.com",
        "time": "Mon Dec 04 20:36:00 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Dec 04 20:36:00 2017 +0000"
      },
      "message": "Merge \"Merge \"Camera: fix dump/disconnect race\" am: bc5a836479 am: 8b6831cf7b am: 092cedda09\""
    },
    {
      "commit": "4aa219984d1b634a490ef3fe8ae6e16a4ef48d3b",
      "tree": "39edeec23530a5b8b4b6d09aa42cd647f27de918",
      "parents": [
        "261be854cf49b978d5591d669e9d7943749c6028",
        "092cedda098d1f41e59fb0b48d6aad7e14426b61"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Mon Dec 04 20:35:38 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Dec 04 20:35:38 2017 +0000"
      },
      "message": "Merge \"Camera: fix dump/disconnect race\" am: bc5a836479 am: 8b6831cf7b\nam: 092cedda09\n\nChange-Id: I24885f663939fa6aa5dfd550837e350c846798cb\n"
    },
    {
      "commit": "1ac4db1cbe8ce9da74a54cad95879499d536ffb4",
      "tree": "9ad8fbe7c8ec9ef6959d87db08868f4e13687a42",
      "parents": [
        "261be854cf49b978d5591d669e9d7943749c6028",
        "f05fc9061254a3329bf0a3b40e27cac87b51b4cc"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Dec 04 20:35:30 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Dec 04 20:35:30 2017 +0000"
      },
      "message": "Merge \"audio policy: add open and active count for IO profiles\""
    },
    {
      "commit": "092cedda098d1f41e59fb0b48d6aad7e14426b61",
      "tree": "1f67f15a404b16b6749927a976aeda2255298f8f",
      "parents": [
        "41c1c2a0f4b40dc723f6a831957fe8ba6faeb5bf",
        "8b6831cf7bd1ee7eb944b7506ed7fa2f203ea902"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Mon Dec 04 19:51:59 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Dec 04 19:51:59 2017 +0000"
      },
      "message": "Merge \"Camera: fix dump/disconnect race\" am: bc5a836479\nam: 8b6831cf7b\n\nChange-Id: Ie5e4ae5e81d80ae5b25878ce797964b283e69006\n"
    },
    {
      "commit": "8b6831cf7bd1ee7eb944b7506ed7fa2f203ea902",
      "tree": "5727613aa10459998bbdc87444bfc9bdf114a14d",
      "parents": [
        "20eb8c9f341aa5adf7f80018f653e02b7f6b32d6",
        "bc5a836479a6f93cc9ef29a2cc4e8dbe1d9c7de1"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Mon Dec 04 19:49:29 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Dec 04 19:49:29 2017 +0000"
      },
      "message": "Merge \"Camera: fix dump/disconnect race\"\nam: bc5a836479\n\nChange-Id: Iaaa9173d1f65f26d2b611c4cc6f7c25023d90b2a\n"
    },
    {
      "commit": "9db89dcf3660ceb942a056f6642936522862b8e8",
      "tree": "1e9ab7f4836f6b72f868cc0fd0a0127511b49e05",
      "parents": [
        "9410a2f434162790badead38fa5e65e697b1674e",
        "fe23112742eeb6199c3aa1f3dfcf800fc2aa0e26"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Dec 04 19:12:44 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Dec 04 19:12:44 2017 +0000"
      },
      "message": "Merge \"audio policy: refactor output and input opening\""
    },
    {
      "commit": "b4d8461d8d55c7be6c0bfcdeb1010a8751b56b6a",
      "tree": "2d09bac45002700a28353786c29602d1fea064a8",
      "parents": [
        "f3cb11a0bc9e7b397c2ae84c56ae0574c68f9379",
        "69a74297cc09e7e93d05d4b1ad78da049214cd1e"
      ],
      "author": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Sun Dec 03 03:26:54 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sun Dec 03 03:26:54 2017 +0000"
      },
      "message": "Merge \"camera: Drop pending preview for enableZsl shots\" into oc-mr1-dev\nam: 69a74297cc\n\nChange-Id: Ifcde47987da1aadc3e7b11567fa5f3b6efa7cf66\n"
    },
    {
      "commit": "9cf785bdd9ec8ff83c7d6226b7435e96e0018d33",
      "tree": "f57fae08b0ac897e3996d3915ddd763f0b438e9e",
      "parents": [
        "d9272a936e92e8142a32e5a4b4af777ef7ab06c8"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Fri Dec 01 13:37:30 2017 -0800"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Fri Dec 01 13:37:30 2017 -0800"
      },
      "message": "Camera: fix dump/disconnect race\n\nKeep camera device alive during dump.\n\nChange-Id: I98f4fcdea5eb550c48257ab194bc621affb90b86\n"
    },
    {
      "commit": "4e2eeffb7d8cbe8add700ad699afc2614668706b",
      "tree": "dbacfe6599ba365eaa3e5c476f84689730daa2f5",
      "parents": [
        "62b3e7a87d1b0554cf347ba9b06978f9344c46f7"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Nov 27 14:01:29 2017 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Dec 01 11:19:51 2017 -0800"
      },
      "message": "Update to support long version codes.\n\nBug: 64459786\nTest: manual\nChange-Id: I8b251f5238d6aeed51642bc7c4fc573b2a5a408e\n"
    },
    {
      "commit": "63068520622543b57c8607612a4f44fbbef6a021",
      "tree": "ee625c543f5362737825928266ecb1dcd77d7959",
      "parents": [
        "28565390a1094b3d33ccec23ab5325e0442dead3"
      ],
      "author": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Mon Oct 23 15:59:49 2017 -0700"
      },
      "committer": {
        "name": "Trevor Bunker",
        "email": "trevorbunker@google.com",
        "time": "Fri Dec 01 07:44:28 2017 -0800"
      },
      "message": "camera: Drop pending preview for enableZsl shots\n\nIf the device support ZSL, drop pending preview buffers to reduce\nthe chance the rendering preview frames newer than the still frame\nduring takePicture().\n\nTest: CTS\nBug: 67497723\nChange-Id: I5f253a402a6302d31777ad4ca2878ef0d0d1ae44\nMerged-In: I5f253a402a6302d31777ad4ca2878ef0d0d1ae44\n"
    },
    {
      "commit": "a936ac26464263367b7342a3501f3b6db2736888",
      "tree": "b5f74990615d260d01089c6b79e3085a9c85d537",
      "parents": [
        "7e94f954823828b1f6faca7c0a297550033906a7"
      ],
      "author": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Mon Oct 23 15:59:49 2017 -0700"
      },
      "committer": {
        "name": "Trevor Bunker",
        "email": "trevorbunker@google.com",
        "time": "Fri Dec 01 07:41:35 2017 -0800"
      },
      "message": "camera: Drop pending preview for enableZsl shots\n\nIf the device support ZSL, drop pending preview buffers to reduce\nthe chance the rendering preview frames newer than the still frame\nduring takePicture().\n\nTest: CTS\nBug: 67497723\nChange-Id: I5f253a402a6302d31777ad4ca2878ef0d0d1ae44\n(cherry picked from commit c75eb9b126b2c6b7fc8f47d8ae4e4ac15f6a176e)\n"
    },
    {
      "commit": "cc25a713d9c3ea87299324d0f44864e78710020e",
      "tree": "afd8a377fc1a13fb1eb96e03bfec69ff93b3b36e",
      "parents": [
        "a9f0a7be854d844412a39538862901ca68797045",
        "c15aaeec42f2b14cff0f29bb84e58f4388975d91"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Nov 29 22:12:19 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 29 22:12:19 2017 +0000"
      },
      "message": "Merge \"Allow clearing effect hal buffers\""
    },
    {
      "commit": "597ac9f81e7e5d38ff2c67337c8841cebca5b18a",
      "tree": "bd8839683022cfeaf1bbd6ae51d5631c8934e3c1",
      "parents": [
        "b6549b6297c7f6dcbd2c0b27b61407cde144530c",
        "dd60115699e42811289432dddfecaf4ab8d187fe"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 29 02:30:05 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 29 02:30:05 2017 +0000"
      },
      "message": "Merge \"When surround setting is ALWAYS, report all surround formats.\""
    },
    {
      "commit": "c15aaeec42f2b14cff0f29bb84e58f4388975d91",
      "tree": "05370ca87ddc350edc876e351f82938f29a172c2",
      "parents": [
        "664d6012afe348c6fe906cb05fb981d1a4dbd593"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Nov 27 17:02:40 2017 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Nov 28 12:48:08 2017 -0800"
      },
      "message": "Allow clearing effect hal buffers\n\nTest: SoloTest with int effects\nBug: 69855634\nChange-Id: I273c9da600f3ab04890a7a1cb74b606cc28bea53\n"
    },
    {
      "commit": "89984a0cbb2bc52112d7b98f5f1c13001326b130",
      "tree": "313ee27abab6102d5c72367a3d15c788f276f031",
      "parents": [
        "f05fc9061254a3329bf0a3b40e27cac87b51b4cc"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Nov 22 15:43:49 2017 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Nov 28 09:36:49 2017 -0800"
      },
      "message": "audio policy: add parsing for profile max open and active count\n\nAdd parsing of \"maxOpenCount\" and \"maxActiveCount\" for input and\noutput profiles in audio_policy_configuration.xml\n\nTest: Manual with modified audio policy configuration file\nChange-Id: I352875912bacd81776e9f2e72c37bc3d3d2ac4df\n"
    },
    {
      "commit": "f05fc9061254a3329bf0a3b40e27cac87b51b4cc",
      "tree": "aa6f6c000bc5dcf7264e76cc24a354265fd53970",
      "parents": [
        "fe23112742eeb6199c3aa1f3dfcf800fc2aa0e26"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Nov 21 12:08:15 2017 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Nov 28 09:35:17 2017 -0800"
      },
      "message": "audio policy: add open and active count for IO profiles\n\nRemove the hardcoded limit of one open output stream per IO profile\nand add a max open count per IO profile.\nSame thing for maximum number of active input streams per IO profile.\n\nNow both the maximum number of opened streams and active streams for\na given profile is stored in that profile.\n\nFor now only defaults are set corresponding to legacy behavior,\nbut these values will be loaded form the audio policy configuration file.\n\nTest: AudioTrack and AudioRecord CTS tests\n\nChange-Id: I5ebcc7f8a06b3f0a52815d241c561bb65e036026\n"
    },
    {
      "commit": "664d6012afe348c6fe906cb05fb981d1a4dbd593",
      "tree": "7b2c13fe738bb377245c12a3a3ca37a3f2c58fdf",
      "parents": [
        "2082830d6ae566cefa0b27b01162d690f3c0ce21",
        "5effdf6d9ed17b4ff67a7e1adc56996c01c43383"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Nov 28 17:05:44 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 28 17:05:44 2017 +0000"
      },
      "message": "Merge \"Deprecate ditherAndClamp with memcpy_to_i16_from_q4_27\""
    },
    {
      "commit": "dd60115699e42811289432dddfecaf4ab8d187fe",
      "tree": "2c2d43e715fe3f475dd8fd52b19c168bc0072d1d",
      "parents": [
        "cd742b9174eac9f8b6a108512818f2d3a2392ea8"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Mon Nov 27 14:53:37 2017 -0800"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Mon Nov 27 14:53:37 2017 -0800"
      },
      "message": "When surround setting is ALWAYS, report all surround formats.\n\nBug: 37960084\nTest: Manually test on fugu\nChange-Id: Ie8c7289c85fdc63216e637352ac0e2bbe1097a4a\n"
    },
    {
      "commit": "2082830d6ae566cefa0b27b01162d690f3c0ce21",
      "tree": "7e5d01e203b7f0b941187ba4d51c872b425f09c4",
      "parents": [
        "cd742b9174eac9f8b6a108512818f2d3a2392ea8",
        "583a23aee1408815b5449aa96e2eccaf00ed8c32"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Mon Nov 27 22:50:52 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 27 22:50:52 2017 +0000"
      },
      "message": "Merge \"\u0027dumpsys media.metrics -proto #\u0027 doesn\u0027t lose default\""
    },
    {
      "commit": "5effdf6d9ed17b4ff67a7e1adc56996c01c43383",
      "tree": "06e5f064d6dc9b5aea55cf9a12c39d9e68091a85",
      "parents": [
        "cd742b9174eac9f8b6a108512818f2d3a2392ea8"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Nov 27 13:51:40 2017 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Nov 27 14:47:19 2017 -0800"
      },
      "message": "Deprecate ditherAndClamp with memcpy_to_i16_from_q4_27\n\nTest: test-mixer and SoloTester\nBug: 69636805\nChange-Id: I5cc04d82f3e46fbfc8188a63eb2a90fb70634c90\n"
    },
    {
      "commit": "583a23aee1408815b5449aa96e2eccaf00ed8c32",
      "tree": "cbcb38788b527af3defdfa868b5372af40ee4c8c",
      "parents": [
        "6b0e0f0299748dad99dfb5f65c7203bef1abb757"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Mon Nov 27 12:49:57 2017 -0800"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Mon Nov 27 12:49:57 2017 -0800"
      },
      "message": "\u0027dumpsys media.metrics -proto #\u0027 doesn\u0027t lose default\n\nmakes sure that using \"-proto #\" option for dumpsys of the metrics\nservice doesn\u0027t leave the protocol set there; we want it to come\nback to the defined default if there is no \"-proto #\" on subsequent\ninvocations.\n\nBug: 69797899\nTest: multiple dumpsys invocations\n"
    }
  ],
  "next": "ef6cf3fc6cfb12e089e787efcbf1fc485ed54931"
}
