)]}'
{
  "log": [
    {
      "commit": "5babc4f104885c16a3dcfdfb5d99903c27ff2bd9",
      "tree": "2f260fb33ee4424dcea806c3ba3d96faedb9b644",
      "parents": [
        "31832c60d57558c2d5ddb2e45e4c6111ce9e55bb"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Feb 15 12:33:44 2018 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Feb 15 17:36:04 2018 -0800"
      },
      "message": "audio policy: fix regression with duplicated output handle\n\nCommit fe2311274 made that IO Handle for duplicated outputs\nwere not allocated properly causing volume commands to be sent\nwith an invalid IO handle to audio flinger.\nWe then hit another problem with a legacy behavior which broadcasts volume\ncommands to all output threads if received with IOHandle 0.\n\nBug: 70332110\nTest: manual test.\nChange-Id: Ib133abab1575e3c90ba235f0a52d5ab845514719\n"
    },
    {
      "commit": "61309523e6332addbd648c0d1bf25d35d6fd7b90",
      "tree": "d7bd244a6e75f5d7b443606ade3d2809b0ef6fc3",
      "parents": [
        "bd1f998721a5c17623043c415fa2a0bb3e57601f"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Jan 23 09:58:17 2018 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Jan 23 17:36:24 2018 -0800"
      },
      "message": "Notifications are not duplicated over multiple devices\n\nSonifications follow media routing, except for speaker playback\n  where they follow the \"safe\" path when available in the\n  absence of media playback.\n\nTest: 1/ plug headphones on phone, play notification, verify it\n         comes only from headset\n      2/ mirror device and play media, then notification, verify\n         it only comes from the speaker\n\nChange-Id: I762ad0688e879ad1e5565b4b77a7393fa7ce7ac5\n"
    },
    {
      "commit": "766fb020a50b64bf9a808bd80df60c54c2ca8cc3",
      "tree": "acb92cb201889d2b56f41bc2a437da1aaae72c4e",
      "parents": [
        "652f9299bb8a7a50148d57a75de6ede831bfed85"
      ],
      "author": {
        "name": "Nadav Bar",
        "email": "nadavbar@google.com",
        "time": "Sun Jan 07 12:18:03 2018 +0200"
      },
      "committer": {
        "name": "Nadav Bar",
        "email": "nadavbar@google.com",
        "time": "Mon Jan 22 23:05:23 2018 +0200"
      },
      "message": "Support routing audio playback to telephony uplink\n\nThis change enables phone apps to play audio to the uplink stream\nduring a call.\nThis change maks the AUDIO_OUTPUT_FLAG_INCALL_MUSIC_UPLINK flag to be added to the flags that are sent to the HAL when an ongoing call is active, the chosen output device is the TX telephony device, the stream type is music, and the calling app has the MODIFY_PHONE_STATE permission.\nFor this change to take place, the following changes were made to the signature of getOutputForAttr in IAudioPolicyService:\n  1. Add pid (process id) parameter to getOutputForAttr.\n  2. Make the flags parameter a pointer so changed value can be\n  examined by calling function.\n\nBug: 69973354.\nTest: tested manually.\nChange-Id: I74cef3f8b66de6e0e8f87b6235130c2cdf423da7\n"
    },
    {
      "commit": "f4ddfefc8ba59a8486d91826154cc9447821409e",
      "tree": "b24bb43846003ef5523f0d470e49389086138679",
      "parents": [
        "d6be64a3f22be3eceb0d6209c88dcad573c08191"
      ],
      "author": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Jan 16 07:37:58 2018 -0800"
      },
      "committer": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Jan 18 00:17:52 2018 -0800"
      },
      "message": "Don\u0027t record audio if UID is idle - media framework\n\nTo protect user\u0027s privacy if a UID is in an idle state we allow\nrecording but report silence (all zeros in the byte array) and once\nthe process goes in an active state we report the real mic data.\nThis avoids the race between the app being notified aboout its\nlifecycle and the audio system being notified about the state\nof a UID.\n\nTest: Added - AudioRecordTest#testRecordNoDataForIdleUids\n      Passing - cts-tradefed run cts-dev -m CtsMediaTestCases\n                    -t android.media.cts.AudioRecordTest\n\nbug:63938985\n\nChange-Id: I1442a9dda1553e9ea7a4a654c50555ac1ec06aa0\n"
    },
    {
      "commit": "7a098c5e4366b9e2503b0211a82463e8a1cb0525",
      "tree": "d0c93e2f27d2937b456aefeb0c7474c2bd727399",
      "parents": [
        "0ee31da6c3dabe244559561ae94169784efef376"
      ],
      "author": {
        "name": "Hongwei Wang",
        "email": "hwwang@google.com",
        "time": "Wed Dec 06 15:25:17 2017 -0800"
      },
      "committer": {
        "name": "Hongwei Wang",
        "email": "hwwang@google.com",
        "time": "Thu Jan 04 16:11:08 2018 -0800"
      },
      "message": "Check audio profile by config mask\n\nBug: 68231490\nTest: lunch gcar_emu-x86 \u0026\u0026 m -j\nChange-Id: I8f63fb75ff0095a9855db3846ae9bb310bf934ee\n"
    },
    {
      "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "575bb3aa6358661addac9fa8204630a27056b129",
      "tree": "fd8a1ace3283d4c4094d76ac17a267667ba3241d",
      "parents": [
        "6086cd30a510375fb7d060467ef062f7ba697f3c"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Oct 27 16:49:20 2017 -0700"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Oct 27 16:49:20 2017 -0700"
      },
      "message": "Config deserialization: allow negative gain\n\nAudio policy configuration deserializer did not support negative gains\nin audio profiles.\n\nAs those gains are most always attenuation (negative) this mean that\nprofile can not currently contain gains.\n\nTest: policy sysdump show negative gain\nTest: play music and assistant work on speaker, skylab\nBug: 68229318\nChange-Id: I7d72a0dd464aa77847d7e3ec0cfb4dcf7ac25b24\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "e156e8fff8b6523c82692ac3d75adb1005d36201",
      "tree": "9086e4f884f11a3842ccd8df53a3d87708d86b57",
      "parents": [
        "cadabe1d7243f9d78e50b7834842f9f86dbaab63",
        "f3b73f46c70a5a5530e1e628d59baf055c6ffd56"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 05 23:25:28 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Oct 05 23:25:28 2017 +0000"
      },
      "message": "Soundtrigger service: fix cross deadlock with audio policy service am: 338e8ba374\nam: f3b73f46c7\n\nChange-Id: I8fdf045c57eb96e099d632f1a00b89bd6b3e62c5\n"
    },
    {
      "commit": "338e8ba374432cc4ee853f4fcefcf7bd7bae3bb9",
      "tree": "0f22e5975405924e3935701ae973ab3201f7524e",
      "parents": [
        "7b7f4e0f8bdf7542561ece15c4ffc2542fb7750d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 05 10:58:38 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 05 11:56:38 2017 -0700"
      },
      "message": "Soundtrigger service: fix cross deadlock with audio policy service\n\nDo not hold Module mutex when calling into audio policy manager to\navoid cross deadlock with audio poicy service mutex: Audio policy manager\ncan call into sound trigger service with its mutex held in methods like\nstopInput().\n\nRegression introduced by fix for b/64340921 commit f759b8c4\n\nBug: 64340921\nBug: 67310830\nTest: repro steps in b/67310830\nChange-Id: Ie50b2e7c55fe9828a3fd8de6b31eb4a492791583\n"
    },
    {
      "commit": "5cd72d8b4f07ced237eaaa24c24ca90c5832bac7",
      "tree": "eb1a3e921face541ebff4911458604f5ce2cd381",
      "parents": [
        "13e4dad5f0eafbe1c46fcbde6da9b37fcd57e422"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Aug 24 11:12:56 2017 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Aug 24 12:33:03 2017 -0700"
      },
      "message": "audiopolicy: Fix null port handling in AudioOutputDescriptor\n\nAudioOutputDescriptor can be created with a null port\nfor a duplicated output descriptor (see\nAudioPolicyManager::checkOutputsForDevice). There used to be\na check for null port in getModuleHandle method prior to\nag/Ie90943ee3102cdb8adf89fdd2addd2c279b1e5bf. Restoring\nthe null check to prevent crash in getModuleHandle.\n\nBug: 63715585\nChange-Id: If3f9563c58cd44ac95c8e27e0560375a404e5db6\nTest: make\n"
    },
    {
      "commit": "a54f1283fdd9adbd64ecca4e14af56aaa0e8c825",
      "tree": "cdadd19276119f775480482778c2df15a6ae264f",
      "parents": [
        "20e6916035865710b7a30ac7f2eac1311e2c2e70"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Jul 01 19:39:32 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jul 11 18:21:40 2017 -0700"
      },
      "message": "aaudio: indicate client UID and PID to audio flinger\n\nImplement correct indication of client UID and PID to audio flinger\nfor AAudio MMAP streams in both exclusive mode and shared mode.\n- Add start/stop client methods on MMAP streams used only when the MMAP\nstream is in AAudio service and carries a mix of shared streams.\n- Add \"In Service\u0027\" indication from \"client\" side to AAudioServiceStreamMMAP\nso that the behavior can be adapted accordingly.\n- Modify logic on audio flinger side with regard to mmap tracks and\naudio HAL stream activity:\n  - use same audio session for all clients on a same stream to match\n  audio policy logic to share same direct output stream for clients on same\n  session. This is also more consistent with current volume and effect\n  handling as all MMAP  clients sharing the same output stream have the\n  same volume and use case.\n  - start/stop the HAL when the stream is started/stopped with the initial client\n  handle (returned when the stream is opened) but do not create a track.\n  AAudioService implementation will always send an additional start command before\n  first client starts and a stop command after last client stops,\n  in both shared and exclusive mode.\n  - start/stop a track only if the start/stop stream command is received\n  with a handle different from the initial handle.\n- Allow more than one active client from the same UID on a MMAP input in audio policy.\n\nBug: 62950008\nTest: verify playback and capture in mmap mode\nChange-Id: I86151bbb637ff172d2fd5f813056eab13a7bcd3c\n"
    },
    {
      "commit": "b64230e6f42e87a84725d9934d9e25c638d761b1",
      "tree": "92d4d93a541195da3719b35474b89e89ebfaa8ab",
      "parents": [
        "ab5c38a7ac2ba27e680a95cac6c0b9d61c08771b",
        "9f2b9d3a001834c1e1990ac8e2a8717ad38c7eee"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jul 11 18:02:26 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jul 11 18:02:26 2017 +0000"
      },
      "message": "Merge \"audio policy: fix audio device properties loading\" into oc-dr1-dev am: ed0f8f425d\nam: 9f2b9d3a00\n\nChange-Id: Ieb6145d4120f3197a7b841fccc9250f92db5f384\n"
    },
    {
      "commit": "83efe1c6bd6fa206560377960358ec95aa6a1c41",
      "tree": "5dd69d5f069370fffc9ae73660f9c8641017b636",
      "parents": [
        "15fb0ee6bd752ccde960b961dd1e9113c37e5f8b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sun Jul 09 16:51:08 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sun Jul 09 16:51:08 2017 -0700"
      },
      "message": "audio policy: fix audio device properties loading\n\nOnly load removable digital device properties from streams\nwith dynamic profiles. This avoids aggregating properties from\nother stream profiles when the device can also be reached via those\nprofiles.\n\nBug: 38423100\nTest: connect various USB devices and check properties are loaded\nproperly.\n\nChange-Id: Ie5eed397d3a475848a3d423d18ffae9d55917ac4\n"
    },
    {
      "commit": "ac4e42982d4537732b30e71c9a00ba0077944984",
      "tree": "1774e0b1cba1a173c29aaca85d4147e178c69346",
      "parents": [
        "c407bd4b32b99cab78e773ac51a57f49cd0985ea"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Dec 22 11:39:31 2016 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Jun 19 18:03:28 2017 +0000"
      },
      "message": "Monitoring of recording: uid of recording session\n\nPass uid of recording session along with other existing information\n  in the recording monitoring callback.\nDefine new structure, record_client_info, to group uid (new),\n  session id (existing) and source (existing) and simplify\n  method signatures and marshalling code.\n\nTest: run cts -m CtsMediaTestCases -t android.media.cts.AudioRecordingConfigurationTest#testAudioManagerGetActiveRecordConfigurations\nBug 62579636\n\nChange-Id: I18f66d7e55640a21f31021416a12a3e8094c3690\n"
    },
    {
      "commit": "2ee7aab4a39139a86a24ca14f718eb20a1b355db",
      "tree": "1a7501567d6af64aa958f26453ee9360833bfd4a",
      "parents": [
        "bcbc56bfd43e071cf8b199e9e6dfc835d1f29ab6"
      ],
      "author": {
        "name": "YOUNG HO CHA",
        "email": "ganadist@gmail.com",
        "time": "Thu May 25 23:16:51 2017 +0900"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu May 25 11:26:52 2017 -0700"
      },
      "message": "Android.mk: remove $TOP in LOCAL_C_INCLUDES\n\nTest: make systemimage\n\nChange-Id: I5f83786afe3f2c65819b127b041cb74fc4c989ac\nSigned-off-by: YOUNG HO CHA \u003cganadist@gmail.com\u003e\n"
    },
    {
      "commit": "be08ba90dfb26f7b7425d19a5db90c09756e7d17",
      "tree": "752336f46e794bea2c522f9d3f0e20e11f76363f",
      "parents": [
        "65d96f774d9a01fd54fd2b3fbfaf21036ba321e6",
        "46260c37420f82a6e664b740365b2537767e5a76"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Thu May 18 21:41:43 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu May 18 21:41:43 2017 +0000"
      },
      "message": "Merge \"audiopolicy: Two session can not offload concurrently\" into oc-dev\nam: 46260c3742\n\nChange-Id: I26ab34add9e632eddec417fc7b042387dc4d1c0a\n"
    },
    {
      "commit": "169753cd5f71ba92560e993bb7cb461d2f094272",
      "tree": "7414ab09392201eb08c3ef966d40f2f88abd518f",
      "parents": [
        "9ec59fc5d016a609adffdb7e68236b9d5d05254d"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Mon Mar 06 14:18:23 2017 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri May 12 16:39:22 2017 -0700"
      },
      "message": "audiopolicy: Two session can not offload concurrently\n\nPreviously the patch I98a8913d6faf5092a1e43a0bdd0f1ce1482221a9\nforbade two tracks from different application to be offloaded\nconcurrently.\n\nConcurrent offload is only needed for back to back playback...\nDetect this use case by checking the session id instead of the\nPID.\n\nTest: call \u0026 play music \u0026 assistant\nTest: run new CTS testConcurentPlayAudio\nBug: 35841692\nChange-Id: I2c09c54adedf12644205bef115f1a2e16b05de91\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "b0bb2ec974c7382dca7179082c7db3c7486c6854",
      "tree": "ef18e7698796e8265d2acc12777aa57a2df7c58e",
      "parents": [
        "2bedf7bba6f938c0e9cbabab9b299bdd00de8bcb"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Apr 27 16:15:51 2017 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Apr 28 23:59:34 2017 +0000"
      },
      "message": "Fix warnings hidden by -isystem\n\nFix -Wundefined-var-template and -Wsign-compare warnings that were\nhidden by the use of -isystem to include frameworks/av.\n\nTest: m -j native\nBug: 31751828\nChange-Id: I28e07b238d5bc913ea2f3dfa09fa02f577d5a250\n(cherry picked from commit d995c0186ee0fc13f397a35808a1bc8045ab48d0)\n"
    },
    {
      "commit": "38f86713cbd22caae9fdd4ac2f0bb76ff91df34d",
      "tree": "0a63e9771a87a74837cad231f54e15c1ce8eb635",
      "parents": [
        "ef0b6b64144b6e062bbb445a6df73c365b66646d"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Apr 11 14:10:17 2017 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Apr 11 15:03:51 2017 -0700"
      },
      "message": "Audio policy / flinger: updates to recording callback and record stop\n\nDo not trigger the callback for recording events when the patch\n  handle is NONE, the patch handle will be updated for the\n  recording session later.\nWhen stopping recording, only stop the record thread if the\n  track is not active, not if it\u0027s not the first one.\n\nTest: cts-tradefed run cts-dev -m CtsMediaTestCases -t android.media.cts.AudioRecordingConfigurationTest\nBug: 36569938\n\nChange-Id: I1b7445ef4115d6337ba7b926f7e6b068361926a7\n"
    },
    {
      "commit": "904d632a24db8f94de83e44f7179d1c0af022b03",
      "tree": "e86d16495e3fe207153c0f2bcadcb00d14d76aec",
      "parents": [
        "93e29c0846e0f7583ae96edafbf5e8a3169711ee"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Mar 17 17:20:47 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 22 14:40:29 2017 -0700"
      },
      "message": "Add support for USB headset device\n\nAdd missing rules for USB headset devices in routing, volume and effects\nmanagement.\n\nTest: playback and catpure regression tests.\nChange-Id: I42cd157f483deba2371a05d332cd11dceb2b2fa3\n"
    },
    {
      "commit": "05d19b08f3affa6fa8407e779f67e7ad1c1ca84f",
      "tree": "d2c99a03302a60a9ab3db1a9f5cc90640686009a",
      "parents": [
        "4ec4e6b1073b0dc1b608aeeaf4e3129ea1a725c8"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Feb 28 16:28:19 2017 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Mar 03 12:37:45 2017 -0800"
      },
      "message": "fallout of cleaning-up libutils includes\n\nTest: run \u0026 compile\nBug: n/a\nChange-Id: I63585ed5a764b9ce7af2187b79ca0c83e683fd7f"
    },
    {
      "commit": "551061ab211e1da0f060d7c895617814618da5c2",
      "tree": "f8010b47611e50cf67eada7498a66cdee1259579",
      "parents": [
        "e2ce9366d1b138326035c643b7fec68cd2dc83c5"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Mon Feb 06 15:59:29 2017 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Thu Feb 09 10:29:05 2017 -0800"
      },
      "message": "audiopolicy: Two clients can not offload concurrently\n\nIf two application are playing a compatible offload stream at the same\ntime.\nEg: two games playing MP3. At least one not taking the audio\nfocus.\n\nThe audio policy was offloading both stream resulting in audio glitches\nand one stream being dropped.\n\nConcurrent offload streams is intended to be a transitioning state when\nan application wants back to back playbacks.\n\nIt should not be allowed for two different applications to stream at the\nsame time.\n\nTest: Play mp3 while mp3 is already offloaded.\nBug: 34012147\n\nChange-Id: I98a8913d6faf5092a1e43a0bdd0f1ce1482221a9\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "bb9480975322b0d1a09f76ef14f3285fc8af4e5f",
      "tree": "a32cac19e5e2f47e9808de74a00887e8e3d3c695",
      "parents": [
        "b9c28c72b91e464aa1155e972f74af14312191a8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jan 23 18:33:30 2017 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 25 18:34:46 2017 -0800"
      },
      "message": "audio: enable concurrent capture for voice recognition\n\nAdd AUDIO_SOURCE_VOICE_RECOGNITION to the list of use\ncases allowed for concurrent capture. As AUDIO_SOURCE_HOTWORD is\nenabled for concurrent capture it makes sense to enable a client\nto transition to voice recognition after the hotword has been detected\nin a concurrent capture situation.\n\nAlso fixed some concurrent capture scenarii\n\nBug: 22702906\nTest: build and check \"OK Google\" detection\nChange-Id: Ic6dd41372fe74122395764beca7ca9a65197464b\n"
    },
    {
      "commit": "cac8d4ea54ece7aeb4b2ffa7aafd06fbec731a62",
      "tree": "ed02d8653145fded2d53bcf4c6d7033cca7eb1cf",
      "parents": [
        "d0ffd62e89bf97fa20a63f282d034b6745328210",
        "44344b05261cb9ad46a43e635f637b89aecc7afe"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 18 03:17:58 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 18 03:17:59 2017 +0000"
      },
      "message": "Merge \"audio policy: allows dumping Audio Policy Mix\""
    },
    {
      "commit": "060a6c53b5022c9e539a4c9b03b16da546964bec",
      "tree": "5c517aa0d24e519bb40dcd2431ffefa43959d4d7",
      "parents": [
        "d825ab9d5be990a6a7fb28033cfba84441100731",
        "49d3b5ee8e89e274a5c259dddb7cde38e98c2cde"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Jan 12 23:54:38 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jan 12 23:54:38 2017 +0000"
      },
      "message": "Merge \"liblog: use log/log.h for ALOG macros\" am: 59cfe7de39 am: c6d07e8230 am: 15b18326b6\nam: 49d3b5ee8e\n\nChange-Id: I87a85c85d3f509e0496f5946d6e9e58174398ea5\n"
    },
    {
      "commit": "e74bbf18a6595a914d3c771be08a72077465c51f",
      "tree": "67ecfbc9a118ea695beaf5536bcd3ea5e9cfe376",
      "parents": [
        "ce961d374f8436a50e63a081afa6b6c3185b2f90"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Jan 12 15:10:27 2017 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Jan 12 15:10:27 2017 -0800"
      },
      "message": "liblog: use log/log.h for ALOG macros\n\nTest: compile\nBug: 34250038\nChange-Id: Ie3b92790df631dbacdd51053264dddeba66913c1\n"
    },
    {
      "commit": "44344b05261cb9ad46a43e635f637b89aecc7afe",
      "tree": "f088a40f3512f177136b78f02e091d42db7d0934",
      "parents": [
        "38267b773f2cdec4d684b12fde73179bcc66e0c7"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Dec 13 11:21:02 2016 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Jan 12 13:19:26 2017 -0800"
      },
      "message": "audio policy: allows dumping Audio Policy Mix\n\nThis patch adds the dump of AudioPolicyMix if registered.\nIt also adds the required conversion map to human readable strings\nof the types involved in Mixes.\n\nAdapted for the development branch from the AOSP patch:\nhttps://android-review.googlesource.com/#/c/309127/\n\nChange-Id: I91cf7afe6de5ff837970d9063ca437d4f6201e89\nTest: build, dumpsys media.audio_policy\n"
    },
    {
      "commit": "32a5f5d53f9fe2ba584d2ecdf3edd487fb4146a7",
      "tree": "49e0e3a1b8302a9f7282b6bcab3c32ea3808ec23",
      "parents": [
        "105928c9d30ed4c697cc4cdd9e68d8d47a695133",
        "4532a36bf509d822a77cbc1b7837f9f1158c7796"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Dec 22 13:47:40 2016 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Dec 22 13:48:15 2016 -0800"
      },
      "message": "resolve merge conflicts of 4532a36 to master\n\nTest: build\nChange-Id: I9b93c4a703c0ee16116be2bea0e6df0606d29363\n"
    },
    {
      "commit": "60d02077d86d2d1092443519290101f503aa6f7a",
      "tree": "57992d2bd94784cd765729b806429928ead0d2e7",
      "parents": [
        "36a75eeb15e58726e8cbbfe9687975740133a11b"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Sep 29 08:48:48 2016 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Dec 22 08:25:58 2016 -0800"
      },
      "message": "Replace cutils/log.h with either android/log.h or log/log.h\n\nTest: compile\nBug: 31289077\nChange-Id: I795a76f978d2213737f1fa908da789c543219b75\n"
    },
    {
      "commit": "e4c3c4310f4e4a76195dc08323c4a26dd28ffd08",
      "tree": "17ad3264c033a26754c3cf4aed1e5d25ca4ab49c",
      "parents": [
        "0a2ea58394190408a3d532bfcc242ba64ca71538"
      ],
      "author": {
        "name": "Jaekyun Seok",
        "email": "jaekyun@google.com",
        "time": "Fri Dec 16 12:13:40 2016 +0900"
      },
      "committer": {
        "name": "Jaekyun Seok",
        "email": "jaekyun@google.com",
        "time": "Fri Dec 16 15:10:26 2016 +0900"
      },
      "message": "Use libxml2 as shared lib.\n\nThe dependencies to static libraries in frameworks should be removed\nas many as possible to reduce a size of the system partition.\nAnd that will improve coverage of the VNDK libraries because this\neffort might find new necessary shared libs which were linked\nstatically before.\n\nSize diffs of affected binaries on sailfish-userdebug build are as\nfollows.\n\nlibaudiopolicymanagerdefault.so: 583440 -\u003e 267288 (-316152)\nlibaudiopolicymanager.so       : 16008 -\u003e 16004 (-4)\n\ntotal                          : (-316156)\n\nTest: building succeeded, and the image was tested on sailfish.\nBug: 33056637\nChange-Id: I51d98c5c2b5d94561190a1651063737fb1cb06ff\n"
    },
    {
      "commit": "3e9e728ef329e49424d5878c682bf82dac5009ef",
      "tree": "5a39f5853e58ef98692aca5a679120c15679c320",
      "parents": [
        "b620c0a38648f578ce3bfa77059295af79d0fa29",
        "504a885be0d8ca46c8787486f26d676648e21704"
      ],
      "author": {
        "name": "Yunlian Jiang",
        "email": "yunlian@google.com",
        "time": "Wed Nov 23 04:33:19 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Nov 23 04:33:19 2016 +0000"
      },
      "message": "Merge \"fix Potential leak of memory pointed to by \u0027sourcesLiteral\u0027\" am: fa81ba8775 am: e16a2029e0 am: 228b9dec45\nam: 504a885be0\n\nChange-Id: Iba5669ae28b61114a9357291e9ff5ac63ba7ad63\n"
    },
    {
      "commit": "e16a2029e073d348f480665db799de5a922f43f8",
      "tree": "90be8762869341a10bf1f3112b56f67f268a0843",
      "parents": [
        "c12499d5c646e79d6a91dddc44c79921d9967c8e",
        "fa81ba8775c497c229078c25bcf8374e8420ea18"
      ],
      "author": {
        "name": "Yunlian Jiang",
        "email": "yunlian@google.com",
        "time": "Wed Nov 23 04:24:47 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Nov 23 04:24:47 2016 +0000"
      },
      "message": "Merge \"fix Potential leak of memory pointed to by \u0027sourcesLiteral\u0027\"\nam: fa81ba8775\n\nChange-Id: I7d261ceb8cfce3b3f56ed907e1e32d70e7a40d45\n"
    },
    {
      "commit": "cc7c0d6fff90c867f661b795e803043aee4d0bb8",
      "tree": "135370892a4372382e70aaec7c1017fc4a3dfa92",
      "parents": [
        "11f51b046344c8e14ef764d755cae697f6bce4e8"
      ],
      "author": {
        "name": "Yunlian Jiang",
        "email": "yunlian@google.com",
        "time": "Tue Nov 15 17:55:57 2016 -0800"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Tue Nov 15 17:55:57 2016 -0800"
      },
      "message": "fix Potential leak of memory pointed to by \u0027sourcesLiteral\u0027\n\nBug: none\nTest: the warning is gone.\nChange-Id: I8fe9610e24e31e3f788d00fa7f594e1274771433\n"
    },
    {
      "commit": "0aa15c6e4d02d3aa96d5ddfc6c862fe4da1da594",
      "tree": "8f4ba1cb7489b7842ff9d649f666d85c922b89e8",
      "parents": [
        "74d3601bea717111f77376cf1678d2bc65dd51a1"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Nov 08 14:09:10 2016 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Nov 08 14:09:10 2016 -0800"
      },
      "message": "Add back AUDIO_DEVICE_*_STUB to the enum map.\n\nIt has been accidentally removed, and it is used in\naudio_policy.conf on certain devices.\n\nBug: 32740394\nChange-Id: I59a1b44472aeabc87f65c6cee6371ac3647ecf57\nTest: make \u0026 check on the device\n"
    },
    {
      "commit": "913d06c099bd689375483a839e11057ccf284d1c",
      "tree": "25d7f40231f47897013b0984348f40bf05b72ea7",
      "parents": [
        "267e07cd8432679bcdd72b0bdf38846446c1c4ed"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Nov 01 12:49:22 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Nov 07 09:29:37 2016 -0800"
      },
      "message": "Move TypeConverter into a shared library\n\nThis will be needed for the default implementation of the audio HAL\nin TREBLE for parsing supported formats etc. provided by HAL in\na form of string literals.\n\nAs a bonus, remove some hand-written type conversions in AudioFlinger\nused in dumps.\n\nExample changes in the dump output:\n\n   HAL format: 0x1 (pcm16) \u003d\u003d\u003e HAL format: 0x1 (AUDIO_FORMAT_PCM_16_BIT)\n   Processing format: 0x5 (pcmfloat) \u003d\u003d\u003e Processing format: 0x5 (AUDIO_FORMAT_PCM_FLOAT)\n   Output device: 0x2 (SPEAKER) \u003d\u003d\u003e Output device: 0x2 (AUDIO_DEVICE_OUT_SPEAKER)\n   Input device: 0 (NONE) \u003d\u003d\u003e Input device: 0 (AUDIO_DEVICE_NONE)\n   AudioStreamOut: 0x... flags 0x6 (PRIMARY|FAST) \u003d\u003d\u003e\n       AudioStreamOut: 0x... flags 0x6 (AUDIO_OUTPUT_FLAG_PRIMARY|AUDIO_OUTPUT_FLAG_FAST)\n\nTest: make \u0026 run\nChange-Id: I9cde640e6827b7aa6d62e9caade9e738227e299f\n"
    },
    {
      "commit": "bf2e61f54c7dcc37c97b4908c9ed6871cf3d2b49",
      "tree": "c7630795f1623d784fb17e1e129fdd93bdabea6e",
      "parents": [
        "1e4d737fcd3129f3b3cf29499f344b42219c6bc7",
        "559d439c6fe8679e3c52f1cf265d46d7d2e65b68"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Oct 24 16:52:08 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 24 16:52:08 2016 +0000"
      },
      "message": "Merge \"Use audio_patch_handle_t in startAudioSource() and stopAudioSource()\""
    },
    {
      "commit": "559d439c6fe8679e3c52f1cf265d46d7d2e65b68",
      "tree": "9e23625c0b55e45e79842d6605e027dba01f0fe0",
      "parents": [
        "bd0f59e493dbd67d1871b243ddad9cce3b50d7ce"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 29 13:42:57 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Oct 19 18:19:29 2016 +0000"
      },
      "message": "Use audio_patch_handle_t in startAudioSource() and stopAudioSource()\n\nBug: 27903060\nChange-Id: Iafc2095f484b74978c6f080c54f548e293bf945e\n"
    },
    {
      "commit": "9ee0540d3a61bff03d561ca431a371c3d9335d2b",
      "tree": "1bf7817725f35ec9c0755e819cb5f58fdf0bf487",
      "parents": [
        "e7e8d636b486cf49487db1d8da5e8e7cb15d9549"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Oct 13 15:58:17 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Oct 19 09:46:33 2016 -0700"
      },
      "message": "Remove last references to hardware/audio.h\n\nDeviceHalInterface transitioned to \"capabilities\" model\n(similar to the one already used by streams, e.g. \u0027supportsDrain\u0027).\nNo direct checking of the HAL version is needed.\n\nAudioPolicy uses its own version read from the configuration,\nand these values never checked against the actual HAL version,\nthus it does not need versions and macroses from hardware/*.\n\nTest: make \u0026 run on N6P\nChange-Id: Ic4a56bfa19a9a61edac2b9f9a163fd8f63a0ff87\n"
    },
    {
      "commit": "65fb65678345f03f38771523b7020f6777eff5c4",
      "tree": "73b42913d08115480cbbbe1b6897917f4c1ae6a2",
      "parents": [
        "9a79c8f84a6de3b942c6b0a347aece7ecb7daed5",
        "388360c786cdcbec650b79db65c734b8952dfec0"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Oct 18 16:01:15 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 18 16:01:15 2016 +0000"
      },
      "message": "Merge \"Brush up audio parameters usage\""
    },
    {
      "commit": "388360c786cdcbec650b79db65c734b8952dfec0",
      "tree": "a3ba18b19471046dddb8218a1461269b101bd1e0",
      "parents": [
        "61a4fac2e3ec271241e3a4f405d7357b7f6ca4c2"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Oct 17 17:09:41 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Oct 17 17:09:41 2016 -0700"
      },
      "message": "Brush up audio parameters usage\n\nIt is preferred to use the constants from AudioParameter\n(which can now serve as an abstraction layer similar to libaudiohal).\n\nGrepped for usages of defines and just string values\nand replaced with references to AudioParameter.\n\nSince the parameter definitions are being moved to system/audio.h,\nupdate includes in AudioParemeter and stagefright Utils.\n\nChange-Id: I2addb983707d866b16f39d45d0e14b802595e292\nTest: make\n"
    },
    {
      "commit": "e7557336920ca7e7d53e8ccc03d23359b41957af",
      "tree": "d9c490d2ba3d28176436b5d0374248322f0a349d",
      "parents": [
        "aadc29b910a22c1d2b422d5a96faef07dfc97292"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Oct 17 15:12:12 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Oct 17 15:23:03 2016 -0700"
      },
      "message": "Remove executable bit from ordinary files\n\nTest: builds OK\nChange-Id: I7912c9c9c85dc500d33698fc174ba2a0db387407\n"
    },
    {
      "commit": "00260b5e6996b0a4b12f71c5b84e44adea040534",
      "tree": "7e93a2e3cc5f918d8f7a7409d9c98712eed0d2fe",
      "parents": [
        "47677e3edda7b15bc0b48c6863a01ae052785e0c"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Oct 13 12:54:24 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Oct 13 14:02:38 2016 -0700"
      },
      "message": "Remove dependencies on hardware/audio_effects.h and EffectsFactoryApi.h\n\nAlso remove some outstanding dependencies on hardware/audio.h.\n\nMost of the time, only constants and structs from audio_effects.h\nare used, and no actual calls into HAL are made. Move these\ndefinitions into system/audio_effect.h, and generate constants\nfrom TREBLE HAL definition.\n\nFor parameters, always use values from AudioParameter class.\n\nThere are still some outstanding includes of hardware/audio.h\nin code that directly deals with audio modules. Need to extend\nlibaudiohal interfaces to support required functionality.\n\nTest: make\n\nChange-Id: I0bcdf8ae199485d4d65f3eeb7e7a3b9b5cdb6ab6\n"
    },
    {
      "commit": "cbc8f617c1aebef5d041fa40dcd38a5466690b99",
      "tree": "525470607c3e6436c5a73caac90830104fcde9ac",
      "parents": [
        "0c739c59dd1a3d52beb82a353c13b6c853d93f5f"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Oct 11 18:05:13 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Oct 11 18:05:13 2016 -0700"
      },
      "message": "Eliminate dependencies on hardware/audio.h (trivial cases)\n\nframeworks/av must not depend on hardware/ (except for the code\nfrom libaudiohal that actually calls into HAL).\n\nThis CL deals with simple cases where depending on system/audio.h\nis enough.\n\nChange-Id: Ia2cb66cc8c92316ce5ab884a008d5e531263c2e4\nTest: make\n"
    },
    {
      "commit": "f7c50104b07091880019f4ecc70d977961148268",
      "tree": "4e6d9fe3a5b9d66723385205ef54afd845e183be",
      "parents": [
        "00c553db3e9c486b016fa030be00f5b53c6b0b8e",
        "a3de77f1a7c994cdf53d10889d78d69c36fc85f3"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 30 15:19:43 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 30 15:21:20 2016 -0700"
      },
      "message": "resolve merge conflicts of a3de77f to master\n\nChange-Id: Idb3346465ee7f47d95fd24e2dafdd66f3759c1be\n"
    },
    {
      "commit": "a3de77f1a7c994cdf53d10889d78d69c36fc85f3",
      "tree": "d7d7160dc9e267941fae40d7db40a091e6927edf",
      "parents": [
        "6011acd88b95931f8c5ed471f479c8ae18435eea",
        "9080e1791189a56c042286c5908760e4a46446b3"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 30 19:35:18 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 30 19:35:18 2016 +0000"
      },
      "message": "audio policy: fix capture indication to sound trigger service. am: 271a93e924\nam: 9080e17911\n\nChange-Id: I2131473eb29d7896cad0d1459807214d89b0d754\n"
    },
    {
      "commit": "271a93e924f46ccaf3f76a8fc38685afea40d3ee",
      "tree": "04c7e4d6c5315966d32b5c991ec9faba70cd77cd",
      "parents": [
        "429a052c35e3cca601889b12dd34edbd61eda61d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 29 14:47:06 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 29 14:47:06 2016 -0700"
      },
      "message": "audio policy: fix capture indication to sound trigger service.\n\nOnly indicate active capture to sound trigger service\nwhen capturing from primay HW module.\n\nBug: 31826453\nBug: 31771879\nChange-Id: Idf92393d3e7dbf926b847ab23f670e7ab5dd5248\n"
    },
    {
      "commit": "ad477fed3d696cd5e27da4d281fcff3d2a83e862",
      "tree": "3c6d40efa5da0bcf4303296e8c0e71032f4e4483",
      "parents": [
        "634d3a4ec85970ea8232756c5e4c6d757ddcacd6",
        "2e97f1eea42fc4acdec6094c552552447a29c24f"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Sat Sep 10 17:30:26 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Sep 10 17:30:26 2016 +0000"
      },
      "message": "Merge \"Fix google-explicit-constructor warnings in audioflinger, audiopolicy.\" am: 9c9bad3c8d am: f7dc6d0df1 am: 5848eb65f6\nam: 2e97f1eea4\n\nChange-Id: I482687030a0ca02e61f68554b10515450dff1043\n"
    },
    {
      "commit": "2e97f1eea42fc4acdec6094c552552447a29c24f",
      "tree": "32e2ff3892b70a1793500c44198c9145b39c91ab",
      "parents": [
        "71f5bdbf2f2335c25d6545e58c141342ce62a6aa",
        "5848eb65f6ced6bb9ada57223bdbc416602d6f6c"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Sat Sep 10 17:19:48 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Sep 10 17:19:48 2016 +0000"
      },
      "message": "Merge \"Fix google-explicit-constructor warnings in audioflinger, audiopolicy.\" am: 9c9bad3c8d am: f7dc6d0df1\nam: 5848eb65f6\n\nChange-Id: Ifdd4b164f9d8ad5fa1f285dc3ecda7faadb3cd72\n"
    },
    {
      "commit": "34f28cbb1d52348deb8dc868530eae2b3f22931e",
      "tree": "397de51c6f9c023df5bd33c4ff59af81dfe6a2f5",
      "parents": [
        "1567662f5a709398004cf509fb3f382f0c76f5b1"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Aug 29 14:18:27 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Aug 29 14:18:27 2016 -0700"
      },
      "message": "Fix google-explicit-constructor warnings in audioflinger, audiopolicy.\n\n* Add explicit keyword to conversion constructors.\nBug: 28341362\nTest: build with WITH_TIDY\u003d1\n\nChange-Id: I3b73f0cd73f47be7735cc374306c02301c20588f\n"
    },
    {
      "commit": "5ca8f32280377dd923e72c3c6bd3994217461b8b",
      "tree": "b5146ce7885539d8b002d3270346f574e3965711",
      "parents": [
        "7aeb8c8d4437eb8f45be3ad3828764795e14ad4c",
        "63ef5a38f82d22c1f97922fe490a1fd336566d5c"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Aug 10 23:53:01 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Aug 10 23:53:01 2016 +0000"
      },
      "message": "resolve merge conflicts of fd923e7 to stage-aosp-master am: df5d9246f9\nam: 63ef5a38f8\n\nChange-Id: I516a43c5e56323e99ad7a8ca2e4811b77c9704f4\n"
    },
    {
      "commit": "df5d9246f9607b1c2f8b134c46a05af06e206da3",
      "tree": "7cd9fcb42c86c8cfe950db239e21e8b5ece98369",
      "parents": [
        "7ad2854adc0abe8dd7909a6ed401107ad09bc3d2",
        "fd923e7fe2779bcd69d79471b8c30c8b98918f62"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Aug 10 15:40:39 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Aug 10 16:10:32 2016 -0700"
      },
      "message": "resolve merge conflicts of fd923e7 to stage-aosp-master\n\nChange-Id: I75b44b89bae41197a1fd68362d20b8ba2b4dd192\n"
    },
    {
      "commit": "e964d4e421e2d1ca937227a580c0c837091a11e3",
      "tree": "876478fb4d5b18ddf8ba3b761440e46651b45ecb",
      "parents": [
        "f6d5a13c3a7a84e35e28b9840dde0f29728b6849"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Aug 09 14:31:32 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Aug 10 11:35:57 2016 -0700"
      },
      "message": "Fix clang-tidy warnings in audio and playerservice.\n\n* Add explicit keyword to conversion constructors.\nBug: 28341362\n* Use const reference type for read-only parameters.\nBug: 30407689\nTest: build with WITH_TIDY\u003d1\n\nChange-Id: I265f3b094e08d5705b506b3fbba51439c134af84\n"
    },
    {
      "commit": "36d0ca16024820df9a12903d2ac443fabcc180bc",
      "tree": "51e8f285ae66ad7cb922caeb7ba8d5f1d20367e3",
      "parents": [
        "67fbddfdc2cafd63c83d3bb55a2451d4c26f546d"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Aug 09 14:31:32 2016 -0700"
      },
      "committer": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Aug 10 17:56:35 2016 +0000"
      },
      "message": "Fix clang-tidy warnings in audio and playerservice.\n\n* Add explicit keyword to conversion constructors.\nBug: 28341362\n* Use const reference type for read-only parameters.\nBug: 30407689\nTest: build with WITH_TIDY\u003d1\n\nChange-Id: I265f3b094e08d5705b506b3fbba51439c134af84\nMerged-In: I265f3b094e08d5705b506b3fbba51439c134af84\n"
    },
    {
      "commit": "d91a420f234e2ec0ccc4d156a56297832e21d4a6",
      "tree": "b9ef2d51e03939fee2f880d2008dbbf005c5c1fb",
      "parents": [
        "f9eb4d2ca8eee725a33618da104f843acd3b6ff5",
        "edab4257fa821c91c6e5a64cda78c9c38ea905c0"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 13 21:23:51 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jul 13 21:23:51 2016 +0000"
      },
      "message": "Merge commit \\\u0027885dd7136a999d21219a4cc9034f20ef688c0625\\\u0027 into manual_merge_885dd71\nam: edab4257fa\n\nChange-Id: I04abc72767b31fbdfd6ee82c239fbc4a94421a82\n"
    },
    {
      "commit": "edab4257fa821c91c6e5a64cda78c9c38ea905c0",
      "tree": "856ba650f36f697025823f6a0140ab41e420e942",
      "parents": [
        "5691e5400a9cf7aee4c76ded5db7eed53bfb9c8d",
        "885dd7136a999d21219a4cc9034f20ef688c0625"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 13 14:18:00 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 13 14:18:00 2016 -0700"
      },
      "message": "Merge commit \u0027885dd7136a999d21219a4cc9034f20ef688c0625\u0027 into manual_merge_885dd71\n\nChange-Id: I871b103643cabab183bc24c1ce40930c7a083c79\n"
    },
    {
      "commit": "885dd7136a999d21219a4cc9034f20ef688c0625",
      "tree": "5d8ba3170bb914f8844f70b904bd481f11f47bfb",
      "parents": [
        "88bd73d9acf5011ef40122fa9a1b43195facbe07",
        "fcddb0b73931d207b21bd281a7df3ba2f230a607"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 13 20:44:51 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 13 20:44:51 2016 +0000"
      },
      "message": "Merge \"Enable strict warning checks and fix\" into nyc-mr1-dev"
    },
    {
      "commit": "aca4545ddc6e83d66dda67b1c4894fef6ce451cf",
      "tree": "209d689bb3a7905cfd252ddd735fb53c7eac7af8",
      "parents": [
        "1c8a038b2a8a0a14d9bc2ebaf31ff113d4778af5",
        "dc14a4d146ff4cf1a00b1d2b02646134a31412e6"
      ],
      "author": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Tue Jul 12 23:31:33 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jul 12 23:31:33 2016 +0000"
      },
      "message": "Merge \\\\\"Fix to usage of upper bound value in volume curve\\\\\" into nyc-mr1-dev am: e37b911fbf\nam: dc14a4d146\n\nChange-Id: Iab9da655cae8055278d76f3853dab903e0efe058\n"
    },
    {
      "commit": "dc14a4d146ff4cf1a00b1d2b02646134a31412e6",
      "tree": "087690d7bf484e31b60ea25106133a0f4b1d5014",
      "parents": [
        "404b6e6ee588af71d19fe8a4ffc8092d59c3396d",
        "e37b911fbf70c15c652db8585bca2a5f035d9def"
      ],
      "author": {
        "name": "rago",
        "email": "rago@google.com",
        "time": "Tue Jul 12 23:28:04 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jul 12 23:28:04 2016 +0000"
      },
      "message": "Merge \\\"Fix to usage of upper bound value in volume curve\\\" into nyc-mr1-dev\nam: e37b911fbf\n\nChange-Id: Ibd302c8ef01a6f4ad81b4d9da226b9cdee8d6a9c\n"
    },
    {
      "commit": "d362a52b836ebc2a12620b6f1932ae042a81d2e7",
      "tree": "f5ca60ed5d7f3bab8a42e9c0228d44d6a17300a7",
      "parents": [
        "b28d6117a5a63fd673a38be12e7e48bc65b05ad3"
      ],
      "author": {
        "name": "rago",
        "email": "rago@google.com",
        "time": "Tue Jul 12 14:56:41 2016 -0700"
      },
      "committer": {
        "name": "rago",
        "email": "rago@google.com",
        "time": "Tue Jul 12 15:49:00 2016 -0700"
      },
      "message": "Fix to usage of upper bound value in volume curve\n\nBug: 29627411\nChange-Id: Iffe3bf69bf4b49cd76ffe00b16ebce1ab81c4631\n"
    },
    {
      "commit": "1229ae8317797917ebd14c9f46debcb9d5f44c6a",
      "tree": "301b61549b10568219be4360485382e1a944f817",
      "parents": [
        "fa6c8ebc60da3d704237606b7764a3be24393c21",
        "f517d276a8bfe4034106abf8009fcd6cc28a0838"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jul 12 01:46:37 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jul 12 01:46:37 2016 +0000"
      },
      "message": "Merge \\\\\"Add Dolby TrueHD audio format\\\\\" into nyc-mr1-dev am: 5cc2e814ac\nam: f517d276a8\n\nChange-Id: I9e210b1d143b01301c798dfe705a7493cc828be5\n"
    },
    {
      "commit": "fcddb0b73931d207b21bd281a7df3ba2f230a607",
      "tree": "f9b35ea1d18407f17cd1fd10d9365867abbed823",
      "parents": [
        "f81362f6cd1bb22f988c30e6b552e6a2d95c4de7"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jul 08 17:19:25 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jul 08 17:19:25 2016 -0700"
      },
      "message": "Enable strict warning checks and fix\n\nChange-Id: Id401a937911eb418e93314812f2f7c2b5ecff8d6\n"
    },
    {
      "commit": "f517d276a8bfe4034106abf8009fcd6cc28a0838",
      "tree": "2d77ea833d13daaa1712efd3bc9d950fbf205165",
      "parents": [
        "55943ae68e72b362ba701f9e39e3dd50167a9e9c",
        "5cc2e814acac142c77eed4e9b8d954623be8965c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 08 23:13:19 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jul 08 23:13:19 2016 +0000"
      },
      "message": "Merge \\\"Add Dolby TrueHD audio format\\\" into nyc-mr1-dev\nam: 5cc2e814ac\n\nChange-Id: Ib3561d806b00c949789f463c4609844399bb7095\n"
    },
    {
      "commit": "e30f20963751c07860bfbc92b5ff8948fc55797f",
      "tree": "fbff4f6bdf23e1ca3a7fc8270559dfe4f3a62eac",
      "parents": [
        "b343e0444a3420321c606a827347f18445d76385"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 07 18:56:57 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 07 18:56:57 2016 -0700"
      },
      "message": "Add Dolby TrueHD audio format\n\nAlso add missing formats in AudioFlinger string conversion\nutility.\n\nBug: 30024357\nChange-Id: I75bdb54daeb786543f545ec3a772121055e01cdb\n"
    },
    {
      "commit": "bf29173d6d63536ae9f8cfd1d02153237ee23612",
      "tree": "3f6fe33288711b73e8683d671a57860d6f14219d",
      "parents": [
        "0603c5dfc34923095218307674a60429bfa5873a"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue May 17 15:16:07 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue May 17 15:16:07 2016 -0700"
      },
      "message": "Fix misc-macro-parentheses warnings.\n\nBug: 28705665\nChange-Id: I97d1dec9a4397fd7a3cab5180a833066b8abe0ab\n"
    },
    {
      "commit": "7b5ee5765f5632c36932d4630891936efd255270",
      "tree": "00803c93f0f1e912a106dbb0d7ab8088643c27bf",
      "parents": [
        "f23148a358aeb8f8f76d9568134ff79cf4aa0890",
        "6b6f366cb1daacbce97b865515e839a0fcc9da53"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 21 18:28:24 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Apr 21 18:28:24 2016 +0000"
      },
      "message": "Merge \"Merge \"audio policy: fix regression in getDeviceConnectionState().\" into nyc-dev am: f3aaf48fe2 am: 19665dc930\" into nyc-mr1-dev-plus-aosp\nam: 6b6f366cb1\n\n* commit \u00276b6f366cb1daacbce97b865515e839a0fcc9da53\u0027:\n  audio policy: fix regression in getDeviceConnectionState().\n\nChange-Id: I8f0318371882609d0da69c64de2a4e053177a9b3\n"
    },
    {
      "commit": "19665dc9307e9b18f188dea4001fe24adbda4500",
      "tree": "f6230e84031e9cdb8fb505510301e343d258de32",
      "parents": [
        "2362982a1d5ec938a296d7ec2c247490f0db5dc3",
        "f3aaf48fe2ca7f9886f1e4d00db16c575e9a97c9"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 21 18:23:44 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Apr 21 18:23:44 2016 +0000"
      },
      "message": "Merge \"audio policy: fix regression in getDeviceConnectionState().\" into nyc-dev\nam: f3aaf48fe2\n\n* commit \u0027f3aaf48fe2ca7f9886f1e4d00db16c575e9a97c9\u0027:\n  audio policy: fix regression in getDeviceConnectionState().\n\nChange-Id: I8274672487d9f627277edd379b7f4b04d94749a5\n"
    },
    {
      "commit": "6163904559247601e9a0834a3c09341862bcff95",
      "tree": "1c572f9940d18e5f11ae908d564a16f66449aa33",
      "parents": [
        "eb03cbae99cc907b26fe95ec2c6562d7daef53cc"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Apr 20 18:09:48 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Apr 20 18:13:38 2016 -0700"
      },
      "message": "Symbolize flags of IOProfile in dumps\n\nSample symbolization:\n\n - flags: 0x0006 (AUDIO_OUTPUT_FLAG_PRIMARY|AUDIO_OUTPUT_FLAG_FAST)\n - flags: 0x0008 (AUDIO_OUTPUT_FLAG_DEEP_BUFFER)\n - flags: 0x0031 (AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD|AUDIO_OUTPUT_FLAG_NON_BLOCKING)\n - flags: 0x0104 (AUDIO_OUTPUT_FLAG_FAST|AUDIO_OUTPUT_FLAG_RAW)\n\nChange-Id: Id155cffea4e1defb1e0c2c1d24b869d4151b14e3\n"
    },
    {
      "commit": "634b71478742310960f3fdb4241e70a0735712c4",
      "tree": "7a44f5a447a8b37db668b6b88b8d3a29d0e85c95",
      "parents": [
        "eb7f3940044effc6a8b313a73134b5cc2156068c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 20 13:48:02 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 20 16:45:57 2016 -0700"
      },
      "message": "audio policy: fix regression in getDeviceConnectionState().\n\nFix problem in DeviceVector() device search logic causing\nfailure to report connection of devices when no address is provided\n(e.g when called from AudioManager.isBluetoothA2dpOn()).\n\nBug: 28286051\nChange-Id: I7ca732e195d2ddcdc1a93b78aed21523b3461aa9\n"
    },
    {
      "commit": "0d6a03301d77724c00c7a9ce7b8c123092d07a19",
      "tree": "e3c693830eeff3c15fe52efbfc860c657647df8d",
      "parents": [
        "ec39d648229ac2bdf14688077cf6433c911fc7e7"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Apr 19 17:12:38 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Apr 19 17:54:23 2016 -0700"
      },
      "message": "Small improvements in audio_policy dump\n\n 1. Introduce a formatting helper for audio_mode_t, use it.\n 2. Get rid of mSize in TypeConverter.\n 3. Convert to a string unknown enum values.\n\nChange-Id: I8fc222225c2dd48dea715bb3fe4ecb3f1eaecc46\n"
    },
    {
      "commit": "54840ea273edb58259cb592992d95eb718327b23",
      "tree": "63e06d5bb8e3ec203f6eb0fd3d902d12f5cbd01e",
      "parents": [
        "a70461cbf0c09aec396f7d24f8ab58339becc904",
        "7ffe507c702f2968075038a195f338ea4d2e646a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 19 18:11:01 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Apr 19 18:11:01 2016 +0000"
      },
      "message": "fix the build am: 0631aee am: 9ce4e24\nam: 7ffe507\n\n* commit \u00277ffe507c702f2968075038a195f338ea4d2e646a\u0027:\n  fix the build\n\nChange-Id: I45b1ce57e6036d19b578619d1be450173720a344\n"
    },
    {
      "commit": "9ce4e2408a809fdfa63d56c92581ba3aed22e5cb",
      "tree": "de298081cbdfdd161c61b5945af71c9d1ec28051",
      "parents": [
        "8731a0a7b991470156db4dfa021be38f6b73eb8c",
        "0631aee95c5a98fb2dc0a45f093f9bd0cfbe463f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 19 18:03:27 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Apr 19 18:03:27 2016 +0000"
      },
      "message": "fix the build\nam: 0631aee\n\n* commit \u00270631aee95c5a98fb2dc0a45f093f9bd0cfbe463f\u0027:\n  fix the build\n\nChange-Id: Iea66707492737a300f8905604bde4d1a629dd92c\n"
    },
    {
      "commit": "0631aee95c5a98fb2dc0a45f093f9bd0cfbe463f",
      "tree": "90e669c0722b1172a96008c857ce366f182f6de9",
      "parents": [
        "8111860ba116d84034b2aa21445feec71c65a9d4"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 19 10:48:57 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 19 10:48:57 2016 -0700"
      },
      "message": "fix the build\n\nFix the build for platforms using legacy audio_policy.conf file\nbroken by commit 5a2b6298.\n\nChange-Id: Icb9c8027b1a8163d19162f311ec1364da7383a2c\n"
    },
    {
      "commit": "cc607b16f0178fd1aeb0da680d21fd7eb1d91b1c",
      "tree": "351886a9aabf5fe94e8f39a3affac5299a7c96b6",
      "parents": [
        "29eba348907e6603dd4de4b997fb261af70c6118",
        "010b235b26dea3913374b688939120f2542c0225"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 19 17:25:08 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Apr 19 17:25:08 2016 +0000"
      },
      "message": "Merge \"audio policy: support platforms with no audio devices\" into nyc-dev am: 8111860 am: 21c4ffc\nam: 010b235\n\n* commit \u0027010b235b26dea3913374b688939120f2542c0225\u0027:\n  audio policy: support platforms with no audio devices\n\nChange-Id: I949c911c89f8171aabe6f550628cf6c3d1329400\n"
    },
    {
      "commit": "010b235b26dea3913374b688939120f2542c0225",
      "tree": "f8e67b2376f599ed9883d8f8d3b1725b22b21aa3",
      "parents": [
        "fd9003de5d25f05405aa326f43514c4c75618d58",
        "21c4ffc9af1b6c8663a075bc5cf4d447288be7ef"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 19 17:18:49 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Apr 19 17:18:49 2016 +0000"
      },
      "message": "Merge \"audio policy: support platforms with no audio devices\" into nyc-dev am: 8111860\nam: 21c4ffc\n\n* commit \u002721c4ffc9af1b6c8663a075bc5cf4d447288be7ef\u0027:\n  audio policy: support platforms with no audio devices\n\nChange-Id: I2bef297f529f40e7b900f659c9b56b6898d6e027\n"
    },
    {
      "commit": "8731a0a7b991470156db4dfa021be38f6b73eb8c",
      "tree": "f8e67b2376f599ed9883d8f8d3b1725b22b21aa3",
      "parents": [
        "eb059113754c54b178d6de6feec13daadd244672",
        "8111860ba116d84034b2aa21445feec71c65a9d4"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 19 17:15:19 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Apr 19 17:15:19 2016 +0000"
      },
      "message": "Merge \"audio policy: support platforms with no audio devices\" into nyc-dev\nam: 8111860\n\n* commit \u00278111860ba116d84034b2aa21445feec71c65a9d4\u0027:\n  audio policy: support platforms with no audio devices\n\nChange-Id: Iae933bddfccc3955c1cc93a1418accb0c0ca12e7\n"
    },
    {
      "commit": "5a2b62984c7cecd1761fe272c078dd814c167942",
      "tree": "e93fb96c43df88df2f05f23cb1160ecd91aead7b",
      "parents": [
        "bc0c73e05ec935bc478ee0e40aee79f80771a482"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 14 18:05:57 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 18 18:35:02 2016 -0700"
      },
      "message": "audio policy: support platforms with no audio devices\n\nRemove requirement to declare an AUDIO_DEVICE_OUT_SPEAKER device\nfor platforms without audio output.\n\nBy convention:\n- platforms without audio output should declare a single output\ndevice of type AUDIO_DEVICE_OUT_STUB also declared as default\noutput device\n- platforms without audio input should declare a single input\ndevice of type AUDIO_DEVICE_IN_STUB\n\nPlatforms with no audio at all can use stub audio policy configuration\nfile and audio HAL with the following instructions in device.mk file:\n\nUSE_XML_AUDIO_POLICY_CONF :\u003d 1\nPRODUCT_PACKAGES +\u003d \\\n    audio.stub.default\nPRODUCT_COPY_FILES +\u003d \\\n    frameworks/av/services/audiopolicy/config/audio_policy_configuration_stub.xml:system/etc/audio_policy_configuration.xml\n\nBug: 25075342\nChange-Id: Id700978559427edd3c7cc38d98f2fd52928367ed\n"
    },
    {
      "commit": "45207c0d0b57466b6c3f1205c68241bd7de0c4f0",
      "tree": "23831214a289f6a956220b9f6fa6e75fd7416e4c",
      "parents": [
        "57c038bce51f07cd07f62a9935ef406ab0e2034e",
        "6ce2b341c52cf9daa01a7fc44173cb5ddeff8845"
      ],
      "author": {
        "name": "Christopher Wiley",
        "email": "wiley@google.com",
        "time": "Wed Apr 13 19:42:15 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Apr 13 19:42:15 2016 +0000"
      },
      "message": "Merge \"resolve merge conflicts of cecb297 to nyc-dev-plus-aosp\" into nyc-dev-plus-aosp\nam: 6ce2b34\n\n* commit \u00276ce2b341c52cf9daa01a7fc44173cb5ddeff8845\u0027:\n  Express libmedia dependencies in libaudiopolicycomponents\n\nChange-Id: Id6821f83e40d54c28b2f008b6e217a30a20cf41a\n"
    },
    {
      "commit": "b30195c378a5f299b62f3781a7ae94f7111ede6f",
      "tree": "84488b43aec950038e165f4381748ebce93a7be2",
      "parents": [
        "7fa9e2a24d4e17429d64eadb996e8780e5c5c399",
        "cecb2973c3267869d92f681776e5e453341740b1"
      ],
      "author": {
        "name": "Christopher Wiley",
        "email": "wiley@google.com",
        "time": "Wed Apr 13 11:56:35 2016 -0700"
      },
      "committer": {
        "name": "Christopher Wiley",
        "email": "wiley@google.com",
        "time": "Wed Apr 13 11:56:35 2016 -0700"
      },
      "message": "resolve merge conflicts of cecb297 to nyc-dev-plus-aosp\n\nChange-Id: I2c5ab9e73733b4d259fe0f242087ee9ef97143f2\n"
    },
    {
      "commit": "53a27325e775a775b552596d2274e32ea4e89c0b",
      "tree": "bad7269e84418175fd574a5a34ba62b987431067",
      "parents": [
        "3a618bb66d242e2e7686c4b8f0903e055668191c",
        "dbe477af33cee467480f171d2765d958ac162d6e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 13 01:52:05 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Apr 13 01:52:05 2016 +0000"
      },
      "message": "audio policy: fix call audio over 24 bit USB device am: 8ae7312\nam: dbe477a\n\n* commit \u0027dbe477af33cee467480f171d2765d958ac162d6e\u0027:\n  audio policy: fix call audio over 24 bit USB device\n\nChange-Id: I405aa268b7e751b55307afbb54e0ebd57cfef964\n"
    }
  ],
  "next": "8ae73129e7e79d826b293238c2f037f723d0e6e8"
}
