)]}'
{
  "log": [
    {
      "commit": "0926bb0100b5df3439c49777952d48ce53dd9137",
      "tree": "cbf2348465d00a1435ae72fb185ddf82f5ec8a6b",
      "parents": [
        "e5a37268101a2c9d8019938f4e5ac9eec2e52fca",
        "74ce5e8273a1c3f6ea14ab087f66f7d32ad106d7"
      ],
      "author": {
        "name": "android-build-team Robot",
        "email": "android-build-team-robot@google.com",
        "time": "Mon Apr 30 18:26:45 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 30 18:26:45 2018 +0000"
      },
      "message": "Merge \"aaudio: fix loopback test, track magnitude drift\" into pi-dev"
    },
    {
      "commit": "74ce5e8273a1c3f6ea14ab087f66f7d32ad106d7",
      "tree": "06c122440410717114d405889db529f5c2b35ce6",
      "parents": [
        "6f4512914d90430bf135de221897887638c79f25"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Apr 26 16:01:28 2018 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Apr 30 10:06:53 2018 -0700"
      },
      "message": "aaudio: fix loopback test, track magnitude drift\n\nLoopback test was still reporting some glitches.\nThese were false alarms due to:\n  * starting input before output causing an overflow\n  * not waiting for the input to reach equilibrium with the output\n  * detecting slow drift in magnitude as a glitch\n\nI changed the logic for setting up a test\nand track slow changes in magnitude.\nNow the rare glitch seems to be a real glitch.\n\nBug: 78139448\nTest: this is a test\nChange-Id: Id16d7dc59c0f2e040fe1dfb0337e9ed987d4fd02\n"
    },
    {
      "commit": "51f07177574ec2afd19b4390ab64ff8014489a9b",
      "tree": "00df16640bc767122fd6c27808c45b91523b77b0",
      "parents": [
        "6f4512914d90430bf135de221897887638c79f25"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Apr 27 10:18:03 2018 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Apr 27 10:18:03 2018 -0700"
      },
      "message": "aaudio: use fmin and fmax to block Nan\n\nThis prevents NaN from creating noise that does not respond to\nVolume changes.\n\nBug: 69224661\nTest: adb shell aaudio_loopback -c2 -C2 -tm -m2 -s20 -Pl -pl\nChange-Id: I8604f5af42cbf5637f7ea4e975f53db990cdf9de\n"
    },
    {
      "commit": "6f4512914d90430bf135de221897887638c79f25",
      "tree": "162b3ed03eeca5527f25f5032d0c6e53871707a1",
      "parents": [
        "67f280ee7f7ec076cce335c7aa7d3150ae0a3e28",
        "217a14ff1b359762eea5619c12669a68e4db4672"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Apr 25 14:54:49 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 25 14:54:49 2018 +0000"
      },
      "message": "Merge \"aaudio: add unit test for FIFO\" into pi-dev"
    },
    {
      "commit": "ac9d979583c4a10c2ebcf9649d773edf7acce723",
      "tree": "58547ec377102b7b009c96dfc064c15aecfcaff8",
      "parents": [
        "e4fbad4654f0af583bb5f0eb4b7300e3e96eaacf"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Apr 12 10:51:41 2018 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Apr 24 17:52:48 2018 +0000"
      },
      "message": "aaudio example: fix loopback test\n\nSupport both I16 and FLOAT format.\nSilence output at beginning when skipping buffers. Was sometimes spewing noise.\nPrint more information when it fails so we can debug the failure.\nFix getting framesPerBurst from wrong stream.\nTrack when read gets too few frames.\n\nBug: 38268031\nBug: 78139448\nTest: this is a test\nChange-Id: If562856ab2eac607a8bb15da1cc587ae631f7a1d\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": "f7da0b9c64194650d0876eff26e853a3c01cce6f",
      "tree": "c8fc1d3f3da69f169165e9a4ffdd665b7c63e90a",
      "parents": [
        "7b56f7cc71f957f52f79df63f1cf234905d36f65"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Apr 20 17:24:38 2018 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Apr 23 19:42:36 2018 +0000"
      },
      "message": "aaudio: fix FIFO wrapround frame counts\n\nThe number of frames in the second part was incorrect\nwhen it wrapped past the end of the FIFO.\n\nBug: 78139448\nTest: adb shell aaudio_loopback -c2 -C2 -tm -m2 -Pl -pn\nChange-Id: Ib6a22f30f0ee5321444c6d6137d9488943c34f3d\n"
    },
    {
      "commit": "bbd5286e99bbacf9907e2ecf1f7181db17ee6e46",
      "tree": "b523037660dffe33c9aa1d8cb65938b934f16000",
      "parents": [
        "f255369091d48ba7475ee4aae840a8a9c7a15f07"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Apr 13 11:37:42 2018 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Apr 18 10:18:49 2018 -0700"
      },
      "message": "aaudio: teardown stream based on a port handle\n\nNeeded for silencing specific input streams.\nPass AAudioService reference into AAudioServiceEndpointMMAP.\nUse it to find a specific stream by PortHandle then\nstop it and disconnect it.\n\nBug: 72134552\nTest: b/72134552#comment10\nChange-Id: Ibdf242f834c83b47c967c3cc634ed1083b019d4a\n"
    },
    {
      "commit": "55e5eabf96af5a2964bfab1e64d81ad9be9ac975",
      "tree": "46127c87c1c2100d983c4bfbb611ec85bc6067b8",
      "parents": [
        "b8bddf5ece276f01052ad9b706417fd8cfe72d90"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Apr 10 15:16:38 2018 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Apr 13 18:14:20 2018 +0000"
      },
      "message": "aaudio: cleanup logs and add counters to dumpsys\n\nCounters will give us some history for AAudio.\nRemoved some unneeded logs.\nAdded log to help debug intermittent volume problem.\n\nBug: 64310586\nTest: adb shell logcat\nTest: adb shell dumpsys media.aaudio\nChange-Id: I012361bb4d0d0bfdedfe5ceef856b59282c8d3f0\n"
    },
    {
      "commit": "3d786cb59f5acd5484fa4fb968ba2de9dcf283ad",
      "tree": "d993b4be9f42f747a3a180349b1e554ac212732f",
      "parents": [
        "c0959648b4a3d73212cd16c1f03289eadcbacae0"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Apr 09 11:58:09 2018 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Apr 13 08:56:04 2018 -0700"
      },
      "message": "aaudio: convert I16 input to float\n\nThis allows an app that requests a LOW_LATENCY FLOAT INPUT stream\nto get a FAST track when using Legacy mode.\nThis is needed because Legacy AudioRecord does not allow FAST for FLOAT\nstreams.\n\nBug: 38268031\nTest: adb shell input_monitor -m1 -pl -f2\nTest: adb shell input_monitor_callback -m1 -pl -f2\nTest: On Pixel phones you should get actual performanceMode\u003d12\nChange-Id: Ia5879ff4904f50bbb5009a3fc058800e53770710\n"
    },
    {
      "commit": "c0959648b4a3d73212cd16c1f03289eadcbacae0",
      "tree": "3cac28d06bc3966174e779bad7416fc3a535b779",
      "parents": [
        "fe463237ab61459ddc30120962c51fb089d25ec4"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Apr 05 18:11:01 2018 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Apr 12 17:55:26 2018 +0000"
      },
      "message": "aaudio: fix uninitialized var in getBestTimestamp\n\nThe localPosition was used even if it was not set by another\nfunction. Now we only use it if OK.\n\nBug: 77659012\nTest: input_monitor.cpp -m1 -pn\nChange-Id: I10648c5c17d42bb31d83fb14c1bda3ec527a3924\n"
    },
    {
      "commit": "ba9cb1a8d41529d0b0d44d97e88889e2bd96b66b",
      "tree": "0935f8be4a5c1993fa68282b8e2097e61faaa450",
      "parents": [
        "ec84cede0192c5fe0d0b87f1a1865a75e6d14f38"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Apr 09 12:13:14 2018 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Apr 11 19:40:54 2018 +0000"
      },
      "message": "aaudio: use ArgsParser for input callback test\n\nAllow precise configuration using command line arguments.\n\nBug: 38268031\nTest: this is a test\nChange-Id: I85801f308e99647cf58a2a6d474619cd91ca40b1\n"
    },
    {
      "commit": "32c74e9e97c843f56023bf7de30fb6316e01ee1d",
      "tree": "613ebad84a4dfe43658de55dee2087be1c6846fb",
      "parents": [
        "94525c7753f84a68d8f799712653cbd3c5824214",
        "dd574cabe69ac8a1b98b1e51952a93d3e77bb7be"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 11 16:10:26 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 11 16:10:26 2018 +0000"
      },
      "message": "Merge \"aaudio: add format option to example programs\" into pi-dev"
    },
    {
      "commit": "42452c06c6c4d1243497e4032c4a7b55e229a984",
      "tree": "5f1ac2db6e4c845fd232eef42c5f04a9155ff6bd",
      "parents": [
        "79d1ed9b6473f4d094aaa6b53f41a6ba92916e42"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Apr 10 12:43:33 2018 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Apr 10 12:43:33 2018 -0700"
      },
      "message": "aaudio: mark new P symbols as API 28\n\nNew symbols involve SessionID, ContentType, Usage and InputPreset.\n\nFor example AAudioStream_getUsage(),\nand AudioStreamBuilder_setContentType()\n\nBug: 77632550\nTest: Look at auto-docs for new functions.\nChange-Id: If56529bab218c4aeb42022ec02ce8fdaa45795a4\n"
    },
    {
      "commit": "dd574cabe69ac8a1b98b1e51952a93d3e77bb7be",
      "tree": "2e1a4bf30cb43f465f6652134a92fa310d66c239",
      "parents": [
        "79d1ed9b6473f4d094aaa6b53f41a6ba92916e42"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Apr 04 14:41:28 2018 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Apr 05 16:29:01 2018 -0700"
      },
      "message": "aaudio: add format option to example programs\n\nSelect format using -f0, -f1 or -f2.\nAdd support for float format to input_monitor.cpp\n\nBug: 38268031\nTest: these are tests\nChange-Id: Idd7dc6c0cc268126d4ea008bcb49693b73a8f81f\n"
    },
    {
      "commit": "19e990e480245af25ec03ff3a3f53b820b0732cd",
      "tree": "8eb6afdfc9a634c835c6cc0d8b28bd69ffbdd2f2",
      "parents": [
        "ce6c8479c587bf61dfbd7b050752fec54135ba1f"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Mar 22 13:59:34 2018 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Mar 23 21:50:37 2018 +0000"
      },
      "message": "aaudio: improve logging to help debugging\n\nUse __func__ more often.\nShow thread entry and exit.\nLog illegal state transitions.\nRemove some unnecessary logs.\n\nBug: 64310586\nTest: use AAudio then look at the logs\nChange-Id: I2e289698efc897640588ba534b5513ac39b15043\n"
    },
    {
      "commit": "7f68013dd65638b6688d17f53641d2f8f7fc2e09",
      "tree": "eeb8a744a7f07be954d6f945b73f5a0830c6dc6c",
      "parents": [
        "103d423a26d8dd46f6d185395a783cbb376f2837"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Mar 12 14:48:06 2018 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Mar 15 10:20:43 2018 -0700"
      },
      "message": "audio: check for negative sizes in conversion\n\nCheck for negative parameters in AAudioConvert_framesToBytes().\n\nBug: 74548911\nTest: run CTS\nChange-Id: I42903b9c7f710a34a8689431e57c084a9959d0e0\n"
    },
    {
      "commit": "a5891f427bbd57914090f3260430b82f6879ec8d",
      "tree": "2d939303ddaf407112f9c4ac14c7c23334515cb2",
      "parents": [
        "b95a5989190a427a7ea092dc18741af524009bdb"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Mar 12 17:21:11 2018 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Mar 14 15:58:25 2018 -0700"
      },
      "message": "aaudio: call validate() from readFromParcel()\n\nThis is to ensure that validate() is always called\nin the future.\n\nBug: 74558178\nTest: run AAudio CTS\nTest: on Marlin, adb shell write_sine_callback -pl\nChange-Id: I661f3c4e690be2268ca61b80a98bbdf9a7368c1b\n"
    },
    {
      "commit": "cdf22ce8143ac4cc84c890eec49b213fc1db7231",
      "tree": "33b8a94720707c403429aee06d4a4c0490e46b6a",
      "parents": [
        "cb9be9770df37243450ced00daf8b909bb78df6a",
        "4e98efa3b18ba1d72d28358da86f9beb5596588d"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 02 22:46:46 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 02 22:46:46 2018 +0000"
      },
      "message": "Merge \"aaudio_loopback: general cleanup, use dlsym\""
    },
    {
      "commit": "4e98efa3b18ba1d72d28358da86f9beb5596588d",
      "tree": "8c0abcfc7d2140381bb312630ae7ef9a607319eb",
      "parents": [
        "fc74d65b875e254b61d5c01569da31909af2cd3c"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Feb 05 18:41:55 2018 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Mar 02 12:41:36 2018 -0800"
      },
      "message": "aaudio_loopback: general cleanup, use dlsym\n\nCleanup printing.\nUse dlsym so this can run on O.\n\nTest: aaudio_loopback -tl -pl -n2\nChange-Id: I77b931e59cced32b0cc23076f9b156d082e6bf0b\n"
    },
    {
      "commit": "b62c79b1d35ef69f7392464f104b53ef6f9967b0",
      "tree": "4e4835fc680200a896f04fbfe525061021693346",
      "parents": [
        "3859e62d88d3abd8ed5679e56c6e73804ff3c9a4",
        "41f19d8e9471945b358c9ae1dffda60f195d9f5b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 02 19:23:14 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 02 19:23:14 2018 +0000"
      },
      "message": "Merge \"aaudio: convert mono output to stereo\""
    },
    {
      "commit": "41f19d8e9471945b358c9ae1dffda60f195d9f5b",
      "tree": "76116b8a7d57b4f696fa1bda0cbeda63fa208d45",
      "parents": [
        "54486dc5d502e563747ec5744f61af97ea9c9035"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Feb 13 14:59:10 2018 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Mar 01 19:13:02 2018 -0800"
      },
      "message": "aaudio: convert mono output to stereo\n\nMMAP hardware streams are often stereo.\nBut apps often want to output a mono stream.\nSince converting from mono to stereo is easy,\nwe can go ahead and open a stereo hardware stream\nand then just convert the apps mono data to stereo for the HW.\n\nAdd getDeviceChannelCount().\n\nTest:  adb shell write_sine_callback -pl -s10 -c1 -m3\nTest:  adb shell write_sine_callback -pl -s10 -c1 -m3 -x\nChange-Id: I444a38c6f5cd32d1d6113f16aacec68285a1bc82\n"
    },
    {
      "commit": "46ea3359918ad74ea2d0f217e23f1544d693f06e",
      "tree": "416931ae4ecbfbb017cb430868418fe6e533ce12",
      "parents": [
        "8e7bac6f629e59f7d1e88029c229bf623687a102",
        "02fec70d8be286ed2a9d42bd2902288949a9eea3"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 27 23:52:01 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 27 23:52:01 2018 +0000"
      },
      "message": "Merge \"aaudio: set ramp frames based on sample rate\""
    },
    {
      "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": "02fec70d8be286ed2a9d42bd2902288949a9eea3",
      "tree": "eee1be1db723fd4e1877d89a7b2afcb83c70af82",
      "parents": [
        "c2c0aabfef24cbf48cdf6755f8627386971abdd3"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Feb 16 18:25:55 2018 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Feb 27 01:20:25 2018 +0000"
      },
      "message": "aaudio: set ramp frames based on sample rate\n\nNow it will be the same number of msec at any rate.\n\nBug: 68804159\nTest: write_sine_callback -pl -s60\nTest: then change volume. Should be smooth.\nChange-Id: I1f375e5a680198d0f8c6c398b22faf8b092e94fd\n"
    },
    {
      "commit": "ed816010d3e55a5f38c276e7fd3efdc9bb49bd26",
      "tree": "702b529aa63c5eb3dae824667635ab2b9c6ea795",
      "parents": [
        "1bfabb36f5d6f09d87e9d52778b5a1cca9512722"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Feb 06 12:40:50 2018 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Feb 06 17:11:32 2018 -0800"
      },
      "message": "aaudio: fix routing for FAST track\n\nPass correct attribute flags instead of INPUT or OUTPUT flags.\n\nBug: 72880176\nTest: write_sine_callback -pl -c2 -m1\nChange-Id: Ia6b0b01fcc31e649e90568c9baa493f9c4927a3d\n"
    },
    {
      "commit": "58bce947568db8f6dd5e12e6548aff27af26ae96",
      "tree": "39fb5dfdedb0282935232ed4da5b3a07604f9cda",
      "parents": [
        "de2c195a218cc24eaf3a7ced149f7eb723656a97",
        "67fdd894bf7e09a544348a9f8298427bc9b3fe85"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Feb 01 16:59:02 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 01 16:59:02 2018 +0000"
      },
      "message": "Merge \"aaudio: fix sessionId conversion\""
    },
    {
      "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": "6d6f3f6d34aab02774ebf9caf641e97432ae157a",
      "tree": "35b41ff407d391e98ee76ae71f34c2d5b47d8e70",
      "parents": [
        "254d783c0db9d7af6b863ad1819f5c4a543a939d"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Jan 12 17:27:54 2018 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Jan 24 13:16:08 2018 -0800"
      },
      "message": "aaudio examples: add -u -i and -y for attributes\n\nUpdate usage() printout.\n\nTest: this is a test\nChange-Id: I4f7b5b8af26523a7ba09d95bad27f0f131508087\n"
    },
    {
      "commit": "a52b45712f1388aa3abffa00ff383f6708a4afcd",
      "tree": "6152ae2898bdb34fa82ddd049360967e52ed48fd",
      "parents": [
        "5cc83c3b8acc43b760be23a4e3b96fbbb06d8e93",
        "4fa3b94398653e20719c8d26dd75dbbabfbaabe9"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Jan 24 15:23:42 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 24 15:23:42 2018 +0000"
      },
      "message": "Merge \"aaudio: test matrix of state transitions\""
    },
    {
      "commit": "5cc83c3b8acc43b760be23a4e3b96fbbb06d8e93",
      "tree": "81c8578d69173d3e948a938e46d54e8385d254c4",
      "parents": [
        "bb8ad0e6ebf1a74245929720fd6336feda926ea9"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Nov 28 15:43:18 2017 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Jan 24 15:21:34 2018 +0000"
      },
      "message": "aaudio: fix some state transitions\n\nNow requestStop() and requestPause() do the appropriate thing\nbased on state.\nFlush is allowed when OPEN, PAUSED or STOPPED because there might\nbe pre-roll data.\n\nBug: 69810494\nTest: test_various.cpp\nChange-Id: Ie1b306b17734a58fa71b1742bb186482893656b7\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": "34abab103a6eb3fc7417c9e9169ee172b2303952",
      "tree": "df4065ab25ab83d7380715b42ad7c79d0d436873",
      "parents": [
        "fe4e4db4615585fd70a55d52f21c55dd517d2bfa",
        "07be14fb96fc5c106ea2b874faf2b768f468eb8e"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Jan 24 06:26:16 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 24 06:26:16 2018 +0000"
      },
      "message": "Merge \"Revert \"Audio V4: Split system and vendor Audio.h\"\""
    },
    {
      "commit": "07be14fb96fc5c106ea2b874faf2b768f468eb8e",
      "tree": "01cd8f75542d7581505bef8a5b9e2f09790ac0e1",
      "parents": [
        "f8ad7f85e9891b2614338330c75ae9e946fccc5a"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Jan 24 06:14:03 2018 +0000"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Jan 24 06:14:03 2018 +0000"
      },
      "message": "Revert \"Audio V4: Split system and vendor Audio.h\"\n\nThis reverts commit f8ad7f85e9891b2614338330c75ae9e946fccc5a.\n\nReason for revert: Breaks the build of multiple devices\n\nChange-Id: I24f17a0fa0c7ba171c4a3639f890e7f4e42f6b1e\n"
    },
    {
      "commit": "6a784e71ca122347789faa73367877d41831592f",
      "tree": "de25d71706442e18346a5785f4174aba5604454d",
      "parents": [
        "f7a14c051ee9bd5f288963f3c190642e4915250b",
        "f8ad7f85e9891b2614338330c75ae9e946fccc5a"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Jan 24 04:04:48 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 24 04:04:48 2018 +0000"
      },
      "message": "Merge changes from topic \"audio-hal-v4-tmp\"\n\n* changes:\n  Audio V4: Split system and vendor Audio.h\n  Audio V4: Use the framework audio.h instead of the HAL\u0027s\n"
    },
    {
      "commit": "7a4b8ab1bae94697d6d4daadf638d1bd9ca8b81a",
      "tree": "2076e03df781914f45d180f7c5acd9be7a83a578",
      "parents": [
        "b83456d9e3302f0222f7a55820ba0d031a0e0903",
        "eaef9b9c7b3c6c4d4435ce5e32e9fe952a2f69fe"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Jan 22 22:35:42 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 22 22:35:42 2018 +0000"
      },
      "message": "Merge \"aaudio: use AAUDIO_INPUT_PRESET_VOICE_RECOGNITION\""
    },
    {
      "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": "da60340a9e5ce64270f1106239b736296f280df4",
      "tree": "f5184c96a28012d2a56adb33f82fe6b0c7573a66",
      "parents": [
        "205266aacc675dfb7a7f9f985c4ca973163cb59e",
        "9e9a95b347ce2a86ced8b3b12603e05d1411b708"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jan 22 18:16:36 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 22 18:16:36 2018 +0000"
      },
      "message": "Merge \"aaudio: fix race condition in requestStart()\""
    },
    {
      "commit": "f8ad7f85e9891b2614338330c75ae9e946fccc5a",
      "tree": "957d47ddc7419c688dda1d4c1ac3068eda6d894f",
      "parents": [
        "6d7582e9ad858301b3eeff7b187af6c34808cb7e"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Jan 17 15:57:39 2018 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Sat Jan 20 21:39:40 2018 -0800"
      },
      "message": "Audio V4: Split system and vendor Audio.h\n\naudio.h and its dependencies (audio-effect.h, sound_trigger.h...)\nused to be shared between system and vendor code.\n\nThis led to multiple problems:\n\n1) Such sharing contradicts the Treble policy of\nstrict independence of framework and vendor code.\n\n2) When audio.h was changed, every vendor needed to update\nits code in the next release. This meant that audio*.h\nheaders were mostly changed in backward compatible manner.\nNevertheless, for P the HIDL interface and thus the audio.h\ninterface are changed in backward incompatible way.\n(Some enum are becoming 64 bit long).\n\n3) As the headers were common, some API used only by the framework\nneeded to be visible to the vendors (mostly enum values).\n\n4) Treble policy is to support at least one previous HAL version\n\nAs a result the audio*.h headers are now duplicated,\none set for the framework, and one for the vendor.\n\nEach set will evolve independently. After this split,\nthe framework-only APIs will be removed from the vendor headers\nand vice versa.\n\nThe split is implements as such:\n\n + for system code\n\n    - NOT moving the libaudio_system_headers\n      Eg: system/audio.h and system/audio_effects/effect_equalizer.h\n          are still in system/media/audio\n\n    - the legacy audio HAL API that were in libhardware headers\n          are now in libaudiohal_legacy_headers\n      Eg: hardware/audio.h and hardware/audio_effect.h\n          are now in frameworks/av/media/libaudiohal/legacy/\n\n + for vendor code\n\n    - moving libaudio_system_headers and the legacy audio HAL API\n          that were in libhardware_headers in\n          android.hardware.audio.common.legacy@2.0\n      Note that those headers are now versioned, so migrating to a @4.0\n          HIDL HAL will mean changing the legacy dependency too.\n      Eg: system/audio.h, system/audio-effect.h, hardware/audio.h\n          are now in hardware/interfaces/audio/common/2.0/legacy\n\n    - the legacy audio effect HAL API that was in libaudioeffects\n          is now moved in android.hardware.audio.effect.legacy@2.0\n      Eg: audio_effects/effect*.h are now in\n          hardware/interfaces/audio/effect/2.0/legacy\n\n    - the legacy sound trigger HAL API that were in libhardware_headers\n          is now moved in android.hardware.soundtrigger.legacy@2.0\n      Eg: hardware/sound_trigger.h is now in\n          hardware/interfaces/audio/effect/2.0/legacy\n\nlibaudioutil being used by both system and vendor, had\nto be renamed for system to libaudioutil_system.\n\nVendor libs that now depend on the audio.h of a specific\nversion and are not extensively referenced in non google code,\nappend @2.0 to their name.\n\nNote that headers that are not expected to change in the 4.0 HAL are\nleft in all-versions folder to avoid duplication.\nThis is an implementation detail as the versioned libraries export\nthe all-versions headers.\n\nNote that strict vendor-system separation is enforced by the\nbuild-system. The system headers are not available for vendor\nlibs and vice-versa.\n\nNote that this patch is split between numerous git repository (\u003e10),\nall the commits having the same Change-id for searchability.\n\nNote that audio_policy.h is no longer exposed to vendors\nas the legacy audio policy HAL API was never officially supported.\nAs a result the audiopolicy stub implementation has been removed.\n\nTest: compile taimen-userdebug walleye-userdebug\n              sailfish-userdebug marlin-userdebug\n              gce_x86_phone-userdebug gce_x86_phone\n              full-eng aosp_arm aosp_x86-eng\nTest: check that the emulator booted and played audio\nTest: full QA on sailfish-userdebug and taimen-userdebug\nBug: 38184704\nChange-Id: I950f4e0a55613d72e32eba31bd563cb5bafe2d1a\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "6d7582e9ad858301b3eeff7b187af6c34808cb7e",
      "tree": "01cd8f75542d7581505bef8a5b9e2f09790ac0e1",
      "parents": [
        "7588ff418aca63b1dc43a85afc1e86c40dd889a3"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Thu Jan 11 19:28:14 2018 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Sat Jan 20 10:49:56 2018 -0800"
      },
      "message": "Audio V4: Use the framework audio.h instead of the HAL\u0027s\n\nUsing the legacy HAL interface was not needed. Only the system audio\nheader types are used by aaudio.\n\nTest: compile\nBug: 38184704\nChange-Id: I321635ef79732eb20864d1349e6a13911ece8da5\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "9831721434f8e2761bfdc4f4b30717f5efb30e65",
      "tree": "aff4b459f21183fdec12036f7eb70ed2a450401a",
      "parents": [
        "5b6921e785a91e3d2bce5edfbbc0c43890432114",
        "4e1af9fc9c1108d4514e92774f750bcd434dbbcc"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Jan 19 19:08:45 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 19 19:08:45 2018 +0000"
      },
      "message": "Merge changes from topic \"aaudio_session\"\n\n* changes:\n  aaudio: implement sessionId for effects\n  aaudio test: test sessionID for effects\n  aaudio: header for SessionId for effects\n"
    },
    {
      "commit": "4e1af9fc9c1108d4514e92774f750bcd434dbbcc",
      "tree": "03dc781c49ae6b37c4661c591ece2c5a4eed8cfe",
      "parents": [
        "a11f9357196db29e6f8f05b91334524de4f3207e"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Jan 03 15:54:35 2018 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Jan 18 19:48:46 2018 -0800"
      },
      "message": "aaudio: implement sessionId for effects\n\nIf a sessionID other than AAUDIO_SESSION_ID_NONE is requested\nthen legacy data path will be forced.\n\nSessionID is implemented for MMAP data path but not used.\nIt is easier to implement it now then try to figure\nit out later.\n\nBug: 33268927\nTest: test_session_id.cpp will be moved to CTS when stable\nChange-Id: I3ea67f57c1cbe24a512980f1352b917ab3cb6387\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": "7e7dcaa9870760c3be5f2db28cd9149043c73fe2",
      "tree": "89fa301496c044e84821f6e3e39a3e151b32aadc",
      "parents": [
        "473bfcf9195f7383a645527e687ea99f96a3e6aa"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Jan 03 15:16:15 2018 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Jan 18 19:43:17 2018 -0800"
      },
      "message": "aaudio: header for SessionId for effects\n\nThe session ID can be associated with a group of audio effects.\nThe effects can be controlled from the Java API.\n\nBug: 33268927\nTest: test_session_id.cpp\nChange-Id: Ifaec4d48e33428221ef4f7dd2c61067554527197\n"
    },
    {
      "commit": "16756f26bef041eec07c04067703df56551a193d",
      "tree": "991db93c696c9adade930fe48ff330a5573a15d6",
      "parents": [
        "6d19eda2abd0a328588dbda8fb8dba0aa0da1b78",
        "ed0a3fefc53ae98880b39e0c1c24378297363a7c"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jan 19 02:40:32 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 19 02:40:32 2018 +0000"
      },
      "message": "Merge \"aaudio: clarify autodocs\""
    },
    {
      "commit": "ed0a3fefc53ae98880b39e0c1c24378297363a7c",
      "tree": "8064e9a8b9dd6f638961fa9d3d68cf82dfc75aac",
      "parents": [
        "87b4679598403fe752f57f1cfca4709ca82e97b8"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Dec 05 14:27:43 2017 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Jan 18 15:03:59 2018 -0800"
      },
      "message": "aaudio: clarify autodocs\n\nThese docs apply to O and P release.\n\nSay POWER_SAVING not supported on input.\nEmphasize that error callback should not stop or close directly.\nFix some incorrect function names in comments.\n\nBug: 62291775\nBug: 72036879\nTest: read the autodocs to see if they make sense\nChange-Id: Id03a7733735b856499dd944eb9e3c1523f8b6650\n"
    },
    {
      "commit": "9e9a95b347ce2a86ced8b3b12603e05d1411b708",
      "tree": "dd37a955d47435239d1224a7e760f8613cba9822",
      "parents": [
        "87b4679598403fe752f57f1cfca4709ca82e97b8"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Jan 18 12:14:15 2018 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Jan 18 12:17:11 2018 -0800"
      },
      "message": "aaudio: fix race condition in requestStart()\n\nSet callback enable flag before starting AudioTrack callback.\n\nBug: 72115512\nTest: Repeat:  adb shell write_sine_callback -pn -s4\nTest: 20 times and make sure framesWritten is advancing.\nChange-Id: I670fde46da0dccf8a6d03478fe2aa8b7ad596a3b\n"
    },
    {
      "commit": "3cf4c180de878a877b1de82404ba3c5537770fd6",
      "tree": "24b13d5cd7bc5bf372dd62d793b00dbd515371e4",
      "parents": [
        "aa50659081021a1708d9692be1c1576a939245b6",
        "a62fb9565d73d9ec9b56da65929afc0f686c696e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 18 01:34:13 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 18 01:34:13 2018 +0000"
      },
      "message": "Merge \"aaudio: fix USAGE, INPUT_PRESET and CONTENT_TYPE\""
    },
    {
      "commit": "87b4679598403fe752f57f1cfca4709ca82e97b8",
      "tree": "78e770eae8097763d8973b6002cd7db1c19a5cef",
      "parents": [
        "349765b13da46c76ee1a8bfc92c4da5e3aa395df",
        "559788963268a0bc1e90e29c423ac78938c96b4a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 17 16:58:36 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 17 16:58:36 2018 +0000"
      },
      "message": "Merge \"aaudio: name threads for easier debugging\""
    },
    {
      "commit": "a62fb9565d73d9ec9b56da65929afc0f686c696e",
      "tree": "f0291746c32af771178c350696f98bbac0f34c1f",
      "parents": [
        "d6be64a3f22be3eceb0d6209c88dcad573c08191"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Jan 16 12:44:06 2018 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Jan 16 17:14:59 2018 -0800"
      },
      "message": "aaudio: fix USAGE, INPUT_PRESET and CONTENT_TYPE\n\nThe attributes were not propagating all the way down for MMAP\nstreams.\n\nBug: 72046612\nBug: 72049948\nTest: adb shell aaudio_loopback -te -pl -n1 -x -X -i6\nChange-Id: I41b592d0c3a9daef5070ad299198c8d6cd890cfc\n"
    },
    {
      "commit": "559788963268a0bc1e90e29c423ac78938c96b4a",
      "tree": "00ef867a4c27b5023d0909788ed7162bfca8f567",
      "parents": [
        "d6be64a3f22be3eceb0d6209c88dcad573c08191"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Jan 11 14:56:09 2018 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Jan 16 16:33:25 2018 -0800"
      },
      "message": "aaudio: name threads for easier debugging\n\nName them \"AAudio_#\" where # is an increasing index.\nFor example AAudio_1, AAudio_2, etc.\n\nAlso name threads that are used for sending timestamps.\n\nTest: run write_sine_callback then dump the threads for that process.\nChange-Id: Ibd8c7be1109f6c15a4601ef154038cdce2e65e11\n"
    },
    {
      "commit": "00a81d11a924e289848525d5c157eab76982eada",
      "tree": "d97bac38d33b3b4b798f7ebec47fd9d9fba750a9",
      "parents": [
        "d6be64a3f22be3eceb0d6209c88dcad573c08191"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Jan 16 13:04:37 2018 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Jan 16 13:06:40 2018 -0800"
      },
      "message": "aaudio: added \"introduced\" to map.txt file\n\nNeeded to keep track of when functions were added to an API.\n\nBug: 68052449\nTest: CTS test_aaudio_attributes.cpp\nChange-Id: I7c325e9ca71ff92550cd743c456745569dd6a40d\n"
    },
    {
      "commit": "d4ccc624201d5c74ff6e14db1b68743b41fe795c",
      "tree": "2f86fcbe969edd3e18a26863f6a5ecbf2b81a8ad",
      "parents": [
        "f9d1b99e6fb1af139604336863f6cb7d3c48510e"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Dec 20 15:32:44 2017 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Jan 11 18:47:47 2018 -0800"
      },
      "message": "aaudio: implement new USAGE, CONTENT_TYPE and INPUT_PRESET\n\nPass these audio attributes to AudioFlinger.\n\nBug: 68052449\nBug: 62104146\nTest: test_attributes.cpp will be moved to CTS when ready\nChange-Id: Ib8804614d95dcf1b85e51ec1f5569892e017a991\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": "361b142aa27326ab5b2563493751c264a4dc7e75",
      "tree": "dcf31f1dc0a909079688351f6464adc685e067d6",
      "parents": [
        "21f6d6cbecf190724b044251576edf6ee6f48364"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Dec 20 14:24:16 2017 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Jan 11 18:18:52 2018 -0800"
      },
      "message": "aaudio: Header USAGE, CONTENT_TYPE and INPUT_PRESET\n\nThese correspond to audio attributes already supported in the Java API.\n\nBug: 68052449\nTest: test_attributes.cpp will be moved to CTS when it is ready\nChange-Id: I29de99b3e815d4de3eca769da9106b792bce80bb\n"
    },
    {
      "commit": "4a764a3b450095cef05b6025a72c3876c95b6a14",
      "tree": "c4dc30b51c91f7f3a90a019598d2dbd438450a68",
      "parents": [
        "e2039fd07f3ab04f8d75caf35665bce2aa0111a1"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Jan 02 14:21:59 2018 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Jan 04 09:59:40 2018 -0800"
      },
      "message": "aaudio_loopback: use WAV files, reject low gain\n\nSave recording in a WAV file instead of a RAW file.\nAdd a test mode that reads a WAV file, for debugging auto-correlation.\nCleanup printed reports.\nDiscard more input buffers at beginning.\n\nTest: this is a test\nChange-Id: Ib5ea63882eda325b02716a448897007a945f7312\n"
    },
    {
      "commit": "e2039fd07f3ab04f8d75caf35665bce2aa0111a1",
      "tree": "51caaeaf6394e3d6b7d3cbc17978139da737eb90",
      "parents": [
        "dde976b4f5794e3eafbda289ace2d644aecc6765",
        "40cbbae84e5b57098c8cacb8ca4c0ff3ec839d51"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Sat Dec 16 19:17:49 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Dec 16 19:17:49 2017 +0000"
      },
      "message": "Merge \"aaudio: fix warning for use after free\""
    },
    {
      "commit": "40cbbae84e5b57098c8cacb8ca4c0ff3ec839d51",
      "tree": "61c7232a7cb01fd0ea11404ab252b534936f5b8b",
      "parents": [
        "ceedc87e48c92e248123b9a9476053456e62e006"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Dec 15 17:19:19 2017 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Dec 15 17:47:45 2017 -0800"
      },
      "message": "aaudio: fix warning for use after free\n\nThe compiler was complaining because a pointer was printed after it was\nfreed. The compiler folks agree this is OK and recommended a technique that\nprevents the warning.\n\nTest: any AAudio program, look at log for close\nChange-Id: I49c005b48edc4a5dcb5c85da2a9e875befc37206\n"
    },
    {
      "commit": "823267338b2bee8c279306c07775feabfc2434a5",
      "tree": "6290eaae534daf3dadd93d8974863ea5b17a50c3",
      "parents": [
        "65f6932447d4c40d986d7c56806dc84ff7ca667b",
        "6428a766411880964e0c6609606d0f814bf5b674"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Sat Dec 16 00:33:20 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Dec 16 00:33:20 2017 +0000"
      },
      "message": "Merge \"Use %d for int32_t\" am: 240201e27b am: 63c04ff2b7\nam: 6428a76641\n\nChange-Id: I8b601680923641d7aa7f7aabed4e072fb77a24e5\n"
    },
    {
      "commit": "6428a766411880964e0c6609606d0f814bf5b674",
      "tree": "4305e1631019249459bdcfe69508e5ac7c6da555",
      "parents": [
        "3169eaa60aa85883f232e878043520ae5bd05e5e",
        "63c04ff2b789c39e52ef6a3813fd95f1197e3541"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Sat Dec 16 00:20:15 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Dec 16 00:20:15 2017 +0000"
      },
      "message": "Merge \"Use %d for int32_t\" am: 240201e27b\nam: 63c04ff2b7\n\nChange-Id: Ie30c55232b8b228fab1de5d827dc1bcf29c0f4a7\n"
    },
    {
      "commit": "0f414de66cda78cd019df9f791cb17889cfc8bca",
      "tree": "1baa4f64921ca64954c8c98f293a14da2bf91d39",
      "parents": [
        "aba76c0dbdf3ef55206c4c97d9a2f4f3d7aa69c2"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Fri Dec 15 13:48:50 2017 -0800"
      },
      "committer": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Fri Dec 15 13:50:25 2017 -0800"
      },
      "message": "Use %d for int32_t\n\nDiscovered by the upcoming compiler update.\n\nTest: build\nChange-Id: I0314ae298bc84fb07fda8736a827642c849afdc9\n"
    },
    {
      "commit": "2ef26a0d04b9cc6cebbda733056e4ac09f738c61",
      "tree": "55daa84143109bd19b36c4093dc254d377081177",
      "parents": [
        "ceedc87e48c92e248123b9a9476053456e62e006",
        "2581ae211554328dff1961b2d722b39d3ff43844"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Dec 13 20:11:49 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 13 20:11:49 2017 +0000"
      },
      "message": "Merge \"aaudio: test calls to requestStop() from the data callback\""
    },
    {
      "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": "0b02f68762ad7f245c63f7dda855ed09b4f7163f",
      "tree": "1dc7299d8748f0a29679e5b09878d918174630c1",
      "parents": [
        "dc634a8b1f3f17ea99f79004830583945a27befd",
        "134f197bf7e2785ed9de336dc8e22e870c2ba6bd"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Dec 13 02:24:23 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 13 02:24:23 2017 +0000"
      },
      "message": "Merge \"aaudio: prevent stop/close from a callback\""
    },
    {
      "commit": "134f197bf7e2785ed9de336dc8e22e870c2ba6bd",
      "tree": "5151b8ba79552400756b29cfe1b6d7f74dcae8f8",
      "parents": [
        "5fb93fa294ee05a25f86312e926b5ca4e0d1d3b2"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Dec 08 13:06:11 2017 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Dec 12 14:29:12 2017 -0800"
      },
      "message": "aaudio: prevent stop/close from a callback\n\nDetect whether AAudioStream_requestStop() is being called\nfrom a data or error callback and return error.\nAlso for start(), pause(), flush() and close().\n\nHonor AAUDIO_CALLBACK_RESULT_STOP in Legacy callback.\n\nBug: 65560631\nBug: 62943389\nBug: 63096718\nTest: test_various.cpp callback_blocker_none and callback_blocker_lowlat\nChange-Id: I29a685cd42910f70d16e23db0f9ec00b72451cfc\n"
    },
    {
      "commit": "ee995399b02c2dc60011f81e5251d24d3a0a79b5",
      "tree": "1805aa1f7860da58c76a8b6f36281982f1f6bca8",
      "parents": [
        "3a5608cf069994725f6e50950f0462e91dcd8c51"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Dec 11 11:44:36 2017 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Dec 12 17:12:01 2017 +0000"
      },
      "message": "aaudio: honor requested device in Legacy mode\n\nWas calling setDeviceId(), which is overwritten by set().\n\nBug: 70512693\nTest: write_sine_callback, see bug for details\nTest: input_monitor, see bug for details\nChange-Id: I484f47e898a0e92a6f88e099a115f3d091c174c2\n"
    },
    {
      "commit": "3a5608cf069994725f6e50950f0462e91dcd8c51",
      "tree": "e4c997219b895f2896951bcd9cbad953fe3bde95",
      "parents": [
        "3b935c6d9ada8fed370106c7741919e68e6e7c39",
        "b922c2ece0015071925bdb9fc84984c9df00aee5"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Dec 04 22:59:02 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Dec 04 22:59:02 2017 +0000"
      },
      "message": "Merge \"Use -Werror in frameworks/av/media/libaaudio/examples.\""
    },
    {
      "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": "ae11d0413cf44e15acef0abb6ca6560f81bc2727",
      "tree": "845aba611e3843ec99f0e63f51d3dc56bcd7bf7e",
      "parents": [
        "b17aec153cbebd44aa96a65b98c29bc0368d59ea",
        "bba0900e3c6314235ae12440ad1cee43f12a57f8"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Dec 01 00:46:18 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 01 00:46:18 2017 +0000"
      },
      "message": "Merge \"aaudio: optimize float to int conversion\""
    },
    {
      "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": "bba0900e3c6314235ae12440ad1cee43f12a57f8",
      "tree": "b68bf1cf4c15e1bb5acde0bb6b98bb168b5fa728",
      "parents": [
        "693cb2bde52b4d73c391c529f1c6bf7a02be9f72"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Nov 29 13:39:44 2017 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Nov 30 14:47:13 2017 -0800"
      },
      "message": "aaudio: optimize float to int conversion\n\nUse new techniques from audio_utils/primitives.h\n\nTest: change volume while running\nTest:     test_linear_ramp.cpp\nTest:     adb shell write_sine_callback -pl -fi -x -s20\nTest:     adb shell write_sine_callback -pl -ff -x -s20\nChange-Id: Ib7dab07f351cf97a8cbda9608091188dec41d04c\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": "b922c2ece0015071925bdb9fc84984c9df00aee5",
      "tree": "0a434aae7a7b4f416e8843823bf28c1a7f859f12",
      "parents": [
        "a9f0a7be854d844412a39538862901ca68797045"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Nov 29 14:00:30 2017 -0800"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Nov 29 14:00:30 2017 -0800"
      },
      "message": "Use -Werror in frameworks/av/media/libaaudio/examples.\n\nBug: 66996870\nTest: build with WITH_TIDY\u003d1\nChange-Id: I758a62b26d3c66727963083fa479b995f6696c87\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": "693cb2bde52b4d73c391c529f1c6bf7a02be9f72",
      "tree": "e90e62f72eed4f7c6cc88d1777abf9a9c17e5cc4",
      "parents": [
        "720e24cfe430e1719c5defb9a1f41a6b63b02eaf",
        "2329638e097622653cb2c4acc145b996e317a38b"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Nov 22 18:16:26 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 22 18:16:26 2017 +0000"
      },
      "message": "Merge \"aaudio: use xruns detected in the service\""
    },
    {
      "commit": "1419b148ff16b819872046065b09a35982f0c392",
      "tree": "b38b5585d1d13cdced71578d59bb548cc03e3edd",
      "parents": [
        "4b18794783da8af04a037680cbde4ba0f1c0bb5b"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Nov 21 19:22:07 2017 -0800"
      },
      "committer": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Nov 22 05:36:24 2017 +0000"
      },
      "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\nExempt-From-Owner-Approval: to fix broken build\nMerged-In: I54962a7fd36a405e54366130b9c0a24e26fe8ebb\n(cherry picked from commit 68326fe017a18957419a81489b67f75831f9a674)\n\nChange-Id: If5804a74ca2c0560debd56407d8d1c1a25e11129\n(cherry picked from commit 9bba7f1734af2a56d30baac6a2df2d3254eb209d)\n"
    },
    {
      "commit": "9bba7f1734af2a56d30baac6a2df2d3254eb209d",
      "tree": "8c876cc972379b13a711d5578ac0e32815de63ea",
      "parents": [
        "899b78c12b25fa381b1d6c90330ce45f758ef28d"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Nov 21 19:22:07 2017 -0800"
      },
      "committer": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Nov 22 03:54:19 2017 +0000"
      },
      "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\nExempt-From-Owner-Approval: to fix broken build\nMerged-In: I54962a7fd36a405e54366130b9c0a24e26fe8ebb\n(cherry picked from commit 68326fe017a18957419a81489b67f75831f9a674)\n\nChange-Id: If5804a74ca2c0560debd56407d8d1c1a25e11129\n"
    },
    {
      "commit": "6da1a2fefc68e63b72daa6565047b7082135c4c1",
      "tree": "da415c19c37f2e06d8a2d6e1999186791a2221b2",
      "parents": [
        "f76bbd32192e5882cdccd09c869ac23fa43f3dda",
        "967abf87fadccb728f0e31586d08822012c3b60b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 21 23:20:29 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 21 23:20:29 2017 +0000"
      },
      "message": "Merge \"aaudio: force underruns in write callback\""
    },
    {
      "commit": "967abf87fadccb728f0e31586d08822012c3b60b",
      "tree": "c2ae6ed15b1656457d5107a2286bca6e5814ab63",
      "parents": [
        "10edfcf70857cc0a22afbbd3fc8f57f0c8a2953a"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Nov 21 10:02:34 2017 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Nov 21 13:47:00 2017 -0800"
      },
      "message": "aaudio: force underruns in write callback\n\nTest AAudioStream_getXRunCount() by sleeping in callback.\n\nBug: 38512417\nTest: write_sine_callback -pl -n1 -s20 -c2 -u\nChange-Id: Ib3fe210b764e4202b70c54a609785de89e52a017\n"
    },
    {
      "commit": "f76bbd32192e5882cdccd09c869ac23fa43f3dda",
      "tree": "35ffbce17cd914723af53f78aa8d1b01e83b034e",
      "parents": [
        "a221a7c81776add538e6cd82cddfa427364beb79",
        "9a9e60097f1ea8828e6d4aa6539e7bac29141afa"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Nov 21 20:26:52 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 21 20:26:52 2017 +0000"
      },
      "message": "Merge \"aaudio: test AAudioStream_setBufferSizeInFrames()\""
    },
    {
      "commit": "2329638e097622653cb2c4acc145b996e317a38b",
      "tree": "d25dccdc184ac7ce8b7aceb227411592ff256484",
      "parents": [
        "10edfcf70857cc0a22afbbd3fc8f57f0c8a2953a"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Nov 20 15:45:11 2017 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Nov 21 10:30:58 2017 -0800"
      },
      "message": "aaudio: use xruns detected in the service\n\nThe service knows when an actual xrun occurs so we pass\nthat value to the client.\n\nBug: 38512417\nTest: write_sine_callback -pl -n1 -s20 -c2 -u\nChange-Id: I9e5ff1edd2e9378957309280162d7cda855f5adb\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": "afd5242aea820b8c7118ff35b3f1b3d5ed71ef19",
      "tree": "babebc3586faaabc05552489c6da12467c0b5197",
      "parents": [
        "ee9ab22ebabab3e3669b38badf8b0a0f504fc3b4",
        "6479d501e85147d2be48bde13a7926da5f0e56f6"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 21 01:18:08 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 21 01:18:08 2017 +0000"
      },
      "message": "Merge \"aaudio: clip bufferSize at top of MMAP code\""
    },
    {
      "commit": "6479d501e85147d2be48bde13a7926da5f0e56f6",
      "tree": "fc8ceb4291751a934f51cc716304298ed9c05526",
      "parents": [
        "10edfcf70857cc0a22afbbd3fc8f57f0c8a2953a"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Nov 20 09:32:52 2017 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Nov 20 14:05:56 2017 -0800"
      },
      "message": "aaudio: clip bufferSize at top of MMAP code\n\nSet size to a reasonable value regardless of the user input.\n\nBug: 69469801\nTest: test_various.cpp\nChange-Id: I6c155383e70959485882c17189388be1c9e6fc8b\n"
    },
    {
      "commit": "9eba210059bb8d8502988fc9fd0cecf223c9114f",
      "tree": "99a70657c29143801e8c95f866dc0d37e71a4d4b",
      "parents": [
        "10edfcf70857cc0a22afbbd3fc8f57f0c8a2953a"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Nov 20 12:25:38 2017 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Nov 20 12:25:38 2017 -0800"
      },
      "message": "aaudio: fix ramp for volume smoothing\n\nIt was using numSamples instead of numFrames.\nSo timing was off.\n\nBug: 68804159\nTest: raise and lower volume without clicking\nTest: test_linear_ramp.cpp\nChange-Id: I18b10dadbc47ab9cbe9c5aefd4e6197c50a0bedc\n"
    },
    {
      "commit": "609babb1b22abc585dd0b6451883e95fab06d9ca",
      "tree": "b053b5f15ee7d89f83af92441c8146c61e555897",
      "parents": [
        "63ca96305e389e4504ab8d89111dc8719d00161f",
        "9c59bc9c37dab612c9d8fda98970c317da1963a3"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Nov 13 20:17:12 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Nov 13 20:17:12 2017 +0000"
      },
      "message": "resolve merge conflicts of 5c4fbd2817 to oc-mr1-dev-plus-aosp\nam: 9c59bc9c37\n\nChange-Id: I2674d0e4b49082d9d068575ce1c5e7b53a5ea01e\n"
    },
    {
      "commit": "4593b04bdad2ae66b22c5d3fb78276b523b7e942",
      "tree": "d855fc3d7505c608fc720474d2af565feb131738",
      "parents": [
        "ea8dd2c787f88e7289ffb8f226237587f95d8a93",
        "79edadcea74151b573d5b973d5a421baee693ec1"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Fri Nov 10 15:29:40 2017 -0800"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Fri Nov 10 15:33:45 2017 -0800"
      },
      "message": "Merge commit \u002779edadcea74151b573d5b973d5a421baee693ec1\u0027 from\noc-mr1-dev-plus-aosp into stage-aosp-master\n\nChange-Id: I04234f284e3117e8343e7c888646400c81f5a131\nMerged-In: Icf228c701afe37dd3c7f00ea9e6fb740b0d450f1\n"
    },
    {
      "commit": "9c59bc9c37dab612c9d8fda98970c317da1963a3",
      "tree": "697df673a323e129c53aeb78a271d7a3423a1889",
      "parents": [
        "6faf7f3111d1bdb26967049075dfff7ab0b70d0d",
        "5c4fbd2817a491fcf2c61f34333476dbf875cfca"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Nov 09 13:52:18 2017 -0800"
      },
      "committer": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Nov 10 07:45:58 2017 +0000"
      },
      "message": "resolve merge conflicts of 5c4fbd2817 to oc-mr1-dev-plus-aosp\n\nTest: I solemnly swear I tested this conflict resolution.\nExempt-From-Owner-Approval: simple merge conflicts\nChange-Id: I32cd6ce0eca9b74b20554f20bcf410d76612c47a\n"
    },
    {
      "commit": "abf85fc9c9f94aba11b7082ccec8597e4b57e9a2",
      "tree": "f70b68e298b9000f4d15b15e2a1ccbab93643df6",
      "parents": [
        "c4defa724e89a62c16176fb9731670f29ea50358"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Nov 09 10:18:04 2017 -0800"
      },
      "committer": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Nov 09 19:59:31 2017 +0000"
      },
      "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\nExempt-From-Owner-Approval: cherry picked from goog\nMerged-In: I54962a7fd36a405e54366130b9c0a24e26fe8ebb\nChange-Id: I54962a7fd36a405e54366130b9c0a24e26fe8ebb\n(cherry picked from commit 68326fe017a18957419a81489b67f75831f9a674)\n"
    },
    {
      "commit": "94d28be1805800764701225fcae696aa11dab93e",
      "tree": "4289abbb305bf2552c5e1d3eb5d117546de11f9d",
      "parents": [
        "002565a3dee1d21f117fca60a37c7d339f724d88"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Nov 08 13:39:31 2017 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Nov 08 13:41:27 2017 -0800"
      },
      "message": "aaudio: Update aaudio_loopback help screen\n\nFix \"-c{inputChannels}\" -- it\u0027s actually for output channels.\nAdd description for \"-m\" options.\nAdd description for \"-x\" option.\n\nTest: builds\nChange-Id: Ib234d1a5eaff75e209041d08f5149f488c1f5867\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": "eecf9adf07c2ef16f94b94a6970756f562404f14",
      "tree": "44257789eb4e9de8aa006b604a049f0942ff5a26",
      "parents": [
        "cd36198080879abfbc94d6ceb4dbd7ce9a100127"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Nov 02 15:41:19 2017 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Nov 02 15:41:19 2017 -0700"
      },
      "message": "aaudio: Update aaudio_loopback usage screen\n\n-- replace \u0027loopback\u0027 with \u0027aaudio_loopback\u0027, since this is how\n   the executable is called;\n\n-- remove \"-f\" argument, as it\u0027s not implemented;\n\n-- in the example, replace \"-b2\" to \"-n2\" (\"-b2\" doesn\u0027t seem correct);\n\n-- brush up text layout.\n\nChange-Id: Ifae87380d0c9378f936f661ad77cb94a944c05fc\nTest: make and run\n"
    },
    {
      "commit": "6392485cb6f83d8cdcdc42786be4879d43470814",
      "tree": "779319eebdfef64121024610c065715047b44677",
      "parents": [
        "ba0a69a6a25428df90b9e864ce16b30b10415397",
        "1a55036ab9c424f1b3f223ac33da918d83dabea8"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Nov 02 04:15:49 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Nov 02 04:15:49 2017 +0000"
      },
      "message": "Merge \"aaudio: fix loss of sync with HW FIFO index\" into oc-mr1-dev\nam: 1a55036ab9\n\nChange-Id: I569320e6fc3ff010b2301ab8cf9036b1f13908ad\n"
    },
    {
      "commit": "999e110dac3783df71e5606be1d86f1b122145c0",
      "tree": "27e8e10ba12fb0515194823d98fe26b1f74c80fc",
      "parents": [
        "73d0374fcb522fc5106c2c8f75d482cbc8a5e1c0"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Oct 26 12:11:47 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Nov 01 15:52:30 2017 -0700"
      },
      "message": "aaudio: fix loss of sync with HW FIFO index\n\nThis fixes a problem with intermittent severe distortion\nand variable latency after restarting a stream.\n\nBug: 68003241\nTest: write_sine_callback -pl -m2 -n2 -s5 -c2 -l100\nMerged-In: Id7418adb86f2869ac74936cfbd365815a0a0e923\nChange-Id: Id7418adb86f2869ac74936cfbd365815a0a0e923\n"
    },
    {
      "commit": "a75fdf5ff87a75a52e5d782d0169ca61fe39e95c",
      "tree": "0e1e51d1152539d1dfa90ac349ae8e7a3ac8fdf9",
      "parents": [
        "1052fb1dc71dbd62f7ff2b2227ed318ca9aea1e0",
        "fbf031e8f197c916ae9c399f42926494ebdeb497"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 01 01:29:52 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 01 01:29:52 2017 +0000"
      },
      "message": "Merge \"aaudio: cleanup logs and comments\""
    },
    {
      "commit": "fbf031e8f197c916ae9c399f42926494ebdeb497",
      "tree": "13578d14ca810aaa7629770b983b81641e0bd90f",
      "parents": [
        "442459bca04f95ef2acd34e3de01f55bd5ede132"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Oct 12 15:58:31 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Oct 31 15:36:38 2017 -0700"
      },
      "message": "aaudio: cleanup logs and comments\n\nThis CL should not change any code behavior except for log text.\nMostly it removes redundant class names from the log.\n\nTest: CTS nativemedia/aaudio\nChange-Id: I6a6d01da080f536d5345f2b0deb32e92ed1e3d47\n"
    },
    {
      "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": "73af62a5ff0577eec6ad1be2b45fc9a15eaba920",
      "tree": "9d24c7c6a4320eb0ec5b9ae34852844ee6e8d989",
      "parents": [
        "442459bca04f95ef2acd34e3de01f55bd5ede132"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Oct 26 12:11:47 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Oct 26 14:03:49 2017 -0700"
      },
      "message": "aaudio: fix loss of sync with HW FIFO index\n\nThis fixes a problem with intermittent severe distortion\nand variable latency after restarting a stream.\n\nBug: 68003241\nTest: write_sine_callback -pl -m2 -n2 -s5 -c2 -l100\nChange-Id: Id7418adb86f2869ac74936cfbd365815a0a0e923\n"
    }
  ],
  "next": "7b8989bfbbc0886861c6f4988fbad668084c4021"
}
