)]}'
{
  "log": [
    {
      "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": "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": "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"
    },
    {
      "commit": "ef6cf3fc6cfb12e089e787efcbf1fc485ed54931",
      "tree": "a197eb396f5e84684d937da00e091a27c7de7f2e",
      "parents": [
        "693cb2bde52b4d73c391c529f1c6bf7a02be9f72",
        "94a1ee822686e920a33e312f4032f991731aea07"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Nov 22 19:39:53 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 22 19:39:53 2017 +0000"
      },
      "message": "Merge \"Converting effect chains to float point by default.\""
    },
    {
      "commit": "693cb2bde52b4d73c391c529f1c6bf7a02be9f72",
      "tree": "e90e62f72eed4f7c6cc88d1777abf9a9c17e5cc4",
      "parents": [
        "720e24cfe430e1719c5defb9a1f41a6b63b02eaf",
        "2329638e097622653cb2c4acc145b996e317a38b"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Nov 22 18:16:26 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 22 18:16:26 2017 +0000"
      },
      "message": "Merge \"aaudio: use xruns detected in the service\""
    },
    {
      "commit": "94a1ee822686e920a33e312f4032f991731aea07",
      "tree": "5a8e84b19269529153e94fa2f0a6b927823f6848",
      "parents": [
        "c275189ccbfe8ca29437a24256195c61de2f2a6d"
      ],
      "author": {
        "name": "rago",
        "email": "rago@google.com",
        "time": "Fri Jul 21 15:11:02 2017 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Nov 21 20:39:19 2017 -0800"
      },
      "message": "Converting effect chains to float point by default.\n\nRemoved additional conversions from/to int16/float.\nFixed config file restrictions.\nDetection of native format (int16/float) of effects.\nOn-the-fly conversion to/from 16 bit effects if necessary.\nWIP: testing effects in all possible configurations.\n\nBug: 63935479\nTest: Bufflog dumps, frequency analysis comparison, SoloTester\nChange-Id: Id4cabc5c5698befc90a5d68b0b996a9b9adebfc4\n"
    },
    {
      "commit": "fe23112742eeb6199c3aa1f3dfcf800fc2aa0e26",
      "tree": "5297ab7f4a098bd8c0c0e89e27a54e9fd450ce5a",
      "parents": [
        "a221a7c81776add538e6cd82cddfa427364beb79"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Nov 17 17:48:06 2017 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Nov 21 14:14:49 2017 -0800"
      },
      "message": "audio policy: refactor output and input opening\n\nRefactor the way input and output streams are open so that common\nlogic is centralized in AudioOutputDescriptor and AudioInputDescriptor\nclasses.\n\nThis is in preparation of adding reference counting for ouputs and inputs\nopened for a given profile.\n\nTest: Manual\nChange-Id: Id806e23077eb41f6398400ab40aeaa694c7d5603\n"
    },
    {
      "commit": "2329638e097622653cb2c4acc145b996e317a38b",
      "tree": "d25dccdc184ac7ce8b7aceb227411592ff256484",
      "parents": [
        "10edfcf70857cc0a22afbbd3fc8f57f0c8a2953a"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Nov 20 15:45:11 2017 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Nov 21 10:30:58 2017 -0800"
      },
      "message": "aaudio: use xruns detected in the service\n\nThe service knows when an actual xrun occurs so we pass\nthat value to the client.\n\nBug: 38512417\nTest: write_sine_callback -pl -n1 -s20 -c2 -u\nChange-Id: I9e5ff1edd2e9378957309280162d7cda855f5adb\n"
    },
    {
      "commit": "ee9ab22ebabab3e3669b38badf8b0a0f504fc3b4",
      "tree": "dae301adca07186dee680107492ef68403febfbb",
      "parents": [
        "e9f825a08817134810be42d6a2b4b444d68a2843",
        "21da647792c0b78ab3943be0f32066015d5e8c34"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 21 00:36:49 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 21 00:36:49 2017 +0000"
      },
      "message": "Merge \"refactor AudioTrack and AudioFlinger createTrack()\""
    },
    {
      "commit": "e7b894297aebc24939ddfa632ea3dd2d405d9f93",
      "tree": "9ecbc48782ee462413281ecdf7f5b6b276e96eee",
      "parents": [
        "068fe16a1b8f511046ba787f33605c0ac64f1ab5"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Thu Nov 16 19:33:39 2017 -0800"
      },
      "committer": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Thu Nov 16 23:32:11 2017 -0800"
      },
      "message": "Remove dependency on non-Treble OMX\n\nThis essentially reverts commit ba40190c5e8d9bfe5b814984c6861809fea064bd,\nwhich was made originally for b/69110957.\n\nThe change in addition to reverting is the reordering of calls in\nmain_codecservice.cpp. This CL makes the call to SetUpMinijail() come\nbefore the call to ProcessState::self()-\u003estartThreadPool().\n\nTest: make cts -j123 \u0026\u0026 cts-tradefed run cts-dev -m \\\nCtsMediaTestCases --compatibility:module-arg \\\nCtsMediaTestCases:include-annotation:\\\nandroid.platform.test.annotations.RequiresDevice\n\nTest: make vts -j123 \u0026\u0026 vts-tradefed run commandAndExit vts \\\n--skip-all-system-status-check \\\n--skip-preconditions -m VtsHalMediaOmxV1_0Host \\\n-l INFO\n\nBug: 67990472\nChange-Id: Ic62acf3ae1aa3f9249e5c3ce542fb4f95689704e\n"
    },
    {
      "commit": "068fe16a1b8f511046ba787f33605c0ac64f1ab5",
      "tree": "8012260051c564bb5cfc4b24d94bcbef28cf410c",
      "parents": [
        "2b1f16f57c984c9b4b320788fdb2733c519281e8",
        "ba40190c5e8d9bfe5b814984c6861809fea064bd"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 17 01:54:48 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 17 01:54:48 2017 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Revert \"Remove unused modules made for non-Treble OMX\"\"\"\""
    },
    {
      "commit": "ba40190c5e8d9bfe5b814984c6861809fea064bd",
      "tree": "f935c1e123522e1624163278a8b8564c71c9a394",
      "parents": [
        "77a5b891eb2c64246c82d695aac40c5312f0ff3e"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Thu Nov 16 15:38:46 2017 -0800"
      },
      "committer": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Thu Nov 16 23:57:36 2017 +0000"
      },
      "message": "Revert \"Revert \"Revert \"Remove unused modules made for non-Treble OMX\"\"\"\n\nThis reverts commit 620e4667dc41e17e365615fda4507fa9f7267ca0, which was\nmade originally for b/67990472.\n\nBug: 69110957\n"
    },
    {
      "commit": "21da647792c0b78ab3943be0f32066015d5e8c34",
      "tree": "15ad0b64bf6eaabf24223d7fd376ef9ac00eb9cc",
      "parents": [
        "a4fa4760fa417473324e009b3f4117a2d539c486"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 09 16:29:26 2017 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 16 11:33:12 2017 -0800"
      },
      "message": "refactor AudioTrack and AudioFlinger createTrack()\n\nRefactor the mechanism used by audio tracks to query and attach\nto an output mixer/stream in audio flinger. This will:\n- reduce the number of binder transactions needed to create a track\n- move sample rate, framecount and flags validations to audio server\nside\n- move audio session allocation to audio server side\n- prepare restriction of certain binder transactions to audioserver only\n\nTest: CTS tests for AudioTrack\n\nChange-Id: If4369aad6c080a56c0b42fbfcc97c8ade17a7439\n"
    },
    {
      "commit": "8f35d0b4f06cc32b760df2c012269a6546e08a31",
      "tree": "fc7beb2091aa293f26ec430e555c5ddf287dcc34",
      "parents": [
        "6db04c2decafd1c3ee50d6c51d582c2c48d7a361",
        "07405ee8c22bf9184de5a4ea15e683f45b20bd89"
      ],
      "author": {
        "name": "Chris Thornton",
        "email": "thorntonc@google.com",
        "time": "Wed Nov 15 19:36:43 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 15 19:36:43 2017 +0000"
      },
      "message": "Merge \"ServiceStateEvents don\u0027t need to called with the mServiceState lock anymore.\""
    },
    {
      "commit": "6db04c2decafd1c3ee50d6c51d582c2c48d7a361",
      "tree": "8ca016b391648d05677d09ba1983abdba42d8036",
      "parents": [
        "3e27b9e5e25e2f1bd51b2cb32995adb430fd3ef1",
        "e5db6dbc501685205c8fdbaf883e10ecf4475b52"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 15 18:05:40 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 15 18:05:40 2017 +0000"
      },
      "message": "Merge \"Avoid UAF in media metrics service\""
    },
    {
      "commit": "07405ee8c22bf9184de5a4ea15e683f45b20bd89",
      "tree": "e651d7d77526e7f15c94fc4d0d2b2d694621a806",
      "parents": [
        "7db8b99d00f2399faba9de2f8b2c13b05d10aec5"
      ],
      "author": {
        "name": "Chris Thornton",
        "email": "thorntonc@google.com",
        "time": "Tue Nov 14 20:45:27 2017 -0800"
      },
      "committer": {
        "name": "Chris Thornton",
        "email": "thorntonc@google.com",
        "time": "Tue Nov 14 20:47:51 2017 -0800"
      },
      "message": "ServiceStateEvents don\u0027t need to called with the mServiceState lock anymore.\n\nTest: On taimen with sound trigger test app.\nChange-Id: I2520ba9fa7d3736ea04df1abe6229ad973932768\n"
    },
    {
      "commit": "7db8b99d00f2399faba9de2f8b2c13b05d10aec5",
      "tree": "cef4ea60750b20629d21f3c3f33789acc8aaf12e",
      "parents": [
        "68f1d2842541f043ca318b01690a7cdb41b1df78"
      ],
      "author": {
        "name": "Hongwei Wang",
        "email": "hwwang@google.com",
        "time": "Tue Nov 14 13:26:54 2017 -0800"
      },
      "committer": {
        "name": "Hongwei Wang",
        "email": "hwwang@google.com",
        "time": "Tue Nov 14 14:18:59 2017 -0800"
      },
      "message": "Adds AUDIO_DEVICE_IN_FM_TUNER/_BUS to virtual input device list\n\nBug: 69311798\nTest: m -j\nChange-Id: I4e7de370c61be48b8dcfd178bbc47d7ce68fe107\n"
    },
    {
      "commit": "a4fa4760fa417473324e009b3f4117a2d539c486",
      "tree": "870d16b28c38f0421004eb67ab699b5cd107d771",
      "parents": [
        "81fb7fd7059070125657affd9fe919e70612c93c",
        "40ead60d7163c2d5577099d49f11da7afa6124d1"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 14 14:08:45 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 14 14:08:45 2017 +0000"
      },
      "message": "Merge \"Add support for dynamic shared output surfaces\""
    },
    {
      "commit": "955e50fae198b0a56832061285695b726fe63e16",
      "tree": "242ab209476ae2ffdd1ead201db053b8fc3858b9",
      "parents": [
        "201db12eb73c6e056e592ee87fd47621dbe6d30e",
        "c990152585f6b654ffe7e1dbff483d4ecddc019b"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Nov 14 00:21:51 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 14 00:21:51 2017 +0000"
      },
      "message": "Merge \"Check for valid format before match in AudioPolicyManager::selectOutput\""
    },
    {
      "commit": "c990152585f6b654ffe7e1dbff483d4ecddc019b",
      "tree": "0e64a122e3f6e0188d49e6ec3be64f17a57fbc52",
      "parents": [
        "97e8b37f946c024d9cad312fd7f1a30f56cb3302"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Nov 10 20:07:54 2017 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Nov 13 14:37:58 2017 -0800"
      },
      "message": "Check for valid format before match in AudioPolicyManager::selectOutput\n\nTest: MediaPlayerTest#testConcurentPlayAudio\nBug: 69054370\nChange-Id: I11763187d4e7b69f8b242547d1e9e27afe6223be\n"
    },
    {
      "commit": "10610c9b7e36db93004284bf044301ac0dce4bf2",
      "tree": "a9134a845c782b29806d5b125186d45bd842a806",
      "parents": [
        "4201c1c4fd0287e95d4b7cac34d9d0d44ea32737",
        "e5138f10ca712365a917894ef381b9216d95ca14"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Nov 11 04:03:42 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Nov 11 04:03:42 2017 +0000"
      },
      "message": "Merge \"Camera: keep camera device alive during dump\""
    },
    {
      "commit": "e5db6dbc501685205c8fdbaf883e10ecf4475b52",
      "tree": "eab21b0091fa35203b63b9056fe876d51def0acf",
      "parents": [
        "dd97f52b3969ee8d6fb611e045ada26037e44e27"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Fri Nov 10 15:54:32 2017 -0800"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Fri Nov 10 15:54:32 2017 -0800"
      },
      "message": "Avoid UAF in media metrics service\n\nRe-arranged several potential UAF accesses in the handling of saved\nmedia.metrics items. Also avoids possible \u0027save and immediately\ndelete\u0027 behavior in certain queue situations.\n\nBug: 69002257\nTest: watched dumpsys media.metrics\nChange-Id: I8ab056f14d845aa27f3e65a77bc6c7dbfac24e4f\n"
    },
    {
      "commit": "4593b04bdad2ae66b22c5d3fb78276b523b7e942",
      "tree": "d855fc3d7505c608fc720474d2af565feb131738",
      "parents": [
        "ea8dd2c787f88e7289ffb8f226237587f95d8a93",
        "79edadcea74151b573d5b973d5a421baee693ec1"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Fri Nov 10 15:29:40 2017 -0800"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Fri Nov 10 15:33:45 2017 -0800"
      },
      "message": "Merge commit \u002779edadcea74151b573d5b973d5a421baee693ec1\u0027 from\noc-mr1-dev-plus-aosp into stage-aosp-master\n\nChange-Id: I04234f284e3117e8343e7c888646400c81f5a131\nMerged-In: Icf228c701afe37dd3c7f00ea9e6fb740b0d450f1\n"
    },
    {
      "commit": "e5138f10ca712365a917894ef381b9216d95ca14",
      "tree": "de80fad0936dc9ffa0cc23110e2a672e3697f068",
      "parents": [
        "e2ded2133ae4c8afc712bf7e82dde6ecd5bd110c"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Fri Nov 10 14:10:05 2017 -0800"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Fri Nov 10 14:10:05 2017 -0800"
      },
      "message": "Camera: keep camera device alive during dump\n\nBug: 37868600\nChange-Id: I143228b322ef4d0bce470bbd6c5fb562626b183b\n"
    },
    {
      "commit": "38ec4cfcf422e9890b391552661165d01d3a4f28",
      "tree": "4a302f4972d38d8ea27263b6d9ccaf4d4c6da21a",
      "parents": [
        "debd04d3df0cef1231ad50630c8a0c931a0874c0"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Fri Nov 10 04:39:47 2017 +0000"
      },
      "committer": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Fri Nov 10 04:39:47 2017 +0000"
      },
      "message": "Revert \"Workaround for Clang emitting spurious Wunused-lambda-capture warning\"\n\nThis reverts commit debd04d3df0cef1231ad50630c8a0c931a0874c0.\n\nThe new Clang prebuilt contains fix for the issue, this workaround is no longer necessary.\n\nBug: 38349491\nChange-Id: Ia45f6bf3a151e35460b60ea7e087fc00a80084ab\n"
    },
    {
      "commit": "25a0160e3dfa126266cbe5d8e05c003798276a70",
      "tree": "7ac92c9e53ad197b928304ab34c9371a77468ce4",
      "parents": [
        "94d28be1805800764701225fcae696aa11dab93e",
        "620e4667dc41e17e365615fda4507fa9f7267ca0"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 09 01:16:14 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 09 01:16:14 2017 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Remove unused modules made for non-Treble OMX\"\"\""
    },
    {
      "commit": "002565a3dee1d21f117fca60a37c7d339f724d88",
      "tree": "7288d3cded4f6d99740e15bd42a3b9360efe2acb",
      "parents": [
        "c8061784ac0c1c98e5961501634925c8a4f95e51",
        "ea04d3913f9c10b5ef559ec794e3584f5505ce2d"
      ],
      "author": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Wed Nov 08 20:07:51 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 08 20:07:51 2017 +0000"
      },
      "message": "Merge \"Fix sanitizer in AudioFlinger threadLoop.\""
    },
    {
      "commit": "40ead60d7163c2d5577099d49f11da7afa6124d1",
      "tree": "94fad1bcef74661c8e12e9c79ecb37be344aff99",
      "parents": [
        "c8061784ac0c1c98e5961501634925c8a4f95e51"
      ],
      "author": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Tue Sep 26 15:46:36 2017 +0100"
      },
      "committer": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Wed Nov 08 13:54:14 2017 +0000"
      },
      "message": "Add support for dynamic shared output surfaces\n\nThe Camera API needs to support the dynamic attach/detach of extra\noutput surfaces to a given camera stream.\n\nBug: 63912484\nChange-Id: I18809aea31f78fb9e125bd18b58951ade4fad3c5\n"
    },
    {
      "commit": "ea04d3913f9c10b5ef559ec794e3584f5505ce2d",
      "tree": "98731b0a2060feaf0b8efe8b82b0f2a864f235d8",
      "parents": [
        "51f4bac261c544eedb577ceb3e3b5d9ddf8d0238"
      ],
      "author": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Tue Nov 07 14:37:07 2017 -0800"
      },
      "committer": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Tue Nov 07 14:47:06 2017 -0800"
      },
      "message": "Fix sanitizer in AudioFlinger threadLoop.\n\nThe integer sanitizer was catching an unsigned integer overflow on the\ncalculation for throttleMs. This gets implicitly cast to a signed\ninteger anyways, so just perform the cast explicitly.\n\nBug: 30969751\nTest: Compiles with and without integer sanitization.\nTest: Device boots.\nChange-Id: I4ef7c6f2e871ee56b81e87f3d71be8d85b222934\n"
    },
    {
      "commit": "02b7421d9473499440f441f75b0a22515f95597c",
      "tree": "5ed341f50c6d2f971abb39d542332a5fd61a4bc6",
      "parents": [
        "8f8932c41e7c0a1f65e3556733ed33bbc88793ce"
      ],
      "author": {
        "name": "Chris Thornton",
        "email": "thorntonc@google.com",
        "time": "Mon Nov 06 14:45:30 2017 -0800"
      },
      "committer": {
        "name": "Chris Thornton",
        "email": "thorntonc@google.com",
        "time": "Mon Nov 06 16:04:27 2017 -0800"
      },
      "message": "Fix race when handling callback in SoundTrigger Module\n\nDuring the callback event processing loop in the SoundTrigger::Module,\nit used to grab the ISoundTriggerClient from the ModuleClient that it\nneeded to send an event to. However, this could be removed/destroyed\nwhile the callback thread is trying to snapshot it, since there was no\ncommon locking between the model client and the module.\n\nBy now using the ModuleClient directly in the Module\u0027s callback, the\nappropriate locks can be obtained to prevent segfaults.\n\nTest: On device with GSA/Now Playing\nChange-Id: I9e3d150aa77051caab1fc009c3fc1ae8eec61a72\n"
    },
    {
      "commit": "8f8932c41e7c0a1f65e3556733ed33bbc88793ce",
      "tree": "b93e401ecbe5c0e5152a227b604dcc99999a6ddc",
      "parents": [
        "7c92ffe076acb119ba58777519b9d2d2efc0f627",
        "f4e63452b37c799c9387a6a88b46e6191f6a5f7e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 06 21:37:01 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 06 21:37:01 2017 +0000"
      },
      "message": "Merge \"Revert \"Revert \"audio policy: refactor getOutput() method\"\"\""
    }
  ],
  "next": "8f4563efb2ff1e0cf5428d227d5a29623b1e27e7"
}
