)]}'
{
  "log": [
    {
      "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": "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": "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": "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": "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": "636d345366342cbbd35f534aba970d5fe78b294f",
      "tree": "fc1964622641712eb648d39bad0494980ae5010b",
      "parents": [
        "63b96ba60a7e295a3e4811785b8a83794196ba27",
        "cf4623847e9f331f33302a600291a0168eaea3bd"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Jun 03 00:26:14 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Jun 03 00:26:14 2020 +0000"
      },
      "message": "Merge \"audioflinger: fix FIXME in logBufferSizeUnderruns\" into rvc-dev am: 167afa7033 am: cf4623847e\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/11690113\n\nChange-Id: Ic47c309ad198747a729cd28acb5abbdba5637ebd\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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "bf821e2c39ac948d43e3fa19f6f517317e195060",
      "tree": "f6b8d1648690a9773a61fe49873ae7a3de24597d",
      "parents": [
        "01d9c845f00cae661e1764162f36d5156871a60b"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Apr 17 11:51:43 2020 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Apr 17 14:55:24 2020 -0700"
      },
      "message": "aaudio: initialize the callback buffer\n\nThis can prevent some loud noises during unit tests.\n\nAlso use std::unique_ptr\n\nBug: 154342174\nTest: libaaudio/tests/test_various.cpp\nChange-Id: I1c1dc0f4a6a29cf7d7a656392a81a325847de22d\n"
    },
    {
      "commit": "511614002fca7d7e9e9fc605859362c136ef6f22",
      "tree": "80eedb44e40eeedee1818be10d18c587c706b789",
      "parents": [
        "f972bfa7e61f7a8b6297fd310aac1906291b83bb",
        "01d9c845f00cae661e1764162f36d5156871a60b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 15 22:15:49 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Apr 15 22:15:49 2020 +0000"
      },
      "message": "Merge \"AAudio AudioStreamLegacy: refine handling of AudioTrack teardown\" into rvc-dev am: 01d9c845f0\n\nChange-Id: Ib5d8e61c5104d8b1104836983a2d8d50597d5c8a\n"
    },
    {
      "commit": "68eff0530814ab4e0d29580885fec8de0bd37c96",
      "tree": "bf149b7f4be4d769714d18c4559052ec2058f0dc",
      "parents": [
        "433ccf7dca6db9ffd774cd10d539ccf9d62e3f46"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 10 18:28:41 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 15 20:24:42 2020 +0000"
      },
      "message": "AAudio AudioStreamLegacy: refine handling of AudioTrack teardown\n\nDo not systematically request a stream disconnect upon\nEVENT_NEW_IAUDIOTRACK received AudioTrack but only if the new\naudio Track properties have changed in such a way that the initial\ncontract is broken.\n\nBug: 139763500\nTest: OboeTester TEST DISCONNECT\nTest: OboeTester TEST OUTPUT while enabling/disabling Live Caption\nChange-Id: I3b43275a888e23471fcd1ce20725f5731a77a255\n"
    },
    {
      "commit": "887b1a3719b31f605147c5ee580f42f769d3e9ee",
      "tree": "f76572a43fc4ebf5c967e5537cb8c45f7ded08b8",
      "parents": [
        "da4faa6c2e50b6ab28dfd9a40289313239319d16",
        "42c1c38d7f0340f448b38dcf228b2e7753a2bcd2"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue Apr 14 02:10:00 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Apr 14 02:10:00 2020 +0000"
      },
      "message": "Merge \"Include what you use: \u003cunistd.h\u003e\" am: 8a71223d5a am: 42c1c38d7f\n\nChange-Id: I7487c7d3e566736733b6510072f6a32c2c4534ac\n"
    },
    {
      "commit": "42c1c38d7f0340f448b38dcf228b2e7753a2bcd2",
      "tree": "5c2d51a723e7514ae3f31fdcbba7022e4143f31a",
      "parents": [
        "1c09d740e714fa8963a2399eed953cc2015f2519",
        "8a71223d5a998fd743ac3b25a799bc2cfedf2f86"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue Apr 14 01:48:52 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Apr 14 01:48:52 2020 +0000"
      },
      "message": "Merge \"Include what you use: \u003cunistd.h\u003e\" am: 8a71223d5a\n\nChange-Id: Ia9c0bba3fa290221d00bbfd7aec4aab65db5e4f0\n"
    },
    {
      "commit": "7ae782545020eec1bfb9eb74e690ae26e2cca7fa",
      "tree": "b99f5db2f4d75aeddb175896c3fa67070b21154e",
      "parents": [
        "2ac41184ae00b2e99e55d995944288f33b2fce49"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Mon Apr 13 15:20:50 2020 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Mon Apr 13 15:20:50 2020 -0700"
      },
      "message": "Include what you use: \u003cunistd.h\u003e\n\nThis was transitively included, but no longer is, so it must be\nexplicitly included.\n\nExempt-From-Owner-Approval: Janitorial\nTest: build\nChange-Id: I78268a4867697bf797d40b5fead3745fdd0cc807\n"
    },
    {
      "commit": "ef0ade40f3acb3a9e95ad5f2efd2e6c4f8503824",
      "tree": "febd15b572587e578abd645ff80214c605e48fa4",
      "parents": [
        "4023d73e132d0170005e8acd922667fc8287ee86",
        "9e1f44b72a6a54520cbe07dc465af4678db315eb"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 09 07:57:31 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 09 07:57:31 2020 +0000"
      },
      "message": "Merge \"aaudio: minor cleanup in clock model\" into rvc-dev"
    },
    {
      "commit": "5347dca057618fd5aec3a9f11e357d69632b60e6",
      "tree": "4912b03e4fbf60ad400945c659c4f64b508f9749",
      "parents": [
        "7631aebd245289db732defca7f0d93d6528390ed"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Apr 08 16:31:07 2020 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Apr 08 16:31:07 2020 -0700"
      },
      "message": "aaudio: use minimum of one burst in buffer\n\nThe old minimum was zero, which minimized latency\nbut was probably too aggressive for some devices.\nIt is better to avoid glitches.\nBecause of other changes in AAudio MMAP, this will\nhave the same latency as earlier version,\nbut better immunity from glitches.\n\nBug: 153589709\nTest: launch OboeTester\nTest: tap TEST OUTPUT\nTest: tap OPEN and START\nTest: notice that actual buffer size will be 1 * burstSize\nChange-Id: Ie53352a0589c710be11f74e995bd12be4f7c45a8\n"
    },
    {
      "commit": "9e1f44b72a6a54520cbe07dc465af4678db315eb",
      "tree": "841f306e598f4f233af1f6f419aff78b058137aa",
      "parents": [
        "7631aebd245289db732defca7f0d93d6528390ed"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Apr 08 16:02:05 2020 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Apr 08 16:02:05 2020 -0700"
      },
      "message": "aaudio: minor cleanup in clock model\n\nInit mMaxMeasuredLatenessNanos\nUse default destructor.\n\nBug: 137009840\nTest: atest CtsNativeMediaAAudioTestCases\nChange-Id: Ia9b42e4754047f5e87205c4adbc3329a1b96e74b\n"
    },
    {
      "commit": "d1f1cb68f567363a0b1e4cd4db6286afc6c8a1e2",
      "tree": "3b32985218612d05bf95fed08c18025d1735b2d4",
      "parents": [
        "06675ff30f63323905ff18c3c4e0d34a9fee4c60"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Mar 24 11:57:57 2020 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Mar 27 11:33:09 2020 -0700"
      },
      "message": "Add audio attributes info when starting aaudio tracks on MMAP mix.\n\nIn aaudio, when adding tracks to mixed stream, it is needed to update\naudio attributes to HAL whenever the tracks are added or removed.\nCurrently, only the audio attributes used to open the stream will be\nsent to the HAL. In that case, adding audio attributes of the clients\nwhen starting the stream can help solve the problem. In audio flinger,\nthe client\u0027s audio attributes will be used to create MmapTrack.\n\nTest: play multiple aaudio tracks, add log\nBug: 77279923\nChange-Id: Ic1c536049e194a2bb7513425ee4828d52769d27f\n"
    },
    {
      "commit": "a3ded4badc9906ab9916d878009f1beb4791ce79",
      "tree": "7b9a6341450c779b30fed9844aa158ee5099bb4d",
      "parents": [
        "f110ec04f9c11e88d9d2f2d984a5f0d519d5f0db",
        "dbc9c5a3203dad5ffd5fe86b6f63c53020a82940"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 25 02:35:34 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Mar 25 02:35:34 2020 +0000"
      },
      "message": "Merge \"aaudio: add checks for Binder return codes\" into qt-qpr1-dev am: d37b50dfb7 am: dbc9c5a320\n\nChange-Id: I836f6955c45d6e1feda4776ff6f90c35a207b0f9\n"
    },
    {
      "commit": "38ef26a93fe283da43048cef8071de46eb379238",
      "tree": "1c4c2149674a36222da368c8f38ced9bea5592b9",
      "parents": [
        "bc8a9381f5bed2dc8804644dd57e5b1777994858"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Feb 06 14:52:15 2020 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Mar 16 20:00:24 2020 +0000"
      },
      "message": "aaudio: use unique_ptr in FixedBlockAdapter\n\nCode cleanup.\n\nBug: 151650670\nTest: atest CtsNativeMediaAAudioTestCases\nChange-Id: I980862379ade9b6cc62f1743c916208e3911a00a\nMerged-In: I980862379ade9b6cc62f1743c916208e3911a00a\n(cherry picked from commit 2f39c0b0fcbc5b857df2823247d163f2ba1c14a8)\n"
    },
    {
      "commit": "4b86749458715fbd6c9106100d7ddd54bfdc90ef",
      "tree": "d2ada0e90e7fef70575bbe722ccf47b6b80db8b4",
      "parents": [
        "b5c0071bb7a1c6524deb42ac6643d8fae3106248"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Feb 12 10:58:05 2020 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Feb 18 16:40:39 2020 -0800"
      },
      "message": "aaudio: fix callback size for Legacy input\n\nSet the size of the callback buffer based on the device format\ninstead of the app format.\n\nBug: 149249791\nTest: atest CtsNativeMediaAAudioTestCases\nChange-Id: I0dc5724109a802eea15100782c18986a64e6acd2\n"
    },
    {
      "commit": "b00653c6d4d06736d208a6cacfeae50e886fce49",
      "tree": "4e5187fb8fbaeef03605a7667b46a5513a782820",
      "parents": [
        "cf24ad44c42d177403b8ecbb880ba54a9326b008"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Jan 29 14:23:04 2020 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Feb 06 12:40:51 2020 -0800"
      },
      "message": "aaudio: add checks for Binder return codes\n\nBinder code was calling readInt32() but not checking the return code.\n\nBug: 139473816\nTest: see bug for proof of concept\nTest: atest CtsNativeMediaAAudioTestCases\nChange-Id: I9246382b657c2a1213d27c66fc006578553f7b1e\nMerged-In: I9246382b657c2a1213d27c66fc006578553f7b1e\n"
    },
    {
      "commit": "a170e61fb4e99fc56ab328b25180d321d278867e",
      "tree": "b45a8cc52707e1b9800c3058077a3352625b0454",
      "parents": [
        "f1de76e5d1f3ec3d7adbb89645b2d6db6995f567",
        "ea5c49e1742b24df216b097034d4be86adc17226"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 30 01:28:25 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 30 01:28:25 2020 +0000"
      },
      "message": "Merge \"aaudio: less alarming message for MMAP\""
    },
    {
      "commit": "ea5c49e1742b24df216b097034d4be86adc17226",
      "tree": "bec7bafdd0c4df6ebe8b345101045d7c27bc7e1f",
      "parents": [
        "3b4c1f0320efc7a54c4ab811727c432cda73dd37"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Jan 29 15:01:41 2020 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Jan 29 15:01:41 2020 -0800"
      },
      "message": "aaudio: less alarming message for MMAP\n\nBug: 80192689\nTest: adb logcat | grep MMAP\nTest: run OboeTester, TEST OUTPUT, perfMode: None, OPEN\nTest: should see \"MMAP not available because\nTest:         AAUDIO_PERFORMANCE_MODE_LOW_LATENCY not used\"\nChange-Id: I164902abcfafb53a34685b9ef9ec5346842e1dda\n"
    },
    {
      "commit": "25532c7698517d734b5044dd325acdff2a857279",
      "tree": "5ee6ee79aee893567b9f572cfa1fbd12d2e510e5",
      "parents": [
        "3b4c1f0320efc7a54c4ab811727c432cda73dd37"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Jan 29 14:23:04 2020 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Jan 29 14:23:04 2020 -0800"
      },
      "message": "aaudio: add checks for Binder return codes\n\nBinder code was calling readInt32() but not checking the return code.\n\nBug: 139473816\nTest: see bug for proof of concept\nTest: atest CtsNativeMediaAAudioTestCases\nChange-Id: I9246382b657c2a1213d27c66fc006578553f7b1e\n"
    },
    {
      "commit": "5277625231db4f313115fbcb6cefca7f2dfc2ce0",
      "tree": "288802a30819352b91c3b270329fb41b577928a0",
      "parents": [
        "bccf38e3fa6bc2a372c3a0d38c6274b68c0e5fb7",
        "7c96ea7ff84e1084332548583841735b694bfebd"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Sat Jan 25 03:44:28 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Jan 25 03:44:28 2020 +0000"
      },
      "message": "Merge \"Remove mediametrics include symlinks\""
    },
    {
      "commit": "8b4e05ecee60bf08c9121c61d69526e076495766",
      "tree": "9879d2a21175f35e47545c03ec1a2a2ba46de933",
      "parents": [
        "0bc6f60e1f036380bd48d022631e6561b90f210c"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Dec 17 12:12:09 2019 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Jan 22 13:31:58 2020 -0800"
      },
      "message": "aaudio: add AAudioStream_release()\n\nSplit close into close and release phases.\nRelease() will release hardware and service resources.\nClose() will delete the stream object.\nThis allows us to defer the deletion and avoid race conditions.\n\nThe CLOSING state is used to indicate that a stream has been released.\n\nAdded some test cases to test_various.cpp.\nA lone call to close() will automatically call release() so we should\nhave good code coverage for testing.\n\nBug: 136288001\nTest: adb shell test_various\nTest: atest CtsNativeMediaAAudioTestCases\nChange-Id: Ia648838f30c521ba101f55259dbcd4594c1263cd\n"
    },
    {
      "commit": "773eeb29115ba9dbaf71ae526185b1c584cb76f2",
      "tree": "fc3231a6f9e1b8d6d0f5db2fdc483c8a75d85518",
      "parents": [
        "c55cdbafff6450155d4282a30ef025d6cecf5b3e",
        "76373c2644ac01ebe1eb79aaccf2986c3684cbdd"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 22 18:34:48 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 22 18:34:48 2020 +0000"
      },
      "message": "Merge \"aaudio: add missing symbols and tests for capture privacy API\""
    },
    {
      "commit": "76373c2644ac01ebe1eb79aaccf2986c3684cbdd",
      "tree": "f93e3b973b6ab22b72b032d88c808819b74084dd",
      "parents": [
        "d1ce689ac43bfd6c75c2f15a349e475396d04dcd"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 14 12:38:14 2020 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Jan 22 18:08:11 2020 +0000"
      },
      "message": "aaudio: add missing symbols and tests for capture privacy API\n\nAdd missing symbols for new APIs added to control if an input stream\nis privacy sensitive or not.\nAlso add tests for these new APIs.\n\nBug: 137850106\nTest: test_attributes\nChange-Id: Iab6e37a312dd295f705a3dfb69acddd131dc9142\n"
    },
    {
      "commit": "c55cdbafff6450155d4282a30ef025d6cecf5b3e",
      "tree": "e5aaa53d2052ac340f67e1d0c62991ee5a26420c",
      "parents": [
        "1ecc57a716bd7ace071d2d933a725ef6a566d6be",
        "3e8bbb91f15d1d14a2339bbec8a39c5f1a66a6af"
      ],
      "author": {
        "name": "Hayden Gomes",
        "email": "haydengomes@google.com",
        "time": "Wed Jan 22 06:47:57 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 22 06:47:57 2020 +0000"
      },
      "message": "Merge changes from topic \"system_usages\"\n\n* changes:\n  Adding system usages to AAudio\n  Adding support for new System Usages\n"
    },
    {
      "commit": "3e8bbb91f15d1d14a2339bbec8a39c5f1a66a6af",
      "tree": "8ca1499304992e9ffdbc41787073629bac71e824",
      "parents": [
        "524159db6d53cecc93de4133e0875be937437883"
      ],
      "author": {
        "name": "Hayden Gomes",
        "email": "haydengomes@google.com",
        "time": "Fri Jan 10 13:37:05 2020 -0800"
      },
      "committer": {
        "name": "Hayden Gomes",
        "email": "haydengomes@google.com",
        "time": "Thu Jan 16 15:59:25 2020 -0800"
      },
      "message": "Adding system usages to AAudio\n\nBug: 141006627\nTest: atest CtsNativeMediaAAudioTestCases:AAudioTests\nChange-Id: I64247a3f64f4f7cc32f6c85c2ff790f96831f707\n"
    },
    {
      "commit": "7c96ea7ff84e1084332548583841735b694bfebd",
      "tree": "eb5d7c1bcb91cea21469e46b7c014ae44635a217",
      "parents": [
        "255f610f5ab71b5e36d93744dfe058daf6c96041"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Jan 10 15:46:22 2020 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Jan 16 15:55:18 2020 -0800"
      },
      "message": "Remove mediametrics include symlinks\n\nBug: 143245419\nTest: build\nChange-Id: I6c836e60c0fe078f5ab7370aec156bdd6e8dcbf0\n"
    },
    {
      "commit": "6e7bf72a8ac96d7f88ae406e94db851c41e551c2",
      "tree": "0eb22768bda2af626c4a8f61a9dfcccfad5e7d1b",
      "parents": [
        "39415ab6bc1260796a9af9de834cabb859d29c1e"
      ],
      "author": {
        "name": "Cindy Zhou",
        "email": "zhouci@google.com",
        "time": "Thu Jan 16 12:41:08 2020 -0800"
      },
      "committer": {
        "name": "Cindy Zhou",
        "email": "zhouci@google.com",
        "time": "Thu Jan 16 21:32:47 2020 +0000"
      },
      "message": "libaaudio removing diagnostic\n\nRemoving diagnostic mode for boundsan and integer overflow before release\n\nBug: 147144481\nBug: 143307218\nTest: N/A\nChange-Id: I8910aa439a691e8ee205c998f27fa4719108646c\n"
    },
    {
      "commit": "6a87ed872a52467fc3807353dcbc706be8880641",
      "tree": "ed96c76483a60640e4973d8d8c0d3e599568a8f3",
      "parents": [
        "42afea265a65a4d0b22f5d2f2af72cbbb2631c80",
        "fb33f9bc854e269bb72520add2d4fa09d3d57cae"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Dec 11 22:28:18 2019 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Dec 11 22:28:18 2019 +0000"
      },
      "message": "Added usage to init call for audiostream registration. am: 9fb726888d am: 3e6cbbc746 am: fb33f9bc85\n\nChange-Id: If630afb27bb5fdea0384e5fca1bbe4e7bd74955a\n"
    },
    {
      "commit": "fb33f9bc854e269bb72520add2d4fa09d3d57cae",
      "tree": "ddd9f36026c4f5f1c0121f62a6c5b87439433c43",
      "parents": [
        "42c4784b2a161f51bc52e57c8d8dbbd84986101e",
        "3e6cbbc746d141134a67098e385d1cf363630175"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Dec 11 22:07:18 2019 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Dec 11 22:07:18 2019 +0000"
      },
      "message": "Added usage to init call for audiostream registration. am: 9fb726888d am: 3e6cbbc746\n\nChange-Id: Iaff4f7bf4773af90f5762f6fdb403b6e665fd499\n"
    },
    {
      "commit": "b66ad7275873ed4bc7fb50049d118856e29859eb",
      "tree": "2a987bf034917ee53eb0e4b4310a0272da5718d8",
      "parents": [
        "5882632b9a20a0935ef63189c90a9af092618929"
      ],
      "author": {
        "name": "Oscar Azucena",
        "email": "oscarazu@google.com",
        "time": "Fri Nov 08 18:25:39 2019 -0800"
      },
      "committer": {
        "name": "Oscar Azucena",
        "email": "oscarazu@google.com",
        "time": "Wed Dec 11 13:36:32 2019 -0800"
      },
      "message": "Added usage to init call for audiostream registration.\n\nPlayer type AAudio are always initialized with AUDIO_USAGE_MEDIA. Added\nfix to initialize with assigned usage.\n\nBug: 143578354\nTest: ran native application with usage of AUDIO_USAGE_NOTIFICATION\nTest: atest CtsNativeMediaAAudioTestCases\nChange-Id: I170e0b55d7f90b59d9b5129b22f4a9080957994b\nMerged-In: I170e0b55d7f90b59d9b5129b22f4a9080957994b\n"
    },
    {
      "commit": "9fb726888dda17b68fd924b963d34e6ce9454ba1",
      "tree": "bf96e99b9047f37c2a0734cf77ae0c8494615a11",
      "parents": [
        "960bbfab7bd5f2fff6afdecb920f21b8eb3fee45"
      ],
      "author": {
        "name": "Oscar Azucena",
        "email": "oscarazu@google.com",
        "time": "Fri Nov 08 18:25:39 2019 -0800"
      },
      "committer": {
        "name": "Oscar Azucena",
        "email": "oscarazu@google.com",
        "time": "Wed Dec 11 21:33:58 2019 +0000"
      },
      "message": "Added usage to init call for audiostream registration.\n\nPlayer type AAudio are always initialized with AUDIO_USAGE_MEDIA. Added\nfix to initialize with assigned usage.\n\nBug: 143578354\nTest: ran native application with usage of AUDIO_USAGE_NOTIFICATION\nTest: atest CtsNativeMediaAAudioTestCases\nChange-Id: I170e0b55d7f90b59d9b5129b22f4a9080957994b\n"
    },
    {
      "commit": "630f74baaf5280a78350fa1ecb7283768a5c4bf9",
      "tree": "e20620e03a8ef5db88b55dfe70edfaa926ef6c43",
      "parents": [
        "643a5692fb1d1b7b0e2c90faa217816f7b524c51",
        "d17c85023ac2058233121b8a94603687c855c997"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 06 19:21:53 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 06 19:21:53 2019 +0000"
      },
      "message": "Merge \"Add explicit private audio recording request\""
    },
    {
      "commit": "d17c85023ac2058233121b8a94603687c855c997",
      "tree": "39fc63d6f1037eafb71dc8046aefedfadfee9b53",
      "parents": [
        "d203cb92c9c9628b3bead45ec08f826544c1d649"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 24 15:58:35 2019 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 04 17:58:34 2019 -0800"
      },
      "message": "Add explicit private audio recording request\n\nAdd the possibility for apps to indicate that their\ncapture use case is private and that a privileged Assistant\nshould not be able to capture concurrently.\nThis allows to override the default behavior tied to the audio\nsource (e.g VOICE_COMMUNICATION is private by default but\nUNPROCESSED is not).\n\n- Add AAudio API to set and get privacy sensitive mode on input stream\n- Add MediaRecorder API to set and get privacy sensitive mode\n- Modify AudioSource constructor to accept audio attributes instead of an\naudio source to specify the use case.\n- Modify audio policy concurrent capture logic to use audio attributes\nflag instead of audio source to decide of a capture client has\nrequested privacy mode or not.\n\nBug: 137850106\nTest: CTS AudioRecordTest and MediaRecorderTest, manual audio smoke tests\n\nChange-Id: I250ea5da4c1da809ceac0da22ae9bee15b937001\n"
    },
    {
      "commit": "b485238eb33dc86c6afaba67ceaee23508e72130",
      "tree": "6d9a4bdcb7063d3fd844477caf223add744f16bb",
      "parents": [
        "b2872d478fbb66eddd59d8a35d81796850927153"
      ],
      "author": {
        "name": "Zach Johnson",
        "email": "zachoverflow@google.com",
        "time": "Mon Dec 02 15:28:34 2019 -0800"
      },
      "committer": {
        "name": "Zach Johnson",
        "email": "zachoverflow@google.com",
        "time": "Wed Dec 04 00:27:53 2019 +0000"
      },
      "message": "Add stubs so you can use libaaudio from an APEX\n\nBug: 142747680\nTest: compile, verify APEX mounts correctly\nChange-Id: I1350a8e110f5ffc6e1f8316c46a36b8a50b73fb6\nMerged-In: I1350a8e110f5ffc6e1f8316c46a36b8a50b73fb6\n"
    },
    {
      "commit": "99c47ff1654e4991fc971467c97ee8711239c859",
      "tree": "1845298a8f7e56bb1caa35e486de6bc7d92f69f0",
      "parents": [
        "cf4c8b8e7f09cf61ff416167f27f898d6ba96eb2"
      ],
      "author": {
        "name": "Zach Johnson",
        "email": "zachoverflow@google.com",
        "time": "Mon Dec 02 15:28:34 2019 -0800"
      },
      "committer": {
        "name": "Zach Johnson",
        "email": "zachoverflow@google.com",
        "time": "Tue Dec 03 11:32:25 2019 -0800"
      },
      "message": "Add stubs so you can use libaaudio from an APEX\n\nBug: 142747680\nTest: compile, verify APEX mounts correctly\nChange-Id: I1350a8e110f5ffc6e1f8316c46a36b8a50b73fb6\n"
    },
    {
      "commit": "03a2061d53de78b22fc625c40c284c34da6b4dd3",
      "tree": "ef25c052dfa84dc7b239cf1a47cc6b68c4405610",
      "parents": [
        "30ed594000d6ac4f833bbfcea48eca21ede716f6"
      ],
      "author": {
        "name": "Cindy Zhou",
        "email": "zhouci@google.com",
        "time": "Tue Nov 05 16:18:31 2019 -0800"
      },
      "committer": {
        "name": "Cindy Zhou",
        "email": "zhouci@google.com",
        "time": "Mon Nov 25 20:17:58 2019 +0000"
      },
      "message": "Libaaudio Integer Overflow Sanitizer Bug Fix\n\nUsed built in arithmetic overflow checking function in areas where integer overflow sanitizer exposed bugs with native test test_atomic_fifo.\n\nBug: 143307218\n\nTest: Ran the following native tests:\n  test_atomic_fifo\n  test_aaudio_recovery\n  test_aaudio_marshalling\n  test_n_streams\n  test_bad_disconnect\n  test_various\n  test_session_id\n  test_aaudio_monkey\n  test_attributes\n  test_interference\n  test_flowgraph\n  test_return_stop\n  test_stop_hang\n  test_full_queue\n  test_histogram\nRan the following Cts tests:\n  CtsNativeMediaAAudioTestCases\n\nChange-Id: Ie20ffc1a535dec22d81ec27918e2d3eadda21be2\n"
    },
    {
      "commit": "30ed594000d6ac4f833bbfcea48eca21ede716f6",
      "tree": "8ae61ef14aeeb0bd630635c357c5a05815b6c63e",
      "parents": [
        "54ae7b773e2e1e1f9e373e8d803c39f2295ed2f0"
      ],
      "author": {
        "name": "Cindy Zhou",
        "email": "zhouci@google.com",
        "time": "Wed Oct 30 13:24:37 2019 -0700"
      },
      "committer": {
        "name": "Cindy Zhou",
        "email": "zhouci@google.com",
        "time": "Tue Nov 05 08:37:01 2019 -0800"
      },
      "message": "Libaaudio Enable Integer Overflow and Bound Sanitizers\n\nTurned on sanitizer flags for integer overflow and bound checking for libaaudio and libaaudio_internal.\n\nBug: 143307218\nTest: Ran the following native tests:\n  test_aaudio_recovery\n  test_aaudio_marshalling\n  test_n_streams\n  test_bad_disconnect\n  test_various\n  test_session_id\n  test_aaudio_monkey\n  test_attributes\n  test_interference\n  test_atomic_fifo\n  test_flowgraph\n  test_return_stop\n  test_stop_hang\n  test_full_queue\n  test_histogram\nRan the following Cts tests:\n  CtsNativeMediaAAudioTestCases\n  CtsMediaTestCases\n  CtsMediaHostTestCases\nChange-Id: Ie6af19a5b9618f89f5416bc253ed69351911a359\n"
    },
    {
      "commit": "200d15a9c8df0421e665b9135354610019eebdba",
      "tree": "d6b347b54f5d8d3279b34b4bf26b7e48a2840321",
      "parents": [
        "77e5c86ab8179080c8687aa21c838051f330ba0a",
        "6c63ae3b3eda136c89088a82c591ff87ef7bf149"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Oct 28 23:05:57 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 28 23:05:57 2019 +0000"
      },
      "message": "Merge \"aaudio: set default buffer size to capacity/2\""
    },
    {
      "commit": "6c63ae3b3eda136c89088a82c591ff87ef7bf149",
      "tree": "9a6075ad26edda3263313d8cc2bd90db8b043748",
      "parents": [
        "cd75394ef902c43bdc38da88f40b62174c986ded"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Oct 28 10:28:21 2019 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Oct 28 10:28:21 2019 -0700"
      },
      "message": "aaudio: set default buffer size to capacity/2\n\nA recent change in master caused the default buffer size to be zero. ag/9499599\nThat caused a CTS failure.\nThis change restores the behavior of Q.\n\nBug: 143308870\nTest: atest CtsNativeMediaAAudioTestCases\nChange-Id: Id70b0c53e80531c3ea491b56b8fc107ca5ab6e51\n"
    },
    {
      "commit": "77819b82784e4a0a9ef4ccea7618c886f175817e",
      "tree": "ed83084e698b6494774dc0cd5b9cfe4815d899f3",
      "parents": [
        "57cf28f79c1d24ed259bcd8ca6227bb06952c24c",
        "00900336c1e2a67fb852758f9790fbf8050c19c5"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Oct 25 13:30:40 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Oct 25 13:30:40 2019 -0700"
      },
      "message": "Merge \"Remove more header symlinks\" am: a2bc7eada8 am: ec565c575d am: ef6bd3e3a5\nam: 00900336c1\n\nChange-Id: I1ee034dda7407c84110b8fa92a38a427d58203b5\n"
    },
    {
      "commit": "ec565c575d029bdef8bcdf9762276b44255e5dfb",
      "tree": "660e5fa119829f2528809ec9c7ecfb4cc27d7082",
      "parents": [
        "001b8646402131b5e55c6633971b9d9a851cd18e",
        "a2bc7eada863d845b04c85195dbb26df37bdef69"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Oct 25 13:08:26 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Oct 25 13:08:26 2019 -0700"
      },
      "message": "Merge \"Remove more header symlinks\"\nam: a2bc7eada8\n\nChange-Id: I690dd345b0a74078b7cae24bdf3fdb2549d8c62d\n"
    },
    {
      "commit": "6b2859450f91f1cdd8b3ca2435df4dd37907cd8a",
      "tree": "4accc947ac99fa7246f5f7fc54f35b3c960636b1",
      "parents": [
        "35f148bc5a1cb1efffd9aee0223a06720a303329"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Oct 21 14:52:30 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Oct 24 21:25:53 2019 +0000"
      },
      "message": "Remove more header symlinks\n\nTest: build\nBug: 143245419\nChange-Id: I9bb03d54c7792625b73602f2d3721e29f8f929be\n"
    },
    {
      "commit": "8d4f0062c77554f80b069cf794172454e1457892",
      "tree": "11d2883b84b96c105935e1b98a2aa672de695a8a",
      "parents": [
        "1865ec9e8a38506e2c7062793f39113f98da0543"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Oct 03 15:55:41 2019 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Oct 17 12:18:25 2019 -0700"
      },
      "message": "aaudio: write if there is room\n\nGo ahead and write the data to the buffer if there is room,\neven if it exceeds the setBufferSizeInFrames().\n\nThere is no point of holding it in the application buffer.\nBy making the data available to the DSP we can reduce glitches\nor reduce latency.\n\nBecause this offers better glitch protection, we can allow\nsetBufferSizeInFrames() to accept a buffer size of zero.\nThis will provide the lowest possible latency.\n\nTest: OboeTester glitch test\nChange-Id: Ie706867c5dd57c29b4393c806cd51ae09198873e\n"
    },
    {
      "commit": "ef34be5426e96fa2fecc551e1fe196fbb862b220",
      "tree": "3335f4ce50a8307b0684a0c5a15fcf3b4ec84b52",
      "parents": [
        "b362012ad43022a0686cc2ca7fe2eb64d377a202"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Sep 26 13:45:25 2019 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Oct 04 16:56:14 2019 -0700"
      },
      "message": "aaudio: add histogram to clock model\n\nMeasure distribution of MMAP timestamp lateness.\nThis is used to discover the actual DSP timing behavior.\nTurn histogram log on or off using a property.\n\nTest: adb root\nTest: adb shell setprop aaudio.log_mask 1\nTest: run an AAudio MMAP program\nTest: adb logcat | grep ClockModel\nChange-Id: I910831d1feee43c59d1af2ac3135a910fef36fb2\n"
    },
    {
      "commit": "b362012ad43022a0686cc2ca7fe2eb64d377a202",
      "tree": "d9359117a82ba444644e4db01667273db710fdde",
      "parents": [
        "23d0190155401048bebd98a20a7467e7edd9344d",
        "b31b66f3e0fbf24e03acd2f18ccfd627a8565443"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Oct 01 19:24:39 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 01 19:24:39 2019 +0000"
      },
      "message": "Merge \"aaudio: offset MMAP timestamps\""
    },
    {
      "commit": "b31b66f3e0fbf24e03acd2f18ccfd627a8565443",
      "tree": "00c121e1b683b6bf0ba56c0c8cf342958d529728",
      "parents": [
        "3b93ca583af5296df1b4d45e4d16b5fba82205d2"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Sep 30 09:33:41 2019 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Oct 01 10:21:50 2019 -0700"
      },
      "message": "aaudio: offset MMAP timestamps\n\nThis can be used to debug and analyze problems\nwith the AAudio MMAP IsochronousClockModel.\nThat is a model of the DSP that is used by AAudio\nto predict the read/write timing of the DSP.\nIf there is an error in the model or in the timestamps\nthen the DSP and CPU pointers can cross, which causes\nan audio glitch.\nBy changing the offset we can force glitches and indirectly\nmeasure the time distribution of the DSP transfers.\n\nTest: adb shell setprop aaudio.out_mmap_offset_usec\nBug: 123096058\nChange-Id: I9a3df345a6820baf20a24d261642b3c8c0c2a27e\n"
    },
    {
      "commit": "e3cdab3c40cb71284a0e186d7d5a82257e7d34a1",
      "tree": "3d47cb676cf9bbe0e21c1c8bc12ba76b8682c9a7",
      "parents": [
        "b92d0b3e79b3ee2c5b407a09e8b043ddac46ea18",
        "34e2d2d9ad4f7911f6e93789bd83543a32bab36b"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Sep 30 20:34:51 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 30 20:34:51 2019 +0000"
      },
      "message": "Merge \"aaudio: make fewer assumptions about MMAP timestamp\""
    },
    {
      "commit": "34e2d2d9ad4f7911f6e93789bd83543a32bab36b",
      "tree": "93e61bd9c655e5b35199f463100b6f986f112b17",
      "parents": [
        "3b93ca583af5296df1b4d45e4d16b5fba82205d2"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Sep 26 12:46:10 2019 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Sep 30 11:28:27 2019 -0700"
      },
      "message": "aaudio: make fewer assumptions about MMAP timestamp\n\nAllow any amount of lateness.\nThis will allow the ClockModel to work with a wider range\nof DSP behaviors. It should also handle timing jitter\ncaused by resampling in the DSP.\nUse a drift value to stabilize the early and late ends of\nthe clock model window.\n\nTest: run OboeTester Glitch Test\nBug: 123096058\nChange-Id: Ic6e03d7878b26c4bf1d05708cff0ca2a771a9f80\n"
    },
    {
      "commit": "a10bd516e59e0960121486a491ccfedac67cc4b3",
      "tree": "1de94bfe68a438ac280f8a766a375c2993ec4753",
      "parents": [
        "3b93ca583af5296df1b4d45e4d16b5fba82205d2"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Sep 27 11:49:17 2019 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Sep 27 11:49:17 2019 -0700"
      },
      "message": "aaudio: fix detection of input overflows\n\nWas incorrectly looking at the buffer size instead of the buffer\ncapacity.\n\nTest: OboeTester ECHO INPUT to OUTPUT\nTest: set Input margin to 4\nTest: XRun# for input should stay at zero\nBug: 141700208\nChange-Id: I21ecdac19f5361a1b33f4dc2aaec170de9e28fc6\n"
    },
    {
      "commit": "35e524ea1324ffdaccd50e3caf661518e7fc0782",
      "tree": "41c16164485ad3564417d64cfb8d271888386ec2",
      "parents": [
        "3aac50996a4296a64e9269bd87cc2c930285ddd1",
        "89d816939fcf3a8769e56c8b9a4e61ac7b92fa68"
      ],
      "author": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Wed Jul 24 00:43:57 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jul 24 00:43:57 2019 -0700"
      },
      "message": "Merge \"Apply version-script to libaaudio library.\" am: 2255c50a92 am: 49742b2ab1 am: 57b5bd3f10 am: 16634a9f51\nam: 89d816939f\n\nChange-Id: I150646d20a7a2c8db3a708aac0c7d5abf845d619\n"
    },
    {
      "commit": "16634a9f51ba22f7d8099c3e8160eaffa9adff9d",
      "tree": "895a11f1efa6ab2b995b18dc829f3066485f2669",
      "parents": [
        "301f8ee66fbcb83fe5f72f90b04d4be17f05fd1c",
        "57b5bd3f10965d46b18741417da06c4f03cf2ba9"
      ],
      "author": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Tue Jul 23 23:46:27 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jul 23 23:46:27 2019 -0700"
      },
      "message": "Merge \"Apply version-script to libaaudio library.\" am: 2255c50a92 am: 49742b2ab1\nam: 57b5bd3f10\n\nChange-Id: I66e3edfcd3e2c54260dc6c8ef923387fdf485e69\n"
    },
    {
      "commit": "57b5bd3f10965d46b18741417da06c4f03cf2ba9",
      "tree": "8ce034aa0d1511cf7d1a53819d1988270b45b7af",
      "parents": [
        "09722ef6dd6ed2378475e9b4b92c7fc8107e2dbb",
        "49742b2ab11f9cc9866f274f7a1333eaff909c70"
      ],
      "author": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Tue Jul 23 23:41:57 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jul 23 23:41:57 2019 -0700"
      },
      "message": "Merge \"Apply version-script to libaaudio library.\" am: 2255c50a92\nam: 49742b2ab1\n\nChange-Id: I8c75fa1b4d19dd5315c10c0975a57a81a8f23ff5\n"
    },
    {
      "commit": "49742b2ab11f9cc9866f274f7a1333eaff909c70",
      "tree": "148e5f6fbbb7720c046a147fa213b0d051e67558",
      "parents": [
        "42e1130e8be8b2527a8d17b1748592ae004e85c0",
        "2255c50a920f106f91a099fec2ac6692b696a61d"
      ],
      "author": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Tue Jul 23 23:17:47 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jul 23 23:17:47 2019 -0700"
      },
      "message": "Merge \"Apply version-script to libaaudio library.\"\nam: 2255c50a92\n\nChange-Id: I1f8d59c8056d3ced187f75f8e603fe2517df64aa\n"
    },
    {
      "commit": "42e1130e8be8b2527a8d17b1748592ae004e85c0",
      "tree": "61380db6ef5d30460357c8af0b962bed4c5d071a",
      "parents": [
        "c3af5ba966b7aaddfd96bac149f04a4f43c49f9c",
        "0db4d66d132006ab72f41ad76c7358e5cbae0a32"
      ],
      "author": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Tue Jul 23 11:11:10 2019 +0200"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Jul 23 10:48:45 2019 +0000"
      },
      "message": "resolve merge conflicts of 0db4d66d132006ab72f41ad76c7358e5cbae0a32 to stage-aosp-master\n\nTest: I did not test this\nMerged-In: If93118ed2c266faf2964abf21e17b0b13df493d2\nChange-Id: Iaba9829407bd2b625e91ac7a4c8bc8941fa7d569\n"
    },
    {
      "commit": "b5a33ac9b301763ef4f7c0bd233f2d514dd0a59d",
      "tree": "90455127b384719a40d0ae38bbbf13db90f448e9",
      "parents": [
        "ddac14243d96289f6b9743f8e1c77ea082ba70f9",
        "355090b61552436c366df69b021743a9876dd2d0"
      ],
      "author": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Mon Jul 22 11:30:23 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jul 22 11:30:23 2019 -0700"
      },
      "message": "Merge \"Split libaaudio.so to internal and NDK part\" into qt-dev-plus-aosp\nam: 355090b615\n\nChange-Id: Ib8bd4d7d492162a6c1c2956f7b1616d53acb618b\n"
    },
    {
      "commit": "76ee1ffe600499099bdf6f10a2bb2a50deaad315",
      "tree": "71a2a093ab5a5b8d42d8468562446052c8d62a26",
      "parents": [
        "f5b0727d72a1c525f01bf10a31864382faa6f70a"
      ],
      "author": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Wed Jul 17 13:55:16 2019 +0200"
      },
      "committer": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Thu Jul 18 16:04:47 2019 +0200"
      },
      "message": "Split libaaudio.so to internal and NDK part\n\nThis change moves almost everything from libaadio.so to\nseparate libaaudio_internal.so library. This is done to\navoid exporting symbols which apps are not allowed to use\nbut have them available for platform libraries by exporting\nthem from libaaudio_internal.so\n\nBug: http://b/69603741\nTest: make\nMerged-In: If93118ed2c266faf2964abf21e17b0b13df493d2\nChange-Id: If93118ed2c266faf2964abf21e17b0b13df493d2\n"
    },
    {
      "commit": "8e8a96881165d8251aaa9a575a568062bd06430e",
      "tree": "fa98df9a0eb75cfe2a41a4bb00b637b2e4dcd304",
      "parents": [
        "d81a84a886e13c61a613b35e4a998ad8e61a0d8f"
      ],
      "author": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Tue Jun 04 15:14:02 2019 +0200"
      },
      "committer": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Thu Jul 18 15:25:35 2019 +0200"
      },
      "message": "Apply version-script to libaaudio library.\n\nIn previous attempt it was mistakenly applied to cc_library_header\ninstead of the actual library. Do it correctly this time.\nThe intention of this change is to hide unintentionally\nexported symbols from the library.\n\nBug: http://b/69603741\nTest: make\nChange-Id: I47967abea0b39aec05e80823c9eb3fe53f9fa591\n"
    },
    {
      "commit": "d81a84a886e13c61a613b35e4a998ad8e61a0d8f",
      "tree": "e1ca28f807ed6d384e3526de1f0f2049548f17b6",
      "parents": [
        "10b5ef5d180bc5b0a2116f112b87153b16c3de00"
      ],
      "author": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Wed Jul 17 13:55:16 2019 +0200"
      },
      "committer": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Thu Jul 18 15:25:14 2019 +0200"
      },
      "message": "Split libaaudio.so to internal and NDK part\n\nThis change moves almost everything from libaadio.so to\nseparate libaaudio_internal.so library. This is done to\navoid exporting symbols which apps are not allowed to use\nbut have them available for platform libraries by exporting\nthem from libaaudio_internal.so\n\nBug: http://b/69603741\nTest: make\nMerged-In: If93118ed2c266faf2964abf21e17b0b13df493d2\nChange-Id: If93118ed2c266faf2964abf21e17b0b13df493d2\n"
    },
    {
      "commit": "2d2f17cc1e15b7a4a21c94d6c6d125eabf740fc9",
      "tree": "c1023826407ccf2d1f88fa1e8d69ee8cae579136",
      "parents": [
        "ed84e713b3b84aa189459c2412e65a4be257bc89"
      ],
      "author": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Wed Jul 17 13:55:16 2019 +0200"
      },
      "committer": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Thu Jul 18 14:09:16 2019 +0200"
      },
      "message": "Split libaaudio.so to internal and NDK part\n\nThis change moves almost everything from libaadio.so to\nseparate libaaudio_internal.so library. This is done to\navoid exporting symbols which apps are not allowed to use\nbut have them available for platform libraries by exporting\nthem from libaaudio_internal.so\n\nBug: http://b/69603741\nTest: make\nChange-Id: If93118ed2c266faf2964abf21e17b0b13df493d2\n"
    },
    {
      "commit": "767fef712550d09f52bca9439d2db98335da54f5",
      "tree": "f85c138fa095285cc5051ffe412df78a94fb52d6",
      "parents": [
        "d033c19191965b680e072be00f18dc34920afef3",
        "50e7b07a85e0a81fc890ce66799e5dbd4fa27660"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Jul 12 10:42:03 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jul 12 10:42:03 2019 -0700"
      },
      "message": "Merge \"libaaudio: remove unused deps\" am: 10b5ef5d18 am: 24225f9ba0\nam: 50e7b07a85\n\nChange-Id: I7293d2d30276de35afac80d6b7d11216c9d5f942\n"
    },
    {
      "commit": "24225f9ba085f07aa9727bb3c7f373e873d51a8e",
      "tree": "9dfad2da3583c9c4facb96c708c3b423ad12763c",
      "parents": [
        "ffc1f570a2e8bc3ba591d75610bc15d3b2b244a9",
        "10b5ef5d180bc5b0a2116f112b87153b16c3de00"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Jul 12 10:24:03 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jul 12 10:24:03 2019 -0700"
      },
      "message": "Merge \"libaaudio: remove unused deps\"\nam: 10b5ef5d18\n\nChange-Id: Ia61bc23c2bea2e474637faa718ff7d40f7d23ed8\n"
    },
    {
      "commit": "0de8047d0d20b3cc2fb5b92a8c39247e2aa3cf5b",
      "tree": "59933bbd81d4e32f27c4446ca158700d3dd00cf2",
      "parents": [
        "61e027adbfdc0e3a1cdeadf353daee79646fa6a4"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Thu Jul 11 16:06:55 2019 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Thu Jul 11 16:06:55 2019 -0700"
      },
      "message": "libaaudio: remove unused deps\n\nBug: 137311188\nTest: library still builds\nChange-Id: I81c8889893b2b9f8463f364109be2120ed9b8d04\n"
    },
    {
      "commit": "fceeee75b8a0cc4bdb22bc4c818ee8d42bf6db4f",
      "tree": "8b0b5dbd7a540402d17137cce39ae694c5d5dbe4",
      "parents": [
        "3439c875dd21991992afe033005e4f2ebed919bd"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Jun 14 11:18:45 2019 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Jun 28 21:44:40 2019 +0000"
      },
      "message": "aaudio: account for hardware jitter in clock model\n\nThis will allow AAudio to track the DSP better when\nthe DSP has variable timing, such as when resampling.\n\nKeep track of the maximum lateness.\nDo not assume it is only one burst.\nAccount for the lateness on the input streams\nso we don\u0027t try to read the data before the DSP\nhas written it.\n\nBug: 123643363\nTest: record through iRig UA using Oboe Tester\nTest: see bug for details\nChange-Id: I49eb852c6d0324e8a26ee912da5108021ec113fe\n"
    }
  ],
  "next": "fe38abd0f042eec39a699811551f8351d9920c12"
}
