)]}'
{
  "log": [
    {
      "commit": "e72481c5c16d401c776e0ba49b84b80223769b91",
      "tree": "282c04aa82bba9f854b3125fa8edade0b41f5287",
      "parents": [
        "e88fd530455d39e4c770870c74c1198820f62bfe"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Aug 08 13:20:45 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Aug 09 14:11:57 2017 -0700"
      },
      "message": "aaudio: fix ownership problems with file descriptors\n\nUse unique_fd to track file descriptors.\nFix extra close of file descriptor in SharedMemoryParcelable.cpp.\nThis bug was causing unrelated file descriptors to be closed!\n\nBug: 64311216\nTest: write_sine.cpp, FD should survive aaudio close\nChange-Id: I4f38c83510a49ea22b79b96d970ee48153417249\n"
    },
    {
      "commit": "a5222e298c294781067950a7cc319d3278fa845a",
      "tree": "69ea25d3c54785ed74af3aee94c5f760d3f13da0",
      "parents": [
        "909f4a6cada3d5fb7594da7d1809ba62d1b47340"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Jul 28 13:31:14 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Aug 03 10:07:39 2017 -0700"
      },
      "message": "aaudio: improve error logging\n\nReport when INVALID_STATE returned.\nThis was used to debug monkey test errors.\nCleanup some log messages.\nImprove \"dumpsys media.aaudio\"\n\nBug: 64310586\nTest: CTS nativemedia/aaudio\nChange-Id: Ifbcac4794cda22cccbacff6352243c0ef4589c53\n"
    },
    {
      "commit": "0befec600314a79c0d142c3edd99f7d1c75e1afe",
      "tree": "9aae908902a8dc73d8d9853ee8af49bca2d974de",
      "parents": [
        "dde8d48a32a625297f69c6316c7832f7ec0221fe"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Jul 28 15:12:13 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Aug 03 00:44:16 2017 +0000"
      },
      "message": "aaudio: update state for legacy mode\n\nAdd logging to the loopback test.\nUpdate state in the callback.\nImplement AAudioStreamRecord::getFramesWritten().\n\nBug: 62781173\nBug: 64214193\nTest: aaudio_loopback.cpp, look for STARTED state while running\nChange-Id: Iba867d048dcfcafe6db1d095abe2766f1aabe608\n"
    },
    {
      "commit": "97350f9df7252c881f011a410fcd9e6d766d2bee",
      "tree": "fab6334a25607e03276648611584b8fc23b40463",
      "parents": [
        "eb1c0658e405e5b7e26f4b16761c5b1ce3f77d46"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Jul 21 15:59:44 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Aug 02 10:57:31 2017 -0700"
      },
      "message": "aaudio: improve accuracy of timestamps\n\nAccount for latency added by the AAudio service.\nFix input timestamps.\n\nBug: 37080396\nTest: test_timestamps.cpp input_monitor.cpp\nChange-Id: I1053cd21af722bb9b9371df4e5731bf4a0a57b0b\n"
    },
    {
      "commit": "19d05412dbba726830c6d4064bca798f682cd3bc",
      "tree": "c398775354f6f68e4bcaad565c720aafc7d6c9ea",
      "parents": [
        "5fafb7bdbca55fe955df1a913051c5d08a0ba087",
        "faeb8b20e8ce98d308ca5ec095eeba6583cd9ec6"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Jul 31 13:58:06 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jul 31 13:58:06 2017 +0000"
      },
      "message": "aaudio: fix getXRunCount\nam: faeb8b20e8\n\nChange-Id: I5df65477820b7297479f4cf1f41ec1d5c92cff77\n"
    },
    {
      "commit": "faeb8b20e8ce98d308ca5ec095eeba6583cd9ec6",
      "tree": "ca5897bcd530e9f0e5167d30ed7945171d0a11c9",
      "parents": [
        "d478859f02323b03e2927a10055c42331f6dacc7"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Jul 25 15:15:07 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Jul 28 13:19:29 2017 -0700"
      },
      "message": "aaudio: fix getXRunCount\n\nMixer was not advancing FIFO when underflowed so the client could not\ndetect the xrun.\nAlso underruns could cause the stream to drift in time relative to other\nstreams.\n\nBug: 64033855\nTest: trigger underruns by sleeping in a callback\nChange-Id: Ia038f5048ffbff3b82e9d86e6807483dfe6879d0\n"
    },
    {
      "commit": "5fafb7bdbca55fe955df1a913051c5d08a0ba087",
      "tree": "8782978078bed9d8579a3369efc2d16f3d6820ae",
      "parents": [
        "fd12ac32f9bc97b9944c0b9b242589b4c7fd694c",
        "d478859f02323b03e2927a10055c42331f6dacc7"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Jul 28 18:17:47 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jul 28 18:17:47 2017 +0000"
      },
      "message": "Merge \"aaudio: add glitch detection to loopback, improve latency check\" into oc-dr1-dev\nam: d478859f02\n\nChange-Id: Ic2e44eebd2ef8110321799b01597714b0c0a12e8\n"
    },
    {
      "commit": "fcf9efd59e36759ee7df66fdfce4f8eedeb376e4",
      "tree": "d8b518341024972e1c7b4464950b79089cb49cd0",
      "parents": [
        "e6e9a4811dc43e5c393b2c45eca64d1f1608e8d0"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Jul 14 08:25:08 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Jul 27 17:17:07 2017 -0700"
      },
      "message": "aaudio: add glitch detection to loopback, improve latency check\n\nAlso improve automatic loop gain control for latency testing.\nUse ArgParser to parse command line options.\n\nBug: 38178592\nTest: this is a test\nChange-Id: Idfe8f25544a3e7c74ee15be008bf34e3a0741455\n"
    },
    {
      "commit": "f7d9b3fb2901410ec6267174d5819d09fa3c6521",
      "tree": "625d1af0f979c8ec5915410e9f48df4d14a969e8",
      "parents": [
        "b25d3927c08503e68a213526a8f82d40eacde81b",
        "556a5a06e8fab58cdf3f449c5f9de64daffae763"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Jul 13 18:55:20 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jul 13 18:55:20 2017 +0000"
      },
      "message": "Merge \"aaudio loopback: improve latency tester\" into oc-dr1-dev am: ac31fb8978\nam: 556a5a06e8\n\nChange-Id: I17b6898cfdd4106305f2e4edfe6501de8560ef2c\n"
    },
    {
      "commit": "4ea2d60c6baa3f3a6751165cbb45e66ff6968aa0",
      "tree": "ba56ffa54034ded9b39f50d35ead7aa1e668933e",
      "parents": [
        "0acb3209107802e2ab116f8374aab886579729bb"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Jun 20 08:52:24 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Jul 12 09:39:39 2017 -0700"
      },
      "message": "aaudio loopback: improve latency tester\n\nAdd command line options.\nAdd magnitude measurement.\nAdd automated latency analyzer that uses round trip echo and an impulse correlation.\nUses Harmonic Product Spectrum technique but in the time domain.\n\nBug: 33398120\nBug: 38178592\nTest: this is a test\nChange-Id: Ied6c09e6d8d373a188c13ed85b27de6c4b7be2f4\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "44795237e0f43d6efe16ef1cb047ce7ea0cbb870",
      "tree": "b75e4b9c388ab734632de3cdf5d0edf96c2172c5",
      "parents": [
        "41779c4849d0edfd72c784fdbd4de92784056ee7"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Jun 30 16:27:38 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jul 12 01:24:19 2017 +0000"
      },
      "message": "aaudio: command line argument parser\n\nGeneric parser that is used in multiple examples.\n\nAdded -n{numberOfBursts} for buffer size.\n\nThis is being used to test the MMAP features.\n\nBug: 63002656\nTest: this is a test\nChange-Id: Idf7560f9bb3ed7834f6c4686dd6009f27f04220e\nMerged-In: Idf7560f9bb3ed7834f6c4686dd6009f27f04220e\n"
    },
    {
      "commit": "753c9f326b9505004576996091a64a43271634a0",
      "tree": "fc1c7801f04dffe67ba6836aa7ace1f40cfeac1f",
      "parents": [
        "ab8e5c6bd83648c6dc4ada7fd197e960df82cc1e"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Jun 30 16:27:38 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Jul 10 14:36:02 2017 -0700"
      },
      "message": "aaudio: command line argument parser\n\nGeneric parser that is used in multiple examples.\n\nAdded -n{numberOfBursts} for buffer size.\n\nThis is being used to test the MMAP features.\n\nBug: 63002656\nTest: this is a test\nChange-Id: Idf7560f9bb3ed7834f6c4686dd6009f27f04220e\n"
    },
    {
      "commit": "38217e0d53b14e634243d1ce36fa5d3267c71056",
      "tree": "3ddf472b051c944a6c1039b2acac9ac1c01fafb9",
      "parents": [
        "ee05ff049fb5c6f394f806e58c3f2ec28e8957af",
        "b66815f31c762eef2d1b84fa6f5d9f9b158ca18c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sun Jul 02 02:32:49 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sun Jul 02 02:32:49 2017 +0000"
      },
      "message": "aaudio: enable exclusive MMAP mode support am: d51329eca8\nam: b66815f31c\n\nChange-Id: I02e0c91d5ce2dc0ceb7b47aa27c6c63a69e90a3a\n"
    },
    {
      "commit": "d51329eca85112973867a6bf0d210e82d6d1c411",
      "tree": "f29ad645223b5ea22b709f4d3362f27aa14d6a9a",
      "parents": [
        "4501b3510f9b2af2ff63a0471de24e3feea1d0a8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jun 30 16:06:16 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sun Jul 02 00:32:10 2017 +0000"
      },
      "message": "aaudio: enable exclusive MMAP mode support\n\nAllow exclusive MMAP mode only if the HAL indicates\nthat the FD returned for shared memory buffer can be shared\nwith any application.\n\nNOTE: the way the HAL indicates this is temporary until the audio\nHAL is modified in next HIDL release.\n\nBug: 37167970\nTest: check playback and capture in mmap exclusive and shared mode\nChange-Id: I09c1461b2f99532ded2ef9d36d483b82096fda68\n"
    },
    {
      "commit": "cd6d380e4f526476a11adface7680b3981c6a7d7",
      "tree": "1f7b5128348d63e775519a52e5fe0133cddbc4e4",
      "parents": [
        "06909d621d3755180693ea2539c6883fa2c6d727",
        "7668940938c2caea8dd80399000b819f147bc2cc"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Jun 30 06:59:06 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jun 30 06:59:06 2017 +0000"
      },
      "message": "Merge \"aaudio: close MMAP stream if client dies\" into oc-dr1-dev am: e27d3a435c\nam: 7668940938\n\nChange-Id: I447b8dcd864ed9517e4ca61bc341eee2a24c2707\n"
    },
    {
      "commit": "11e8d335b1da528ee771b19b63df23ae6fd52f41",
      "tree": "b5679b54a7acfbdf455c95355da8c0b9a4dbc51c",
      "parents": [
        "1fa57e8d3149703e794997edffa4e03bfb0a6887"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed May 24 09:59:02 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Jun 29 21:40:21 2017 -0700"
      },
      "message": "aaudio: close MMAP stream if client dies\n\nNotify client when audio service dies. Clear connection.\nNotify AAudio service when client dies. Close client streams.\n\nUse sp\u003c\u003e to track ServiceStreams.\n\nBug: 38267698\nTest: test_no_close.cpp\nChange-Id: I5f1699ed3b8b7bd960947c0028a89ca8419ce7a0\n"
    },
    {
      "commit": "66feec9ff333bbf0b2590f1b321fbf880e1405a4",
      "tree": "ebb1043a6aaf48ac109eb7022a999ae4bc31f0cc",
      "parents": [
        "d4ef5f1eafa099eb40e68a1dfc7b701e4a8d0b1a",
        "2ac7694396640821f6723672e25b2372220bf060"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jun 27 01:18:39 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 27 01:18:41 2017 +0000"
      },
      "message": "Merge \"Set initial audio device for AudioTrack and AudioRecord\" into oc-dr1-dev"
    },
    {
      "commit": "2ac7694396640821f6723672e25b2372220bf060",
      "tree": "0cd5a8c58898fcb145f4b879ea64aeb260266ce2",
      "parents": [
        "ffd80b92df8521dd28ab5fd08b1098a58cb280e8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jun 22 17:17:09 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jun 26 16:29:08 2017 +0000"
      },
      "message": "Set initial audio device for AudioTrack and AudioRecord\n\nBug: 62090113\nTest: run AAudio test and verify a valid device is reported just\nafter opening playback or capture streams in legacy mode.\n\nMerged-In: Ic8be42e1735690eb00c811ef0cb8b5abb36172d6\n\nChange-Id: Ic8be42e1735690eb00c811ef0cb8b5abb36172d6\n"
    },
    {
      "commit": "9ae8c597d9a0c8cedc4047fc4716d7361453f6ab",
      "tree": "4c8824f15e744d82243f4a3caab1d67b208afd47",
      "parents": [
        "5af194cf79f280034430f2f65b02a89f261dbbc8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jun 22 17:17:09 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jun 26 08:04:19 2017 -0700"
      },
      "message": "Set initial audio device for AudioTrack and AudioRecord\n\nBug: 62090113\nTest: run AAudio test and verify a valid device is reported just\nafter opening playback or capture streams in legacy mode.\n\nChange-Id: Ic8be42e1735690eb00c811ef0cb8b5abb36172d6\n"
    },
    {
      "commit": "8ebfadb1d9782d91458b1930eb4ef49c4594743e",
      "tree": "a5dcd28ba364911accc85e61830ce2d87c6de5e4",
      "parents": [
        "3d9d384007f55f2c2e3138aa93f68755aca48e18",
        "1e7b17851e56905889a6c596c1e4971d2939927a"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Sat Jun 24 01:40:31 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Jun 24 01:40:31 2017 +0000"
      },
      "message": "Merge \"libaaudio: use shared library for tests and examples\" into oc-dr1-dev am: 00e2cbcf74\nam: 1e7b17851e\n\nChange-Id: Ieb259fddf050fea2150837edd86b6bb2ae3b864f\n"
    },
    {
      "commit": "0f6bf435f1cf5349a25ac276114df76a00d181e9",
      "tree": "934e7cdbd13ecc36eeb5de40c04b9684750a11ed",
      "parents": [
        "a2f10fb5a0731dc54c06bd55f54ade38800069cd"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Jun 22 16:26:36 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Jun 22 16:28:40 2017 -0700"
      },
      "message": "libaaudio: use shared library for tests and examples\n\nThey were statically linking with libaaudio.\n\nBug: 62820459\nTest: mmm frameworks/av/media/libaaudio\nChange-Id: Ie704dd6c9d12b00c3f16f30d296468c9b5b42776\n"
    },
    {
      "commit": "2829428ff26be1e1a33d161a54e3f988a1299db9",
      "tree": "b49bf2a371cd9b0e7237a3e4002a2cac422f1617",
      "parents": [
        "12852bd16b84f0157cf500389304ab1e35993a81"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jun 15 13:34:29 2017 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jun 15 16:59:52 2017 -0700"
      },
      "message": "Remove obsolete get/setSamplesPerFrame\n\nAAudioStream_getSamplesPerFrame\nAAudioStream_setSamplesPerFrame\n\nTest: builds OK\nChange-Id: If87fa17e37f2cb847f8258682ee9bd38246e981d\n"
    },
    {
      "commit": "9e8f432a99d78191a42ffc070230d34ebf77102d",
      "tree": "d680e026da8f520bdd0ab8b0e0a1829efc6745ba",
      "parents": [
        "405408c26b05dc4b694c5cb5afc1fe2ae9b7c419",
        "88e94d3c1e3644d1c36b9e9c2f161cfe891ce4e1"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Jun 03 01:36:44 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Jun 03 01:36:44 2017 +0000"
      },
      "message": "aaudio: implement native IPLayer for legacy playback streams am: 1d32e9f8e5\nam: 88e94d3c1e\n\nChange-Id: Ic94f6da387d73dfcb727f98bfb67913d0927b3d3\n"
    },
    {
      "commit": "1d32e9f8e5ba52d69c6319270c8a63a995d2c4f2",
      "tree": "4d3816933fd2e7344934ccf4e077c640f565c58f",
      "parents": [
        "a9034e0e535ea8f41a7b1d0a5c9e4e9f074be236"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jun 02 14:01:32 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jun 02 15:05:23 2017 -0700"
      },
      "message": "aaudio: implement native IPLayer for legacy playback streams\n\nMake AudioStreamTrack derive from PlayerTrackBase to\nprovide playback and volume control via IPLayer interface.\n\nBug: 62027849\nTest: verify aaudio playback regressions and registration of aaudio\nplayers in AudioService\n\nChange-Id: I5c04110f1554233eae3f1bc357a64a584d7303d1\n"
    },
    {
      "commit": "83cb1714b2aef243c251eb6ab4d2b2bca67a76fc",
      "tree": "0a534d3f09658bfa816c66765dd8c13377867f21",
      "parents": [
        "75c8cf06c81849db15001fb634ec49f238d09c56",
        "c868efc24f63a4b92df0770e965cade5874ae264"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed May 31 16:27:30 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed May 31 16:27:30 2017 +0000"
      },
      "message": "Merge \"aaudio: remove deprecated aaudio_audio_format_t\" into oc-dev am: 897011a940\nam: c868efc24f\n\nChange-Id: If0aa9ea442aa4fea664c96403e73c7c63e4282b9\n"
    },
    {
      "commit": "897011a94008cb9ab73f8db397bbd87c57f5cf27",
      "tree": "22275b7be9059117c4d08540d8288e366c92e73e",
      "parents": [
        "d04aeea00bdaa999821e1a15c437ea648bd07195",
        "9dca9824da74d50be02bc81f539cc77b7bde678a"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed May 31 16:11:35 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 31 16:11:36 2017 +0000"
      },
      "message": "Merge \"aaudio: remove deprecated aaudio_audio_format_t\" into oc-dev"
    },
    {
      "commit": "75c8cf06c81849db15001fb634ec49f238d09c56",
      "tree": "7d87cebf6f13b1b4844b900365d382bd5cdb5347",
      "parents": [
        "e9f7b6573fe5a335075254623bdfe35b51a7363c",
        "77b455cf82b91fa124bbc75407b0743e3cf4cff0"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed May 31 02:16:51 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed May 31 02:16:51 2017 +0000"
      },
      "message": "aaudio: AAudio_setMMapPolicy() am: d04aeea00b\nam: 77b455cf82\n\nChange-Id: I75915759d9ddd1cb7f99ccb202ca279cc1e1b9f2\n"
    },
    {
      "commit": "d04aeea00bdaa999821e1a15c437ea648bd07195",
      "tree": "c55ecffbe068013ed1b122c5765efefc2b5760dc",
      "parents": [
        "629afae6135e6dc1e88ab4080f984fb30b3cdd7c"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue May 23 13:56:41 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 30 17:14:26 2017 -0700"
      },
      "message": "aaudio: AAudio_setMMapPolicy()\n\nControls whether MMAP data path is used NEVER, AUTO or ALWAYS\nFor testing only. To improve code coverage in CTS.\n\nBug: 38268547\nTest: write_sine.cpp\nChange-Id: Iad97876fb6f1d0c653262161b7b5519d83d16ac5\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "9dca9824da74d50be02bc81f539cc77b7bde678a",
      "tree": "fc1191a65e3677298cc50195ed8a9781d5545d2a",
      "parents": [
        "629afae6135e6dc1e88ab4080f984fb30b3cdd7c"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri May 26 14:27:43 2017 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue May 30 15:36:21 2017 -0700"
      },
      "message": "aaudio: remove deprecated aaudio_audio_format_t\n\nShould be using aaudio_format_t\n\nBug: 62141619\nTest: compile and run CTS test_aaudio.cpp\nChange-Id: Ibbba2769dfd8bcd9c108d87c19fe1fad2ba43df1\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "7771449cf13318c074018a1f9aacad56306b8546",
      "tree": "6473de7a4d93f487087db9ea8032702d55adf5b0",
      "parents": [
        "ef44fb4115270883da829fea91174c8cc003b777",
        "faadff3569ae8bd25ae9e97b9af73da3f7e04aa4"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 30 19:38:13 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue May 30 19:38:13 2017 +0000"
      },
      "message": "aaudio: add tests for device switch detection and refactor am: 629afae613\nam: faadff3569\n\nChange-Id: I7f62e878fd72dd706a209fe94c38998dde59945a\n"
    },
    {
      "commit": "629afae6135e6dc1e88ab4080f984fb30b3cdd7c",
      "tree": "4757620ffeb9f6e5b06d504fc869624f62459475",
      "parents": [
        "fb00fc77f59ed5ebec4d38bac666e6521b6c1de0"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 25 18:25:51 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 26 18:34:21 2017 -0700"
      },
      "message": "aaudio: add tests for device switch detection and refactor\n\nAdd detection for device switch during capture and playback tests:\n write_sine, write_sine_callback, input_monitor, input_monitor_callback\n\nRefactor tests and move simple player, simple recorder and utility\nmethods in separate header files and folder.\n\nBug: 33355262\nTest: run write_sine and input_monitor tests\nChange-Id: Iced66fa4344aecd8a2952e22a98e6e8454f38a5e\n"
    },
    {
      "commit": "34e1813c2f2d4fff0b0e4b9f18a45b8df9e43f1d",
      "tree": "77201682bc00dde86b0d2541a1e46631906a9660",
      "parents": [
        "4e822721a8729440316af6752641d3171e84537e",
        "1f3f262d335eb355ffc0c2aa2c23def69532c926"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu May 25 22:34:58 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu May 25 22:34:58 2017 +0000"
      },
      "message": "Merge \"aaudio: set performance mode of input stream based on actual result\" into oc-dev am: 26b28087c7\nam: 1f3f262d33\n\nChange-Id: I89cd635dd49e905806bbd1c530eca67bb65015dc\n"
    },
    {
      "commit": "c42d5f9ba80d827e135f21c7ff995bc752f6477c",
      "tree": "9f9931344eb6a84bf0ae627afd4cb49a61cca93f",
      "parents": [
        "433ecd85ef10284a71c4ea57279f53427fb9983d"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed May 24 16:39:20 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu May 25 10:13:58 2017 -0700"
      },
      "message": "aaudio: set performance mode of input stream based on actual result\n\nThis is to match similar code in AudioStreamTrack.\n\nBug: 38268707\nTest: input_monitor.cpp\n\nChange-Id: I0ffd230816b690c979a8a3fe8a93541511728e89\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "45bcde137a90de68a1b59dca1136bd61ef19c38e",
      "tree": "a1e06dbdd2652730472ce71a30a3239b676b889b",
      "parents": [
        "77abc3662c39588030dc73c3a6e4a73f31ff1182",
        "00f56e2c3642f6c84ac1d53f7c938c67463765bf"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu May 25 02:28:08 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu May 25 02:28:08 2017 +0000"
      },
      "message": "Merge \"aaudio: lower latency using MMAP capture\" into oc-dev am: 433ecd85ef\nam: 00f56e2c36\n\nChange-Id: I6692f4edb954cf504cf131aba9cf4bc6aee3f6bf\n"
    },
    {
      "commit": "87c9f646a94259d7c321c3b3d5947fa1778f5ac2",
      "tree": "89c57e19157557b2cb5d7aca7bc1371e530f734c",
      "parents": [
        "da6b9eafb5de2434717aea264ad61b025bc4fe7f"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed May 17 07:22:39 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed May 24 15:44:23 2017 -0700"
      },
      "message": "aaudio: lower latency using MMAP capture\n\nMMAP can be enabled by setting system properties.\n\nBug: 38267780\nTest: input_monitor.cpp\nChange-Id: I5e86fd1d9baef4fe59837ccbca7971acbb54d8b5\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "2a77adb88e918c4dd2df450d64c7b3cc83472808",
      "tree": "1e2b9e7f64fb9dd1cbabf0f3ff692810882865c1",
      "parents": [
        "896354129a411b99971fc6f9be93adb1e8431ae8",
        "9237952c58707f8262b90ececf37f082b2ee49e2"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu May 18 01:08:28 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu May 18 01:08:28 2017 +0000"
      },
      "message": "aaudio: update stream performance mode after open am: 30a707773a\nam: 9237952c58\n\nChange-Id: Icb8b39e2dde1b261777a34fc52bb8fb8b1376a0e\n"
    },
    {
      "commit": "30a707773a043e5eebd552d369c0882f886b67e5",
      "tree": "4cbe0f2905d6fe1d8706ef727c1ce0b7c5d28163",
      "parents": [
        "9b3f8ef290bd5ad392f5eba8a0f0a8ddd331b54f"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue May 16 11:20:36 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed May 17 22:39:09 2017 +0000"
      },
      "message": "aaudio: update stream performance mode after open\n\nFor example, if you cannot get a FAST track then\nthe performanceMode of the stream will be AAUDIO_PERFORMANCE_MODE_NONE\ninstead of AAUDIO_PERFORMANCE_MODE_LOW_LATENCY\n\nBug: 38268707\nTest: write_sine_callback.cpp, change modes and sample rates\nChange-Id: I33648bd48fd00d588424fa7e4deb2c57c5008423\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "051fe483e14fccbe62b4d00a435eafe577dabce1",
      "tree": "463fcd78074151f1c12b6f7cd66966551d773969",
      "parents": [
        "35d814aaaaa8031902169c7b3258bd8297375f0e",
        "d7d4b6adfbbf1e079ee6407d48d0d4689d412733"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed May 17 20:38:37 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed May 17 20:38:37 2017 +0000"
      },
      "message": "Merge \"aaudio: fix output bugs and improve input performance, add loopback test\" into oc-dev am: 54cf32220c\nam: d7d4b6adfb\n\nChange-Id: Ie0620c04f5045e8fb1a84dc301eaaf93f6a30daf\n"
    },
    {
      "commit": "4485d41bcded0eceec7ec97d50aa2b0e702397a0",
      "tree": "b68415b336ac43107c3f44f7854a29c3bf55ac42",
      "parents": [
        "feb0d87f693abd8fd2fa7ebfcdf7d91f0b95c131"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue May 09 15:55:02 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon May 15 12:52:43 2017 -0700"
      },
      "message": "aaudio: fix output bugs and improve input performance, add loopback test\n\nSupport AAUDIO_PERFORMANCE_MODE in AudioStreamRecord.cpp\nFix race condition when closing a stream, which this test revealed.\nFix setting of negative notificationFrames for non-FAST tracks.\n\nConvert test from old Oboe API to AAudio.\nAdd command line options to the test.\nAdd systrace calls.\n\nBug: 34093052\nBug: 38313432\nBug: 38178592\nTest: loopback.cpp\nChange-Id: Ib6d2995cdd3ed432937fde2f26c5394013f0d6e0\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "427e35632c3d3d1636d2acfd858a8dfdea13f4f5",
      "tree": "3467604227699f066cf6dd9badc5a480cafb4880",
      "parents": [
        "872e44e091f414c69a7ed09e716150af30402ff6",
        "a10dcce379fe8f650b75d1ae8e4ac76563043bd8"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu May 11 01:34:19 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu May 11 01:34:19 2017 +0000"
      },
      "message": "Merge \"ligbaaudio: Fix pause, flush and getXRunCount for input streams.\" into oc-dev am: 804b96ffae\nam: a10dcce379\n\nChange-Id: I5443e40f705bda30e19c538c126345aaaaf20a57\n"
    },
    {
      "commit": "068c10f03d16a7f73abf138cc751cf3bde7518df",
      "tree": "bfe43127617baacb2a2be9409317a3c7a313c2fa",
      "parents": [
        "331207d51a620bf018081950da4b20133014657f"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon May 08 16:36:41 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed May 10 12:48:12 2017 -0700"
      },
      "message": "ligbaaudio: Fix pause, flush and getXRunCount for input streams.\n\nBug: 37941092\nBug: 37943598\nTest: input_monitor_callback.cpp\n\nChange-Id: Ifc2ea526e4722063e03956bd5f0747adc49ba6ee\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "121c79d2f8a980d1e55db5af8b8c48281072ca8b",
      "tree": "0dfbc8e7b4773b89f302af2d2baea4728ccea727",
      "parents": [
        "ab37fbfcdc197429d59f6926ba970b3e68bbbadf",
        "56fa0f3e36481d26ee201fd92d7e770e747efbf5"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri May 05 00:28:35 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri May 05 00:28:35 2017 +0000"
      },
      "message": "Merge \"aaudio: add setPerformanceMode()\" into oc-dev am: 8e301b17a2\nam: 56fa0f3e36\n\nChange-Id: I8389bec57cf637d85ebe0f4ca8b08b19c35944bc\n"
    },
    {
      "commit": "e2fbb59e729f6c3cade3b531f6f6411417ccbf40",
      "tree": "519ff6ad94d7465c7672e6ac3dd73b4d892dbbfe",
      "parents": [
        "441f2ccb103fdb6fe6409eac870ea30ee3ccfb33"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon May 01 15:05:52 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu May 04 11:45:08 2017 -0700"
      },
      "message": "aaudio: add setPerformanceMode()\n\nThe performance mode affects the latency and the implementation of the\ndata path.\n\nMMAP is still disabled for now.\n\nBug: 37867485\nTest: write_sine.cpp\nChange-Id: I9bf5d5d13d1047d5ace69bd5ebdce7b6d65c14e7\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "725cb1e504b39ace9961a5097429af2eafbb71ba",
      "tree": "af9a54a74f32bbf4be061d77086d0e4785f5ad28",
      "parents": [
        "b662ea6c232e18e16c2a870811de93f32f44d3ec",
        "af68d9aa9ae3e0c6c5df490ae63a5655dd1e2974"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon May 01 20:29:43 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon May 01 20:29:43 2017 +0000"
      },
      "message": "Merge \"aaudio: apply volume in the MMAP data path\" into oc-dev am: 0e69c9e251\nam: af68d9aa9a\n\nChange-Id: Iadca75ce973edd758db2b649dcaef5ed47dff30d\n"
    },
    {
      "commit": "e572f469de5dca1078a79d3d80e5b04f96ae7505",
      "tree": "312a86063172d4bedef4dd1f68447797debb3d08",
      "parents": [
        "6f85f6533a25f7eeaaacba53281572c00e63759a"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Apr 20 13:03:19 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon May 01 11:22:03 2017 -0700"
      },
      "message": "aaudio: apply volume in the MMAP data path\n\nThe volume scaling is in AudioStreamInternal and not the mixer\nbecause we will need volume scaling in EXCLUSIVE mode too.\n\nBug: 37518243\nTest: play a tone using NativeOboe app then press volume keys\nChange-Id: Ibbac9770ea4493f8ade64681be86f109a92803cd\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "7e0a0e26f2e346c3f2ae89846517e879ddfdff11",
      "tree": "4f76f22c35496716c2f8e9112b01fc0891dddc53",
      "parents": [
        "8be3dcd82c23e519667cd6b362d4864a1c44cb8e",
        "93368f9602fa72be364f5286b4148b0bd8b964e5"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Apr 25 20:57:32 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Apr 25 20:57:32 2017 +0000"
      },
      "message": "Merge \"aaudio: change samplesPerFrame() to channelCount()\" into oc-dev am: 89b67d6054\nam: 93368f9602\n\nChange-Id: I7ebd1c3a347715dc4aaef8a2a382c9171d0cc08b\n"
    },
    {
      "commit": "20523edbf2f597c53b90e76694331c807e559515",
      "tree": "545c9381d3734e389bf16cd210341411eb08b55a",
      "parents": [
        "79a89ef4eb06a2d29fc3d083112de398111a9ddb"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Apr 24 17:04:01 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Apr 25 10:45:43 2017 -0700"
      },
      "message": "aaudio: change samplesPerFrame() to channelCount()\n\nBoth functions provided for now.\nWill remove deprecated function in later CL.\n\nBug: 37646784\nTest: write_sine.cpp and write_sine_callback.cpp\nChange-Id: I1241aafa206112c526d6ca250ba5209489e1a46e\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "4e58d264be9200be60f176c769ed0498cdd9bfe8",
      "tree": "778aad777354634951ca273b8a43ea3f1ba593a0",
      "parents": [
        "95302174c5d348192313dfa434d077c6d9df8b47",
        "8c382060fe5633aa96a0357c4fce99af435ea918"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Apr 21 15:46:15 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Apr 21 15:46:15 2017 +0000"
      },
      "message": "Merge \"aaudio: fix SHARED MMAP mode in server plus other bugs\" into oc-dev am: 4aa3bd0474\nam: 8c382060fe\n\nChange-Id: Iffbb45d136c74712c294da7013ce7f30fd11e816\n"
    },
    {
      "commit": "71f35bb687476694882a617ba4a810a0bb56fe23",
      "tree": "93e01bfc7cb0b942e0ee16892c26d5a184b3e541",
      "parents": [
        "24059088a46160f731903cc66404184a531d0478"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Apr 13 16:05:07 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Apr 21 05:11:26 2017 +0000"
      },
      "message": "aaudio: fix SHARED MMAP mode in server plus other bugs\n\nFixed some buffer miscalculations, and some NPEs in the close() code.\nAdded debugging and some general cleanup.\nFixed data conversion.\nFixed start/pause/flush in server.\nAdded reference counting in server for endpoints.\nPrograms can now be ran more than once.\nGeneral code cleanup.\nReconnect with service if server dies.\nMove stop() logic into server for better synchronization.\nAdd sleep to prevent race condition when closing an MMAP stream.\n\nBug: 33398120\nTest: two write_sine_callback.cpp can be run simultaneously\nChange-Id: Ibb006215a498868c222228d675ff961d7e0bf514\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "8e0b6f229fd044aca67f29bf913ff49b6cb5c204",
      "tree": "f3d2ca8eda93ccbc99c127c3aa62fb3d5a65561e",
      "parents": [
        "52e51e9e769a6016c990a7611c526033a72fbbaf",
        "44d349328d8cac02021418ec152be221b6bc7a66"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Apr 20 16:01:24 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Apr 20 16:01:24 2017 +0000"
      },
      "message": "Merge \"aaudio: remove old createThread API\" into oc-dev am: 9c90fb9a6a\nam: 44d349328d\n\nChange-Id: Icdb4cf9447d79b954178ed36a6d4f32e325e164c\n"
    },
    {
      "commit": "5fbc2ddb4e340d7af02d146ff2e7c3c4da28d535",
      "tree": "894adf60568c2a41337c4b21547cc8346796e6a3",
      "parents": [
        "e9e78196f9e1b4f7cb787b089710e0e8c6c32432"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Apr 18 22:46:21 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Apr 18 22:57:34 2017 -0700"
      },
      "message": "aaudio: remove old createThread API\n\nThis was replaced by the callback API.\n\nBug: 36489240\nTest: the code was removed and cannot be tested\nChange-Id: Ieb5cee80d1123221d02146c8c9342c4e0d649575\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "c82c1b170edf9583ba2e4fdbe4d60bf3362b12bc",
      "tree": "418587bce75b0f59eaa62c846a2a3eda527eafd6",
      "parents": [
        "fbd7e12c373435c77aa5b20bdf321a0589521746",
        "652b14cd36aeb820c3e007f81ee21fc4f3b7942f"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Apr 14 01:11:46 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Apr 14 01:11:46 2017 +0000"
      },
      "message": "aaudio: merge contents of  AAudioDefinitions.h into AAudio.h am: a4eb0d86a2\nam: 652b14cd36\n\nChange-Id: I06972faa7ca62a0384f5ac724721712a9d2b3db6\n"
    },
    {
      "commit": "a4eb0d86a29be2763be5fac51727858d5095794b",
      "tree": "f725cf700cac0e52e0376b6a9a867f4c37fe3bdc",
      "parents": [
        "9e7dd63dfff0cc967f025ea9e27a299aaa99fd69"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Apr 12 15:44:06 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Apr 13 13:50:40 2017 +0000"
      },
      "message": "aaudio: merge contents of  AAudioDefinitions.h into AAudio.h\n\nAs requested by native API council.\n\nBug: 30210002\nBug: 33398120\nTest: CTS test_aaudio\nChange-Id: I5ea7c53d09469221263d84cf6f82082e67c2523b\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "c0c70e3c7dd10bc2c0caffcab1f3f5fb406b35fb",
      "tree": "2544186372c9778460821e410c09a0edba8a17bf",
      "parents": [
        "d1b4d0a6a65476236f972cfc181a1db2b96d93ef"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Feb 09 13:18:38 2017 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Apr 12 18:26:12 2017 +0000"
      },
      "message": "AAudioService: integrated with audioserver\n\nCall the MmapStreamInterface from AudioFlinger instead of the FakeHAL.\nFix sending timestamps from the thread.\nAdd shared mode in service.\n\nBug: 35260844\nBug: 33398120\nTest: CTS test_aaudio.cpp\nChange-Id: I44c7e4ecae4ce205611b6b73a72e0ae8a5b243e5\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n(cherry picked from commit 7f6b40d78b1976c78d1300e8a51fda36eeb50c5d)\n"
    },
    {
      "commit": "596100cf2931ddcd9f7040bc4e7ad33f2715ff5e",
      "tree": "8dcb184cf0c4477bc987e0d2f812b8d1d69a5150",
      "parents": [
        "6971eedfdd23b787a53895707d1296ab350de131"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Tue Apr 11 11:34:56 2017 -0700"
      },
      "committer": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Tue Apr 11 11:34:56 2017 -0700"
      },
      "message": "Fix makefile warnings (typo).\n\nTest: it builds.\nBug: b/37159108\nChange-Id: Ie1ab43590ac4d08cd9bc5e3a73981404791bd7d6\n"
    },
    {
      "commit": "e4d7bb418df0fdc4c708c334ba3601f5ed8d89b3",
      "tree": "225166e1ada5fdd2fc5e399feeabb376a05d9f86",
      "parents": [
        "0ba7cd85016caac178ee8e52f067ca9c42511dc3"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Mar 28 11:32:39 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Apr 10 21:56:05 2017 +0000"
      },
      "message": "libaaudio: implement callback\n\nUse AudioTrack and AudioRecord TRANSFER_CALLBACK.\nAdd FixedBlockAdapter to provide fixed size callbacks.\n\nBug: 36489240\nTest: CTS test_aaudio.cpp\nChange-Id: Id2034dd640f878dd27fee6b43ad80a01c627dfd6\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n(cherry picked from commit c8f372c22a0e4c667a3ad3c1ec569032574c1d64)\n"
    },
    {
      "commit": "7f6b40d78b1976c78d1300e8a51fda36eeb50c5d",
      "tree": "78d0268547b2ca08c89e11a3fcc4a6acafed9a54",
      "parents": [
        "a2e1b6dfd047c148a639cbaff7e3f857d7b3fddc"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Feb 09 13:18:38 2017 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Apr 07 17:26:11 2017 -0700"
      },
      "message": "AAudioService: integrated with audioserver\n\nCall the MmapStreamInterface from AudioFlinger instead of the FakeHAL.\nFix sending timestamps from the thread.\nAdd shared mode in service.\n\nBug: 35260844\nTest: CTS test_aaudio.cpp\nChange-Id: I44c7e4ecae4ce205611b6b73a72e0ae8a5b243e5\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "c8f372c22a0e4c667a3ad3c1ec569032574c1d64",
      "tree": "e76b186fa9c2c432f3e3b262f220b5ee2100ca50",
      "parents": [
        "c089021a2047ce243cdcc143f7c863937e2d0b13"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Mar 28 11:32:39 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Apr 07 09:23:09 2017 -0700"
      },
      "message": "libaaudio: implement callback\n\nUse AudioTrack and AudioRecord TRANSFER_CALLBACK.\nAdd FixedBlockAdapter to provide fixed size callbacks.\n\nBug: 36489240\nTest: CTS test_aaudio.cpp\nChange-Id: Id2034dd640f878dd27fee6b43ad80a01c627dfd6\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "35e80f34a9649752fceafa53e2094cd8eda50a0a",
      "tree": "d2765a9a6a8a2cadc106b9aab1cb932c66dd5200",
      "parents": [
        "be3d40cadb8490291512a6d7882791dda9104316"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Mar 28 10:25:21 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Mar 30 16:33:49 2017 -0700"
      },
      "message": "libaaudio: implement getTimestamp for legacy path\n\nFix: 36659408\nTest: CTS test_aaudio.cpp\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n\nChange-Id: Ic73e69a3747b2daa1df5757650f897a58511e571\n"
    },
    {
      "commit": "2b3db3b0458e5a9619aa7bfbbc1964dfbcfdc097",
      "tree": "a7dc05bbf3e61002ae9cd642ebf00761a829127f",
      "parents": [
        "eecac2cab4fda565018237d52be4a9ca1fbc4434"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Mar 28 10:25:21 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Mar 28 12:01:23 2017 -0700"
      },
      "message": "libaaudio: implement getTimestamp for legacy path\n\nFix: 36659408\nTest: CTS test_aaudio.cpp\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n\nChange-Id: Ic73e69a3747b2daa1df5757650f897a58511e571\n"
    },
    {
      "commit": "e2155ef0ec6742db7a3128c4ef4fb96e02828d1b",
      "tree": "947761f60a1a8f135e8a0e01b23488a20292e221",
      "parents": [
        "a45c300fcad38e23107b3ad8dd1d3935f5127f9c"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Feb 24 13:50:29 2017 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Feb 24 15:12:34 2017 -0800"
      },
      "message": "libaaudio: API changes requested by council\n\nChange AAudioStream to not be a pointer. Now it is just a struct.\nChange AAudioStreamBuilder to not be a pointer. Now it is just a struct.\nChange aaudio_audio_thread_proc_t to be a pointer to a proc.\nFix prototype of AAudioStream_getDeviceId().\n\nBug: 30210002\nTest: CTS test_aaudio.cpp\nChange-Id: Ia5a277a53ac64e93d75de4f196aa167998522c03\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "3316d5e6d375a4f09c681205e9094d30a0bfc4a2",
      "tree": "53d62d5e3493f6a51c9af8557ca4d4f0f5498e8c",
      "parents": [
        "3db4f4f85cfe90013952590b1aaea97dc62a243d"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Feb 15 11:23:01 2017 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Feb 16 16:27:55 2017 -0800"
      },
      "message": "libaaudio: changes for API council\n\nRemoved typedefs like aaudio_sample_rate_t\nRemoved use of handles. Just pass back opaque pointers.\nSimplified gettersi in Stream.\nRemoved getters from Builder.\nUpdate libaaudio.map.txt\n\nTest: CTS test_aaudio.cpp\nChange-Id: I63eaec3e5a8ecc516cfc1f950f4b4f54df1bd518\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "c35f3ae6f361a346b6d823601c69dd704afe644a",
      "tree": "fb544ed171d73bd1ad492b061108e64db818ccdb",
      "parents": [
        "2d6140b8dce137f89029b12468e25d5911f23420"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Feb 14 11:23:13 2017 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Feb 14 11:23:13 2017 -0800"
      },
      "message": "libaaudio: remove LEGACY sharing mode\n\nIt was a poor API. Choosing the AudioTrack path is not a sharing mode.\nInstead we decide internally, which path to choose based on sharing\nmode and availability.\n\nTest: CTS nativemedia/aaudio/test_aaudio.cpp\nChange-Id: I8b6246b95cea807dcd0fc82e08a16f68f17b47f3\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "f53e613b3dedab3ecada2c93d8846233c442d129",
      "tree": "b4589d9099325e9d57d729b5f60cf4c4e8260e50",
      "parents": [
        "52a93bbb3b57d1a730aedaee0b9ec22e4c71551d"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Feb 09 13:30:22 2017 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Feb 10 19:14:40 2017 +0000"
      },
      "message": "libaaudio: change name from liboboe\n\nBug: 34749573\nTest: CTS test_aaudio.cpp\nChange-Id: I7e2b621488047f0798ca6f2fc00d2b5fed2bf015\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    }
  ]
}
