)]}'
{
  "log": [
    {
      "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"
    },
    {
      "commit": "7b8989bfbbc0886861c6f4988fbad668084c4021",
      "tree": "3f6ef85e68e5f8a328ac250469dfaa23ed1f379a",
      "parents": [
        "6cfe5c59f76b52dafa6eb844e5ec37a32fd962dd",
        "67ed9daf8ec94f01801a927b47a05ae61e40bb3e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Oct 26 01:23:31 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 26 01:23:31 2017 +0000"
      },
      "message": "Merge \"aaudio example: loop and add noise blip at start\""
    },
    {
      "commit": "67ed9daf8ec94f01801a927b47a05ae61e40bb3e",
      "tree": "30f8711f820299f22ed4b76782339789f28a8f83",
      "parents": [
        "5b769acf63bb78197c39f9930133c7f79cfdffd2"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Sep 06 16:26:52 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Oct 25 15:54:26 2017 -0700"
      },
      "message": "aaudio example: loop and add noise blip at start\n\nLoop while starting and stopping or pausing/flushing.\nCheck framesWritten - framesRead.\n\nBlip so we can tell if the beginning of the sound was cut off.\nAdd -t option for the high pitched prefix tone.\n\nTest: this is a test\nChange-Id: I2a642be67f4e80caad015254d006a0153b46e3f7\n"
    },
    {
      "commit": "29ca1b3eeac1eef316a283345f2e479f0a50f96e",
      "tree": "0aa8220363aba637abbd8e0924b0ee615d2b6ebc",
      "parents": [
        "38cefbe16a44aacb365af0aa3a5e2e9820ca1575"
      ],
      "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": "Wed Oct 25 01:26:58 2017 +0000"
      },
      "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\nMerged-In: Icf228c701afe37dd3c7f00ea9e6fb740b0d450f1\nExempt-From-Owner-Approval: simple backport\n(cherry picked from commit 0230b1ac4ae8833016f96cb7fe1eebf7efec26ef)\n"
    },
    {
      "commit": "0230b1ac4ae8833016f96cb7fe1eebf7efec26ef",
      "tree": "77a168f9388c7bd3bfe04813dd2e2872579e35dd",
      "parents": [
        "00c05a502837d834de257623980b5ea1b849e945"
      ],
      "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 19:27:42 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\nMerged-In: Icf228c701afe37dd3c7f00ea9e6fb740b0d450f1\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": "eeff0cf82433a151b59e87d695b2189e7ff0858d",
      "tree": "71bf6388af3695abe528da4a89a0fbd061fc499b",
      "parents": [
        "bab4b47efbd4bdf7a816c704227a4aba1df4f3bb",
        "bc4845eddc182d4e6b21c6906917f8416034c9ca"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Oct 17 22:02:31 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 17 22:02:31 2017 +0000"
      },
      "message": "Merge \"aaudio test: add test of improper handling of disconnect\""
    },
    {
      "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": "02cc0ecc732a33a33570ec490c44a686354c512b",
      "tree": "e051072cfa8de26a855a12c577bfc22a56cbae39",
      "parents": [
        "250cbc71e22b20c2a2b16f7225d8e8856d666a48",
        "58fc59b91c5a526c580ca24f74389f500ab2346d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Oct 14 22:58:58 2017 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Oct 15 06:01:21 2017 +0000"
      },
      "message": "resolve merge conflicts of 58fc59b91c to oc-mr1-dev-plus-aosp\n\nTest: I solemnly swear I tested this conflict resolution.\nExempt-From-Owner-Approval: weekend merge conflict resolution\nChange-Id: I70002ccad145f7b5fa4854d6aa192322b07849e9\n"
    },
    {
      "commit": "5fa7dcf26a5bec668532e086a973683edfb657a8",
      "tree": "7092f03ca491432729dcd2be0f1c1cfad2611932",
      "parents": [
        "3ccef7847f0e5174f045c85227b577abf08e02cc",
        "fe4ab105dad9fdbc23e9f681e0d342e892a74b18"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Sun Oct 15 03:06:50 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sun Oct 15 03:06:50 2017 +0000"
      },
      "message": "Merge \"Add missing includes.\"\nam: fe4ab105da\n\nChange-Id: Ib95769338491b8cd3f5b1640a7839dfaff301da0\n"
    },
    {
      "commit": "cb2e7fb2a42542c3406678c4fd4ccfab9ceb8748",
      "tree": "6705febfb1f64fdb8ca5659998d919dccb175326",
      "parents": [
        "16f2c1559c5722a6cd69fef3c17dc5756ba73fe6"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Oct 11 12:43:41 2017 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Oct 13 18:43:30 2017 +0000"
      },
      "message": "Add missing includes.\n\nTest: mma\nBug: None\nExempt-From-Owner-Approval: trivial cleanup\nMerged-In: I97b9e5e1b6e8b3126a8668460a8c99e4ef1a907d\nChange-Id: I97b9e5e1b6e8b3126a8668460a8c99e4ef1a907d\n"
    },
    {
      "commit": "36967fb1a52f44cef9b5bdcca0f646aa136e285a",
      "tree": "8e3fd54b0c0cc9a55cd0f1c80f17698a0bca47b2",
      "parents": [
        "3d762515b88c266f6be7d8f05c83517960dbc92f"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Oct 11 12:43:41 2017 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Oct 11 17:19:33 2017 -0700"
      },
      "message": "Add missing includes.\n\nTest: mma\nBug: None\nChange-Id: I97b9e5e1b6e8b3126a8668460a8c99e4ef1a907d\n"
    },
    {
      "commit": "e474bc188186007964b532bd99311a933be22832",
      "tree": "a156185ffda69c4ede19526424982fe23125bd14",
      "parents": [
        "dddb4326c090fa8ea37168d861eb11cd3a66e0c9",
        "d0a23e619a6b5995612e4865749098b04ae591d1"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Sep 15 23:01:32 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 15 23:01:32 2017 +0000"
      },
      "message": "aaudio: keep track of streams using strong pointers am: 523b3047af\nam: d0a23e619a\n\nChange-Id: I86bf56dd51fe0a59ebb920fbf49e1907818b6c30\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": "5e44deb3fa65eb3dd7c354d5b794240f8e70a88d",
      "tree": "9ce6e537042bedc3570f0ace4ee2d7a4381c2cec",
      "parents": [
        "49e290da74f583bc9c7d14a733414200fe480580",
        "0b97f851d03999fdd19c13f2b0afa0a441ec3d5e"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Sep 14 04:15:04 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Sep 14 04:15:04 2017 +0000"
      },
      "message": "Merge \"aaudio: cleaned up PlayerBase implementation\" into oc-mr1-dev am: a39b3ba3ad\nam: 0b97f851d0\n\nChange-Id: I3b56f7eb66c201371de9af495fad8bf3b8310300\n"
    },
    {
      "commit": "8a8a9e5d91c8cc110b9916982f4c5242efca33e3",
      "tree": "9ef74bc0ce163de8f38837b27df4410248087772",
      "parents": [
        "ee5201b4d9115cc7ac282155573e6354cc9c6819"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Sep 12 16:25:15 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Sep 13 14:41:46 2017 -0700"
      },
      "message": "aaudio: cleaned up PlayerBase implementation\n\nSimplify registration. Reduce use of virtual methods.\n\nThis CL, plus some CLs in AudioManager, should fix\ncrashes involving RefBase::decStrong\n\nBug: 65450109\nTest: CTS or \"write_sine_callback -m2 -pl\"\nChange-Id: Ie1decd20f8d44bdefb0faf92e6b74de4f72e86bd\n"
    },
    {
      "commit": "010d9bf8116af24e014beae7dbcfce947faf95fc",
      "tree": "e6baa8eb85d14719cd8961b4eb76b894d740ac0e",
      "parents": [
        "980796c31801cadefaf59259fd176b19c5b830d9"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jun 15 13:34:18 2017 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Sep 12 14:29:58 2017 -0700"
      },
      "message": "Remove AAudioTesting.h from headers to be exported to NDK\n\nbut include the associated names in the global symbol export list, so\nthat apps that receive AAudioTesting.h outside of NDK can access the\nsymbols without dlsym().\n\nTest: builds OK\nChange-Id: If68f35145d68f359ebb7995ffcf9c9b8f9be6eb1\n(cherry picked from commit 4257fd9aba5b29475e6b725c53d03fabdffdfffd)\n"
    },
    {
      "commit": "71ce897742a8cd0fbeb0bfc5b6580890e6faeb69",
      "tree": "170220b45b1e44a8ca2497e13bd2e8e5d217531f",
      "parents": [
        "90445b639c072f2b9c139e130d409158f6c41ba1",
        "50c9e990f5005e11df1eb050bbf09e7126128fef"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Sep 11 22:44:32 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Sep 11 22:44:32 2017 +0000"
      },
      "message": "Merge \"aaudio: prevent noise upon disconnect\" into oc-mr1-dev am: aa488ac2ca\nam: 50c9e990f5\n\nChange-Id: I52f3a3764f2772061a3e4b72690a364d243ac247\n"
    },
    {
      "commit": "2d5ba532cc80b3408b9eb5d47d3144bf93ece8cd",
      "tree": "c5ec7c28e896560f742793162604ac9e3b4a518f",
      "parents": [
        "c75d97f20843388b9084561635996a01a53d0c0f"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Sep 06 14:36:11 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Sep 11 12:20:56 2017 -0700"
      },
      "message": "aaudio: prevent noise upon disconnect\n\nAlso clean up the state machine handling in the data callback.\nPrevent error callback sometimes being called twice for the same error.\n\nBug: 63342351\nBug: 63087953\nTest: add sleep(2) to write_sine_callback.cpp before the requestStop()\nChange-Id: I27737bcb0371052741f50bda9f65c5994ccf6fd9\n"
    }
  ],
  "next": "c3efae1003caf9065e1e120672b44850cd36a0bd"
}
