)]}'
{
  "log": [
    {
      "commit": "fd34a9310659aa53e9e10d6826651577a75f6447",
      "tree": "dc284d0eb17cbd8a023a2aec52d854c809b02c38",
      "parents": [
        "679b6f6eaaeba35fcf96cb04a784308211d4b319"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Jul 19 07:03:52 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Jul 20 16:10:41 2017 -0700"
      },
      "message": "aaudio: reduce glitching by improving sleep timing\n\nALways sleep a minimum time to avoid busy wait in real-time thread.\nAccount for wakeup jitter in threads on the other side of a FIFO.\nAvoid race condition that caused a longer sleep than necessary.\nFix calculation of mFreeRunning for capture mode.\n\nAlso added systrace logging, which was used to debug this.\n\nBug: 63814792\nTest: Run GStomper on Walleye with MMAP on, see bug\nChange-Id: I7b20098580ff454365425bd21e43c17ade532a0a\n"
    },
    {
      "commit": "c1fe2634dc228640119849692cd1defb88bc2209",
      "tree": "453a26bb059c59f8216f0883768706ea43620c14",
      "parents": [
        "29204646b945adf58390b7d06f2cb223d6b2c4c0",
        "940083c3049e269f6c150d5477eccb6bad32b129"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jul 18 22:15:39 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 18 22:15:39 2017 +0000"
      },
      "message": "Merge \"aaudio: fix intermittent hang and position error\" into oc-dr1-dev"
    },
    {
      "commit": "4dbbda2d8c84eabc0cd7c7ee032c2280258f4ffb",
      "tree": "25332d68058c967fcd1686bd9032459b7ab4a8c4",
      "parents": [
        "d8365c54d049aade9e02ccae722f311f846cad9a",
        "c7abac4329e15cda4bbbd25f8fc4a93b70d70d0a"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Jul 18 13:47:40 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 18 13:47:40 2017 +0000"
      },
      "message": "Merge \"audio:  reduce logspam from MMAP mode\" into oc-dr1-dev"
    },
    {
      "commit": "940083c3049e269f6c150d5477eccb6bad32b129",
      "tree": "ae4c20530003d7c9086d343a3b3e7d1d5b17562e",
      "parents": [
        "af842eb79ed9943b7a4495136197e093fc7d8ba7"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Jul 17 17:00:02 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Jul 17 17:00:02 2017 -0700"
      },
      "message": "aaudio: fix intermittent hang and position error\n\nFix hang caused by recursive mutex.\nFix disconnect caused by getPosition() failing, which was\njust because the stream wasn\u0027t ready yet.\n\nBug: 63775537\nBug: 63709749\nTest: run \"aaudio_loopback -pl -Pl -c2 -n6 -te -m\" many times\nChange-Id: Ic1d54360b55cfc8ecc1809584c262bc0976c58bb\n"
    },
    {
      "commit": "30bf42ca7242f5f7849cbe7ce61fc994b88c5b56",
      "tree": "f1212996c4a23eee3d8671813b1a57d1613c4c64",
      "parents": [
        "32ab0585ffe4c84fa9b873ab2a51ed977d70b02f",
        "901f65deb49786f4dffd39ac965c0bb681392c0b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jul 17 19:04:45 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 17 19:04:45 2017 +0000"
      },
      "message": "Merge \"Add parameters validation on AAudio MMap server\" into oc-dr1-dev"
    },
    {
      "commit": "c7abac4329e15cda4bbbd25f8fc4a93b70d70d0a",
      "tree": "f2402076af44c039478a9bfec1017903a702aa40",
      "parents": [
        "af842eb79ed9943b7a4495136197e093fc7d8ba7"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Jul 17 11:13:37 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Jul 17 11:13:37 2017 -0700"
      },
      "message": "audio:  reduce logspam from MMAP mode\n\nBug: 63760826\nTest: run CTS nativemedia/aaudio and notice less logging\nChange-Id: I04564963f85577a53f40f1bad064f5e79723ac76\n"
    },
    {
      "commit": "901f65deb49786f4dffd39ac965c0bb681392c0b",
      "tree": "c80ff068d9aae5d4292387883b24b6be6b2f8ad7",
      "parents": [
        "6ac42ebf890ce99b401e1962db8ceecfb38b7a65"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Jul 12 17:56:35 2017 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Jul 14 13:42:46 2017 -0700"
      },
      "message": "Add parameters validation on AAudio MMap server\n\nBug: 63384314\nTest: adb shell /system/bin/write_sine -m -pl -n4 \\\n\u0026\u0026 adb shell /system/bin/write_sine -pl -n4 \\\n\u0026\u0026 adb shell /system/bin/write_sine_callback -m -pl -n4 \\\n\u0026\u0026 adb shell /system/bin/write_sine_callback -pl -n4 \\\n\u0026\u0026 adb shell /system/bin/CtsNativeMediaAAudioTestCases32\n\nChange-Id: I462f956e8fc25eb583699af6389e0f299243eafb\n"
    },
    {
      "commit": "ac31fb897846c6e8c72ade7fa5e4ab3c00bf77c9",
      "tree": "3d6c3fd673e97e24502a2fb57cbb4e0d88ae3b46",
      "parents": [
        "437f48e64adb5d4180b621c6c1f5f2a200b81f82",
        "4ea2d60c6baa3f3a6751165cbb45e66ff6968aa0"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jul 13 18:34:38 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 13 18:34:38 2017 +0000"
      },
      "message": "Merge \"aaudio loopback: improve latency tester\" into oc-dr1-dev"
    },
    {
      "commit": "cb4dae216758d9e9a28050f65097f1ce905c03e9",
      "tree": "4c3c49679384d70006675e9e06c7e8e8117e206c",
      "parents": [
        "0acb3209107802e2ab116f8374aab886579729bb"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Jul 01 19:39:32 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jul 12 12:17:33 2017 -0700"
      },
      "message": "aaudio: indicate client UID and PID to audio flinger\n\nImplement correct indication of client UID and PID to audio flinger\nfor AAudio MMAP streams in both exclusive mode and shared mode.\n- Add start/stop client methods on MMAP streams used only when the MMAP\nstream is in AAudio service and carries a mix of shared streams.\n- Add \"In Service\u0027\" indication from \"client\" side to AAudioServiceStreamMMAP\nso that the behavior can be adapted accordingly.\n- Modify logic on audio flinger side with regard to mmap tracks and\naudio HAL stream activity:\n  - use same audio session for all clients on a same stream to match\n  audio policy logic to share same direct output stream for clients on same\n  session. This is also more consistent with current volume and effect\n  handling as all MMAP  clients sharing the same output stream have the\n  same volume and use case.\n  - start/stop the HAL when the stream is started/stopped with the initial client\n  handle (returned when the stream is opened) but do not create a track.\n  AAudioService implementation will always send an additional start command before\n  first client starts and a stop command after last client stops,\n  in both shared and exclusive mode.\n  - start/stop a track only if the start/stop stream command is received\n  with a handle different from the initial handle.\n- Allow more than one active client from the same UID on a MMAP input in audio policy.\n\nBug: 62950008\nTest: verify playback and capture in mmap mode\nMerged-In: I86151bbb637ff172d2fd5f813056eab13a7bcd3c\nChange-Id: I86151bbb637ff172d2fd5f813056eab13a7bcd3c\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": "bea2c338a30f71003c45f2f713d887f980d31f3d",
      "tree": "2320bca41b78be3eb248279111c5345e4d459f20",
      "parents": [
        "c06dd405a61b24116ac08415709e5575b2583492",
        "e34b0cfc0d7cf5118df6922f37452266ef4078b5"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jul 07 21:24:42 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 07 21:24:42 2017 +0000"
      },
      "message": "Merge \"aaudio test: test both input and output stream limits\" into oc-dr1-dev"
    },
    {
      "commit": "b336e89d57d51b80b8bf5f0a0caf7667209ffb1d",
      "tree": "58772fbc45cad4cea3c51e080c18e95981ec8c90",
      "parents": [
        "27e9c662948b1edc5219f2faba1a72fb00fd791a"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Jul 05 15:35:43 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Jul 06 01:38:49 2017 +0000"
      },
      "message": "aaudio: MMAP input not implement pause flush\n\nThey should return AAUDIO_ERROR_UNIMPLEMENTED\njust like the legacy streams.\n\nBug: 63351465\nTest: CTS test_aaudio.cpp testPauseAndFlushNotSupported\nChange-Id: I42c8d45517bf0d808e648287579b9fb0c0cb3ae0\n"
    },
    {
      "commit": "27e9c662948b1edc5219f2faba1a72fb00fd791a",
      "tree": "33ce20becd82198f8616d48b21a48bfad42a54a2",
      "parents": [
        "a5247769a8afdf03f440fcbe7c71110d46301e6b",
        "ede7c963ceb253f213754a3512fad58eec5c4aea"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jul 05 23:04:33 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 05 23:04:33 2017 +0000"
      },
      "message": "Merge \"aaudio:  only use MMAP for low latency perf mode\" into oc-dr1-dev"
    },
    {
      "commit": "ede7c963ceb253f213754a3512fad58eec5c4aea",
      "tree": "8b1d7a8aad6b5360dc0a51dc23a8465dc656a9d3",
      "parents": [
        "d51329eca85112973867a6bf0d210e82d6d1c411"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Jul 05 13:54:32 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Jul 05 13:54:32 2017 -0700"
      },
      "message": "aaudio:  only use MMAP for low latency perf mode\n\nThis is a quick workaround that just disables MMAP mode unless\nperformance mode is LOW_LATENCY.\n\nBug: 63176221\nTest: use write_sine and change performance mode\nChange-Id: Ic17ad45366d51d86fb4801c84ada4f6f82b5ff98\n"
    },
    {
      "commit": "a5247769a8afdf03f440fcbe7c71110d46301e6b",
      "tree": "cb73026e84bd354b6eb2f49c1b132f856f6a199d",
      "parents": [
        "d51329eca85112973867a6bf0d210e82d6d1c411"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Jul 05 12:57:58 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Jul 05 12:57:58 2017 -0700"
      },
      "message": "aaudio: return channelCount in legacy stream\n\nBug: 63336407\nTest: Use input_monitor.cpp and set requested channel count to zero\nChange-Id: Ibe7688bb94e0142ee0779c74ddec62c9552efb79\n"
    },
    {
      "commit": "e34b0cfc0d7cf5118df6922f37452266ef4078b5",
      "tree": "a58523a61699b1d49c4dc51e0c0aae4534f0e69f",
      "parents": [
        "8dd045aaf7079fce7c3f0d8457d4e4c7055bac03"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Jul 04 17:24:39 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Jul 04 17:24:39 2017 -0700"
      },
      "message": "aaudio test: test both input and output stream limits\n\nBug: 62951298\nTest: this is a test\nChange-Id: I03521e2a6147733c7b89f2371cc3f46ca5001d77\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": "4501b3510f9b2af2ff63a0471de24e3feea1d0a8",
      "tree": "486de512a65eaad91323fd521823b7230088643d",
      "parents": [
        "8dd045aaf7079fce7c3f0d8457d4e4c7055bac03"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Jun 29 18:12:36 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Jul 01 14:28:57 2017 -0700"
      },
      "message": "aaudio: improved dumpsys\n\nAdd more information about various streams and endpoints.\n\nBug: 38396780\nTest: adb shell dumpsys media.aaudio\nChange-Id: I5cc116574bfc3aa93703c182d933dbdfcbefad7a\n"
    },
    {
      "commit": "9169294539ad46e08e2fe76a93c37ed965c13058",
      "tree": "7f99790dd7625f12d19a1365666e4c541451f0ae",
      "parents": [
        "6ec18f8ce3d797fdd5722926ac17c1f4eda7904d"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Jun 30 12:23:05 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Sat Jul 01 08:01:51 2017 -0700"
      },
      "message": "aaudio: limit number of streams per process\n\nTesting the new max streams restriction revealed the bug\ninvolving the second shared stream.\n\nBug: 62951298\nBug: 63171495\nTest: test_n_streams.cpp can open MAX_STREAMS_PER_PROCESS MMAP streams\nChange-Id: Ibea7d9c4716326a37c669954b52f397ed2968caa\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": "2ac035fdc577a843d07f385dbe3c4e2229d886dc",
      "tree": "5715d5f033318a3cbd5a89b73ee32334bdc6ea9a",
      "parents": [
        "f3ffd1ced8c4709388f8ed5c9a49284f36aa5b97"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Jun 23 14:51:14 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Jun 29 18:26:52 2017 +0000"
      },
      "message": "aaudio: prevent apps from affecting a stream they do not own\n\nBug: 62951648\nTest: need test that hacks a stream handle from another user ID\nChange-Id: I342f2a4cf9350c949f346b3c867d7f9e035c76b4\n"
    },
    {
      "commit": "f3ffd1ced8c4709388f8ed5c9a49284f36aa5b97",
      "tree": "64d31203a365bdd7525a31a151084ca7cf2e643b",
      "parents": [
        "81ccb8fec9eab4a05e94fc4a4f6dacc8348804e1",
        "47c5e530b01b620a4f65efa121a938789a6823b4"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jun 29 05:04:07 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 29 05:04:07 2017 +0000"
      },
      "message": "Merge \"AAudioService: add dumpsys capability\" into oc-dr1-dev"
    },
    {
      "commit": "47c5e530b01b620a4f65efa121a938789a6823b4",
      "tree": "b3285b6642ee395668ca3b0525321991c971d405",
      "parents": [
        "a88051816bc629eb20de8f4cecf2d4a4c1cbfc4a"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jun 26 18:28:00 2017 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jun 28 15:50:37 2017 -0700"
      },
      "message": "AAudioService: add dumpsys capability\n\nTest: adb shell dumpsys media.aaudio\nBug: 38396780\nChange-Id: I8b5c421bdd1b3228d8140816a68740709aa9757b\n"
    },
    {
      "commit": "efa8da08f3c873b07ec016299ddada7d844ae086",
      "tree": "ae4fd115c1b302d10ac93b5d51a3d347343dbead",
      "parents": [
        "22fd463e1464552624597a338d2449dd4d670751",
        "a88051816bc629eb20de8f4cecf2d4a4c1cbfc4a"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jun 28 04:20:21 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 28 04:20:23 2017 +0000"
      },
      "message": "Merge \"Fix IAAudioService interface\" into oc-dr1-dev"
    },
    {
      "commit": "a88051816bc629eb20de8f4cecf2d4a4c1cbfc4a",
      "tree": "8204cb3cdfbc4f4c0b76a78d41c817f1ec1d149d",
      "parents": [
        "d4ef5f1eafa099eb40e68a1dfc7b701e4a8d0b1a"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jun 27 16:17:40 2017 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jun 27 16:17:40 2017 -0700"
      },
      "message": "Fix IAAudioService interface\n\nDo not call data.checkInterface(this) unless needed,\nand properly handle invalid interface.\n\nThis prevents stripping the file descriptor from the dump()\nbinder call.\n\nTest: adb shell dumpsys media.aaudio\nBug: 38396780\nChange-Id: I14c847e098145f49d4d5732787d3cc435dd05226\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": "ec89b2e2f8c84a7d3936db1a888034f4a4b0df16",
      "tree": "37bfd6b5e440bb91bb1b172ca0ea349c94056a61",
      "parents": [
        "0d3c68179e395757ab053cf6c480db7841c4d9d5"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Jun 20 15:05:06 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Sat Jun 24 09:04:47 2017 -0700"
      },
      "message": "aaudio: fix CTS for MMAP mode\n\nImprove calculation of buffer capacity based on requested minimum.\nAdjust timing of start() to reduce underflows.\nTrack ServiceEndpoints based on requested deviceId.\nFix getFramesRead() and flush() behavior.\nFix timeouts due to ClockModel lateness bug.\nMisc cleanup.\n\nBug: 37755299\nTest: test_aaudio.cpp\nChange-Id: I637c16e87fbe14b6f28c60aeea0b9dfed965ecd0\n"
    },
    {
      "commit": "06797a2d83fcb09dace58931e0fab2453a9cffcb",
      "tree": "c5bbf62ffdccaa0500ff8add2b5dd5c0b4b0839c",
      "parents": [
        "00e2cbcf74b3abeecf8f89c146d10bda97e7a446",
        "a2f296e06bee54cc83130a17f136cab1006f55d5"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Jun 24 01:23:45 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Jun 24 01:23:47 2017 +0000"
      },
      "message": "Merge \"aaudio: implement IPlayer for MMAP playback streams\" into oc-dr1-dev"
    },
    {
      "commit": "00e2cbcf74b3abeecf8f89c146d10bda97e7a446",
      "tree": "3c3ebb2b4be511e7b05c0a3f62992b12a617294f",
      "parents": [
        "db7b0a5efffc05f0ef92843bc4c6e3532cea836a",
        "0f6bf435f1cf5349a25ac276114df76a00d181e9"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Jun 24 01:04:23 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Jun 24 01:04:25 2017 +0000"
      },
      "message": "Merge \"libaaudio: use shared library for tests and examples\" into oc-dr1-dev"
    },
    {
      "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": "3401bcdd98c5a43a14701a0e7299a2318c6863c9",
      "tree": "a707d3f68f503db07ab63f69f4aa6361c759d6dc",
      "parents": [
        "a2f10fb5a0731dc54c06bd55f54ade38800069cd"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri May 26 16:05:02 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jun 22 20:58:42 2017 +0000"
      },
      "message": "aaudio: add validation to improve security\n\nCheck for obviously bad values to prevent common exploits.\n\nBug: 38205290\nTest: CTS test_aaudio.cpp\nChange-Id: Ic650dbfbcbb9b87a89aae080ee72910ab2c9409b\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "a2f296e06bee54cc83130a17f136cab1006f55d5",
      "tree": "d3545a9d1aafb8485b2addd671f51079308e5d2a",
      "parents": [
        "ffd80b92df8521dd28ab5fd08b1098a58cb280e8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jun 21 18:51:47 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jun 22 10:22:09 2017 -0700"
      },
      "message": "aaudio: implement IPlayer for MMAP playback streams\n\nMake AudioStreamInternal derive from PlayerBase to\nprovide playback and volume control via IPlayer interface.\n\nBug: 62027849\nTest: verify aaudio playback in MMAP mode and registration of aaudio\nplayers in AudioService when active\n\nChange-Id: Ia0878d46637c0a954d8a6259868a2d3bccf19119\n"
    },
    {
      "commit": "03eb3ddd3c55aa480eb603cc7a0b40297ca6d130",
      "tree": "d5e034785cc83174a48f3bfee3d8cd2e6330aa75",
      "parents": [
        "7783112ceb4c7b0af2158236eb48723184cdc39e",
        "76f3c913d1818652517955c74bec100f2cb915b9"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Jun 06 17:28:21 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jun 06 17:28:21 2017 +0000"
      },
      "message": "Merge \"aaudio: reserve some error codes\" into oc-dev am: 94e16458f4\nam: 76f3c913d1\n\nChange-Id: Id3256f8dcf3ae32cd95016caeadca1208c13aee0\n"
    },
    {
      "commit": "94e16458f4665d3c167d0e2c905a3f4ec9e7a3e7",
      "tree": "7066fa5c42738f1432a50cd55dc5939d1df64b3f",
      "parents": [
        "8631fd7b270e99ebee6ba056f4edd38e6bd4f93f",
        "17fff38dd9d467bc5fb6cd5b9a6b183951c7750d"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jun 06 17:04:40 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 06 17:04:45 2017 +0000"
      },
      "message": "Merge \"aaudio: reserve some error codes\" into oc-dev"
    },
    {
      "commit": "17fff38dd9d467bc5fb6cd5b9a6b183951c7750d",
      "tree": "906d61c442d2dd75f28e62ac8d746e1f45a31bed",
      "parents": [
        "433ecd85ef10284a71c4ea57279f53427fb9983d"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue May 16 14:06:45 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jun 05 19:00:40 2017 +0000"
      },
      "message": "aaudio: reserve some error codes\n\nThese codes were unused or redundant.\n\nBug: 37755198\nTest: CTS test_aaudio_misc.cpp\nChange-Id: I46797b9fba9406b9c98d4b9aa49f0cacbec332b9\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\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": "e11c6f1082b3ff9ea63055c870bdc76fb57bd9d8",
      "tree": "a85073e4d19668a290af9e32aabbf471694b0689",
      "parents": [
        "9d4b193dbe55b3e46173296453ec98906a2b2d37",
        "d09ea54b7b347792d758ed49529fe4b3fe692b33"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jun 01 19:17:20 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jun 01 19:17:20 2017 +0000"
      },
      "message": "Merge \"Fix copy/paste errors in use of AAUDIO_FORMAT_UNSPECIFIED\" into oc-dev am: 160078a070\nam: d09ea54b7b\n\nChange-Id: Iaf533f30fb787fbc260eb8239f9522b709866d20\n"
    },
    {
      "commit": "160078a07033fb015ecaa46e7249d7702be2a169",
      "tree": "7ec7b225cdad7c787f779d2cc9e2655675e2e9bf",
      "parents": [
        "be9c9d5a8168a4818c0296ac30dbd6120aac0727",
        "37a466ae847cf08fc346e629fe4cf964ad67063f"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jun 01 18:59:11 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 01 18:59:13 2017 +0000"
      },
      "message": "Merge \"Fix copy/paste errors in use of AAUDIO_FORMAT_UNSPECIFIED\" into oc-dev"
    },
    {
      "commit": "9d4b193dbe55b3e46173296453ec98906a2b2d37",
      "tree": "81041bb97986cf3cf185a2c14fa9c97087875788",
      "parents": [
        "8f779cf33939910f7d058e0488eac744dba512d8",
        "6cc4fa184ca745a2c354f5ba945eda9c7c08e887"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jun 01 14:07:29 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jun 01 14:07:29 2017 +0000"
      },
      "message": "Merge \"Replace AAUDIO_DEVICE_UNSPECIFIED by AAUDIO_UNSPECIFIED\" into oc-dev am: be9c9d5a81\nam: 6cc4fa184c\n\nChange-Id: Ib56556fe778316967757e4d270abc3a18239530e\n"
    },
    {
      "commit": "be9c9d5a8168a4818c0296ac30dbd6120aac0727",
      "tree": "de01094fda71b5683d3f0b9c9e6e1b5d2294d757",
      "parents": [
        "897011a94008cb9ab73f8db397bbd87c57f5cf27",
        "5f510d2e1d9976f45d1d1733f20ec32e56bd2239"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jun 01 14:02:07 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 01 14:02:09 2017 +0000"
      },
      "message": "Merge \"Replace AAUDIO_DEVICE_UNSPECIFIED by AAUDIO_UNSPECIFIED\" into oc-dev"
    },
    {
      "commit": "37a466ae847cf08fc346e629fe4cf964ad67063f",
      "tree": "63d9b305c36f0625fe162381375fd9b2eb8ffc6d",
      "parents": [
        "629afae6135e6dc1e88ab4080f984fb30b3cdd7c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue May 30 15:53:14 2017 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed May 31 10:53:36 2017 -0700"
      },
      "message": "Fix copy/paste errors in use of AAUDIO_FORMAT_UNSPECIFIED\n\nBug: 62222736\nTest: builds OK\nChange-Id: Iabdac7a3d0893699eb72f85985002535c8f619c7\n"
    },
    {
      "commit": "5f510d2e1d9976f45d1d1733f20ec32e56bd2239",
      "tree": "48b9f65b79c8254285fd5122abc7599efb8fce45",
      "parents": [
        "629afae6135e6dc1e88ab4080f984fb30b3cdd7c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue May 30 15:52:15 2017 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed May 31 10:49:49 2017 -0700"
      },
      "message": "Replace AAUDIO_DEVICE_UNSPECIFIED by AAUDIO_UNSPECIFIED\n\nBug: 62220981\nTest: builds OK (they have the same value 0)\nChange-Id: Iba710f252df939c15da6cf17b9086a8e9ced25cc\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": "ef44fb4115270883da829fea91174c8cc003b777",
      "tree": "9fde4511982c15bfb11c30cff327eb50dd0de0e1",
      "parents": [
        "159db446a230334d88e5670c8ccd3489b00fdff6",
        "0bbea62ed44e8d5cc2419b2861ea0e58d81a4917"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 30 19:37:52 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue May 30 19:37:52 2017 +0000"
      },
      "message": "aaudio: fix device switch detection in legacy path am: fb00fc77f5\nam: 0bbea62ed4\n\nChange-Id: I80dfc949c206c1572f867f3ffedb6ff556a7b8f2\n"
    },
    {
      "commit": "159db446a230334d88e5670c8ccd3489b00fdff6",
      "tree": "7b56c9b9c141227e877cc36d90669ec9322a4b65",
      "parents": [
        "c38841d624b662c5e4e48b8a7d4e2ab0fcb63c5e",
        "eddd7d7a3ab59fe6be4a9f19f97b9744828cfe79"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Sat May 27 01:40:09 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat May 27 01:40:09 2017 +0000"
      },
      "message": "Merge \"aaudio: reduce logspam, improve critical logs\" into oc-dev am: d08f04f33b\nam: eddd7d7a3a\n\nChange-Id: If6d48dc5fada32cc9dbf6e25e7051e5b5cb66566\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": "fb00fc77f59ed5ebec4d38bac666e6521b6c1de0",
      "tree": "cf7fd5f373a5a8681d7fe4ee151367ccf3f8c9f2",
      "parents": [
        "d08f04f33b80c37bd3889f461846d59f70e726c7"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 25 18:17:12 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 26 18:34:13 2017 -0700"
      },
      "message": "aaudio: fix device switch detection in legacy path\n\nImplement device switch detection on legacy path (AudioTrack and\nAudioRecord) based on audio routing callbacks forcing the stream state\nto disconnected.\n\nBug: 33355262\nBug: 62090113\nTest: tested with write_sine and input_monitor command line tools.\nChange-Id: I9e0421fee233964b1bf318acb640569196a00f13\n"
    },
    {
      "commit": "d08f04f33b80c37bd3889f461846d59f70e726c7",
      "tree": "f05aa5a475126341e00241132da58360b4a1516d",
      "parents": [
        "ac1b860260d99455d60f99b11c24b83f339031fc",
        "cf5f6d2825d9a8430a291042ca9c6f68e5b666d0"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Sat May 27 01:13:29 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat May 27 01:13:31 2017 +0000"
      },
      "message": "Merge \"aaudio: reduce logspam, improve critical logs\" into oc-dev"
    },
    {
      "commit": "cf5f6d2825d9a8430a291042ca9c6f68e5b666d0",
      "tree": "01266d4a2fdf5ccce8067b583be1f3a0ac9b81f0",
      "parents": [
        "433ecd85ef10284a71c4ea57279f53427fb9983d"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri May 26 12:35:07 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri May 26 15:38:09 2017 -0700"
      },
      "message": "aaudio: reduce logspam, improve critical logs\n\nThis will make AAudio less annoying and easier to debug.\n\nBug: 62080950\nTest: look in logcat\nChange-Id: Id7ae26a212f83ea8be0b285bd20334eb48607be8\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\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": "d0ebc4ce66090107dbda021cb395f1d3c11b9525",
      "tree": "0ced326ffde836ac6c9322dab53ea299da7efe43",
      "parents": [
        "4c2dd1c211b3671114aad0478fc6c6f7a8f7ee9f",
        "515b941877a5d892402029b490b8f70d97e943b8"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon May 22 18:16:06 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon May 22 18:16:06 2017 +0000"
      },
      "message": "Merge \"AAudio: Fix counting of written / read frames for legacy input\" into oc-dev am: 873b2bc8ec\nam: 515b941877\n\nChange-Id: Ia27d27da50de7418a016c01eddf94eaa7bb8902c\n"
    },
    {
      "commit": "d873a5506149ed47164cf9c11add82eaceba24c3",
      "tree": "a2d5bd8595ac6249d1c2d93d9ba8a9640b4c6ee5",
      "parents": [
        "76f1cf0faa94b29c0d7debb5b560642fcf458e92"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu May 18 14:20:33 2017 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu May 18 14:20:33 2017 -0700"
      },
      "message": "AAudio: Fix counting of written / read frames for legacy input\n\nAdd necessary calls to update counters\n\nBug: 38396189\nTest: nativetest/CtsNativeMediaAAudioTestCases*\nChange-Id: Ic9636d61766db1c7b88c941e9a1018fccb5f1e88\n"
    },
    {
      "commit": "8bd0c53e4f81393dc8491313c81b8d81c9e6b1e7",
      "tree": "430bf14bc828e5f58a7241c0097c10e047fd2927",
      "parents": [
        "2a77adb88e918c4dd2df450d64c7b3cc83472808",
        "3bf3fd67fdb1ab1cbbd5f1053330c555eea28d6a"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu May 18 02:26:25 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu May 18 02:26:25 2017 +0000"
      },
      "message": "Merge \"AAudio: Set minimum allowed sampling rate to 8000 Hz\" into oc-dev am: 127999e846\nam: 3bf3fd67fd\n\nChange-Id: I3892e6799f6f3221356a6c01ff09c537290596be\n"
    },
    {
      "commit": "127999e84646ab51e3f17147e9cd291f557c658a",
      "tree": "e6bff44a8269b3a4eda3f75b02f5c604d8e55e77",
      "parents": [
        "30a707773a043e5eebd552d369c0882f886b67e5",
        "42ed0988847a3bf3db6c3fa696c9dd4768715b1f"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu May 18 02:05:05 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 18 02:05:09 2017 +0000"
      },
      "message": "Merge \"AAudio: Set minimum allowed sampling rate to 8000 Hz\" into oc-dev"
    },
    {
      "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": "896354129a411b99971fc6f9be93adb1e8431ae8",
      "tree": "39d0e27a809f2537470e01ed03d753c63303ed60",
      "parents": [
        "051fe483e14fccbe62b4d00a435eafe577dabce1",
        "4abacfc2b153d8cee15122be1d11b322be365310"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed May 17 22:25:40 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed May 17 22:25:40 2017 +0000"
      },
      "message": "aaudio: fix leak of AAudioBinderClient am: 9b3f8ef290\nam: 4abacfc2b1\n\nChange-Id: I3546272c082e4d2a550715676579932a5b3d92bd\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": "9b3f8ef290bd5ad392f5eba8a0f0a8ddd331b54f",
      "tree": "37f5f7342168b2cc2b5c4120e049d1a22152428f",
      "parents": [
        "54cf32220ceed7e0dc6dd2f6cf8b078bc88c7752"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue May 16 11:37:43 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed May 17 19:47:06 2017 +0000"
      },
      "message": "aaudio: fix leak of AAudioBinderClient\n\nMade it a Singleton that gets reused.\n\nBug: 37992613\nTest: write_sine_callback.cpp\nChange-Id: I63c045bd71d3bc1fc84f5fd4d7a6159fa5184c1c\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "54cf32220ceed7e0dc6dd2f6cf8b078bc88c7752",
      "tree": "0cee1db1c12359878f2c40388ad4ef8aeb38f3f5",
      "parents": [
        "c2bc4385fff526318caaecaa5dcc92479378bb73",
        "4485d41bcded0eceec7ec97d50aa2b0e702397a0"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed May 17 19:43:16 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 17 19:43:16 2017 +0000"
      },
      "message": "Merge \"aaudio: fix output bugs and improve input performance, add loopback test\" into oc-dev"
    },
    {
      "commit": "42ed0988847a3bf3db6c3fa696c9dd4768715b1f",
      "tree": "5b69e751f712b72ad7b743703c6256bbc1535246",
      "parents": [
        "1adebcd1bfb8a6716642e9693923858222a78c6c"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed May 17 10:37:10 2017 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed May 17 10:39:48 2017 -0700"
      },
      "message": "AAudio: Set minimum allowed sampling rate to 8000 Hz\n\nBug: 37755299\nTest: nativetest/CtsNativeMediaAAudioTestCases*\nChange-Id: I275c5718d12d285c1613df776946857dded32381\n"
    },
    {
      "commit": "6a15960d543ade8964a674f75c71b8c7dd06fc35",
      "tree": "032e96324ce74e5d3a64df0698a01301f93fd3bf",
      "parents": [
        "12d15315c25c76d036d8eec0760d6f2a53fa3aa1",
        "ef1b98e728d99a7c2bec7c8dd2f65c960b53db39"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed May 17 01:18:56 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed May 17 01:18:56 2017 +0000"
      },
      "message": "Merge \"aaudio: control MMAP mode using system properties\" into oc-dev am: c2bc4385ff\nam: ef1b98e728\n\nChange-Id: Iebce6445ed512eda1978d31c06f016f6486e9a27\n"
    },
    {
      "commit": "c8f69a08a409fd163873d725c63f8d60259ae21d",
      "tree": "da3c5a871c2a78e109d02cf1c08cfb496d4aa3e6",
      "parents": [
        "feb0d87f693abd8fd2fa7ebfcdf7d91f0b95c131"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu May 11 15:53:06 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue May 16 10:34:05 2017 -0700"
      },
      "message": "aaudio: control MMAP mode using system properties\n\nTo facilitate testing of MMAP mode.\n\nBug: 38268547\nTest: set properties, see framesPerBurst in write_sine_callback.cpp\nChange-Id: I6e15c563215017f6a5020d89ac312ff8331afc4f\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\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": "4392ed13542dbcd8dd650b8d09273584fb3979da",
      "tree": "20e8e51c40efa0d63dce31a9826d432b6eb1ddc6",
      "parents": [
        "fdd320677ba2ab5c72249946d5192505af1fef7b",
        "8f4b21a004761e8ac066e2e17dfd47d2189402fe"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Sat May 13 01:18:24 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat May 13 01:18:24 2017 +0000"
      },
      "message": "Merge changes Ida15546f,I1b099e23 into oc-dev am: 8467c128d7\nam: 8f4b21a004\n\nChange-Id: I6d0e7a58fc4f6250b044c79b6f88b438bd011a72\n"
    },
    {
      "commit": "fdd320677ba2ab5c72249946d5192505af1fef7b",
      "tree": "ca3e540996ec404d0b7639c7706fc0112060898e",
      "parents": [
        "2adbb53028cc7068b3d5b912247d7ae6f1a3fa4e",
        "92c34de4b27dd5ac9e20fa0132d382d8c5df531a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat May 13 01:17:55 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat May 13 01:17:55 2017 +0000"
      },
      "message": "Merge \"AAudio: fix exclusive mode\" into oc-dev am: f5318fb9e7\nam: 92c34de4b2\n\nChange-Id: I3c7493ee81f1538cb238e0843b7e28b9e0befcdf\n"
    },
    {
      "commit": "8467c128d7edfc16a93e2606bbae5188f067d2d5",
      "tree": "2711627f39c095815e129f2ba3200a28d810da32",
      "parents": [
        "f5318fb9e7d4a52e38778fe38fce50d8a695172d",
        "8f62489dfdfc1e0303fb1ffa8c6eeb44b611ac51"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat May 13 01:04:05 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat May 13 01:04:05 2017 +0000"
      },
      "message": "Merge changes Ida15546f,I1b099e23 into oc-dev\n\n* changes:\n  aaudio: make openStream behavior more specific\n  aaudio: add a test for openStream() with varying parameters\n"
    },
    {
      "commit": "8f62489dfdfc1e0303fb1ffa8c6eeb44b611ac51",
      "tree": "b61331c5b18130c0fa3426d2b3bc52b1726d2eb6",
      "parents": [
        "8dd7fedba00b4f21e3428cbb5d5a5014ef9ef49d"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu May 11 11:44:20 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri May 12 14:23:20 2017 -0700"
      },
      "message": "aaudio: make openStream behavior more specific\n\nChange API specification to state that if sampleRate, channelCount\nor dataFormat are specified, then the open stream will use those values.\n\nThis change does not break the original API, which stated that the actual\nvalues might or might not match the requested values.\n\nThe documented API now matches the actual code behavior.\n\nBug: 38236303\nTest: unit test, test_open_params.cpp\nChange-Id: Ida15546f0ee2a8cc888158f564492363a700f9ea\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "8dd7fedba00b4f21e3428cbb5d5a5014ef9ef49d",
      "tree": "bf06c3f2bde3ae78ade600fe6701f362bec51ad7",
      "parents": [
        "331207d51a620bf018081950da4b20133014657f"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu May 11 12:03:13 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri May 12 14:03:29 2017 -0700"
      },
      "message": "aaudio: add a test for openStream() with varying parameters\n\nBug: 38236303\nTest: this is a test\nChange-Id: I1b099e230acc2168af9c1a4d08ef6753e7066625\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "dfd68662b07caacc0e7cd7a20d437b90b5ab3ae3",
      "tree": "1a8e622db3295e8e12bdf41e4d0c7d2ffd5ce1e9",
      "parents": [
        "3a85e5623164d7dce0912224962d6ad85bdffea4"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 11 18:11:05 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 11 18:13:07 2017 -0700"
      },
      "message": "AAudio: fix exclusive mode\n\nRegression introduced by commit e2fbb59e.\n\nBug: 38247512\nTest: verify exclusive mode with write_sine_ndk app.\nChange-Id: Id85b922d994fba33561489ca06d4a8fd6e97c416\n"
    },
    {
      "commit": "f17b95bf5e964f9a2e440e2a2763c04b4b6b72d0",
      "tree": "adb3bd773e97e5078f24047dcc55b4e7d2e016f9",
      "parents": [
        "2f35206b77dd7d8a8c761e0a81ea327c10787036",
        "5f16993298d62f0e3f9497c1a828b88213c4cb32"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu May 11 16:54:07 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu May 11 16:54:07 2017 +0000"
      },
      "message": "Merge \"aaudio:  validate audio data format\" into oc-dev am: 77994d70fe\nam: 5f16993298\n\nChange-Id: I53ca542581bcca5b8cd0bd5055ed584183a2476b\n"
    },
    {
      "commit": "77994d70fe8d4805126361bbd0afbcac1cd1d2f0",
      "tree": "2fe19c3e8aec6d1a4c109512ab04d8f015f1426e",
      "parents": [
        "2d12b8e3677c2c6b620358fa7e4699dda8c0f0bc",
        "5204d315c6c6f53188f8d1414dd1b55b6c90142b"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu May 11 16:47:04 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 11 16:47:05 2017 +0000"
      },
      "message": "Merge \"aaudio:  validate audio data format\" into oc-dev"
    },
    {
      "commit": "5204d315c6c6f53188f8d1414dd1b55b6c90142b",
      "tree": "0a3482871d0a444907049f9a8660341fa5787ca2",
      "parents": [
        "331207d51a620bf018081950da4b20133014657f"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu May 04 17:16:13 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu May 11 09:31:47 2017 -0700"
      },
      "message": "aaudio:  validate audio data format\n\nAlso lots of minor cleanup\nFix underscores in some headers\nRefactor getTimestamp()\n\nBug: 34127069\nBug: 38227780\nTest: CTS test_aaudio.cpp\nChange-Id: I6fdb50eb00a41688df871018ced91d5f5f055f8a\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": "804b96ffae0e7b22704209ecfd6a87f2aa8c952c",
      "tree": "1f0bc56fda75a6a5d9cd2b4feb8ce53827797240",
      "parents": [
        "31e436e23a2a6f7d2de57158a1ae6542098a8e63",
        "068c10f03d16a7f73abf138cc751cf3bde7518df"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu May 11 00:50:17 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 11 00:50:18 2017 +0000"
      },
      "message": "Merge \"ligbaaudio: Fix pause, flush and getXRunCount for input streams.\" into oc-dev"
    },
    {
      "commit": "872e44e091f414c69a7ed09e716150af30402ff6",
      "tree": "4d5f85c6eb4c1f3aa6c6015ce76f4b21e9edc2a4",
      "parents": [
        "49aeb02c4f1a265dcceabab4050381c1b8e56bd3",
        "b434c1f6ab4d1a3139264a7c4eaf4e27f17136b4"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed May 10 23:58:51 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed May 10 23:58:51 2017 +0000"
      },
      "message": "Merge \"aaudio: plug some resource leaks\" into oc-dev am: 31e436e23a\nam: b434c1f6ab\n\nChange-Id: I9a42d232df983beecf1804c1ffabfd1faa45b821\n"
    },
    {
      "commit": "31e436e23a2a6f7d2de57158a1ae6542098a8e63",
      "tree": "1d5cd0b2192c3ead370637c38e721903405707b3",
      "parents": [
        "ebb1475d1a97ee3dbf25ea72383a6b7554aac1dd",
        "942bdc0aebc88dc8b12c0e7742ec0003bbb8b80f"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed May 10 23:14:53 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 10 23:14:55 2017 +0000"
      },
      "message": "Merge \"aaudio: plug some resource leaks\" into oc-dev"
    },
    {
      "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": "942bdc0aebc88dc8b12c0e7742ec0003bbb8b80f",
      "tree": "2791ba38cdc9b1839a9d17bc20e53fde6a4c8f7c",
      "parents": [
        "441f2ccb103fdb6fe6409eac870ea30ee3ccfb33"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed May 03 11:36:50 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu May 04 17:23:47 2017 -0700"
      },
      "message": "aaudio: plug some resource leaks\n\nClose some file descriptors for shared memory that were not getting closed.\n\nBug: 37947848\nTest: see bug for test procedure\nChange-Id: Icdc13188b0a49d08b67babff0852c3a4eda8fd2b\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\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": "c695db43946839d3b49427a702f4e648e4347950",
      "tree": "a20248de03f47e20d15492dade093f7a78dabcd3",
      "parents": [
        "d99e8f9ceb43cc0858f397cd8e58b6f0f85f2ad0",
        "13e4027421830f9f40ae2994480efa862b6940e8"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed May 03 22:41:02 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed May 03 22:41:02 2017 +0000"
      },
      "message": "Merge \"aaudio: Fix getFramesWritten() for callback mode.\" into oc-dev am: 441f2ccb10\nam: 13e4027421\n\nChange-Id: Iff24393b991b1a38c36cae7eaa181db0640d91c7\n"
    },
    {
      "commit": "441f2ccb103fdb6fe6409eac870ea30ee3ccfb33",
      "tree": "2da91b5aa41164cd6e48f5d86e3f731d54ded035",
      "parents": [
        "f1e459c6400a774d99390227e853a30f58cee4a2",
        "4c5129b410884ec0400cbe65fce56d0ade12d11b"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed May 03 22:24:21 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 03 22:24:26 2017 +0000"
      },
      "message": "Merge \"aaudio: Fix getFramesWritten() for callback mode.\" into oc-dev"
    },
    {
      "commit": "4c5129b410884ec0400cbe65fce56d0ade12d11b",
      "tree": "9f17ebb0f82552f0b0015d3b07d0ab0bb43b4349",
      "parents": [
        "c5cbb87d00ead068a7088db4060bce1c0e699b8c"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Apr 28 15:17:32 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue May 02 16:21:03 2017 -0700"
      },
      "message": "aaudio: Fix getFramesWritten() for callback mode.\n\nPlus other small fixes for CTS and cleanup\n\nBug: 37910599\nTest: test_aaudio.cpp\nChange-Id: I65a23daf99e9de857d3ce9fd12e9f11c614e298e\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "8e8949294f7c625c6bd129058fd174a70ec2d0da",
      "tree": "3f96c11bd0bb3c28042a04a1465f8b495679db3d",
      "parents": [
        "eae9d13b9b7eb61129d8a195ed700d5b7800dc7d",
        "8c75ee5eadd230a8b52ba1ef4dae6f90eb65ba46"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue May 02 23:03:13 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue May 02 23:03:13 2017 +0000"
      },
      "message": "Merge \"aaudio: fix mmap result checking\" into oc-dev am: 01506e4ad2\nam: 8c75ee5ead\n\nChange-Id: I646d9e88388248a45aadd6d2faf4d439b3d6cb47\n"
    },
    {
      "commit": "01506e4ad26d1f1bf5b81121a8d17b3305940eab",
      "tree": "60d47f699c08d9923679291881fb323293716795",
      "parents": [
        "9694ba347ac5e324ebc26c6130eb5954728b5115",
        "478d5df3a0e1693669f5809176d5c7f6e8c9aa88"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue May 02 22:55:23 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 02 22:55:25 2017 +0000"
      },
      "message": "Merge \"aaudio: fix mmap result checking\" into oc-dev"
    },
    {
      "commit": "478d5df3a0e1693669f5809176d5c7f6e8c9aa88",
      "tree": "1f43c7ac9e4b2acdf637c03ad6cfb8c477ca5751",
      "parents": [
        "c5cbb87d00ead068a7088db4060bce1c0e699b8c"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon May 01 11:34:11 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue May 02 11:58:36 2017 -0700"
      },
      "message": "aaudio: fix mmap result checking\n\nWas checking for nullptr not MAP_FAILED\n\nBug: 33398120\nTest: see mmap() docs\nChange-Id: I02d178cb0188f8b0d6cd009699dccc7c97952e4b\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "772468f8b9afc801ad599139b41b73788add824c",
      "tree": "c62083d3eae2cc6892c3856c561c10b491ef5e11",
      "parents": [
        "4b8bedb865410a1ee005a9801902e1e4b8110552",
        "f07f1e5fb141c00285862ad39cb74fb69b791313"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue May 02 16:14:01 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue May 02 16:14:01 2017 +0000"
      },
      "message": "Merge \"aaudio: set errorCallback user data\" into oc-dev am: 90430d91fa\nam: f07f1e5fb1\n\nChange-Id: I446b0ef65654cd425e2c1c160d5fc68c09e7c875\n"
    },
    {
      "commit": "90430d91fab9940880f85e6064c8bd431f840bb2",
      "tree": "0d4c8209c146535eb76369c0b7723b7a1a265b2e",
      "parents": [
        "c5cbb87d00ead068a7088db4060bce1c0e699b8c",
        "098b883a7dc89b65b72c6d3f1d38c6afd477a0ad"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue May 02 15:58:32 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 02 15:58:33 2017 +0000"
      },
      "message": "Merge \"aaudio: set errorCallback user data\" into oc-dev"
    }
  ],
  "next": "098b883a7dc89b65b72c6d3f1d38c6afd477a0ad"
}
