)]}'
{
  "log": [
    {
      "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"
    },
    {
      "commit": "c3efae1003caf9065e1e120672b44850cd36a0bd",
      "tree": "9f9a13beacb2f6f81d3147b1442dc8f09fbfe205",
      "parents": [
        "8ec8c3898a3fd4840f12ae48cabf7c22b2de3eae",
        "331aa6d5c9ba3cce65f22e1c12483320a694d4c3"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Sat Sep 09 07:06:22 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Sep 09 07:06:22 2017 +0000"
      },
      "message": "aaudio: fix return code from getTimestamp() am: c75d97f208\nam: 331aa6d5c9\n\nChange-Id: I8845b271acbee794c4e679d8ce485e5d89a9ce30\n"
    },
    {
      "commit": "8ec8c3898a3fd4840f12ae48cabf7c22b2de3eae",
      "tree": "87af358d56cb62a3cfd059bb85d983fa64c6bd73",
      "parents": [
        "ab2f3eb37bd517b7d0126791c0f8fb3e6f509916",
        "5badc8c1114c1d3a2934813297ab31f6e6ad5e3f"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Sat Sep 09 04:18:10 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Sep 09 04:18:10 2017 +0000"
      },
      "message": "Merge \"aaudio: fix problems with PlayerBase and ref counting\" into oc-mr1-dev am: e0de1cdc1e\nam: 5badc8c111\n\nChange-Id: I098386d047e5122febaf4da869dbd2345ba560a3\n"
    },
    {
      "commit": "c75d97f20843388b9084561635996a01a53d0c0f",
      "tree": "2830ecc2de864ef496f7bbbc507a5f144839732a",
      "parents": [
        "e0de1cdc1ebe4f43ac5ba4273d51b368901c87de"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Sep 08 15:48:36 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Sat Sep 09 04:17:53 2017 +0000"
      },
      "message": "aaudio: fix return code from getTimestamp()\n\nShould be AAUDIO_ERROR_INVALID_STATE if no timestamp available.\n\nBug: 65447871\nTest: test_timestamps.cpp should only print AAUDIO_ERROR_INVALID_STATE\nChange-Id: Id9e211ef8fce078514f4348a434e0c003372369c\n"
    },
    {
      "commit": "965650e5c36f39cb5e6d780a22ff711fbf5a37f5",
      "tree": "95b4d26ce9b2f0590e59ddeeafd9d020db06b652",
      "parents": [
        "fbe5bd5d97cdeee6f4982a7db0db42311433aacd"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Sep 07 21:00:09 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Sep 08 16:24:17 2017 -0700"
      },
      "message": "aaudio: fix problems with PlayerBase and ref counting\n\nCTS test was crashing because of a multiple inheritance\nproblem involving PlayerBase.\nWe now implement separate PlayerBase class that sits between\nAudioStream and the system.\n\nBug: 65450109\nTest: CTS nativemedia/aaudio\nChange-Id: I424663acc1eeacc9544769991495cb48f4110359\n"
    },
    {
      "commit": "b8ba103f7fd4a2695d20463689d898ddf5431dac",
      "tree": "e4025dced52bfff1c9bac23bdefd8fdcbebd84da",
      "parents": [
        "a7eba9bb298643b09b4d5f78ebea1c55e2365ad8",
        "3f1e4784c798418e0f2d75b77b5e458c863b6c20"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Sep 07 16:24:52 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Sep 07 16:24:52 2017 +0000"
      },
      "message": "Merge changes from topic \"aaudio_timestamps\" into oc-mr1-dev am: cc84034676\nam: 3f1e4784c7\n\nChange-Id: I189a652c143cab28d01353d6cf451878e36b9bfc\n"
    },
    {
      "commit": "bcc3674648bc6f554d89a2a5d7721ed41c53f83b",
      "tree": "ae3f8fcecce7f06b44088ff4c8adf3248f287f4b",
      "parents": [
        "7328a80ffc83729cc6252c79e0851a31af59c653"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Aug 31 17:24:51 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Sep 06 17:21:34 2017 -0700"
      },
      "message": "aaudio: fix timestamps and underruns\n\nStart the client after we get valid timing data from the server.\nThat can take a while because of the long cold start times.\nThe client is synced with the current position of the service.\nNow the client can start clean with no underruns.\n\nBug: 63918065\nTest: test_timestamps.cpp\nChange-Id: I5d01eb844e4b14cd5477d56ea1dd9e309abc1c52\n"
    },
    {
      "commit": "7328a80ffc83729cc6252c79e0851a31af59c653",
      "tree": "62c8ae222700101931459a8ee921a4c016d34871",
      "parents": [
        "187dcd4eeaeace78665dafcee6acb074ef390545"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Aug 30 09:29:48 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Sep 06 17:08:19 2017 -0700"
      },
      "message": "aaudio: prevent retrograde motion in Legacy timestamps\n\nUse MonotonicCounter for timestamp position.\n\nBug: 63918065\nTest: write_sine_callback.cpp and test_timestamps.cpp\nChange-Id: Iea58384e2d96adcfad586e8c522024baaecccb8c\n"
    },
    {
      "commit": "187dcd4eeaeace78665dafcee6acb074ef390545",
      "tree": "01ed91d32634e648d06b059da4f9dda126620a44",
      "parents": [
        "cda5c070b3188a52771aa463507312ecf0180976"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Aug 29 09:04:35 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Sep 06 16:42:34 2017 -0700"
      },
      "message": "aaudio example: print timestamps during callbacks.\n\nBug: 63918065\nTest: this is a test\nChange-Id: Id25dd36764761583986d3ce29f7d82032ec4539f\n"
    },
    {
      "commit": "cda5c070b3188a52771aa463507312ecf0180976",
      "tree": "f798fa438b8f4a98272d314375acf471c33b40c5",
      "parents": [
        "90153cae7ffd321338f90678a80abd62fb56e877"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Aug 31 17:23:18 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Sep 06 10:19:00 2017 -0700"
      },
      "message": "aaudio: test timestamps\n\nRun for a while, gathering timestamps\nthen print a report.\n\nBug: 63918065\nTest: this is a test\nChange-Id: Ie9ada2d22fc265247a4d6c9645e42cf94caa1c05\n"
    },
    {
      "commit": "f24d95960d85c891fc40db6f1e9644385efb4eb3",
      "tree": "79b1a8d807f48b5ae473db1058cdf4a1f48d3df6",
      "parents": [
        "59b54495e46af87450bea1b8e44e9a01dab04790",
        "d7c0f9f5bf83a2e45308b70643ba7785122b8c7f"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Sep 01 23:25:09 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 01 23:25:09 2017 +0000"
      },
      "message": "Merge \"aaudio examples: handle disconnect in write_sine_callback\" into oc-mr1-dev am: e185203e55\nam: d7c0f9f5bf\n\nChange-Id: I9a32952df8fa0dafa3d15c9c514b6e10f9e1eb44\n"
    },
    {
      "commit": "0b8529fbacaa35634ac24bb62c5890cddcb623b6",
      "tree": "f2ae5de5ae80bb6f69b929172804410e3335abf8",
      "parents": [
        "f238bd3c57632b7f4eeb6b1a6a9542058e911a5b",
        "8cf3a0788df2ee184b498086b1b8da322eeadcca"
      ],
      "author": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Fri Sep 01 23:07:08 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 01 23:07:08 2017 +0000"
      },
      "message": "Merge \"Generate the IPlayer interface with AIDL.\""
    },
    {
      "commit": "7a61a3ae540748164068683cadacaea5ed225d68",
      "tree": "3bd852fe12b990b9dafa69409c87d94d0f410a01",
      "parents": [
        "3b224af571e8e70ef643a36e144e7427857d271d"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Jul 10 11:53:09 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Sep 01 11:33:03 2017 -0700"
      },
      "message": "aaudio examples: handle disconnect in write_sine_callback\n\nAutomatically reopen the stream if we get disconnected.\nAdd a futex based signaling class so that the error callback can\nimmediately inform a waiting thread.\n\nThis can be used to prevent the system from playing an unpleasant sound\nafter the stream is disconnected.\n\nBug: 63342351\nTest: plug and unplug headphones while running write_sine_callback\nChange-Id: I3ea4fb24106156a29d2f302f3eb614f25f1b758a\n"
    },
    {
      "commit": "8cf3a0788df2ee184b498086b1b8da322eeadcca",
      "tree": "1bd36129bbd4afa491689deca23977dbf30930f6",
      "parents": [
        "a5ec8b0ec9c94fd9474fae1d1d1dc798ae6c4d2d"
      ],
      "author": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Wed Aug 09 09:01:33 2017 -0700"
      },
      "committer": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Fri Sep 01 10:14:30 2017 -0700"
      },
      "message": "Generate the IPlayer interface with AIDL.\n\nThis removes the manually rolled IPlayer implementation and instead uses\nan aidl generated implementation. The IPlayer aidl file is moved from\nframeworks/base/.\n\nTest: run cts --module CtsMediaTestCases\nBug: 64223827\nChange-Id: Ia609f7ba1cc6f71ce919d6174dd8b5e0e1b05575\n"
    },
    {
      "commit": "9bdcfd9aa56bf3bfeec03baa053a684663cc799f",
      "tree": "9dea412d2e7fce055e9d978c6489e19d21f28500",
      "parents": [
        "2d6bb6e3c389282134052c6521eba73bae2071d1",
        "9bbb27dd63f825f7831355db4d5e87cd22d48f8e"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Aug 29 21:02:45 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Aug 29 21:02:45 2017 +0000"
      },
      "message": "aaudio examples:  Add deviceId option to examples am: e008d02aee\nam: 9bbb27dd63\n\nChange-Id: Ib299b433df5b3c7308bca290dabdbcc2f92a2008\n"
    },
    {
      "commit": "e008d02aee6667ecafb44bf84eeb1675cb07dfef",
      "tree": "680583a71a615612d96f67ded945cb7f77fcd96f",
      "parents": [
        "faf18c58baf4db501c9707a30fd811a4c9386a26"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Aug 23 12:56:15 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Aug 29 09:55:56 2017 -0700"
      },
      "message": "aaudio examples:  Add deviceId option to examples\n\nNote that this uses the -d option, which used to be for durationSeconds.\nWe now use the -s option for seconds.\n\nBug: 64981153\nTest: this is a test\nChange-Id: I9789a1f520dc93bfb26143582dacb9619650abf7\n"
    },
    {
      "commit": "77964b915ca37c268fbb686a26da6b7417291e41",
      "tree": "e0b7e4decaa64ac21b654a150f88928a2851f3ff",
      "parents": [
        "032d22e18a59941c9a03802a126a9577ab5d193b",
        "12d8c65adac8af264b839e691d51892116771476"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Aug 28 23:27:32 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Aug 28 23:27:32 2017 +0000"
      },
      "message": "Merge \"aaudio: fix hang in client when audioserver dies\" into oc-mr1-dev am: 35fcdb6a65\nam: 12d8c65ada\n\nChange-Id: I75539ee38a415265e1eb181e62aba1aeaf49132b\n"
    },
    {
      "commit": "2bc7c1838703993e126bfe9a21fee053b6c0ab67",
      "tree": "1de62456a6e61f35ca0d3d63947dc5a8f064cbfc",
      "parents": [
        "7124c1985b535a7862cd8f2706386a2a0ba676b2"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Aug 28 11:45:01 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Aug 28 12:55:54 2017 -0700"
      },
      "message": "aaudio: fix hang in client when audioserver dies\n\nFix timeout detection so that callback thread can die.\nPrevent AAudioBinderClient singleton from getting deleted,\nwhich caused a subsequent lock on a dead object to hang.\n\nBug: 64988439\nTest: \"write_sine -m2 -pl\" and \"adb shell killall audioserver\"\nChange-Id: I044bce385b66e69007d1997f051c9d6c042b7871\n"
    },
    {
      "commit": "963a7549ecaffad520b44d67889bacb8cd4bc34f",
      "tree": "79237488712cefece339a64a040345618dacf55a",
      "parents": [
        "e598e9986a7a7eff08d18c12138620de46c5c91c",
        "e9afda02db4ee9b6bc3a66eff31a6e7e71d31188"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Aug 25 21:33:03 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Aug 25 21:33:03 2017 +0000"
      },
      "message": "Merge \"aaudio: fix returned performanceMode for Legacy\" into oc-mr1-dev am: c35e23e508\nam: e9afda02db\n\nChange-Id: Ic6f0c8bc90726d9718deb74d727d06fc57805f3f\n"
    },
    {
      "commit": "09c27cab917f2f41dd58aececc3200b097fedde8",
      "tree": "9bd40d986cd0cc0cdb5d5b701abbb05013e56439",
      "parents": [
        "05e712d3be03291627eb40e9c7f6c08a9874bd23"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Aug 24 22:12:56 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Aug 25 11:06:58 2017 -0700"
      },
      "message": "aaudio: fix returned performanceMode for Legacy\n\nAAudio was setting the stream to PERFORMANCE_MODE_NONE\nif we got the FAST mixer but did not get the RAW flag.\nWe now consider FAST flag by itself to be LOW_LATENCY.\n\nBug: 63004643\nTest: see bug for repro case using NativeOboe app\nChange-Id: Id4643d20926a8e983cd28408f70e176976c02195\n"
    },
    {
      "commit": "39f02ddfbfd9313370d862a6c4727826379a319a",
      "tree": "aa5c61a50fff59d92db99619edd67b31e9d938c3",
      "parents": [
        "ee079fe295c41f89c2ac6316e99ee10847fb78fd"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Aug 04 09:13:31 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Aug 24 14:59:25 2017 -0700"
      },
      "message": "aaudio: fix EXCLUSIVE mode interfering with SHARED\n\nThe MMAP endpoints were not tracked by the EndpointManager\nso it could not broker EXCLUSIVE access. To fix this the MMAP stream\nwas refactored to use a per-client stream and a per-device endpoint.\n\nCleanup close() of MMAP stream.\nAdd AAudioServiceEndpointShared.cpp.\nExtract AAudioServiceEndpointMMAP from AAudioServiceStreamMMAP.\nTrack MMAP endpoints so we can manage EXCLUSIVE and SHARED access.\n\nBug: 64494572\nBug: 64310586\nTest: see bug, use write_sine to play a shared stream and a excl stream\nChange-Id: I5053193abfd9b8a69a2f7e1110739d65e2af5d64\nMerged-In: I5053193abfd9b8a69a2f7e1110739d65e2af5d64\n"
    },
    {
      "commit": "15f7cab18eb12870545734588b12d873d0fe5d84",
      "tree": "9757be2cd5320b6d669a94bea59e744e3a766525",
      "parents": [
        "13e4dad5f0eafbe1c46fcbde6da9b37fcd57e422"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Aug 04 09:13:31 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Aug 24 11:31:44 2017 -0700"
      },
      "message": "aaudio: fix EXCLUSIVE mode interfering with SHARED\n\nThe MMAP endpoints were not tracked by the EndpointManager\nso it could not broker EXCLUSIVE access. To fix this the MMAP stream\nwas refactored to use a per-client stream and a per-device endpoint.\n\nCleanup close() of MMAP stream.\nAdd AAudioServiceEndpointShared.cpp.\nExtract AAudioServiceEndpointMMAP from AAudioServiceStreamMMAP.\nTrack MMAP endpoints so we can manage EXCLUSIVE and SHARED access.\n\nBug: 64494572\nBug: 64310586\nTest: see bug, use write_sine to play a shared stream and a excl stream\nChange-Id: I5053193abfd9b8a69a2f7e1110739d65e2af5d64\n"
    },
    {
      "commit": "703ddd9df5c664a4bc2aac4c848fd89dc3b26f1f",
      "tree": "20abaa73b545d1b760ea9784dd88ade1f7faef91",
      "parents": [
        "42aaf4437223bf51f0730c7a8c40698b30c65b9b",
        "e6cef0ec624e12874966fd1cfa2c0642b5a89d0b"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Aug 17 16:01:52 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Aug 17 16:01:52 2017 +0000"
      },
      "message": "Merge \"aaudio: prevent memory leak from double configure\" into oc-mr1-dev am: 8a37a466dc\nam: e6cef0ec62\n\nChange-Id: I60fbfb58f014f1addf3893b49d62d3a090276ace\n"
    },
    {
      "commit": "99306c80f061e4c11f05c21a19bfab6eac01c529",
      "tree": "4c9bceacfa5110d378351fe9cfd732b805808118",
      "parents": [
        "f4eb56ca4eb80124b344a8c6f56c4d1495014c31"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Aug 14 12:38:58 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Aug 16 09:57:49 2017 -0700"
      },
      "message": "aaudio: prevent memory leak from double configure\n\nPrevent AudioEndpoint from being configure()d twice.\nCheck return value of AudioEndpoint.configure().\nPrevent AudioStreamInternal from being open()ed twice.\n\nBug: 64522125\nTest: adb shell dumpsys media.audio_flinger --unreachable\nChange-Id: I3ae07af5610fd1f9e539f884923f781eefcd645f\n"
    },
    {
      "commit": "3e1842c3b2e4d2a60554a3522a90f0b8dca329f3",
      "tree": "9a9a4cd179fad99f593911a01d28e6cb7f2c178e",
      "parents": [
        "847f284bedfabd7971f470619bc3aa5728c45983",
        "c2cf01efdcbc5dfcb4ff221b6dfe674759445cbc"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Aug 11 00:01:55 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Aug 11 00:01:55 2017 +0000"
      },
      "message": "Merge \"aaudio: deleted FifoBuffers to fix memory leak\" into oc-mr1-dev am: 39ebbc5925\nam: c2cf01efdc\n\nChange-Id: I16b24119e17cb1e9a695df8d7f7920b56d05849e\n"
    },
    {
      "commit": "39ebbc59252e0d4450ff670d93093066bab15a88",
      "tree": "61cf51499699a0aed9a5a1ca2cace3302ec817c0",
      "parents": [
        "840f6990fb01d048ebae9036e9f0dbf12b76d4cb",
        "4a8d260f776a3c37908ff49d8baae12b3b1a1f46"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Aug 10 23:50:49 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 10 23:50:49 2017 +0000"
      },
      "message": "Merge \"aaudio: deleted FifoBuffers to fix memory leak\" into oc-mr1-dev"
    },
    {
      "commit": "3173b6f66ed39195d1071f3d13f0e6a317e61e82",
      "tree": "9d4b56cb13364858bbc39ac6bf20271c3a1b6e3a",
      "parents": [
        "38d841eafaeb1237e4060d1ff461b42827d8dbe6",
        "37417526c943ed17405177790e24f381d51492d6"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Aug 10 14:32:18 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Aug 10 14:32:18 2017 +0000"
      },
      "message": "aaudio: fix ownership problems with file descriptors\nam: 37417526c9\n\nChange-Id: I7ab11dc9f697394656333f71d12e9deac1f8ecd4\n"
    },
    {
      "commit": "37417526c943ed17405177790e24f381d51492d6",
      "tree": "3f443cc772ae925970e992987f2ed8a8569604a4",
      "parents": [
        "5d6cc7d118a7e91d4fdd3f9dad086cfd1129e4ca"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Aug 08 13:20:45 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Aug 09 20:59:27 2017 -0700"
      },
      "message": "aaudio: fix ownership problems with file descriptors\n\nUse unique_fd to track file descriptors.\nFix extra close of file descriptor in SharedMemoryParcelable.cpp.\nThis bug was causing unrelated file descriptors to be closed!\n\nBug: 64311216\nTest: write_sine.cpp, FD should survive aaudio close\nChange-Id: I4f38c83510a49ea22b79b96d970ee48153417249\nMerged-In: I4f38c83510a49ea22b79b96d970ee48153417249\n"
    },
    {
      "commit": "1389cc47fc04ae8715e9a5b6ed48cd2131b4ad21",
      "tree": "bf1ca351b317058f2389cec5efabcb6c48d9808f",
      "parents": [
        "d3643f0f75085115d365023237ed5fd8da24a8ef",
        "e1ca8625079c30c97b25135d6595a60b902070bc"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Aug 10 03:41:02 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Aug 10 03:41:02 2017 +0000"
      },
      "message": "Merge \"aaudio: fix ownership problems with file descriptors\" into oc-mr1-dev am: c9f2e060b0\nam: e1ca862507\n\nChange-Id: I0185a7c824c8e5e61adb5f4da17617721eac2ca7\n"
    },
    {
      "commit": "e32eb6dc4c087daa9b2467f97cccc0a53283ebcb",
      "tree": "94b787277ec84cffcb392c241155d6a8751763cf",
      "parents": [
        "2f1bc21fba397242af2510f6d31b4af73c44d1ef",
        "ff6900d8f991aac0b67b625f8a1d4d0461b4c50e"
      ],
      "author": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Thu Aug 10 00:34:08 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 10 00:34:08 2017 +0000"
      },
      "message": "Merge \"Generate IAudioRecord with AIDL.\""
    },
    {
      "commit": "4a8d260f776a3c37908ff49d8baae12b3b1a1f46",
      "tree": "9768f861b072e15589d560cdfe92796035bd737e",
      "parents": [
        "e88fd530455d39e4c770870c74c1198820f62bfe"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Aug 09 16:53:35 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Aug 09 17:12:01 2017 -0700"
      },
      "message": "aaudio: deleted FifoBuffers to fix memory leak\n\nBug: 64522125\nTest: adb shell dumpsys media.audio_flinger --unreachable\nChange-Id: I6045f951b4d793f31cac73e793258e168f74f3f2\n"
    },
    {
      "commit": "e72481c5c16d401c776e0ba49b84b80223769b91",
      "tree": "282c04aa82bba9f854b3125fa8edade0b41f5287",
      "parents": [
        "e88fd530455d39e4c770870c74c1198820f62bfe"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Aug 08 13:20:45 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Aug 09 14:11:57 2017 -0700"
      },
      "message": "aaudio: fix ownership problems with file descriptors\n\nUse unique_fd to track file descriptors.\nFix extra close of file descriptor in SharedMemoryParcelable.cpp.\nThis bug was causing unrelated file descriptors to be closed!\n\nBug: 64311216\nTest: write_sine.cpp, FD should survive aaudio close\nChange-Id: I4f38c83510a49ea22b79b96d970ee48153417249\n"
    },
    {
      "commit": "ff6900d8f991aac0b67b625f8a1d4d0461b4c50e",
      "tree": "1c81319f27784e4d611f7895d519b7754f869c26",
      "parents": [
        "ce10f65fb5b48d81798caa2c2914b016082b5089"
      ],
      "author": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Tue Aug 01 15:47:38 2017 -0700"
      },
      "committer": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Wed Aug 09 09:15:59 2017 -0700"
      },
      "message": "Generate IAudioRecord with AIDL.\n\nUse AIDL to generate the IAudioRecord interface rather than using\na manually implemented interface.\n\nBug: 64223827\nTest: Ran the AudioNativeTest and CtsMediaTestCases CTS tests.\n\nChange-Id: Iade23c73253a97c358050bbd697ebe592b89a4c0\n"
    },
    {
      "commit": "d2d6f8414237f564f8c60c26d450276f95e616b9",
      "tree": "731ce09dd735c4bfe3adf2db0884dbb7befaebb6",
      "parents": [
        "932a77919784b16533588884b8044668813f2828",
        "f5095b3373511b88e3254b30c3bc3b99f2ea00f8"
      ],
      "author": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Tue Aug 08 19:43:10 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Aug 08 19:43:10 2017 +0000"
      },
      "message": "Merge \"Fix double fd close in SharedMemoryParcelable.\" into oc-dr1-dev\nam: f5095b3373\n\nChange-Id: I5e27c40c343717c81361410890924a7240c3272b\n"
    },
    {
      "commit": "c936d84f55f4ac522ee122caf856b7bfd57f8705",
      "tree": "ed8ddf95fb2f795911820cb90c1704858ac445de",
      "parents": [
        "15cda5e5a6c3271ad569268483e77294fcddbf8e",
        "f5095b3373511b88e3254b30c3bc3b99f2ea00f8"
      ],
      "author": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Tue Aug 08 19:42:42 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Aug 08 19:42:42 2017 +0000"
      },
      "message": "Merge \"Fix double fd close in SharedMemoryParcelable.\" into oc-dr1-dev\nam: f5095b3373\n\nChange-Id: Ibcee49b3636fa2c4e84ffac6311567b00fd0267b\n"
    }
  ],
  "next": "1d665bc481c88eef4de2b83caf35ed614b1e487d"
}
