)]}'
{
  "log": [
    {
      "commit": "a0983dbcc94be77d6eb1ff4d3e609f9dc8a55eb3",
      "tree": "b0c3f95adf890f9d0eaffd7628df32798f312310",
      "parents": [
        "3e0188ff41dd932d2395d3de2d9d736f72930417",
        "0bd745eb91487821ce415272fb49a567483bde43"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 02 23:40:53 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 02 23:40:53 2020 +0000"
      },
      "message": "Merge \"aaudio: add thread safety annotation\""
    },
    {
      "commit": "0bd745eb91487821ce415272fb49a567483bde43",
      "tree": "2b3f952b01ea3dfa680317fd50a8e8db65ad45ce",
      "parents": [
        "11b45e9f0a31783c7fa1d28281a489dfe47a9982"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Sat Oct 17 18:20:01 2020 +0000"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Nov 02 20:25:22 2020 +0000"
      },
      "message": "aaudio: add thread safety annotation\n\nAlso improve naming to clarify lock requirements.\n\nAnd call some locked methods that were not called before.\nAlthough they were protected with a different lock so\nit should have no effect.\n\nBug: 171296283\nTest: adb logcat *:F\nTest: In another window:\nTest: atest AAudioTestCases\nChange-Id: I6e863cbdea9250188e3f4b8f8654ef71c8951e74\n"
    },
    {
      "commit": "23c292430ce90152d03ceca3cc6b3a678626d854",
      "tree": "50c7728807bbbaf08b26ede890f639cf0ac2b48b",
      "parents": [
        "c9ae6a729ac7dfc87e969bd4693d33287edc0bf1",
        "f33115ddd726e1bb3b76565b7350a49c433afe40"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Oct 26 18:24:08 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 26 18:24:08 2020 +0000"
      },
      "message": "Merge \"Use system/audio to/from string converters in TypeConverter\""
    },
    {
      "commit": "f33115ddd726e1bb3b76565b7350a49c433afe40",
      "tree": "69db6ec5330f39b9ae64cdf65deafe04b404d617",
      "parents": [
        "d6fe406c865072f4d139756a48487d34fed0f07f"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Sep 25 23:03:05 2020 +0000"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Oct 23 00:04:22 2020 +0000"
      },
      "message": "Use system/audio to/from string converters in TypeConverter\n\nUse of system functions eliminates the need for listing all enum\nvalues in TypeConverter tables.\n\nSlight changes in the converting functions:\n\n1. \u0027channelMaskFromString\u0027 function now also accepts indexed\n   masks.\n2. Fixed UB in \u0027formatFromString\u0027 function.\n3. Removed \u0027deviceFromString\u0027 function, use\n   \u0027DeviceConverter::fromString\u0027 instead.\n\nReplaced direct includes of \u0027system/audio-base.h\u0027 with\nincludes of \u0027system/audio.h\u0027.\n\nBug: 142480271\nTest: m\nTest: atest libmedia_helper_tests\nChange-Id: Ia0e725026be80621bdc797299e63e134419b2b3d\n"
    },
    {
      "commit": "dd582929677fab6ffdb52f36cd1e16855bb7321a",
      "tree": "76c8557c340edeacb098665d331ba7a7f6f398e2",
      "parents": [
        "9bcf4989bf3e09167503e94571b15626e56f4453"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Oct 15 20:29:51 2020 +0000"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Oct 21 00:37:34 2020 +0000"
      },
      "message": "aaudio: cleanup thread handling\n\nFix problem when an attempt is made to join the callback from the\ncallback. It used to leave mHasThread in the wrong state.\nThis was fixed in AAudioThread and in AudioStream.\n\nAdd \"_l\" suffix to functions that need to be locked.\n\nSimplify the way that reference counted objects are passed to threads\nusing incStrong() and decStrong().\n\nBug: 171296283\nTest: atest AAudioTestCases\nChange-Id: I034049c4cb9021c6073fff441e49214ee898b804\n"
    },
    {
      "commit": "9bcf4989bf3e09167503e94571b15626e56f4453",
      "tree": "f469a96aac072841fc39bc8710002b4e25a4ccd8",
      "parents": [
        "14a1a17354d3ab55804ec688051a405dc0c320d6",
        "78d02237ebe6c90d36dca7b6da5e867ac6295318"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Oct 20 03:29:05 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 20 03:29:05 2020 +0000"
      },
      "message": "Merge \"Revert \"Use system/audio to/from string converters in TypeConverter\"\""
    },
    {
      "commit": "78d02237ebe6c90d36dca7b6da5e867ac6295318",
      "tree": "fb81c7a5bacfec08f2d9c4d71f0559a26c95d8e3",
      "parents": [
        "0f243bbaf628bf8aa873e978feb720d3354b476c"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Oct 20 01:29:53 2020 +0000"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Oct 20 01:29:53 2020 +0000"
      },
      "message": "Revert \"Use system/audio to/from string converters in TypeConverter\"\n\nRevert \"audio: Align lists of enum values between framework and HAL\"\n\nRevert submission 12851233-hal-enum-strings\n\nReason for revert: breaks slider device\nReverted Changes:\nI4f64a8b61:Use system/audio to/from string converters in Type...\nIddaa92bf2:Move enums shared with HAL to audio-hal-enums.h\nIe5896775b:audio: Align lists of enum values between framewor...\n\nBug: 171262726\nChange-Id: I7568c41c5641cf120ffacbfda4751c3bb1c4e4f8\n"
    },
    {
      "commit": "14a1a17354d3ab55804ec688051a405dc0c320d6",
      "tree": "a367deee603744e4f22e7018a795bd7cdc9a81a1",
      "parents": [
        "2254ae51fa1c681eb39a79a2d60f36c5d48ad0ee",
        "e358ec63eedd7a6289984b1f2468c5c16c2ff6c8"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Oct 19 23:08:05 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 19 23:08:05 2020 +0000"
      },
      "message": "Merge \"aaudio: use strong pointer to protect callback\""
    },
    {
      "commit": "2254ae51fa1c681eb39a79a2d60f36c5d48ad0ee",
      "tree": "b36d18312a4cb3d2149a3ca02bf17d4c94d3d682",
      "parents": [
        "7bebd206b9a0366e659e7f0bf332c69fb2da2336",
        "0f243bbaf628bf8aa873e978feb720d3354b476c"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Oct 19 21:36:43 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 19 21:36:43 2020 +0000"
      },
      "message": "Merge \"Use system/audio to/from string converters in TypeConverter\""
    },
    {
      "commit": "e358ec63eedd7a6289984b1f2468c5c16c2ff6c8",
      "tree": "dc2daf58088b5586cfe6be9abfb92987d6749899",
      "parents": [
        "7aed66e788c8955ddd22a1235856bb9dac34d82a"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Oct 12 23:42:30 2020 +0000"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Oct 19 20:31:17 2020 +0000"
      },
      "message": "aaudio: use strong pointer to protect callback\n\nHold a strong pointer to the AudioStream so it cannot get deleted while\nthe MMAP callback is running.\n\nAlso fixes disconnect for shared streams, which was broken\nby a previous attempt to fix b/166877425\n\nBug: 166877425\nBug: 170551030\nTest: see bug for details\nTest: atest AAudioTestCases\nTest: OboeTester V1.5.30 or later, \"TEST DISCONNECT\"\nChange-Id: I236e2d68632070d253d14ddf7b9d7076e068830a\n"
    },
    {
      "commit": "0f243bbaf628bf8aa873e978feb720d3354b476c",
      "tree": "3c065d2ff4b39a12ea3b830e82ada2597e907ece",
      "parents": [
        "e3bca196dbe931f0d7c26394c6224784224da459"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Sep 25 23:03:05 2020 +0000"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Oct 16 23:00:44 2020 +0000"
      },
      "message": "Use system/audio to/from string converters in TypeConverter\n\nUse of system functions eliminates the need for listing all enum\nvalues in TypeConverter tables.\n\nSlight changes in the converting functions:\n\n1. \u0027channelMaskFromString\u0027 function now also accepts indexed\n   masks.\n2. Fixed UB in \u0027formatFromString\u0027 function.\n3. Removed \u0027deviceFromString\u0027 function, use\n   \u0027DeviceConverter::fromString\u0027 instead.\n\nReplaced direct includes of \u0027system/audio-base.h\u0027 with\nincludes of \u0027system/audio.h\u0027.\n\nBug: 142480271\nTest: m\nChange-Id: I4f64a8b6164bb5ad94cbf1da1709cb379f4a75fa\n"
    },
    {
      "commit": "4d03116067325232554dfc0f096fba573298be32",
      "tree": "0db3417bc471ce1b4eb5d316ecd97fd735236dac",
      "parents": [
        "45912d92c289e477590806a10296cd90b809a311",
        "0b997547c4ae5f5e101492d2ccbf30b3b286ca26"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Oct 13 23:45:31 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 13 23:45:31 2020 +0000"
      },
      "message": "Merge \"aaudio test: monkey test handle disconnects\""
    },
    {
      "commit": "0b997547c4ae5f5e101492d2ccbf30b3b286ca26",
      "tree": "c1bb21035cde225c255c941c302f7659b62859ad",
      "parents": [
        "7aed66e788c8955ddd22a1235856bb9dac34d82a"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Oct 13 17:28:00 2020 +0000"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Oct 13 19:50:52 2020 +0000"
      },
      "message": "aaudio test: monkey test handle disconnects\n\nWhen testing multiple monkeys with exclusive streams,\nthey will now steal the exclusive stream and use shared\nstreams. The test now handles that without failing.\nIt can also handle plugging in headphones.\n\nTest: test_audio_monkey -pl -x -t4\nChange-Id: I33e02f60e809ff8aee17a489525be79d73e2c13a\n"
    },
    {
      "commit": "55773033ed1f23c4e8f3d2704002fbd0cedbf7a5",
      "tree": "54bc894243fa3c52e611c85aed75ee6677056c13",
      "parents": [
        "7aed66e788c8955ddd22a1235856bb9dac34d82a"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Oct 01 15:08:13 2020 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Oct 08 18:12:55 2020 -0700"
      },
      "message": "Convert mask types from uint32_t to enum type\n\nThis applies to the following types:\n\n- audio_gain_mode_t;\n- audio_flags_mask_t;\n- audio_channel_representation_t;\n- audio_channel_mask_t;\n- audio_devices_t.\n\nEnum types are distinct thus proper overloading on the type\nis possible in C++. Also, assignments to enum types are\nless prone to errors.\n\nBug: 169889714\nTest: basic audio functionality\n      m stagefright\n      atest audiopolicy_tests\nChange-Id: I42506484b1d0b0482618b7314fad4c8012a06fb4\n"
    },
    {
      "commit": "38d61884c3f6e1824d785c7eb42f7fefa9fdaf90",
      "tree": "cc650e237be634495b344b060fd559281c358119",
      "parents": [
        "ad3888714bc75acd1355e4f24003a7af11cd4a05",
        "2c87dda841a345a57b5c9124415fa42ff18a8e1c"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Oct 01 23:05:03 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 01 23:05:03 2020 +0000"
      },
      "message": "Merge \"aaudio test: use OboeTester analyzer\""
    },
    {
      "commit": "8d97b8e3760686f2f1c74a4bb4a703f1bc465060",
      "tree": "8e5c3cf36e442a8853d45d560db9c7c1595674aa",
      "parents": [
        "301e21d47ff0c8392015a66952241e03188b70bb"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Sep 25 23:18:14 2020 +0000"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Sep 29 21:43:35 2020 +0000"
      },
      "message": "aaudio: cache framesPerBurst and capacity\n\nThese do not change after opening the stream so we can\nsimply return a stored value and avoid querying the device.\n\nTest: atest AAudioTests\nChange-Id: I7a66c12bd695fd732194ff0a14ac9c8d9cacf923\n"
    },
    {
      "commit": "c5f4587cddb7ec90320df3d6233baffd5d8f93a1",
      "tree": "cd3dc205f82010918de2298a33f8d6bf8aec5ed2",
      "parents": [
        "734e3505e8222fd5c146dfa935f80b6ae3ce3003"
      ],
      "author": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Tue Aug 18 10:39:44 2020 -0700"
      },
      "committer": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Fri Sep 11 16:33:19 2020 -0700"
      },
      "message": "Convert AAudioService to AIDL\n\nThis change removes all hand-written binder code associated with\nparceling of AAudio types and IAAudioService interface.\n\nThe existing types defined in the \u0027binding\u0027 directory have not been\nreplaced by their AIDL counterparts, but rather were made convertible\nto/from them (in lieu of them being parcelables themselves).\nThe reasons are:\n- Some of those types offer additional functionality rather than\n  simply being data containers / serializers. For example, the\n  SharedMemoryParcelable type supports mmaping a memory region.\n- Reduce impact on existing code, which relies on the interface\n  offered by those type, which is different than the interface offered\n  by their AIDL counterparts.\n\nThe conversion between those types and their parcelable counterparts\nis handled at the edge of the client (inside AAudioBinderAdapter) and\nserver (inside AAudioService) code.\n\nFuture changes may gradually get rid of the duality by retiring the\ndata types in the \u0027binding\u0027 directory, inlining some of the features\nthey are offering (such as accessor methods) and replacing others with\nutility functions, operation on the parcelables directly.\n\nBug: 160253486\nTest: Manual testing using OboeTester\n      Ran atest CtsNativeMediaAAudioTestCases\n      Ran atest test_aaudio_marshalling\nChange-Id: I6eed19246a472dc31c1e2d6d2112d7562cf8940c\n"
    },
    {
      "commit": "734e3505e8222fd5c146dfa935f80b6ae3ce3003",
      "tree": "c7f54bbbf2d764150c550813ea32e09c4d6583cf",
      "parents": [
        "0412f73c6eb83e51832b9b7aaa57a4dc0239e6a5"
      ],
      "author": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Mon Aug 24 14:57:36 2020 -0700"
      },
      "committer": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Fri Sep 11 16:33:15 2020 -0700"
      },
      "message": "Avoid AAudioService-\u003eAAudioServiceInterface inheritence\n\nThis is required in order to prepare for divergence of\nAAudioServiceInterface from BnAAudioService: if AAudioService\ninherits from both, we would have method collisions as soon as we\nchange the signatures on one of the interfaces.\n\nWe achieve the same behavior with an adapter, which in this change is\ncompletely trivial, but will be used as soon as the interfaces\nactually diverge.\n\nBug: 160253486\nTest: Manual testing using OboeTester\n      Ran atest CtsNativeMediaAAudioTestCases\nChange-Id: I0d3e41e2378f1e6ff9cbe37461682f7373f463f2\n"
    },
    {
      "commit": "2c87dda841a345a57b5c9124415fa42ff18a8e1c",
      "tree": "2c1ff1e8e82cd2ade44b48646b8f78ee0c226386",
      "parents": [
        "10a7efe0387b11acc57cf6cea3f2ae594b1d8907"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Sep 11 23:14:48 2020 +0000"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Sep 11 23:14:48 2020 +0000"
      },
      "message": "aaudio test: use OboeTester analyzer\n\nUse latency and glitch analyzer code from /external/oboe\ninstead of a copy. We can make a similar change on CTS Verifier.\n\nBug: 129788315\nTest: adb shell aaudio_loopback -pl -Pl -x -X -tl\nTest: adb shell aaudio_loopback -pl -Pl -x -X -tg\nChange-Id: I3990b29d93eccc7c669be0b97faa1b48630d39de\n"
    },
    {
      "commit": "0412f73c6eb83e51832b9b7aaa57a4dc0239e6a5",
      "tree": "4c0803d4e215de220b0c2c15ca50c79959f47eda",
      "parents": [
        "10a7efe0387b11acc57cf6cea3f2ae594b1d8907"
      ],
      "author": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Mon Aug 17 14:43:36 2020 -0700"
      },
      "committer": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Fri Sep 11 12:39:20 2020 -0700"
      },
      "message": "Convert IAAudioClient to AIDL\n\nBug: 160253486\nTest: Manual testing using OboeTester\n      Ran atest CtsNativeMediaAAudioTestCases\nChange-Id: I18e6c03144c59ce78181abf7c509c21f2724ad22\n"
    },
    {
      "commit": "e69bfcbc7c7494bf62a100a5058aca0d36a3771e",
      "tree": "0590380e03dbdefb57c8094cb996c531ce9e739f",
      "parents": [
        "f3a626fa54d1ad52673655edaf849b5a6b7c44ab"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Aug 20 00:10:35 2020 +0000"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Sep 02 21:48:03 2020 +0000"
      },
      "message": "aaudio: use natural burst size for recording\n\nThis is similar to ag/12420089\nbut is for input streams.\n\nBUG: 165675305\nTest: see bug for detailed repro steps\nTest: atest CtsNativeMediaAAudioTestCases\nChange-Id: I9b6dfb4d4e9c22d8aac51f86149d7c3bf29cb990\n"
    },
    {
      "commit": "b8a9dbbf791adf7f1a0ab87d7a35770074e88cc8",
      "tree": "a2f91436efd8587def9e765d333387fed6a03b7f",
      "parents": [
        "763136770b0bb6828cf7628a9b3bbf09b0741ae2"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Aug 27 04:12:26 2020 +0000"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Aug 27 04:12:26 2020 +0000"
      },
      "message": "Revert \"Snap for 6793014 from 424180bdc4aa18249e678daebfd0fcf936...\"\n\nRevert \"Snap for 6793014 from fd1ad6750ef332d3f50f218f4d5d148e6e...\"\n\nRevert \"Snap for 6793014 from 7594ec6384c4da320726def34f477736f9...\"\n\nRevert \"Snap for 6793014 from bbbccc3c2b7fc7c5780f6c415c4223e1d0...\"\n\nRevert \"Snap for 6793014 from 44725f06b7f7d6407b5ee82d989bdd6c7a...\"\n\nRevert \"Snap for 6793014 from f22ad3164937a8f2e309965c102b6366d5...\"\n\nRevert \"Snap for 6793014 from 11467102abddb6026aaa164c1361439c2d...\"\n\nRevert \"Snap for 6793014 from 265280bf5cb4bc14e132c3a35ae5f7ae65...\"\n\nRevert \"Snap for 6793014 from f2989f9c65556d5155dbd57f82f0c93a16...\"\n\nRevert \"Snap for 6793014 from 8b8bf0a07b0521bbe8483fbbab1222ffd6...\"\n\nRevert \"Snap for 6793014 from 3777d883a3857b1a1589181c436d9018d7...\"\n\nRevert \"Snap for 6793014 from 3157b4ee4325286f0c2ab0f26528460c8b...\"\n\nRevert \"Snap for 6793014 from a43295d1825da62af038d345a7a861ed7a...\"\n\nRevert \"Snap for 6793014 from 2076be4d27078d6ebc0a6b5e5ceb386109...\"\n\nRevert \"Snap for 6793014 from d0e31526c62b2aeb35c293ac96feb180fc...\"\n\nRevert \"Snap for 6793014 from 7a3a8c6351d5167a6ae0b33bc376efabd2...\"\n\nRevert \"Snap for 6793014 from 41471cb21bb16b5c3bcc92f84293b79684...\"\n\nRevert \"Snap for 6793014 from 42e5cca3cfb829690c9d8c6aca57a8e7d5...\"\n\nRevert \"Snap for 6793014 from 4f81304963d19f4511b1e8e7d0aad87a67...\"\n\nRevert \"Snap for 6793014 from 07602cdacf5bcc835db41f7eaa24af9964...\"\n\nRevert \"Snap for 6793014 from 14cb57e107a3abce8b14937b1f92c28d18...\"\n\nRevert \"Snap for 6793014 from ab1e4a81d09a540a5f927059e5bc03a606...\"\n\nRevert \"Snap for 6793014 from 8c65adad0bcdfb3acc561063b4048dca24...\"\n\nRevert \"Snap for 6793014 from b3061942700265e2bf04af9997775dcbbb...\"\n\nRevert \"Snap for 6793014 from 551c5953fc62e339e4ee884ec2cd0ac3be...\"\n\nRevert \"Snap for 6793014 from 4919273b2ac5c6347a18e17c5ec70d8da6...\"\n\nRevert \"Snap for 6793014 from 988d4244914e0c749655e8cb6db18ba44f...\"\n\nRevert submission 12465146-release-request-6b259cbc-1f45-4b05-bc7e-c9b893b79d68-for-git_main-busytown-release-6793014\n\nReason for revert: b/166531456\nReverted Changes:\nI5ff7a6c0d:Snap for 6793014 from f2989f9c65556d5155dbd57f82f0...\nI77bdff943:Snap for 6793014 from a43295d1825da62af038d345a7a8...\nI2ac5c520a:Snap for 6793014 from c3f124cca05579acf0a6cb589ebd...\nI023b9702f:Snap for 6793014 from 98756d6d3e2bb0ba28eb125caa7a...\nIbc7893d72:Snap for 6793014 from fd1ad6750ef332d3f50f218f4d5d...\nIc27847bee:Snap for 6793014 from 8c65adad0bcdfb3acc561063b404...\nIf20bc9352:Snap for 6793014 from 7a3a8c6351d5167a6ae0b33bc376...\nI6542d17e8:Snap for 6793014 from 3777d883a3857b1a1589181c436d...\nI66e6bb8a9:Snap for 6793014 from 8b8bf0a07b0521bbe8483fbbab12...\nI3cd190b6b:Snap for 6793014 from 424180bdc4aa18249e678daebfd0...\nIf92db7402:Snap for 6793014 from ab1e4a81d09a540a5f927059e5bc...\nIaced03c87:Snap for 6793014 from d0e31526c62b2aeb35c293ac96fe...\nI5d28c6b4b:Snap for 6793014 from 4f81304963d19f4511b1e8e7d0aa...\nI30d07bea3:Snap for 6793014 from 7594ec6384c4da320726def34f47...\nI473205f48:Snap for 6793014 from 551c5953fc62e339e4ee884ec2cd...\nI0656b41af:Snap for 6793014 from 44725f06b7f7d6407b5ee82d989b...\nI0f9796067:Snap for 6793014 from 4919273b2ac5c6347a18e17c5ec7...\nI9a38cda8f:Snap for 6793014 from 2076be4d27078d6ebc0a6b5e5ceb...\nI876a82f51:Snap for 6793014 from 11467102abddb6026aaa164c1361...\nI749d7d023:Snap for 6793014 from 41471cb21bb16b5c3bcc92f84293...\nI038daea41:Snap for 6793014 from 07602cdacf5bcc835db41f7eaa24...\nI47aa3131c:Snap for 6793014 from 14cb57e107a3abce8b14937b1f92...\nI32dba8a95:Snap for 6793014 from 3157b4ee4325286f0c2ab0f26528...\nI2ebc9f9db:Snap for 6793014 from 988d4244914e0c749655e8cb6db1...\nIae7c3370f:Snap for 6793014 from 9ffb8852294e06e2d387dc1fb868...\nI6467a7f1b:Snap for 6793014 from 42e5cca3cfb829690c9d8c6aca57...\nI8c6375203:Snap for 6793014 from b3061942700265e2bf04af999777...\nI843b2e1f3:Snap for 6793014 from 265280bf5cb4bc14e132c3a35ae5...\nIe254f7079:Snap for 6793014 from f22ad3164937a8f2e309965c102b...\nI01e0974ed:Snap for 6793014 from bbbccc3c2b7fc7c5780f6c415c42...\n\nChange-Id: I00c786b898b73e58db8bcb1dd0cf3fdaa1ae3038\n"
    },
    {
      "commit": "8dff4ae2e40d385869cdb28be4af50b615af37a2",
      "tree": "054748ae814437055247bd047a7c06945afa1cc0",
      "parents": [
        "f1a36052bf6c752cec6b60bec058971765bdfa7b",
        "58f5ce146a8c2b25cc3bbd18df6e264addda2684"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Aug 20 14:48:28 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 20 14:48:28 2020 +0000"
      },
      "message": "Merge changes Ic24aca3e,If8f6f6f1\n\n* changes:\n  aaudio: prevent onAudioDeviceUpdate past close\n  aaudio: fix crash from callbacks during close\n"
    },
    {
      "commit": "58f5ce146a8c2b25cc3bbd18df6e264addda2684",
      "tree": "cf2893c9d5da9aa989c88cf2fa8b14dad6d3861a",
      "parents": [
        "320910fcf1e7d7729f37f95f591093191414e73f"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Aug 12 14:29:10 2020 +0000"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Aug 20 01:03:06 2020 +0000"
      },
      "message": "aaudio: prevent onAudioDeviceUpdate past close\n\nTo prevent late device update callbacks, the AudioStream\nwas made into a RefBase AudioDeviceCallback.\nSo now we can use a smart pointer to delay deletion of the\nstream if any callbacks are in flight while the stream is closed.\n\nSo an AudioStream is now a RefBased object and can be used with\nandroid::sp. That required some changes to the way it is referenced\nin several places.\n\nMyPlayerBase was modified to use a weak pointer to the parent stream.\n\nBug: 161914201\nBug: 163165126\nBug: 164411271\nTest: see bug for repro of the crash\nTest: atest CtsNativeMediaAAudioTestCases\nChange-Id: Ic24aca3eaf5d1610504bb89c06001a37d0d4a1c3\n"
    },
    {
      "commit": "f266417b07eb474887b3b9cdb6f45631764305ee",
      "tree": "82edf785f33c2a0b1f9611c6cb69b889ad7a5551",
      "parents": [
        "6b5fdb53573f08258392cc60ff167fc90b553363",
        "ef170f08df3775572eb49c9aecc56d17cee62513"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Aug 18 20:25:18 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 18 20:25:18 2020 +0000"
      },
      "message": "Merge \"aaudio test: catch errors with release of input stream\""
    },
    {
      "commit": "ef170f08df3775572eb49c9aecc56d17cee62513",
      "tree": "aaf4ba79b4c010d431770b7a8562fb110f67eb63",
      "parents": [
        "f356189f05884926290b1f7920241ef15674cbc6"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Aug 07 18:50:04 2020 +0000"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Aug 18 19:10:23 2020 +0000"
      },
      "message": "aaudio test: catch errors with release of input stream\n\nThe test_various.cpp file was missing some crashes\nthat could occur if AAudio query functions were called after\nAAudioStream_release().\n\nBug: 163165126\nTest: adb shell test_various\nChange-Id: Ib423186083a2245a5fdb817eee0ff781ed1cfa22\n"
    },
    {
      "commit": "320910fcf1e7d7729f37f95f591093191414e73f",
      "tree": "e7052b3542898e68b5dbe5f5785ef0a19946bc2b",
      "parents": [
        "f356189f05884926290b1f7920241ef15674cbc6"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Aug 12 14:29:10 2020 +0000"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Aug 18 18:51:03 2020 +0000"
      },
      "message": "aaudio: fix crash from callbacks during close\n\nMove some code from release_l() into a new close_l().\nAlso stop callbacks before freeing memory in the\nFixedBlockReader.\n\nThe AudioTrack and AudioRecord callbacks can occur\nup until their destructors are called. This can lead\nto race conditions if the AAudio stream is dismantled\nwhile the AudioTrack or AudioRecord is still alive.\nThe AudioRecord was being deleted but not the AudioTrack.\nThat caused some streams to fail if they were using\na FixedBlockReader, which is used when the app\ncalls AAudioStreamBuilder_setFramesPerDataCallback().\n\nThere was also a problem with a few functions like\nAAudioStream_getFramesPerBurst() or AAudioStream_getTimestamp(),\nwhich would crash if called after AAudioStream_release( for\nINPUT streams.\n\nBug: 161914201\nBug: 163165126\nTest: see bug for repro of the crash\nTest: atest CtsNativeMediaAAudioTestCases\nChange-Id: If8f6f6f17ffe06eae98eb8b3930bca08c49a15f8\n"
    },
    {
      "commit": "ec3fa35dc49e7cef59e7d2f500a3de322d10ad5f",
      "tree": "4ca4e96ab7367b6ca05d861e3750e1040579e708",
      "parents": [
        "1d2a159395df0767ecb2320aff4dd4db3d26e6b2"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Aug 11 16:29:26 2020 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Aug 11 16:29:26 2020 -0700"
      },
      "message": "Update doc of setUsage and setContentType in AAudioStreamBuilder.\n\nThe usage and content type are only used for output stream. Update the\ndoc of AAudioStreamBuilder_setUsage/setContentType to indicate this two\nAPIs must only be used for output stream.\n\nTest: make\nBug: 143772798\nChange-Id: I8b500aa1d5b660d19552cbbaec305d3a8c37e39d\n"
    },
    {
      "commit": "8f4fe50dc17dab7d809ad215ab62dc86de888731",
      "tree": "5a83f0b41cb2ce576cf1e230321b6cdff137f818",
      "parents": [
        "a524c363821353a541442e3b23449875b797b09d"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Jul 15 23:54:50 2020 +0000"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Aug 06 19:00:12 2020 +0000"
      },
      "message": "aaudio: refactor references to shared FIFO\n\nReduce passing of raw pointers.\nUse shared_ptrs and unique_ptrs.\nSimplify memory management.\n\nRefactor FifoBuffer into two subclasses so that\nthe internal memory management is simpler.\n\nBug: 151650670\nTest: OboeTester \"TEST OUTPUT\"\nTest: disable EXCLUSIVE mode\nTest: OboeTester \"ECHO INPUT TO OUTPUT\"\nTest: disable INPUT EXCLUSIVE mode\nChange-Id: I10981767f8719f3cc3525df211285c53219a7979\n"
    },
    {
      "commit": "bb551703b691060c8e1a9c9878b78e3f9742e9a0",
      "tree": "2a7263751f763ec5dc2513f684f85d0f0a8f90ac",
      "parents": [
        "80f49ee74e278929c89db6e8705d009b6ab71186",
        "503495884fa9a06a7cb6473d36d69d6a13808887"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Jul 30 19:34:19 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Jul 30 19:34:19 2020 +0000"
      },
      "message": "Merge \"aaudio: Update language to comply with Android\u0027s inclusive language guidance\" am: cf7197e3ce am: 63347a7185 am: 39075258a9 am: b6e842223b am: 503495884f\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1375100\n\nChange-Id: Ib78c0f39e9163c4e8db1482db6659fbb98a88bbb\n"
    },
    {
      "commit": "39075258a92d969a6ea438cfe2ad298de01de7ad",
      "tree": "bac30dc7c62357c1678fd8e1de89a8d3c6858411",
      "parents": [
        "86b249c78a265e37a9516a50aee17919b4b22c14",
        "63347a718527003a3a3516f2eebe962f6fee860d"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Jul 30 18:33:52 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Jul 30 18:33:52 2020 +0000"
      },
      "message": "Merge \"aaudio: Update language to comply with Android\u0027s inclusive language guidance\" am: cf7197e3ce am: 63347a7185\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1375100\n\nChange-Id: I0c7f3a971c70e894f739ed4b6bf7c2d5959bc16c\n"
    },
    {
      "commit": "18142aed005974bf6bee76ece8afaff7c89d0b50",
      "tree": "9e2b532577c0164b0cd6291e86d1a1cd0c9957b0",
      "parents": [
        "3fd4dee8960cd6bccbb21227d43dfef839d33875"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Jul 28 12:44:37 2020 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Jul 30 09:39:06 2020 -0700"
      },
      "message": "aaudio: Update language to comply with Android\u0027s inclusive language guidance\n\nSee https://source.android.com/setup/contribute/respectful-code for reference\n\nBUG: 161896447\nTest: all changes are in comments, so just build\nChange-Id: I53a4a4c2ade03dcde940e6611f7e6b46d12ffe71\n\nChange-Id: I90ebaea4731c6ca95f312b2176792d50dea862ad\n"
    },
    {
      "commit": "ec8ca52932ecda761821230def1e1a4505b673b3",
      "tree": "7f2f6146661b7d0232d0cb0d29153e0671bc5762",
      "parents": [
        "18125ce86afecc1139cd4b128b2ec5a7e97d99e5"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue May 19 10:05:58 2020 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Jul 01 23:35:44 2020 +0000"
      },
      "message": "aaudio: fix race at start of stream\n\nWhen an MMAP stream is started, it is possible for the\nbeginning of the sound to be lost. One reason is because\nthe written data is placed right in front of the DSP read position.\nBut the DSP position is not well known when the stream is starting\nbecause we only have a few timestamps.\nIf the DSP advances before the data is written then the first burst\nmight be skipped\n\nThis CL places the initial write one burst ahead of the estimated DSP\nposition.\n\nThe same code is used to synchronize the read/write counters\nwhen a flush() occurs. In that case the serverMargin is zero.\n\nBug: 156313728\nBug: 157510931\nBug: 158547650\nTest: atest CtsNativeMediaAAudioTestCases\nTest: see bugs for other test cases\nChange-Id: I96170a924c69eee080a497b52cc6c1f3498c5455\n"
    },
    {
      "commit": "1a012372d22592b1a595b639f4d34aa66a9b1770",
      "tree": "e92ba590e8071db4675f203afaa69b6421d033c8",
      "parents": [
        "d2504bd81872024ab65f057c0b9730b45975b288",
        "b47fd10e664bcfd23c3725f5077421c5b1e1a285"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Sat Jun 27 03:12:14 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Jun 27 03:12:14 2020 +0000"
      },
      "message": "Merge changes I742a9d3d,Idce40ad2 into rvc-dev am: 1928cddbe9 am: b167113505 am: 1000cd1d23 am: b47fd10e66\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/12003365\n\nChange-Id: I93867607e7333751b733d7412c9247e7b67a350b\n"
    },
    {
      "commit": "1000cd1d232e040409321e79fdfb522eb9a6e0bb",
      "tree": "d31ea6636bcb553e183815b3eb656115a5528cee",
      "parents": [
        "6c77aaa0a921173a4db8c8cf94791287f15748ed",
        "b16711350551e228392697e9b715b99098323d8c"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Sat Jun 27 02:04:00 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Jun 27 02:04:00 2020 +0000"
      },
      "message": "Merge changes I742a9d3d,Idce40ad2 into rvc-dev am: 1928cddbe9 am: b167113505\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/12003365\n\nChange-Id: I41acfc348adedee49ac5c734a9182596c56c0877\n"
    },
    {
      "commit": "b3c73bdb4f17ba09e892f4e001f3bcafe7d10461",
      "tree": "d31ea6636bcb553e183815b3eb656115a5528cee",
      "parents": [
        "81f31f39382842d8f45ebcdaf0e35dcf5ff4c09a",
        "1928cddbe98a24e173d1b83b870c67cd8f2deffb"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Sat Jun 27 01:43:14 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Jun 27 01:43:14 2020 +0000"
      },
      "message": "Merge changes I742a9d3d,Idce40ad2 into rvc-dev am: 1928cddbe9\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/12003365\n\nChange-Id: Ibde008c9e9c5786c4b47b3124b67db1e47447c3b\n"
    },
    {
      "commit": "4c377ef1052cc45a44ed2b1ffdd11486a9b9d1e6",
      "tree": "3b9cf2f5be3789b6d844004d5caa72b74f776b62",
      "parents": [
        "29112a133f594a4e740d46cad8d6ae301c434f48"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Jun 25 10:03:23 2020 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Jun 26 11:54:41 2020 -0700"
      },
      "message": "aaudio: allow start when flushing\n\nThe state switch in the start() code did not allow\na start when in AAUDIO_STREAM_STATE_FLUSHING.\n\nThe bug was a regression in R and was not in Q.\n\nBug: 158603375\nBug: 159900922\nTest: test_various.cpp\nTest: atest CtsNativeMediaAAudioTestCases\nChange-Id: I742a9d3d07d445c0f3a80187b5a32cda5c700e82\n"
    },
    {
      "commit": "29112a133f594a4e740d46cad8d6ae301c434f48",
      "tree": "e4d109df508eea932dcaa1542e3757a4ca3788e3",
      "parents": [
        "ae87d21ce7b5a6b76a88fdefbe80ba0e3120b16a"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Jun 25 07:52:45 2020 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Jun 26 11:54:41 2020 -0700"
      },
      "message": "aaudio test: flushing to start transition\n\nAdd test for state transitions from FLUSHING to STARTED,\nFLUSHING to CLOSING, etc.\n\nAlso test for CLOSING to STARTED, STOPPED, etc.\n\nThis is to test a regression in R.\n\nBug: 158603375\nBug: 159900922\nTest: this is a test\nChange-Id: Idce40ad28d21438973facd9f32ef59e47c463279\n"
    },
    {
      "commit": "7216b3fe3d9580bf4305c01fc0df64dc7e172488",
      "tree": "2244a1ca21a329135dd894ad2c0e04258d51b03e",
      "parents": [
        "8ffa530d9c1e0179dc9389e683e022c4ca26bc38"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Jun 23 23:29:18 2020 +0000"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Jun 23 23:29:33 2020 +0000"
      },
      "message": "aaudio: reduce error logging\n\nBetter logic in setState().\nDowngrade and remove some other error messages.\n\nBug: 36785118\nTest: adb logcat *:W | grep -i audio\nTest: atest CtsNativeMediaAAudioTestCases\nChange-Id: I2046f34baa2d9fde55e20c24b30342f234abc309\n"
    },
    {
      "commit": "1a3c96b8cf7d20f0e4d58e1c68ed611985e0a74f",
      "tree": "98be4ab403d6ec02f261613785ad58309637e4b2",
      "parents": [
        "053af400c11aa8048def01d7f0f173edcc3ca562",
        "5e3479c296b0ddbebfdf0675ef9355882523f9fb"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 12 22:50:23 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Jun 12 22:50:23 2020 +0000"
      },
      "message": "Merge \"Include \u003cstdbool.h\u003e in NDK headers that use bool.\" into rvc-dev-plus-aosp am: 456513b73e am: cdceadbd05 am: 5e3479c296\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/11851227\n\nChange-Id: Ifa4b8ebef7a72e54da815099ec14c4976e31f47f\n"
    },
    {
      "commit": "9c1fca20c31ad0442e6be8d665dedb2c419a6093",
      "tree": "457d14c22345d5d4909917bdd44abef44438509d",
      "parents": [
        "27a9d4e57988c9c9e75639edc69b4fb62ddf1a07"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 12 09:53:12 2020 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 12 13:11:50 2020 -0700"
      },
      "message": "Include \u003cstdbool.h\u003e in NDK headers that use bool.\n\nBug: https://github.com/android/ndk/issues/1281\nTest: treehugger\nChange-Id: Idd009254e41b8b5136bc4d2d9a49c130780f98d5\n"
    },
    {
      "commit": "568cf59c8fcddd56b7c4b37aa0a3c13d1864f8be",
      "tree": "bd0661c53abe6da587477aa8b8af3376725d4bc7",
      "parents": [
        "e1ce1d5924ba86622003d4f9e964fe38c843df18",
        "566af0ed39d39a32a0d99e0b572399aaa10e4c93"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Jun 06 00:30:30 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Jun 06 00:30:30 2020 +0000"
      },
      "message": "Merge \"aaudio test: add -s to test_steal_exclusive\" into rvc-dev am: fab932e9ed am: a04d3c20b6 am: 0f246271eb am: 566af0ed39\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/11760672\n\nChange-Id: I290ee059fca5cc5ec0ca537e705b3dafdf1d0a56\n"
    },
    {
      "commit": "566af0ed39d39a32a0d99e0b572399aaa10e4c93",
      "tree": "2f1240307105717ce020a986ded8e0f08454c83d",
      "parents": [
        "8ff30f3b7e95af75730ba037ea6b1bc0df13ec2d",
        "0f246271eb5e6cc8f3cd11eec4d70515d567e79b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Jun 06 00:14:35 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Jun 06 00:14:35 2020 +0000"
      },
      "message": "Merge \"aaudio test: add -s to test_steal_exclusive\" into rvc-dev am: fab932e9ed am: a04d3c20b6 am: 0f246271eb\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/11760672\n\nChange-Id: Ie3700b0be294e5c695f39cb5954231014ec69195\n"
    },
    {
      "commit": "933b484fa7563c7ad2e990c61ad0051bb648eee0",
      "tree": "2f1240307105717ce020a986ded8e0f08454c83d",
      "parents": [
        "f541ec655235f96950f47515d23f3a7e0147c47a",
        "fab932e9edd3beb3a0539735d0692dcdbe2b1855"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jun 05 23:49:49 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Jun 05 23:49:49 2020 +0000"
      },
      "message": "Merge \"aaudio test: add -s to test_steal_exclusive\" into rvc-dev am: fab932e9ed\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/11760672\n\nChange-Id: Ia0241f88843495624f873cca43948197c02f8850\n"
    },
    {
      "commit": "fd19a77bc0fcc2d3d85beac6403b2b8c907dfe69",
      "tree": "c4d40019dd153168573cf5a6d34782b43b9b83a3",
      "parents": [
        "6d5a5c10a5b9389cd84b5a10d5814e65eeb004aa"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Jun 05 12:47:46 2020 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Jun 05 12:47:46 2020 -0700"
      },
      "message": "aaudio test: add -s to test_steal_exclusive\n\nAdd -s option to request SHARED mode.\nThis will not cause a steal. But it can be used\nto test the response to a disconnect.\n\nBug: 158316262\nTest: test_steal_exclusive -r0 -d0 -s\nChange-Id: I209dc72028ce61881a6d2d14a9cec689a2d74264\n"
    },
    {
      "commit": "ff682a7f4f39f04dc07deec66c18194907ada4ef",
      "tree": "26db70caeda52fb0855e4f0f2687119587e04500",
      "parents": [
        "3527e8a256066494431206750b606776c4ce46e7",
        "264d7ef14b451ef8ada5986e0a8969036b67fc47"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 03 01:59:44 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Jun 03 01:59:44 2020 +0000"
      },
      "message": "Merge \"aaudio test: improve stealing test\" into rvc-dev am: 1ae898a10c am: 96090febcd am: 61fe745347 am: 264d7ef14b\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/11659500\n\nChange-Id: Ie307f8209ef1fd606b5ffedb78d945e6bfd67688\n"
    },
    {
      "commit": "264d7ef14b451ef8ada5986e0a8969036b67fc47",
      "tree": "63233aa70f249cf5d2f8fb8ef79928532dce85f2",
      "parents": [
        "ea30586173385f7c51d14823fa917d996c8ea6bc",
        "61fe745347cb5ac0e119df5b376a8d58ea2f4be8"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 03 01:42:39 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Jun 03 01:42:39 2020 +0000"
      },
      "message": "Merge \"aaudio test: improve stealing test\" into rvc-dev am: 1ae898a10c am: 96090febcd am: 61fe745347\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/11659500\n\nChange-Id: I584d57cac9cb5d80c7bf48a9c1a246d1bc371a99\n"
    },
    {
      "commit": "1de621d426a18651ab90fc1703e928a9874b1f4c",
      "tree": "63233aa70f249cf5d2f8fb8ef79928532dce85f2",
      "parents": [
        "1c4ba630e86eab1bd6485e58b1674325c67e4a92",
        "1ae898a10c9f3c66dc7c58c7c9808bcc8411650a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 03 01:05:48 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Jun 03 01:05:48 2020 +0000"
      },
      "message": "Merge \"aaudio test: improve stealing test\" into rvc-dev am: 1ae898a10c\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/11659500\n\nChange-Id: Iabbd6ddd79e12367aca0cfe44b1a22e13fdecde3\n"
    },
    {
      "commit": "d9f23896cf87971d8b89a4e660cd7aeaa02f602d",
      "tree": "1b9e190bd5b84fa6a82a97747c04f29671046daa",
      "parents": [
        "1b5a1febef34d76f91b0fb6efbec896a386debfd",
        "e803b380e5fcd7c58010c88ec474cabc09d90f82"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Jun 03 00:52:48 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Jun 03 00:52:48 2020 +0000"
      },
      "message": "Merge \"audioflinger: fix FIXME in logBufferSizeUnderruns\" into rvc-dev am: 167afa7033 am: cf4623847e am: 6089de080d am: e803b380e5\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/11690113\n\nChange-Id: Idaf7e9c9ba44e1e528ac3da79e732bfb10648f52\n"
    },
    {
      "commit": "1ae898a10c9f3c66dc7c58c7c9808bcc8411650a",
      "tree": "b4cc7bd121c3418f2c539143591290f898d0e027",
      "parents": [
        "167afa7033328250169f141f85e3bc71d89475c9",
        "b9e4fd475481d6fa23c6df76cfb2b5e81b9cd9ec"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 03 00:50:10 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 03 00:50:10 2020 +0000"
      },
      "message": "Merge \"aaudio test: improve stealing test\" into rvc-dev"
    },
    {
      "commit": "e803b380e5fcd7c58010c88ec474cabc09d90f82",
      "tree": "fc1964622641712eb648d39bad0494980ae5010b",
      "parents": [
        "87477a196dd047c39233d7ea947d1eb6bf7c0f98",
        "6089de080dca67d58c2bfea18f9be20e3ae2e387"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Jun 03 00:38:45 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Jun 03 00:38:45 2020 +0000"
      },
      "message": "Merge \"audioflinger: fix FIXME in logBufferSizeUnderruns\" into rvc-dev am: 167afa7033 am: cf4623847e am: 6089de080d\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/11690113\n\nChange-Id: Id7720190203dcad03fb6e537076239791b000c15\n"
    },
    {
      "commit": "1c4ba630e86eab1bd6485e58b1674325c67e4a92",
      "tree": "fc1964622641712eb648d39bad0494980ae5010b",
      "parents": [
        "177b641f15356a2701bbd5812ae63bec6aaa5c38",
        "167afa7033328250169f141f85e3bc71d89475c9"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Jun 03 00:13:23 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Jun 03 00:13:23 2020 +0000"
      },
      "message": "Merge \"audioflinger: fix FIXME in logBufferSizeUnderruns\" into rvc-dev am: 167afa7033\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/11690113\n\nChange-Id: I44b76e267b367c96e64457c5a60790dc5649a45f\n"
    },
    {
      "commit": "64e16a7c0a0341ec3e759d9522c037606e49ce70",
      "tree": "4de10760a43ffb42233f3da48259a3dd403ccd31",
      "parents": [
        "72c3e0bbf62dbfd5e9ecabac3910f788e0b6b187"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Jun 01 13:25:51 2020 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Jun 02 14:48:16 2020 -0700"
      },
      "message": "audioflinger: fix FIXME in logBufferSizeUnderruns\n\nSome debug code was accidentally merged.\nThe hang was caused by a recursive lock of mLock.\nThe code now calls lockfree methods.\nAdded events for RELEASE and SETBUFFERSIZE.\n\nBug: 157916126\nTest: adb logcat | grep logBufferSize\nTest: launch OboeTester\nTest: disable MMAP checkbox\nTest: Tap OPEN and START\nTest: move bufferSize fader\nTest: expect to see no spam from logBufferSizeInFrames()\nTest: adb shell dumpsys media.metrics\nTest: expect to see entries like \"(bufferSizeFrames\u003d118, underrun\u003d1)\"\nChange-Id: I7d782ccea2c2470bc18a3a61cfb8767430a441d8\n"
    },
    {
      "commit": "b9e4fd475481d6fa23c6df76cfb2b5e81b9cd9ec",
      "tree": "88b76a2fad19ae509b42361c85fd2f4e068a0518",
      "parents": [
        "d40bc7615ff9bb6aac308083c51980437a9c6a21"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri May 29 08:42:04 2020 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Jun 01 15:35:34 2020 -0700"
      },
      "message": "aaudio test: improve stealing test\n\nUse class and locks to eliminate race condition.\nAdd -dDelay to sleep before open.\nAdd -rRetries to set maximum retries when reopening\nafter a disconnect.\n\nBug: 157777324\nTest: adb shell test_steal_exclusive -r1 -d0\nChange-Id: I847c57c3dc0d5d52bb2d03f1e85ebc13216ee41d\n"
    },
    {
      "commit": "b73593b99ffd41a49d35b6e95906be778e87c0d3",
      "tree": "d21b782c5e278f3f93465c2d8bf4c61094f55464",
      "parents": [
        "43cf3117af7ff3d833487b33e92a1ce4f3d4fedf",
        "da17a888baff05b848bf3f7015c1ad37c314764c"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 08 00:37:49 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri May 08 00:37:49 2020 +0000"
      },
      "message": "Merge \"aaudio: align AAudioServiceMessage for 32/64 bits\" into rvc-dev am: 9ad15ff8c4 am: 76ade1a486 am: a0a5104c49 am: da17a888ba\n\nChange-Id: Ia8e176eaf58b20e1540d4531dcdd8c335cd6e839\n"
    },
    {
      "commit": "a0a5104c49ba5ac815d0faf25effa0df79dbfd8c",
      "tree": "9c55ce76253d91e8faf8d2110504b2d635fcd8ae",
      "parents": [
        "c76c8a81b7006c6d67dd31c3b06ddd725216e34b",
        "76ade1a48604972d0180888006da5831d2ef976f"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 08 00:01:42 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri May 08 00:01:42 2020 +0000"
      },
      "message": "Merge \"aaudio: align AAudioServiceMessage for 32/64 bits\" into rvc-dev am: 9ad15ff8c4 am: 76ade1a486\n\nChange-Id: I89b1b8299635d3b1f674f9895147ad0092bd47db\n"
    },
    {
      "commit": "c3282b7b634886aad47a2a19e36dac0c65d332e7",
      "tree": "9c55ce76253d91e8faf8d2110504b2d635fcd8ae",
      "parents": [
        "c8c418357ba5b6eab6ea5385f4b008f1e6548c60",
        "9ad15ff8c4e0ae23df61022e69ba38362c94c67b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu May 07 23:45:30 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu May 07 23:45:30 2020 +0000"
      },
      "message": "Merge \"aaudio: align AAudioServiceMessage for 32/64 bits\" into rvc-dev am: 9ad15ff8c4\n\nChange-Id: Iae33ab39ee598ddf064e9b1d1bbcad3f529a69ac\n"
    },
    {
      "commit": "3ee519e182dfc26a7d6179604c816892385f3b03",
      "tree": "4148b6fb676d79604ceb54b5a5f4c0cd1f1f1738",
      "parents": [
        "686dac0cdb04834b889b1264f7a41c5d6ce25d2a"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed May 06 16:56:22 2020 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu May 07 11:14:56 2020 -0700"
      },
      "message": "aaudio: align AAudioServiceMessage for 32/64 bits\n\nChromebook sometimes runs 32 and 64-bit code together.\nThat caused messages between the code to be rejected because the\nstruct sizes did not match.\nSo we used alignas(8) to force members to 8 byte boundaries.\n\nBug: 155901581\nTest: Launch OboeTester\nTest: Tap TEST OUTPUT\nTest: Tap OPEN and START\nTest: You should get \"MMAP YES\" if MMAP is supported by the device.\nChange-Id: I0cd6a59a974888ef17b06b38fa78f032d602cd57\n"
    },
    {
      "commit": "587340591aab643be488012218fd50d08d105625",
      "tree": "d7899e85ced74bc31c86749499d8cc1b257f867a",
      "parents": [
        "ed21894c44626deac9852962096b9a2c1ff1799b",
        "159bbba478a194fc8a96465e870a30e5cba79b4e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue May 05 12:00:15 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue May 05 12:00:15 2020 +0000"
      },
      "message": "Merge changes I7f8339d8,Idff0c394 into rvc-dev am: 686dac0cdb am: 5fa096aaa5 am: cfce8343f7 am: 159bbba478\n\nChange-Id: Idcc2e893770fe3364dab2e370b59c46cc490b1e6\n"
    },
    {
      "commit": "cfce8343f704c5e0c25cc89b1e2650fae3740f6e",
      "tree": "8ee765f8c2162282109abb22be7a1cb8df19caf2",
      "parents": [
        "7c8a0b89576ff7bdd0ce5418e23916a701705189",
        "5fa096aaa5bc2bf34ae68887145fb10db655931c"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue May 05 11:31:50 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue May 05 11:31:50 2020 +0000"
      },
      "message": "Merge changes I7f8339d8,Idff0c394 into rvc-dev am: 686dac0cdb am: 5fa096aaa5\n\nChange-Id: I5c905837b6e949d2516941d160e75d4c58bc0e23\n"
    },
    {
      "commit": "cc2ebfc95d0925ad06cd368be6d7de557d1eaef5",
      "tree": "8ee765f8c2162282109abb22be7a1cb8df19caf2",
      "parents": [
        "303147efc0d6bd3f29e1da40720ddc175a78d388",
        "686dac0cdb04834b889b1264f7a41c5d6ce25d2a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue May 05 11:19:47 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue May 05 11:19:47 2020 +0000"
      },
      "message": "Merge changes I7f8339d8,Idff0c394 into rvc-dev am: 686dac0cdb\n\nChange-Id: If597e6b6a35e038c90090614dbdda35b0b5ce854\n"
    },
    {
      "commit": "6e463ce6fc456a3c185b80086d3605e2189eccd6",
      "tree": "5c897c19218b6ab714ad781076018079ef2b0240",
      "parents": [
        "4756a9f78b39c7aad0bd79c18b97bf8ed00b4bc6"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Apr 13 10:20:20 2020 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue May 05 02:54:41 2020 -0700"
      },
      "message": "aaudio: steal exclusive streams\n\nAn app (B) that asks for an exclusive stream can steal\nan exclusive stream from an earlier app (A).\nApp B will be given the MMAP resource as a SHARED stream.\nThe stream for app A will be disconnected and released\nby the service.\nIf app A reopens a stream then it will get a SHARED\nstream.\n\nThe order of the opening of the streams is controlled by using a\nrecursive_mutex in AAudioService::openStream().\n\nBug: 129846760\nTest: media/libaaudio/tests/test_steal_exclusive.cpp\nTest: also\nTest: Launch AudioTroubleMaker. It should say \"EXCLUSIVE\".\nTest: Press Home button.\nTest: Siren sound from AudioTroubleMaker should continue.\nTest: Launch OboeTester\nTest: TEST OUTPUT, then Open, Start\nTest: You should get an MMAP SHARED stream on Pixel.\nTest: Go back to AudioTroubleMaker. It should say \"SHARED\".\nChange-Id: I7f8339d8ed62546520a9b46ed398418b41ca2832\n"
    },
    {
      "commit": "4756a9f78b39c7aad0bd79c18b97bf8ed00b4bc6",
      "tree": "1c7c50f8858aec2db0f7f36362b8d0f0902cccdf",
      "parents": [
        "ef57c62b29c3612cfeecf01c8106cff6749849ca"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri May 01 16:53:13 2020 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue May 05 02:54:27 2020 -0700"
      },
      "message": "aaudio test: test stealing an exclusive stream\n\nThis test starts an exclusive stream.\nThen a few seconds later it starts a second exclusive stream.\nThe first stream should get stolen and they should both end up\nas SHARED streams.\n\nSee comment at start of test_steal_exclusive.cpp for more information.\n\nBug: 129846760\nTest: this is a test\nTest: adb shell test_steal_exclusive\nChange-Id: Idff0c394ccee2310dd2d38e7715f823e50955e73\n"
    },
    {
      "commit": "a3b62964840746b6e04ece92e932d3623dcab02f",
      "tree": "976ff61b1f916bfdacb5b8c5d186304896ef0637",
      "parents": [
        "2f7b015529f3a86447b85b8465b057185795d8cf",
        "09a56c11880c78e39b7d4a236496c000c76b9240"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 30 03:46:50 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Apr 30 03:46:50 2020 +0000"
      },
      "message": "Merge \"AAudio: add missing \"Added in API level\" annotation\" into rvc-dev am: 199012b0c6 am: 05d836f727 am: fed2c722c3 am: 09a56c1188\n\nChange-Id: I7fd9515e8a15d24ac41d6e54ab20c228260c4679\n"
    },
    {
      "commit": "05d836f7277d3b57d84062d9d26615c3543882aa",
      "tree": "5a1929f7842aa2430a19309f799ae0b4941860c3",
      "parents": [
        "6557a6c07d931a890b09f6fd68bd6a6adf4a04fa",
        "199012b0c66d555207d81fedb7cce16305c865f8"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 30 03:01:19 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Apr 30 03:01:19 2020 +0000"
      },
      "message": "Merge \"AAudio: add missing \"Added in API level\" annotation\" into rvc-dev am: 199012b0c6\n\nChange-Id: I82bd2b8437b421ac9544ec7efa4a750df9f40d0d\n"
    },
    {
      "commit": "199012b0c66d555207d81fedb7cce16305c865f8",
      "tree": "85a8f493b6d1e3737e25d2eb98ed419626487898",
      "parents": [
        "fdb7e3c281d700d23f1d02cc94939e3500e1af2f",
        "b51e3ab86ecd6951e0814201467ef2a1885a39e5"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 30 02:45:48 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 30 02:45:48 2020 +0000"
      },
      "message": "Merge \"AAudio: add missing \"Added in API level\" annotation\" into rvc-dev"
    },
    {
      "commit": "b51e3ab86ecd6951e0814201467ef2a1885a39e5",
      "tree": "f6364868ce8f1cd77a204d5eeec6bcee88a6ee7b",
      "parents": [
        "ec660f185a1e212b1d22125de81e9bd1d0ff58a3"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 28 18:29:25 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 30 00:23:42 2020 +0000"
      },
      "message": "AAudio: add missing \"Added in API level\" annotation\n\nAdd missing \"Added in API level 29 annotation\" to\nAAUDIO_INPUT_PRESET_VOICE_PERFORMANCE input preset.\n\nBug: 138776432\nTest: make\nChange-Id: I2362ebd1520c95e81dfe8ea43105ea7b39cc04eb\n"
    },
    {
      "commit": "7ae96445d4175c18a6bb1d8e6f5d25b81f0295fd",
      "tree": "04bc892c3ebf6ef1cb5be30e75e79220bdde29f8",
      "parents": [
        "ac486eaac4b703f15a742d9fc67bc58f2466a470",
        "6d827c596ec56551978eed722b52dbde85a6fb0a"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Apr 29 00:35:50 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Apr 29 00:35:50 2020 +0000"
      },
      "message": "Merge \"aaudio: remove LOG_ALWAYS_FATAL_IF from metrics\" into rvc-dev am: 1100c1d18e am: 65164c32ac am: 7415358db7 am: 6d827c596e\n\nChange-Id: If2617555a9fec701b47537d5fdef5218925a03d7\n"
    },
    {
      "commit": "7415358db73ba2b7ea8925bda735c0c372642acb",
      "tree": "b132e996ec44b221806be058714d348385a6057a",
      "parents": [
        "bdc669ad0d7ed1189f2e74cd181fa56004737b51",
        "65164c32acec7d25c0db45c3bd38589fc7067d50"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Apr 29 00:16:18 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Apr 29 00:16:18 2020 +0000"
      },
      "message": "Merge \"aaudio: remove LOG_ALWAYS_FATAL_IF from metrics\" into rvc-dev am: 1100c1d18e am: 65164c32ac\n\nChange-Id: I67e73ead31daa0f220f4b8474dd830b99e928dbf\n"
    },
    {
      "commit": "eb64895ba449f7d4297def3aaf8b695ac0c32cff",
      "tree": "b132e996ec44b221806be058714d348385a6057a",
      "parents": [
        "b4a3624bf8db0094170eaf23c283d6c68d05921d",
        "1100c1d18e0679da1152b31f787eefd282ff5b0d"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Apr 29 00:03:23 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Apr 29 00:03:23 2020 +0000"
      },
      "message": "Merge \"aaudio: remove LOG_ALWAYS_FATAL_IF from metrics\" into rvc-dev am: 1100c1d18e\n\nChange-Id: Id1014d5414e5781977e2054b60afc33dad705a0f\n"
    },
    {
      "commit": "60c0c5e2787b1f46e14ace2cdbb39699cf9fc437",
      "tree": "290b53542bd090c9a29df95878959f236b0b2a38",
      "parents": [
        "ec660f185a1e212b1d22125de81e9bd1d0ff58a3"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Apr 28 14:16:38 2020 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Apr 28 14:40:26 2020 -0700"
      },
      "message": "aaudio: remove LOG_ALWAYS_FATAL_IF from metrics\n\nOld assert was for debugging. No longer needed.\nCaused a CTS failure in MediaMetrics logging.\n\nBug: 155188361\nTest: atest CtsNativeMediaAAudioTestCases\nTest: adb shell dumpsys media.metrics\nChange-Id: I592937d6a0683faf6835d3f0d5a982d02f59e7a9\n"
    },
    {
      "commit": "03675d39999b4e712cbd0e87de1794e9782f1e7d",
      "tree": "53b21a6b3f37d15391d9f5b80c694f91b84ab6b2",
      "parents": [
        "b3dde8e92a8685b3a2e299cd241fb372c52dd19b",
        "4a7b8e414c7e613fb5e1d5946d3bb7da696ae5b4"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 27 23:15:38 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Apr 27 23:15:38 2020 +0000"
      },
      "message": "Merge \"MediaMetrics: Track AudioTrack and AudioRecord callers\" into rvc-dev am: 2578a95a57 am: 164ceef8b6 am: 2e28a7bafb am: 4a7b8e414c\n\nChange-Id: Idbd49b54a4e4877e03eb5432fab1d098394b79e9\n"
    },
    {
      "commit": "2e28a7bafb043969f3bf38d692abd6aa60417837",
      "tree": "a29a2d0f1a24e396947166485a3f29bb5f48dfd4",
      "parents": [
        "7c7c184132cc2ffd7156b46f54c582595c17f0b2",
        "164ceef8b6a1aa56a50e698abaa5abb4622c024d"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 27 23:09:10 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Apr 27 23:09:10 2020 +0000"
      },
      "message": "Merge \"MediaMetrics: Track AudioTrack and AudioRecord callers\" into rvc-dev am: 2578a95a57 am: 164ceef8b6\n\nChange-Id: I726dd024cdf70328bdda6c0d4d137742b3cdb396\n"
    },
    {
      "commit": "47144e50c87f7eaf5468335f477ca4daae0866b4",
      "tree": "a29a2d0f1a24e396947166485a3f29bb5f48dfd4",
      "parents": [
        "b58dd318a0f791fd829e5bdb0a4e3013e33f8e8d",
        "2578a95a57dd9796b55095dc22b8171dd5da73c3"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 27 22:56:09 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Apr 27 22:56:09 2020 +0000"
      },
      "message": "Merge \"MediaMetrics: Track AudioTrack and AudioRecord callers\" into rvc-dev am: 2578a95a57\n\nChange-Id: I7f325541010d6a82f84f2670bb4e5fd28c780e1c\n"
    },
    {
      "commit": "a6b270399fdacb09826e751657b7bb321652e3ac",
      "tree": "10091ff0524d2d29dcda00e63630d0f51b300655",
      "parents": [
        "669acb12c3092e581a1ecc347e6d573e96c8ca0e"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 27 10:34:24 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 27 11:41:38 2020 -0700"
      },
      "message": "MediaMetrics: Track AudioTrack and AudioRecord callers\n\nTest: adb shell dumpsys media.metrics\nBug: 149850236\nBug: 153658358\nChange-Id: If2b0a792cf4cc6c5b125513861b3dfb257bb3cbe\n"
    },
    {
      "commit": "25d9408201d6b1a7c2da64ce9ea62048a2a472c4",
      "tree": "0589293c0cba323f5ea5563acb2c4941086f4743",
      "parents": [
        "d7996c15c1d7ce06d05bd410884a04457497f55b",
        "b82d89e01defe33e26076d6523cd69019405aed5"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Apr 24 20:24:21 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Apr 24 20:24:21 2020 +0000"
      },
      "message": "Merge \"audioflinger: add setCallerName() to AudioTrack\" into rvc-dev am: 02d69c15b6 am: 0f11bd974f am: 1966cd5af1 am: b82d89e01d\n\nChange-Id: Ie4b3ff4f43bf59c5ef7d728600b35f8992a3de68\n"
    },
    {
      "commit": "1966cd5af10eb55b93a28e28f0d6a49b11c1ca3f",
      "tree": "56d3db1cc4f526f67a42f3ace215e296d3aa7f00",
      "parents": [
        "0054ead711b6022cd6112c2a206fd53023e3f0b9",
        "0f11bd974fba2b56ad3e9f3e611ad30fe1a2af2c"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Apr 24 20:04:40 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Apr 24 20:04:40 2020 +0000"
      },
      "message": "Merge \"audioflinger: add setCallerName() to AudioTrack\" into rvc-dev am: 02d69c15b6 am: 0f11bd974f\n\nChange-Id: Ia01179a9774bc46b770b843bba86eaefdf591a86\n"
    },
    {
      "commit": "450308011ee5010ecf7357c8aa46ccf9cab67776",
      "tree": "56d3db1cc4f526f67a42f3ace215e296d3aa7f00",
      "parents": [
        "04a1d7c3073a5613786dfa29f58d237ae02059dc",
        "02d69c15b683418de39901a74f1eea8ddbfcbf40"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Apr 24 19:52:35 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Apr 24 19:52:35 2020 +0000"
      },
      "message": "Merge \"audioflinger: add setCallerName() to AudioTrack\" into rvc-dev am: 02d69c15b6\n\nChange-Id: Ic0af3ba541c33a2ae928bf8a985dd503c2a3e1cd\n"
    },
    {
      "commit": "d3813f35753a8ce43b289656de2649fdf1afaacc",
      "tree": "c13f9f04349fdfe3ad043c8bdafaa4757e3a30ff",
      "parents": [
        "cc40c5fa11767eb9a87cf6e1a5e8a99d6cec2847"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Apr 23 16:26:15 2020 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Apr 24 11:13:09 2020 -0700"
      },
      "message": "audioflinger: add setCallerName() to AudioTrack\n\nAnd also to AudioRecord.\nThen log the callerName using MediaMetrics from the destructor.\n\nThis can be used to tell whether AAudio or OpenSL ES\nor Java created the object.\n\nBug: 154543374\nTest: adb shell dumpsys media.metrics --clear\nTest: Run an app that uses audio.\nTest: adb shell dumpsys media.metrics\nTest: Look for \"callerName\" in the dump.\nChange-Id: I000346e72f581d2e40ef4fd0410b579d2a1224e2\n"
    },
    {
      "commit": "14e66bc77d437be6f670873f88f8b343340c9f36",
      "tree": "11a23e4203aacca651b5bdef5c0ad8e2c0e72a98",
      "parents": [
        "379218dacf82eb256d6d478fed7448a0a47d01e2",
        "740a7726626681cc60bc3693d583a81d01f9b9ae"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Apr 24 15:23:05 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Apr 24 15:23:05 2020 +0000"
      },
      "message": "Merge \"aaudio: add MediaMetrics for MMAP streams\" into rvc-dev am: cc40c5fa11 am: 424369b7b5 am: faae9a4970 am: 740a772662\n\nChange-Id: I4dc4363c80a554e8351b8a94818ded136048a519\n"
    },
    {
      "commit": "faae9a49706405f29cb6513b15c968f13d5889eb",
      "tree": "57e18d652a0daac9904248d4eb13fe0b18eeac39",
      "parents": [
        "4370e4346c965ee749073d4e44689386fd5bc77f",
        "424369b7b522360797adb1e64ddfb7b09c8ea7cc"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Apr 24 14:48:18 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Apr 24 14:48:18 2020 +0000"
      },
      "message": "Merge \"aaudio: add MediaMetrics for MMAP streams\" into rvc-dev am: cc40c5fa11 am: 424369b7b5\n\nChange-Id: I56c6e3c8752cc2e4ebde8b30867d7a8c6ca327e8\n"
    },
    {
      "commit": "d74b9c0efbc0a7cce9c7aaa0204414612a64d8d9",
      "tree": "57e18d652a0daac9904248d4eb13fe0b18eeac39",
      "parents": [
        "3de3935a515ecefea19f5dbd251191fc63c20795",
        "cc40c5fa11767eb9a87cf6e1a5e8a99d6cec2847"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Apr 24 14:41:54 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Apr 24 14:41:54 2020 +0000"
      },
      "message": "Merge \"aaudio: add MediaMetrics for MMAP streams\" into rvc-dev am: cc40c5fa11\n\nChange-Id: I95149514982f70f1eb2cef58978a46ecf3bbb5dc\n"
    },
    {
      "commit": "cc40c5fa11767eb9a87cf6e1a5e8a99d6cec2847",
      "tree": "7d2a46abbe29eb5b8ce6afacdf673eab55823ba5",
      "parents": [
        "784745befac68d978fe7abf09f0aeea33fb0e4ff",
        "a9876703e89afa6db42913d48e2360b7dad98725"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Apr 24 14:30:58 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 24 14:30:58 2020 +0000"
      },
      "message": "Merge \"aaudio: add MediaMetrics for MMAP streams\" into rvc-dev"
    },
    {
      "commit": "a9876703e89afa6db42913d48e2360b7dad98725",
      "tree": "4e51b01b2fa4be83868318a1619e3b7c2f42f36e",
      "parents": [
        "6e89a0704605f4750f87a3243495b175c67e6fbb"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Apr 20 18:16:15 2020 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Apr 23 18:00:10 2020 -0700"
      },
      "message": "aaudio: add MediaMetrics for MMAP streams\n\nLog events from service.\nLog start, stop, disconnect and other events.\nLog underruns and bufferSize.\n\nBug: 154543374\nTest: adb shell dumpsys media.metrics --clear\nTest: run an app that uses MMAP, like OboeTester\nTest: adb shell dumpsys media.metrics\nTest: Expect to see lots of \"audio.stream\" events.\nChange-Id: I690e5226b695d53d038d644f4438c759e08f9fbb\n"
    },
    {
      "commit": "a1f5a6bd2f29158004cd86e02ffc9e1f3a2b815b",
      "tree": "04a21b10afbd16c07a5dda36f9435ef8185711e6",
      "parents": [
        "7cdcd1ee35b1b0cb44c8c1c0d0d5837d455f02a8",
        "dabe5cb202339667fe2a337a1f8669812964be94"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 21 04:56:26 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Apr 21 04:56:26 2020 +0000"
      },
      "message": "Merge \"aaudio test: add tests for after release\" into rvc-dev am: e202fc24bc am: 9ddc336498 am: 34ecdeab32 am: dabe5cb202\n\nChange-Id: I02626906541f6e99c736208eaed8b31a24b3d89a\n"
    },
    {
      "commit": "9ddc336498d698a9d18fc0bdb4ddb1041421fdeb",
      "tree": "f0fa67821148a83ca82c8012f04f01aca609cbfe",
      "parents": [
        "03435d7d26f6d19d6c1cc6908bf38e5f34600781",
        "e202fc24bc2b4916ddfd8e52b5a7bffb9b5898e9"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 21 04:06:27 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Apr 21 04:06:27 2020 +0000"
      },
      "message": "Merge \"aaudio test: add tests for after release\" into rvc-dev am: e202fc24bc\n\nChange-Id: I153bed65878d84e24b50e44382f36a9090cdf563\n"
    },
    {
      "commit": "cc131ba465340201560fec288e9f8a063838dffa",
      "tree": "f9aa7fff07968c48cdc0d78f0e4c9cec79537e83",
      "parents": [
        "6e89a0704605f4750f87a3243495b175c67e6fbb"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Apr 17 08:25:30 2020 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Apr 20 18:59:39 2020 -0700"
      },
      "message": "aaudio test: add tests for after release\n\nCall various functions after calling AAudioStream_release().\n\nBug: 154274446\nBug: 154274027\nTest: this is a test\nChange-Id: Ia0938362502b15a4ae5608f0619e0bc5ce78ca22\n"
    },
    {
      "commit": "f5e1c87238842fca5b1d5b3fc51899fc031624fa",
      "tree": "1bc447d20476af99043f06897d8ecd2012879d60",
      "parents": [
        "3454d9b5fcefc861d4d6d6996f5aeadaefa216d7",
        "711dffc1d80d8df2fea93e5d60fe5c3448a14bf8"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Apr 20 23:28:26 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Apr 20 23:28:26 2020 +0000"
      },
      "message": "Merge \"aaudio: free endpoint to prevent crashes\" into rvc-dev am: 6e89a07046 am: a3155e1a1b am: 847a012e34 am: 711dffc1d8\n\nChange-Id: I852d5ca6368cd5f80a70efcc4cd86a52277a42b0\n"
    },
    {
      "commit": "3454d9b5fcefc861d4d6d6996f5aeadaefa216d7",
      "tree": "b11b08fb54fd52e2cd4f6e2f2586b8b90e3db062",
      "parents": [
        "76564a2447adb92ae74dba66b7570affa81ff017",
        "7af1e4d2c0672d33d29321bd880559751a77004c"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Apr 20 23:28:19 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Apr 20 23:28:19 2020 +0000"
      },
      "message": "Merge \"aaudio: prevent starting from wrong state\" into rvc-dev am: 67dc6a8173 am: a13c927e84 am: 46c9747766 am: 7af1e4d2c0\n\nChange-Id: Idd95af330b9a59c1365e5595ff8772e88edd6669\n"
    },
    {
      "commit": "a3155e1a1b73ff31f554e331d7fafc0379cc028e",
      "tree": "42ac4aed3beec565f3c318a344ce0de0cb58fe2a",
      "parents": [
        "a13c927e84cc21f01140f14bcb5ba32fca0fc80a",
        "6e89a0704605f4750f87a3243495b175c67e6fbb"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Apr 20 22:37:03 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Apr 20 22:37:03 2020 +0000"
      },
      "message": "Merge \"aaudio: free endpoint to prevent crashes\" into rvc-dev am: 6e89a07046\n\nChange-Id: Ieaddd431a350b4ebb9ebae0c544c7a9c573de132\n"
    },
    {
      "commit": "a13c927e84cc21f01140f14bcb5ba32fca0fc80a",
      "tree": "e28fc4beca5ce42bafa1e153e579dc6b856f0890",
      "parents": [
        "9ece4e96a0f4607d95a036a5ca7c919c2d790bcd",
        "67dc6a817304168d2b7db4e09cd622814ee39430"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Apr 20 22:36:56 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Apr 20 22:36:56 2020 +0000"
      },
      "message": "Merge \"aaudio: prevent starting from wrong state\" into rvc-dev am: 67dc6a8173\n\nChange-Id: Idd68ebcc1ef6cc099ddfb4ff71d9ac56353dab71\n"
    },
    {
      "commit": "5edc4eaef4e3950cf1e2642b9b1bd9209b78adc1",
      "tree": "fd017115b7fc03a9c6e1614a0710a70856a77714",
      "parents": [
        "2a52ad31f4880e46056566c99246749238dc5e5f"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Apr 17 08:15:42 2020 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Apr 20 13:43:54 2020 -0700"
      },
      "message": "aaudio: free endpoint to prevent crashes\n\nFree the AudioEndpoint and check for nullptr to\nprevent accessing shared memory that had been freed.\nThis is to protect against calls to the stream after\nAAudioStream_release() has been called.\n\nBug: 154274446\nBug: 154274027\nTest: libaaudio/tests/test_various.cpp\nChange-Id: I194d502fd48c4d31602ffce76aca6b28753ad7d2\n"
    },
    {
      "commit": "2a52ad31f4880e46056566c99246749238dc5e5f",
      "tree": "942d94b80c67abcf0518ac63e868e6d56e666fc7",
      "parents": [
        "ccc44f3f72a8d65c1d9fa829515eab478c647ebc"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Apr 17 10:28:41 2020 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Apr 20 13:41:12 2020 -0700"
      },
      "message": "aaudio: prevent starting from wrong state\n\nPrevent start after disconnect or release.\nPrevent start when already started.\n\nBug: 154272447\nTest: libaaudio/tests/test_various.cpp\nChange-Id: Ic17f45cb7d47563dbdd05a3535d419fbe3b286a4\n"
    },
    {
      "commit": "d9b22c542e169c58e4b1a14d085b58f1ad4e0780",
      "tree": "a8cc1e99b92cc9ef533f874ffd6d8420ea51116e",
      "parents": [
        "4fa746d27d249f858afdf90a6c7181a3a876de3f",
        "076046b46609cc82aae49f8fd7fe060d9bb8c7b5"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Apr 18 03:55:19 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Apr 18 03:55:19 2020 +0000"
      },
      "message": "Merge \"aaudio test: check for uninitialized callback buffer\" into rvc-dev am: 06eea6e497 am: d77db34489 am: 705bb99f4f am: 076046b466\n\nChange-Id: I20031b294e5c11a58bd141fe6f8cc7d475ca690c\n"
    },
    {
      "commit": "705bb99f4f26157587396a9be3701d18a9d7756b",
      "tree": "9d2e17309295f09226dd63bcdb4519fe56f6b202",
      "parents": [
        "ed339f0c32726577549268f892b11963a930b272",
        "d77db3448974abb88a15dbc12296f33392219806"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Apr 18 03:20:59 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Apr 18 03:20:59 2020 +0000"
      },
      "message": "Merge \"aaudio test: check for uninitialized callback buffer\" into rvc-dev am: 06eea6e497 am: d77db34489\n\nChange-Id: If3d7ece9d58a06cf4ab725c8b2bf4e4a5c30293a\n"
    },
    {
      "commit": "98333e7e503ebe99ee1b00356d7e74785ce5e32d",
      "tree": "9d2e17309295f09226dd63bcdb4519fe56f6b202",
      "parents": [
        "e20040df55a511f98aae5226bc4cc06ab9480a9e",
        "06eea6e497be029e3d1074cff8cab7a80d2f1c88"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Apr 18 03:01:20 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Apr 18 03:01:20 2020 +0000"
      },
      "message": "Merge \"aaudio test: check for uninitialized callback buffer\" into rvc-dev am: 06eea6e497\n\nChange-Id: Ib7460bc65128d98307532769653f5febccfecee6\n"
    },
    {
      "commit": "93d5367e6d98ac208a246205ceb95cc5aface3ba",
      "tree": "2ec43d65305ebac43118c4e7dd774bf0201afa44",
      "parents": [
        "c535969f37f4857bed52c4ab8b05eeed43b077d8",
        "5d53b6f25807def3fa462d4f61777bc67bdd0043"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Apr 18 00:55:55 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Apr 18 00:55:55 2020 +0000"
      },
      "message": "Merge \"aaudio: initialize the callback buffer\" into rvc-dev am: 398fe58cbc am: bde841108d am: 2574160113 am: 5d53b6f258\n\nChange-Id: I17e3c5a1fc54634fcd1acdc50969bedf1ff215df\n"
    },
    {
      "commit": "257416011363198a8e8fcf2dcb694fd9987ee100",
      "tree": "c484658783fb42a68616606f9f3778ed1daad187",
      "parents": [
        "1d868786a28ba922cdb87f16f5be9983796a6609",
        "bde841108dc08ffeebc31d4910e9e1d6fa030d1e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Apr 18 00:21:42 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Apr 18 00:21:42 2020 +0000"
      },
      "message": "Merge \"aaudio: initialize the callback buffer\" into rvc-dev am: 398fe58cbc am: bde841108d\n\nChange-Id: I0e9656225bb76f4a31b985aeefdf134b24cddeeb\n"
    },
    {
      "commit": "e20040df55a511f98aae5226bc4cc06ab9480a9e",
      "tree": "c484658783fb42a68616606f9f3778ed1daad187",
      "parents": [
        "a055c82b6d39838876632dbbc8e1f293094c4b80",
        "398fe58cbc76a61257934f195767b05ee0942563"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Apr 18 00:03:55 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Apr 18 00:03:55 2020 +0000"
      },
      "message": "Merge \"aaudio: initialize the callback buffer\" into rvc-dev am: 398fe58cbc\n\nChange-Id: If8cd3a147dad141f9304e4fa16bac72ef3c55f15\n"
    },
    {
      "commit": "9cf2382a913add09726934203270215beae3415e",
      "tree": "59823b0f550fcb892cebda45b2937317778a8874",
      "parents": [
        "bf821e2c39ac948d43e3fa19f6f517317e195060"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Apr 17 11:53:35 2020 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Apr 17 15:12:24 2020 -0700"
      },
      "message": "aaudio test: check for uninitialized callback buffer\n\nThis can cause unexpected noise.\n\nBug: 154342174\nTest: this is a test\nChange-Id: I358dfa66ed5922eede38b902c36973740f6ab494\n"
    }
  ],
  "next": "bf821e2c39ac948d43e3fa19f6f517317e195060"
}
