)]}'
{
  "log": [
    {
      "commit": "2d2f17cc1e15b7a4a21c94d6c6d125eabf740fc9",
      "tree": "c1023826407ccf2d1f88fa1e8d69ee8cae579136",
      "parents": [
        "ed84e713b3b84aa189459c2412e65a4be257bc89"
      ],
      "author": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Wed Jul 17 13:55:16 2019 +0200"
      },
      "committer": {
        "name": "dimitry",
        "email": "dimitry@google.com",
        "time": "Thu Jul 18 14:09:16 2019 +0200"
      },
      "message": "Split libaaudio.so to internal and NDK part\n\nThis change moves almost everything from libaadio.so to\nseparate libaaudio_internal.so library. This is done to\navoid exporting symbols which apps are not allowed to use\nbut have them available for platform libraries by exporting\nthem from libaaudio_internal.so\n\nBug: http://b/69603741\nTest: make\nChange-Id: If93118ed2c266faf2964abf21e17b0b13df493d2\n"
    },
    {
      "commit": "42471cc7beb1703730e15401362b8bf02d1b0cfa",
      "tree": "efe02448c69110531e4ef7ae3fb2d551cef49d79",
      "parents": [
        "e81a326d90dfce1249917b796f69b48fe1c59971"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Jun 10 14:39:01 2019 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Jun 14 11:35:40 2019 -0700"
      },
      "message": "aaudio test: trigger race condition and hang\n\nClose a stream at the same time the callback\nis trying to stop the stream.  This replicates\na hang that was detected in SynthMark.\n\nBug: 134963902\nTest: this is a test\nChange-Id: I7c87ecfefa2498fd1f4f9a1e406118c42a78545b\n"
    },
    {
      "commit": "a7138f1d2204d69c223925f39d6ab9d3c11d9632",
      "tree": "64c716b6793645e01edf4430a2643337b6d3631a",
      "parents": [
        "f878a8dc99922d0af080bb7d5f61b00e62d00e65"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Mar 29 17:21:25 2019 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Apr 02 14:12:30 2019 -0700"
      },
      "message": "audio tests: test for up message queue getting full\n\nThis can cause a stream to get suspended if not processed.\n\nBug: 129140370\nTest: this is a test\nTest: test_full_queue\nChange-Id: Ib8961ad708cb258c08a956c6ced813f23c437fc4\n"
    },
    {
      "commit": "68646ba64107a19ac0d1af781ddd0b1edd2ed57a",
      "tree": "ac3003975099bef26b63302164468b766c6c9aad",
      "parents": [
        "36b17553b2c3aad4d8f600edd2e82f9a583ee05a"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Mar 20 13:26:49 2019 -0700"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Mar 22 17:21:33 2019 -0700"
      },
      "message": "Add aaudio APC opt-out\n\nThe opt-out was only present in the java API but not on the native ones.\n\nTest: atest test_attributes\nChange-Id: I1b84f1a428508e00de65e615b59405b9ee2ba009\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "bd63c6ffe67b3555262e85f23a4f26b4ff057404",
      "tree": "d20e8a7fbb1fc5dc4a068fc3604d8b5a1ebd9e84",
      "parents": [
        "def408939dec9f3a4ff21d84c44b6fcad1797396"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Dec 18 12:13:34 2018 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Feb 01 00:39:53 2019 +0000"
      },
      "message": "aaudio test_return_stop prints frames in buffer\n\nError if more than capacity of the buffer.\n\nBug: 121196899\nTest: this is a test\nChange-Id: I805905ffd1718f3e4fec2212e674f449bd55c4a8\n"
    },
    {
      "commit": "c0682e25540ce22c2428151086ed816c2df13db4",
      "tree": "daf637d3b97d9e8ec8183a7b9d7a43d908fe3e85",
      "parents": [
        "a53ffa67b35a7e57efec57811e4f915d1caac1eb"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Jan 22 15:52:02 2019 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Jan 31 14:09:13 2019 -0800"
      },
      "message": "aaudio test: test drift in clock model\n\nSimulate a sample rate clock that is slightly off from the expected\nrate. The clock model should adjust to the drift and stay locked.\n\nTest: this is a test\nChange-Id: I402d8a90c920ff9eca611ee56071441826fc9876\n"
    },
    {
      "commit": "d8ef100ee9b4c8d51ce1bc433fa697e28ccfca9a",
      "tree": "a179c9934eaf48dbe8717870095e8958f45b7d61",
      "parents": [
        "0f5092139154e1822a471cbdbc0ada6f5930cf52",
        "19785de5ed298b2c28f398d9c27c02e173aa1f52"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 17 22:35:39 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 17 22:35:39 2019 +0000"
      },
      "message": "Merge \"aaudio test: improve test_timestamps.cpp\""
    },
    {
      "commit": "19785de5ed298b2c28f398d9c27c02e173aa1f52",
      "tree": "9b35a9e64aa8b6eec093ebca0d391fdd176e4ef9",
      "parents": [
        "f25675d38948d6e6eefc45f893f659467eab6471"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Jan 03 15:53:49 2019 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Jan 17 12:55:01 2019 -0800"
      },
      "message": "aaudio test: improve test_timestamps.cpp\n\nTest for timestamps returned when STOPPED.\nTest for no valid timestamps.\n\nBug: 122043542\nTest: adb shell test_timestamps\nChange-Id: I3f9ea636c7a469ffd6aa721776127dfeac94bc1e\n"
    },
    {
      "commit": "ae4b6ecfbcbea56cca160715a2ef710d8d87a40f",
      "tree": "124f24314b3f95b48a47dc8cc6f4ab0a6a0cc88e",
      "parents": [
        "96024c18126150259ba123ef48d180c6e0a2cf7e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 15 18:34:38 2019 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 16 09:52:55 2019 -0800"
      },
      "message": "add new audio sources for audio capture\n\nThis commit adds the following audio capture sources:\n- AUDIO_SOURCE_VOICE_PERFORMANCE: for real time live performances like Karaoke.\n- AUDIO_SOURCE_ECHO_REFERENCE: for capturing the reference signal to suppress by an echo\ncanceller. Protected by privileged permission CAPTURE_AUDIO_OUTPUT.\n\nAlso added device AUDIO_DEVICE_IN_ECHO_REFERENCE selected when the requested\ncapture source is AUDIO_SOURCE_ECHO_REFERENCE.\n\nBug: 118203066\nTest: CTS tests for audio capture\n\nChange-Id: Ieb159ea82a7b81acf762506a44e24ec80111609f\n"
    },
    {
      "commit": "384a196f7cfbe4e1a481be0b281e1b7ae1bef42a",
      "tree": "71dfe251fd9473097bc9f5a49124dfdbbff912da",
      "parents": [
        "c1b140c7139be5f3125e503354b871925ca6d652"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Dec 17 14:14:27 2018 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Dec 17 14:22:56 2018 -0800"
      },
      "message": "aaudio: remove redundant message from test-return_stop.cpp\n\nIt was unnecessary and was missing a newline.\n\nTest: this is a test\nChange-Id: I6463579c759b620ac3d34dceacee8e4e9c806808\n"
    },
    {
      "commit": "61cf6c171c70c771c8de83549d99a979d37b5e4e",
      "tree": "0d3b77af4b067e5cb22fabb9e813a86de2dfd122",
      "parents": [
        "ef4b27d1d1123b452316f722a0eacc282d3fa94a"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Dec 10 14:00:29 2018 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Dec 14 00:51:39 2018 +0000"
      },
      "message": "audio: add test_return_stop.cpp\n\nTest returning a STOP code from the callback.\n\nBug: 120845500\nTest: this is a test\nChange-Id: I88aa46b356443ab055c194cb430d93618980894d\n"
    },
    {
      "commit": "e6faa59bd4806a2200f59304ecba080569d0dc0d",
      "tree": "4b048142b18403b52bfcb36e42d7b51ffe2b241b",
      "parents": [
        "b079c02b1fa4f1b5c5b6334b93af584797b4454f"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Dec 03 10:10:21 2018 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Dec 05 09:18:10 2018 -0800"
      },
      "message": "aaudio: improve test_atomic_fifo\n\nCheck for the effects of setting a bogus counter.\nCheck for writes to memory surrounding the FIFO.\nCheck for negative array indices.\n\nBug: 120147915\nTest: this is a test\nChange-Id: Ia30cdef7f9d60f0a98b9af964cb3b3159df37dc9\n"
    },
    {
      "commit": "d1bdb20b3bff4f04ad467b77a0c690571e49bb4c",
      "tree": "f1eef1df2b4e1f1fd5edb26b6ce685f533b91258",
      "parents": [
        "fd771a4fdfad765cee9b66b558574d4ee3f70e4a"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Jul 19 13:59:26 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Oct 18 09:47:35 2018 -0700"
      },
      "message": "aaudio: unit test for IsochronousClockModel\n\nTest: adb push ${OUT}/data/nativetest64/test_clock_model/test_clock_model /system/bin/.\nTest: adb shell test_clock_model\nChange-Id: I6736a02674b4f8f723799e76be7d441c46f01de6\n"
    },
    {
      "commit": "0127c1be07d63e046e136126cd465c3fa8977768",
      "tree": "4eb611ec5d010becd3583f93c640cc9468acb3b3",
      "parents": [
        "fdfae2898f0785f19de198ed00488e03bf52bca9"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Mar 29 13:48:06 2018 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Sep 07 11:08:24 2018 -0700"
      },
      "message": "aaudio: use new flowgraph to simplify processing\n\nConstruct a flowgraph based on the source and destination\nformat and channelCount. This is groundwork for supporting 24-bit\nPCM formats.\n\nAlso cleaned up handling of device related format.\n\nThis CL removes more code than it adds.\n\nBug: 65067568\nTest: write_sine_callback.cpp -pl\nTest: write_sine_callback.cpp -pl -x\nTest: input_monitor -pl\nTest: input_monitor -pl -x\nChange-Id: Ia155bff0164912011d09b61b54f983ccf4490bd1\n"
    },
    {
      "commit": "bb78a73db83955151feb6b150f7cb925bcabe79a",
      "tree": "fd98edb0fb0f7a3045d36a447be3cf345a34e1e4",
      "parents": [
        "64dce361eb3dbfc8c78f474b4c24dcaceb904ae1"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Mar 28 15:37:19 2018 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Aug 29 13:05:09 2018 -0700"
      },
      "message": "aaudio test: test flowgraph\n\nConstruct simple data flow graphs and measure the output.\n\nBug: 65067568\nTest: this is a test\nChange-Id: I7d7794fd56c2e2ced130ea501a456f2690a64b59\n"
    },
    {
      "commit": "882c520fd82ef5ce1420bb3eb6fc4bcbb205cb87",
      "tree": "ab17c80d971269c1f8e16b6b8011d37863b0a8e6",
      "parents": [
        "a11eb695cac183c629cab536d101e6667343992b"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Apr 23 10:32:45 2018 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Aug 23 11:59:56 2018 -0700"
      },
      "message": "aaudio: cleanup FIFO\n\nRemove unused methods and fields.\nBetter code format and alignment.\nUse unique_ptr for mFifo.\nRemove getFifoController() method that exposed pointer.\nUpdates tests and calling code as needed.\n\nTest: test_atomic_fifo.cpp\nChange-Id: I1ea66beaadeb74083307835858b757e4753affda\n"
    },
    {
      "commit": "217a14ff1b359762eea5619c12669a68e4db4672",
      "tree": "6d003021aaeb53508e5c7fd897fdd331e6f6766e",
      "parents": [
        "64da22285776f07a775afd45f9fc36cea1aa05e3"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Apr 23 10:33:06 2018 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Apr 24 09:11:56 2018 -0700"
      },
      "message": "aaudio: add unit test for FIFO\n\nWrite data, read it back and verify.\nTry to trigger wrap-around conditions.\n\nBug: 78139448\nTest: this is a test\nChange-Id: I4247fcf57a25c97c6ab8ce9671d0f61556ecef6a\n"
    },
    {
      "commit": "381708a847860bb5e71a55422916112c9ac361b5",
      "tree": "9a9dd9a6f73bec0024fd32352e38b3331b00d119",
      "parents": [
        "c2c0aabfef24cbf48cdf6755f8627386971abdd3"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Feb 14 16:02:50 2018 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Feb 27 01:21:12 2018 +0000"
      },
      "message": "aaudio: test interference between streams\n\nCreate an MMAP stream at 48000 Hz.\nThen try to create a second MMAP stream at 44100 Hz,\nwhich will open on the Legacy path.\nThe bug will cause the first stream to be killed.\n\nBug: 73369112\nTest: this is a test\nChange-Id: Ibc7ef78b6bfd67114d6d2f47519e2a9113e75855\n"
    },
    {
      "commit": "67fdd894bf7e09a544348a9f8298427bc9b3fe85",
      "tree": "1ca837a04fb3840e49399d81bb69a11554b8f2d7",
      "parents": [
        "254d783c0db9d7af6b863ad1819f5c4a543a939d"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Jan 23 15:28:55 2018 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Jan 24 13:31:06 2018 -0800"
      },
      "message": "aaudio: fix sessionId conversion\n\nWas not handling negative IDs correctly.\nUpdate test to allow negative IDs.\n\nBug: 72333892\nTest: CTS has test_session_id\nChange-Id: I1ca57026d6202f7d54c8efd51b14854be6cc69e4\n"
    },
    {
      "commit": "4fa3b94398653e20719c8d26dd75dbbabfbaabe9",
      "tree": "799f70df37d18a293e1705b9bbfe9c9b41f4f22f",
      "parents": [
        "bb8ad0e6ebf1a74245929720fd6336feda926ea9"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Dec 13 17:25:24 2017 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Jan 24 15:21:13 2018 +0000"
      },
      "message": "aaudio: test matrix of state transitions\n\nTest transitions from OPEN, STARTED, STOPPED and PAUSED.\n\nTest: this is a test\nChange-Id: I8e9257909f5e50834652f71b14d94a13e0e62f3f\n"
    },
    {
      "commit": "eaef9b9c7b3c6c4d4435ce5e32e9fe952a2f69fe",
      "tree": "a9c488f653c7d3488b6c72e8b44d82cea0437633",
      "parents": [
        "205266aacc675dfb7a7f9f985c4ca973163cb59e"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Jan 18 09:09:42 2018 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Jan 22 10:17:58 2018 -0800"
      },
      "message": "aaudio: use AAUDIO_INPUT_PRESET_VOICE_RECOGNITION\n\nChange default for InputPreset to restore low latency.\n\nBug: 72049948\nTest: see bug, adb shell aaudio_loopback -te -pl -n1 -x -X\nChange-Id: Ie987c2e65d9338353ec6e23598442394d2a2e4a9\n"
    },
    {
      "commit": "a11f9357196db29e6f8f05b91334524de4f3207e",
      "tree": "bf6f61bc918e26105e9607f4b390e2ef20bf0ce1",
      "parents": [
        "7e7dcaa9870760c3be5f2db28cd9149043c73fe2"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Jan 03 15:53:25 2018 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Jan 18 19:43:17 2018 -0800"
      },
      "message": "aaudio test: test sessionID for effects\n\nTest AAUDIO_SESSION_ID_NONE.\nTest AAUDIO_SESSION_ID_ALLOCATE then use the allocated ID\nfor both input and output.\n\nBug: 33268927\nTest: this is a test\nChange-Id: Ia70670259137e715e75a497ef910a231b638e877\n"
    },
    {
      "commit": "f9d1b99e6fb1af139604336863f6cb7d3c48510e",
      "tree": "52a701234511d15a490fd33f0b4620848ab1b889",
      "parents": [
        "361b142aa27326ab5b2563493751c264a4dc7e75"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Dec 21 16:54:18 2017 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Jan 11 18:27:53 2018 -0800"
      },
      "message": "aaudio: test USAGE, CONTENT_TYPE and INPUT_PRESET\n\nPass these audio attributes to AudioFlinger.\nAlso test for default behavior.\n\nBug: 68052449\nBug: 62104146\nTest: this is a test\nChange-Id: I3bef65fb7b7da6eeb670f53aa9e5bf7d237ea714\n"
    },
    {
      "commit": "2581ae211554328dff1961b2d722b39d3ff43844",
      "tree": "c6cfb3424d108363a31f7b17b0b6d20cf7735e15",
      "parents": [
        "5fb93fa294ee05a25f86312e926b5ca4e0d1d3b2"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Nov 21 15:47:29 2017 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Dec 13 10:45:55 2017 -0800"
      },
      "message": "aaudio: test calls to requestStop() from the data callback\n\nTest whether functions are illegal from a callback.\n\nAlso test AAUDIO_CALLBACK_RESULT_STOP\n\nTest: this is a test\nChange-Id: I0e91b08951f7f29f6fa317a8b3c4a69f14e58483\n"
    },
    {
      "commit": "7dd4843186ae781213819a988061d108efb513cb",
      "tree": "4d310e8fe8802b012e29fe9c14dde6dcfa5d2af0",
      "parents": [
        "ae11d0413cf44e15acef0abb6ca6560f81bc2727",
        "86938671ea9cf95e3742659924189a1d016dfd59"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Dec 01 00:50:20 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 01 00:50:20 2017 +0000"
      },
      "message": "Merge \"aaudio: monkey test random activity\""
    },
    {
      "commit": "b17aec153cbebd44aa96a65b98c29bc0368d59ea",
      "tree": "8414b27185f2deddd6a5fd9fd8cb0e8841473234",
      "parents": [
        "eda72c27cab52c41016d8ce138438a2d59973231",
        "c2d20797f0c2a779a5113f455fb59a922ab9e311"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Dec 01 00:43:56 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 01 00:43:56 2017 +0000"
      },
      "message": "Merge \"aaudio: test linear ramp and conversion utilities\""
    },
    {
      "commit": "86938671ea9cf95e3742659924189a1d016dfd59",
      "tree": "2782847d646d6bd4a0fe168bffa1cc3122f6ad3b",
      "parents": [
        "693cb2bde52b4d73c391c529f1c6bf7a02be9f72"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Nov 27 13:49:40 2017 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Nov 30 14:59:00 2017 -0800"
      },
      "message": "aaudio: monkey test random activity\n\nRandomly start, stop, pause, flush audio streams\nto see if we can trigger unexpected bugs.\n\nTest: this is a test\nChange-Id: I52a62c247f8c94de024aed63764e8d6b50c59343\n"
    },
    {
      "commit": "c2d20797f0c2a779a5113f455fb59a922ab9e311",
      "tree": "c4339c6617ee63de8c65769661192dc955e70358",
      "parents": [
        "693cb2bde52b4d73c391c529f1c6bf7a02be9f72"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Nov 30 10:48:41 2017 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Nov 30 14:42:42 2017 -0800"
      },
      "message": "aaudio: test linear ramp and conversion utilities\n\nAdd specific  tests of the utilities.\n\nTest: this is a test\nChange-Id: I376655d9d9d4b5e187965ec1c312f1c93977958d\n"
    },
    {
      "commit": "0c15f4f96a3e2a119cf10dcca158c4d25c6c735c",
      "tree": "5da5f9ea0ac286ee759844d4c6b6652efb234385",
      "parents": [
        "693cb2bde52b4d73c391c529f1c6bf7a02be9f72"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Nov 28 15:46:15 2017 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Nov 28 15:46:15 2017 -0800"
      },
      "message": "aaudio: test some state transitions\n\nBug: 69810494\nTest: this is a test\nChange-Id: Ie7c554f023f49bbd41b4bb28c0a4b9c78b403200\n"
    },
    {
      "commit": "9a9e60097f1ea8828e6d4aa6539e7bac29141afa",
      "tree": "2bbbe4e94cad0c88a98f410353dbe7270c6d0a31",
      "parents": [
        "10edfcf70857cc0a22afbbd3fc8f57f0c8a2953a"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Nov 17 12:17:37 2017 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Nov 21 08:48:27 2017 -0800"
      },
      "message": "aaudio: test AAudioStream_setBufferSizeInFrames()\n\nBug: 69469801\nTest: this is a test\nChange-Id: I524392c1141ae3b1c37fe083930947fd7ef8243d\n"
    },
    {
      "commit": "e72b63e9fb2161880704724b597bea57eeb77499",
      "tree": "3e38796395d5352f7f059697c8a2de7cb1be5add",
      "parents": [
        "51f4bac261c544eedb577ceb3e3b5d9ddf8d0238",
        "68326fe017a18957419a81489b67f75831f9a674"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Nov 06 19:37:18 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 06 19:37:18 2017 +0000"
      },
      "message": "Merge \"Use -Werror in frameworks/av/media/libaaudio\""
    },
    {
      "commit": "68326fe017a18957419a81489b67f75831f9a674",
      "tree": "2f7690208288cb2c33c368cb8c063c4babf649c4",
      "parents": [
        "333d25015d9878fad6a2fcf82432fcc5ee0ad521"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Oct 31 13:49:24 2017 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Oct 31 14:32:22 2017 -0700"
      },
      "message": "Use -Werror in frameworks/av/media/libaaudio\n\n* Remove unused local variables, labels, functions, private fields.\n* Fix warning of unused return result.\n* Use template functions in .h file to avoid warning of unused static functions.\n\nBug: 66996870\nTest: build with WITH_TIDY\u003d1\nChange-Id: I54962a7fd36a405e54366130b9c0a24e26fe8ebb\n"
    },
    {
      "commit": "3295913fc53d42e3790afc1a063c925cbb3395bb",
      "tree": "6e9d9ad8d18a18d7700a1f268fda9fbe7fdd9c5e",
      "parents": [
        "60e8acf51c7ee65bf6317e186c4768f3f93d647d"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Mon Oct 30 13:36:57 2017 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Mon Oct 30 13:36:57 2017 -0700"
      },
      "message": "Add back builds for libaaudio examples\n\nThese will actually get installed as tests in /data/nativetest{,64}/...,\ninstead of into the /system/bin directory.\n\nTest: mmma frameworks/av/media/libaaudio\nChange-Id: I41e077e21e3d5c76f0fd5b4f21f7377a0c293740\n"
    },
    {
      "commit": "b44c69e85ced0a8909e5ca0035720a6e450c8f36",
      "tree": "585ba5b649b9695353ff99e0fdc0f758751a933d",
      "parents": [
        "32d82714da38ad86803a56870734d49bcf30c29d"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Mon Oct 23 17:15:03 2017 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Mon Oct 23 17:46:27 2017 -0700"
      },
      "message": "Convert libaaudio to Android.bp\n\nSee build/soong/README.md for more information about Soong.\n\nI didn\u0027t translate the examples, since they appear to be NDK build\nfiles, not platform build files.\n\nTest: mmma frameworks/av/media/libaaudio\nChange-Id: Icf228c701afe37dd3c7f00ea9e6fb740b0d450f1\n"
    },
    {
      "commit": "bc4845eddc182d4e6b21c6906917f8416034c9ca",
      "tree": "36f8e34d3c85101a8be8eade8c0e922cd84b2977",
      "parents": [
        "7de1920b41a7c5a6aa466dcd4fffc936193328b1"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Oct 12 15:51:30 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Oct 17 12:39:28 2017 -0700"
      },
      "message": "aaudio test: add test of improper handling of disconnect\n\nJust start a new stream without stopping or closing the old disconnected\nstream.\n\nBug: 67664976\nTest: this is a test\nChange-Id: I674626d0d365ed3a72e079212c6aceed9b0c85fc\n"
    },
    {
      "commit": "523b3047af443d0a51141ddabd328d52be5a23b0",
      "tree": "2596b9d310c3c59d391634d131d2ae866ddf1d47",
      "parents": [
        "1e0c671e14660588410560a55c34718bb8af3b22"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Sep 13 13:03:08 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Sep 15 13:29:26 2017 -0700"
      },
      "message": "aaudio: keep track of streams using strong pointers\n\nMaintain strong pointer to service stream during service calls.\nUse simple AAudioStreamTracker instead of complex HandleTracker.\n\nBug: 65280854\nTest: affects all MMAP streams, run all CTS tests, etcetera\nChange-Id: I3d2ed8b588ea39c216dacd4dea503b11c33f36f3\n"
    },
    {
      "commit": "c75d97f20843388b9084561635996a01a53d0c0f",
      "tree": "2830ecc2de864ef496f7bbbc507a5f144839732a",
      "parents": [
        "e0de1cdc1ebe4f43ac5ba4273d51b368901c87de"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Sep 08 15:48:36 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Sat Sep 09 04:17:53 2017 +0000"
      },
      "message": "aaudio: fix return code from getTimestamp()\n\nShould be AAUDIO_ERROR_INVALID_STATE if no timestamp available.\n\nBug: 65447871\nTest: test_timestamps.cpp should only print AAUDIO_ERROR_INVALID_STATE\nChange-Id: Id9e211ef8fce078514f4348a434e0c003372369c\n"
    },
    {
      "commit": "cda5c070b3188a52771aa463507312ecf0180976",
      "tree": "f798fa438b8f4a98272d314375acf471c33b40c5",
      "parents": [
        "90153cae7ffd321338f90678a80abd62fb56e877"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Aug 31 17:23:18 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Sep 06 10:19:00 2017 -0700"
      },
      "message": "aaudio: test timestamps\n\nRun for a while, gathering timestamps\nthen print a report.\n\nBug: 63918065\nTest: this is a test\nChange-Id: Ie9ada2d22fc265247a4d6c9645e42cf94caa1c05\n"
    },
    {
      "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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"
    }
  ]
}
