)]}'
{
  "log": [
    {
      "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": "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": "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": "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": "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": "94862529bf1d1506bc09a05788e56aafb5c6e7f5",
      "tree": "7eb5ea6b757f88bfb25f667a88ee684226243470",
      "parents": [
        "3a5608cf069994725f6e50950f0462e91dcd8c51"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Sep 13 21:31:36 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Dec 05 09:28:38 2017 -0800"
      },
      "message": "aaudio: defer closing of stream until safe\n\nWhen a client asks to close the stream, we mark it as\ncloseable. When the last client finishes with the stream\nthen we actually close it.  References to the stream are counted.\n\nThis will prevent a stream from getting closed while another thread is\ntrying to start it or stop it, etc.\n\nTest: CTS nativemedia/aaudio\nChange-Id: Ic1c7eceded6bff9899f37a5e7d9f2b695b8cdc97\n"
    },
    {
      "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": "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": "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": "442459bca04f95ef2acd34e3de01f55bd5ede132",
      "tree": "346a18dde0015fcfafd1d9a9ff9b742ed34ba3ca",
      "parents": [
        "a575bac8c6ff91e9846dd57b3456437084854053",
        "83fb84498b8a83865e285ee84c253454c6f0a25b"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Oct 26 19:36:27 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 26 19:36:27 2017 +0000"
      },
      "message": "Merge \"aaudio: fix small underflow when a stream is stopped\""
    },
    {
      "commit": "83fb84498b8a83865e285ee84c253454c6f0a25b",
      "tree": "eb6ae9c94678b17d316099d68c2d9faa55cb6def",
      "parents": [
        "5b769acf63bb78197c39f9930133c7f79cfdffd2"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Oct 05 16:55:17 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Oct 26 09:56:30 2017 -0700"
      },
      "message": "aaudio: fix small underflow when a stream is stopped\n\nAlso remove inconsequential volume parameter.\n\nBug: 67910437\nTest: test_aaudio_monkey.cpp and write_sine_callback.cpp\nChange-Id: I6d11f3bfced3d579440f99c02d01a7d68af5c1e0\n"
    },
    {
      "commit": "fe7232311909599f8cb22795428332457dbd84df",
      "tree": "20ebad86e8c7a1b2f9d4bce7ab3f049f725a4453",
      "parents": [
        "da1ba20cbcb06572e6597c1fe43d826fb8b3d989"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Oct 19 16:56:55 2017 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Oct 20 16:13:38 2017 +0000"
      },
      "message": "AAudioEndpointManager: fix log level\n\nFix log level for MMAP endpoint opening success.\n\nBug: 36785118\nChange-Id: I503ff52fd76880d2eb79cf094bef9cf5a3011e24\nTest: check logcat\n"
    },
    {
      "commit": "bab4b47efbd4bdf7a816c704227a4aba1df4f3bb",
      "tree": "1be13109918ff4f570f638cf12f8b29a2fa74193",
      "parents": [
        "d5cbcfd2262db1864be58360f341e33be7cffd31",
        "be0a5b6e2c204446274248e1fa058e30f46b4b71"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Oct 17 21:50:54 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 17 21:50:54 2017 +0000"
      },
      "message": "Merge \"aaudio service: prevent disconnected endpoints from being used\""
    },
    {
      "commit": "be0a5b6e2c204446274248e1fa058e30f46b4b71",
      "tree": "ef61e6bc874fd89e0f2e5b60ffa96555a0656000",
      "parents": [
        "7de1920b41a7c5a6aa466dcd4fffc936193328b1"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Oct 12 15:56:00 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Oct 17 12:15:07 2017 -0700"
      },
      "message": "aaudio service: prevent disconnected endpoints from being used\n\nAlso close the internal stream used by AAudioServiceEndpointShared.\n\nThis prevents a resource leak caused by an app not closing a\ndisconnected stream.\nIt also prevents an app from reopening a device that was just\ndisconnected.\n\nBug: 67664976\nTest: test_bad_disconnect.cpp should get new device ID after disconnect\nChange-Id: I9a234b5704d62af788064fdd352b63181ad7e559\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": "70ab327c3aae275be00541aedf86367989b8f9d3",
      "tree": "7fa90b6a5ec6e1995e80716e837b0c26a3fe8c97",
      "parents": [
        "e474bc188186007964b532bd99311a933be22832",
        "0c6475858975efbe5120832fcb4649bfc0e95da7"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Sat Sep 16 02:22:21 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Sep 16 02:22:21 2017 +0000"
      },
      "message": "aaudio: fix audioserver crash when starting a stream is rejected am: b92c988ffc\nam: 0c64758589\n\nChange-Id: I264a2f2229edabcec19e5c7b7b1726042a8fe271\n"
    },
    {
      "commit": "b92c988ffc48f093ab8615896b02b8c8e10e19b2",
      "tree": "32472c5cce0546223e63dcc76a6be9add080cc43",
      "parents": [
        "523b3047af443d0a51141ddabd328d52be5a23b0"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Sep 15 11:39:15 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Sep 15 23:29:48 2017 +0000"
      },
      "message": "aaudio: fix audioserver crash when starting a stream is rejected\n\nBug: 65738271\nTest: repeat when not root:   input_monitor  -m2 -pl\nChange-Id: I98659dbd78a75785565b1b6f0254a48220253af6\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": "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": "669446c87cf355d9a48190954e5d509f6bdb0461",
      "tree": "de1f558a97beb017d21169f834e805772546490a",
      "parents": [
        "f24d95960d85c891fc40db6f1e9644385efb4eb3",
        "85ab116e5cc19c11f1eeb17fbf89959ad9617cd0"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Sep 05 16:49:41 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Sep 05 16:49:41 2017 +0000"
      },
      "message": "Merge \"audioflinger: pass return code up from startClient\" into oc-mr1-dev am: 90153cae7f\nam: 85ab116e5c\n\nChange-Id: I8ac2b52fdbfd292ea376e19b6645e5518d30ccef\n"
    },
    {
      "commit": "81ad5ecd211d0f30225714ae8ee61c4d76dbcf56",
      "tree": "0160fa4543c2a83f34863a373d0854119334dd76",
      "parents": [
        "3b224af571e8e70ef643a36e144e7427857d271d"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Sep 01 10:45:41 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Sep 05 09:08:23 2017 -0700"
      },
      "message": "audioflinger: pass return code up from startClient\n\nWas ignoring failed start.\n\nBug: 65262790\nTest: see bug\nChange-Id: I0b1d19adfd50d2b00d86bb82f278b720fcbacdb1\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": "b87bf931bb6eb0db39f6f8a98d76dc8baca11a1a",
      "tree": "c452ae59ac80fcaec3b2dfa2ef187a2247d0da3c",
      "parents": [
        "c9536517041e2a1a980104f62a6010a41691d55f",
        "48fc6191823ffa0708f60802fb6724c232760b9a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Aug 17 01:03:21 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 17 01:03:21 2017 +0000"
      },
      "message": "Merge \"Fix performance-for-range-copy warnings in frameworks/av.\""
    },
    {
      "commit": "c70e19d7eab3cb861dbe7784d8878aefe1dbf679",
      "tree": "d19908a7c405201f5119994ecd90d5c8a115e39a",
      "parents": [
        "4079be014c7b6d12d84f8d15986b46f92df1a389",
        "db177c9c9decbf30294b3f4e6cfbe84e502a56aa"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Aug 14 22:40:16 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 14 22:40:16 2017 +0000"
      },
      "message": "Merge \"aaudio: use configurationInput instead of Output\" into oc-mr1-dev"
    },
    {
      "commit": "db177c9c9decbf30294b3f4e6cfbe84e502a56aa",
      "tree": "8fc3d10e4f0229c11ae0319e9d1c86cf840194df",
      "parents": [
        "e88fd530455d39e4c770870c74c1198820f62bfe"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Aug 09 14:40:58 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Aug 09 14:47:57 2017 -0700"
      },
      "message": "aaudio: use configurationInput instead of Output\n\nThe endpoint was being configured with the wrong variable.\n\nBug: 64526143\nTest: CTS nativemedia/aaudio\nChange-Id: I84c8a23392fe8afde71ac9991eb097e795bf4a39\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": "48fc6191823ffa0708f60802fb6724c232760b9a",
      "tree": "c4b5ac89c6bb9798f20fa29b392306027003c4a2",
      "parents": [
        "b95106cabbe51d440505e5b97c55a3afebd49af9"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Aug 04 14:37:31 2017 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Aug 04 14:58:41 2017 -0700"
      },
      "message": "Fix performance-for-range-copy warnings in frameworks/av.\n\n* Use const reference type for loop index variables to avoid unnecessary copy.\n\nBug: 30413223\nTest: build with WITH_TIDY\u003d1\nChange-Id: I79969be18569c5bb1ea29ee18ae89a3f9d55ce9c\n"
    },
    {
      "commit": "a5222e298c294781067950a7cc319d3278fa845a",
      "tree": "69ea25d3c54785ed74af3aee94c5f760d3f13da0",
      "parents": [
        "909f4a6cada3d5fb7594da7d1809ba62d1b47340"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Jul 28 13:31:14 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Aug 03 10:07:39 2017 -0700"
      },
      "message": "aaudio: improve error logging\n\nReport when INVALID_STATE returned.\nThis was used to debug monkey test errors.\nCleanup some log messages.\nImprove \"dumpsys media.aaudio\"\n\nBug: 64310586\nTest: CTS nativemedia/aaudio\nChange-Id: Ifbcac4794cda22cccbacff6352243c0ef4589c53\n"
    },
    {
      "commit": "97350f9df7252c881f011a410fcd9e6d766d2bee",
      "tree": "fab6334a25607e03276648611584b8fc23b40463",
      "parents": [
        "eb1c0658e405e5b7e26f4b16761c5b1ce3f77d46"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Jul 21 15:59:44 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Aug 02 10:57:31 2017 -0700"
      },
      "message": "aaudio: improve accuracy of timestamps\n\nAccount for latency added by the AAudio service.\nFix input timestamps.\n\nBug: 37080396\nTest: test_timestamps.cpp input_monitor.cpp\nChange-Id: I1053cd21af722bb9b9371df4e5731bf4a0a57b0b\n"
    },
    {
      "commit": "19d05412dbba726830c6d4064bca798f682cd3bc",
      "tree": "c398775354f6f68e4bcaad565c720aafc7d6c9ea",
      "parents": [
        "5fafb7bdbca55fe955df1a913051c5d08a0ba087",
        "faeb8b20e8ce98d308ca5ec095eeba6583cd9ec6"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Jul 31 13:58:06 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jul 31 13:58:06 2017 +0000"
      },
      "message": "aaudio: fix getXRunCount\nam: faeb8b20e8\n\nChange-Id: I5df65477820b7297479f4cf1f41ec1d5c92cff77\n"
    },
    {
      "commit": "faeb8b20e8ce98d308ca5ec095eeba6583cd9ec6",
      "tree": "ca5897bcd530e9f0e5167d30ed7945171d0a11c9",
      "parents": [
        "d478859f02323b03e2927a10055c42331f6dacc7"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Jul 25 15:15:07 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Jul 28 13:19:29 2017 -0700"
      },
      "message": "aaudio: fix getXRunCount\n\nMixer was not advancing FIFO when underflowed so the client could not\ndetect the xrun.\nAlso underruns could cause the stream to drift in time relative to other\nstreams.\n\nBug: 64033855\nTest: trigger underruns by sleeping in a callback\nChange-Id: Ia038f5048ffbff3b82e9d86e6807483dfe6879d0\n"
    },
    {
      "commit": "f17f49051945a3d289a47ef6572b31c687adcebf",
      "tree": "626b5cfb2c630c1726f9c7037f17f09c4689c152",
      "parents": [
        "2eddd660f9140d50f4e49e7981580dee2356ff54",
        "d937a5cf8533cc571ef2ac03d543bc15aacffdcf"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Jul 21 03:36:13 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jul 21 03:36:13 2017 +0000"
      },
      "message": "Merge \"aaudio: reduce glitching by improving sleep timing\" into oc-dr1-dev\nam: d937a5cf85\n\nChange-Id: Ic8e3f97c88ec2197a6d66a48eb091d8eea166891\n"
    },
    {
      "commit": "fd34a9310659aa53e9e10d6826651577a75f6447",
      "tree": "dc284d0eb17cbd8a023a2aec52d854c809b02c38",
      "parents": [
        "679b6f6eaaeba35fcf96cb04a784308211d4b319"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Jul 19 07:03:52 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Jul 20 16:10:41 2017 -0700"
      },
      "message": "aaudio: reduce glitching by improving sleep timing\n\nALways sleep a minimum time to avoid busy wait in real-time thread.\nAccount for wakeup jitter in threads on the other side of a FIFO.\nAvoid race condition that caused a longer sleep than necessary.\nFix calculation of mFreeRunning for capture mode.\n\nAlso added systrace logging, which was used to debug this.\n\nBug: 63814792\nTest: Run GStomper on Walleye with MMAP on, see bug\nChange-Id: I7b20098580ff454365425bd21e43c17ade532a0a\n"
    },
    {
      "commit": "67a69ea56423af97a91cac876d10a447cdc21254",
      "tree": "e063a92b3d559d5affd8af255cc7dc6b3d46e052",
      "parents": [
        "e3dd4f59c8383bdec909e87860ede1c7c12407d2",
        "2dd56c9e2c9874471d3c9ec7d2bbfdaccbd554d4"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Jul 18 23:00:50 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jul 18 23:00:50 2017 +0000"
      },
      "message": "Merge \"aaudio: fix intermittent hang and position error\" into oc-dr1-dev am: c1fe2634dc\nam: 2dd56c9e2c\n\nChange-Id: I2324f99835d005d46cc2838888c3cc65e66730a1\n"
    },
    {
      "commit": "2dd56c9e2c9874471d3c9ec7d2bbfdaccbd554d4",
      "tree": "6432b4bd2f70fa04e6be7c02477ac9162923fe68",
      "parents": [
        "d36be4e4d85a2671de4f410b5ed1a6d1314ab553",
        "c1fe2634dc228640119849692cd1defb88bc2209"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Jul 18 22:22:19 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jul 18 22:22:19 2017 +0000"
      },
      "message": "Merge \"aaudio: fix intermittent hang and position error\" into oc-dr1-dev\nam: c1fe2634dc\n\nChange-Id: I44d29f0bc88935ccba6b365fec242568d35f6079\n"
    },
    {
      "commit": "c1fe2634dc228640119849692cd1defb88bc2209",
      "tree": "453a26bb059c59f8216f0883768706ea43620c14",
      "parents": [
        "29204646b945adf58390b7d06f2cb223d6b2c4c0",
        "940083c3049e269f6c150d5477eccb6bad32b129"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jul 18 22:15:39 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 18 22:15:39 2017 +0000"
      },
      "message": "Merge \"aaudio: fix intermittent hang and position error\" into oc-dr1-dev"
    },
    {
      "commit": "32cb394f830758d7703dc1f615e4d2de18c7af1b",
      "tree": "ad51a33972d77084a02392e8f63261a573469b27",
      "parents": [
        "24f8801b22a68204e5ac8187963f07098e9da34a",
        "ef28fdb8d849f1bda5799080b898e429bc29259c"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Jul 18 13:57:16 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jul 18 13:57:16 2017 +0000"
      },
      "message": "Merge \"audio:  reduce logspam from MMAP mode\" into oc-dr1-dev am: 4dbbda2d8c\nam: ef28fdb8d8\n\nChange-Id: I611b95222c81d279e75071e0bd369b4e5ad4bd78\n"
    },
    {
      "commit": "ef28fdb8d849f1bda5799080b898e429bc29259c",
      "tree": "41a43d7f1fdcc8043bc3fc7ad8f56de62f7ebb08",
      "parents": [
        "03e1cd73c64654d096243325ac3e6dc3f0b6e2fe",
        "4dbbda2d8c84eabc0cd7c7ee032c2280258f4ffb"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Jul 18 13:53:16 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jul 18 13:53:16 2017 +0000"
      },
      "message": "Merge \"audio:  reduce logspam from MMAP mode\" into oc-dr1-dev\nam: 4dbbda2d8c\n\nChange-Id: I05dc5fc8eed6e3623f01b87df205d009f04cc3f8\n"
    },
    {
      "commit": "4dbbda2d8c84eabc0cd7c7ee032c2280258f4ffb",
      "tree": "25332d68058c967fcd1686bd9032459b7ab4a8c4",
      "parents": [
        "d8365c54d049aade9e02ccae722f311f846cad9a",
        "c7abac4329e15cda4bbbd25f8fc4a93b70d70d0a"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Jul 18 13:47:40 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 18 13:47:40 2017 +0000"
      },
      "message": "Merge \"audio:  reduce logspam from MMAP mode\" into oc-dr1-dev"
    },
    {
      "commit": "940083c3049e269f6c150d5477eccb6bad32b129",
      "tree": "ae4c20530003d7c9086d343a3b3e7d1d5b17562e",
      "parents": [
        "af842eb79ed9943b7a4495136197e093fc7d8ba7"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Jul 17 17:00:02 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Jul 17 17:00:02 2017 -0700"
      },
      "message": "aaudio: fix intermittent hang and position error\n\nFix hang caused by recursive mutex.\nFix disconnect caused by getPosition() failing, which was\njust because the stream wasn\u0027t ready yet.\n\nBug: 63775537\nBug: 63709749\nTest: run \"aaudio_loopback -pl -Pl -c2 -n6 -te -m\" many times\nChange-Id: Ic1d54360b55cfc8ecc1809584c262bc0976c58bb\n"
    },
    {
      "commit": "fa97a325f95e6cbefe54819674466fda9fc0ad10",
      "tree": "7dfbbc222707c3cb56a6b93bf0b567108054980d",
      "parents": [
        "7e5292c9262f4183b534be945bd76d7c342f20aa",
        "9584601561ad1d3b4fc1b0035c3f3e5bbd3e499e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jul 17 20:01:51 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 17 20:01:51 2017 +0000"
      },
      "message": "Merge \"Append additional owners to projects\""
    },
    {
      "commit": "1198d860283bfc31b39c587580463eef9fcc6720",
      "tree": "57944797a7387aabdc39243df69a909fe0c2f561",
      "parents": [
        "ef63d8b63e6cc81aaad77e46364d6360a0df5855",
        "30bf42ca7242f5f7849cbe7ce61fc994b88c5b56"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Mon Jul 17 19:09:34 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jul 17 19:09:34 2017 +0000"
      },
      "message": "Merge \"Add parameters validation on AAudio MMap server\" into oc-dr1-dev\nam: 30bf42ca72\n\nChange-Id: I6e200b18f9d1c7a02b702a41715ef061b5cafdd8\n"
    },
    {
      "commit": "c7abac4329e15cda4bbbd25f8fc4a93b70d70d0a",
      "tree": "f2402076af44c039478a9bfec1017903a702aa40",
      "parents": [
        "af842eb79ed9943b7a4495136197e093fc7d8ba7"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Jul 17 11:13:37 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Jul 17 11:13:37 2017 -0700"
      },
      "message": "audio:  reduce logspam from MMAP mode\n\nBug: 63760826\nTest: run CTS nativemedia/aaudio and notice less logging\nChange-Id: I04564963f85577a53f40f1bad064f5e79723ac76\n"
    },
    {
      "commit": "9584601561ad1d3b4fc1b0035c3f3e5bbd3e499e",
      "tree": "0f3268ed27ec2f843c79924a4b779afa06fc2b98",
      "parents": [
        "6c3359f522fa5c528d7eef5deaaf0d2c9c365089"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Jul 17 10:34:02 2017 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Jul 17 10:56:37 2017 -0700"
      },
      "message": "Append additional owners to projects\n\nThis releaves reviewing burden from the frameworks/av owners.\nNote that the lists of owners are inherited from the parent\ndirectories thus the people listed in these files are owners\n*in addition* to people listed in frameworks/av/OWNERS,\nand frameworks/av/{media|services}/OWNERS.\n\nChange-Id: I5e2db1c40cb807b906b2701fe446c874a8d19983\nTest: not needed\n"
    },
    {
      "commit": "901f65deb49786f4dffd39ac965c0bb681392c0b",
      "tree": "c80ff068d9aae5d4292387883b24b6be6b2f8ad7",
      "parents": [
        "6ac42ebf890ce99b401e1962db8ceecfb38b7a65"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Jul 12 17:56:35 2017 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Jul 14 13:42:46 2017 -0700"
      },
      "message": "Add parameters validation on AAudio MMap server\n\nBug: 63384314\nTest: adb shell /system/bin/write_sine -m -pl -n4 \\\n\u0026\u0026 adb shell /system/bin/write_sine -pl -n4 \\\n\u0026\u0026 adb shell /system/bin/write_sine_callback -m -pl -n4 \\\n\u0026\u0026 adb shell /system/bin/write_sine_callback -pl -n4 \\\n\u0026\u0026 adb shell /system/bin/CtsNativeMediaAAudioTestCases32\n\nChange-Id: I462f956e8fc25eb583699af6389e0f299243eafb\n"
    },
    {
      "commit": "bc1ab2ffbbc1e185da19f92e5549f6024771e3d8",
      "tree": "8188c53fba5bf53640eccc4f14684117f9fe1ead",
      "parents": [
        "556a5a06e8fab58cdf3f449c5f9de64daffae763",
        "8d0dd68b05a7a82d684ad78a0d33c8b9ddfc526f"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Jul 13 22:51:59 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jul 13 22:51:59 2017 +0000"
      },
      "message": "remove extraneous `using namespace android` and deprecate utils/Log.h am: 357552eb72\nam: 8d0dd68b05\n\nChange-Id: I49931f5a7becf28517e3801f6089fb720746a2ee\n"
    },
    {
      "commit": "357552eb724722dc620c56d2151bdfad07467952",
      "tree": "54dae79fff516a8d0d9e95a303a6c3680e3bf0df",
      "parents": [
        "37cd5f116dfbde69be3625e7a2112346393b0ef1"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Jul 12 13:48:26 2017 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Jul 13 22:39:27 2017 +0000"
      },
      "message": "remove extraneous `using namespace android` and deprecate utils/Log.h\n\nThis namespace is not used by this file and its declaration is removed\nin a separate CL from utils/Log.h, which is the only place it is\ndefined, so we must remove this extraneous line.\n\nAlso, since that separate CL is deprecating utils/Log.h in favor of\nlog/log.h, we make the switch to the new header.\n\nTest: Build\nExempt-From-Owner-Approval: Owners file needs updating\nChange-Id: I34aa80765d30c79f8cb67eaf95a9995066bd672e\n"
    },
    {
      "commit": "cb4dae216758d9e9a28050f65097f1ce905c03e9",
      "tree": "4c3c49679384d70006675e9e06c7e8e8117e206c",
      "parents": [
        "0acb3209107802e2ab116f8374aab886579729bb"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Jul 01 19:39:32 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jul 12 12:17:33 2017 -0700"
      },
      "message": "aaudio: indicate client UID and PID to audio flinger\n\nImplement correct indication of client UID and PID to audio flinger\nfor AAudio MMAP streams in both exclusive mode and shared mode.\n- Add start/stop client methods on MMAP streams used only when the MMAP\nstream is in AAudio service and carries a mix of shared streams.\n- Add \"In Service\u0027\" indication from \"client\" side to AAudioServiceStreamMMAP\nso that the behavior can be adapted accordingly.\n- Modify logic on audio flinger side with regard to mmap tracks and\naudio HAL stream activity:\n  - use same audio session for all clients on a same stream to match\n  audio policy logic to share same direct output stream for clients on same\n  session. This is also more consistent with current volume and effect\n  handling as all MMAP  clients sharing the same output stream have the\n  same volume and use case.\n  - start/stop the HAL when the stream is started/stopped with the initial client\n  handle (returned when the stream is opened) but do not create a track.\n  AAudioService implementation will always send an additional start command before\n  first client starts and a stop command after last client stops,\n  in both shared and exclusive mode.\n  - start/stop a track only if the start/stop stream command is received\n  with a handle different from the initial handle.\n- Allow more than one active client from the same UID on a MMAP input in audio policy.\n\nBug: 62950008\nTest: verify playback and capture in mmap mode\nMerged-In: I86151bbb637ff172d2fd5f813056eab13a7bcd3c\nChange-Id: I86151bbb637ff172d2fd5f813056eab13a7bcd3c\n"
    },
    {
      "commit": "5a26e665e1abb00ed1c8a7e421e19763324776e9",
      "tree": "91ba3e7ef4123ea42403936e451836f8b993339f",
      "parents": [
        "c06dd405a61b24116ac08415709e5575b2583492"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Jul 07 12:44:48 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Jul 07 12:47:52 2017 -0700"
      },
      "message": "aaudio: do not assert if deleting an unopened stream\n\nBug: 63440754\nTest: write_sine.cpp, see bug for repro case\nChange-Id: I1f7ed1bd97d4cfcd54d27d41d708c6c03d3d88ac\n"
    },
    {
      "commit": "98d6d9227f6599a5aa7b023217c02a01cc4536cb",
      "tree": "847f63fabe692cdcc73dcdda8c681cd9f4087e97",
      "parents": [
        "014a56b57af9e4c744d1ac6f5a95eb1ac7e3f445"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Jul 06 11:52:45 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Jul 06 16:41:07 2017 -0700"
      },
      "message": "aaudio: stop calling virtual methods from destructor\n\nWas calling close(), which is abstract and virtual.\nThis may have been related to some audioserver crashes.\nAlso cleaned up some strong pointer handling.\n\nBug: 63390734\nBug: 63353455\nTest: run CTS nativemedia/aaudio many times\nChange-Id: Ib95aed60a64771b64395c67f0921c67146f9d10f\n"
    },
    {
      "commit": "d51329eca85112973867a6bf0d210e82d6d1c411",
      "tree": "f29ad645223b5ea22b709f4d3362f27aa14d6a9a",
      "parents": [
        "4501b3510f9b2af2ff63a0471de24e3feea1d0a8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jun 30 16:06:16 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sun Jul 02 00:32:10 2017 +0000"
      },
      "message": "aaudio: enable exclusive MMAP mode support\n\nAllow exclusive MMAP mode only if the HAL indicates\nthat the FD returned for shared memory buffer can be shared\nwith any application.\n\nNOTE: the way the HAL indicates this is temporary until the audio\nHAL is modified in next HIDL release.\n\nBug: 37167970\nTest: check playback and capture in mmap exclusive and shared mode\nChange-Id: I09c1461b2f99532ded2ef9d36d483b82096fda68\n"
    },
    {
      "commit": "4501b3510f9b2af2ff63a0471de24e3feea1d0a8",
      "tree": "486de512a65eaad91323fd521823b7230088643d",
      "parents": [
        "8dd045aaf7079fce7c3f0d8457d4e4c7055bac03"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Jun 29 18:12:36 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Jul 01 14:28:57 2017 -0700"
      },
      "message": "aaudio: improved dumpsys\n\nAdd more information about various streams and endpoints.\n\nBug: 38396780\nTest: adb shell dumpsys media.aaudio\nChange-Id: I5cc116574bfc3aa93703c182d933dbdfcbefad7a\n"
    },
    {
      "commit": "8dd045aaf7079fce7c3f0d8457d4e4c7055bac03",
      "tree": "5b203cad3e40edd47e80af2e45a2b2c623820962",
      "parents": [
        "80f5e44d6072b5f0b379d2f845503492463bc683",
        "9169294539ad46e08e2fe76a93c37ed965c13058"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Jul 01 19:52:04 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Jul 01 19:52:04 2017 +0000"
      },
      "message": "Merge \"aaudio: limit number of streams per process\" into oc-dr1-dev"
    },
    {
      "commit": "9169294539ad46e08e2fe76a93c37ed965c13058",
      "tree": "7f99790dd7625f12d19a1365666e4c541451f0ae",
      "parents": [
        "6ec18f8ce3d797fdd5722926ac17c1f4eda7904d"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Jun 30 12:23:05 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Sat Jul 01 08:01:51 2017 -0700"
      },
      "message": "aaudio: limit number of streams per process\n\nTesting the new max streams restriction revealed the bug\ninvolving the second shared stream.\n\nBug: 62951298\nBug: 63171495\nTest: test_n_streams.cpp can open MAX_STREAMS_PER_PROCESS MMAP streams\nChange-Id: Ibea7d9c4716326a37c669954b52f397ed2968caa\n"
    },
    {
      "commit": "5ef003b750ae5188c36d6512584da442be125148",
      "tree": "60b325497093e81d50c9c535cc6fe061a1c9dab9",
      "parents": [
        "fef6b3d4fdd5dcde27e29990dec6ee226aa7b873"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Jun 30 11:43:37 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Sat Jul 01 03:29:28 2017 +0000"
      },
      "message": "aaudio: disconnect when onTearDown() called\n\nIt will be called, for example, when switching from speaker to Bluetooth.\n\nBug: 62883778\nTest: run a long app and switch to or from Bluetooth\nChange-Id: Iafb9b52d85c30fee71de46abfb99a27a1daabf59\n"
    },
    {
      "commit": "fef6b3d4fdd5dcde27e29990dec6ee226aa7b873",
      "tree": "5073ebd53662e6f7d47ffd5402e9a74da74db7b3",
      "parents": [
        "097da17bd5af3689194fa6d7fce3a5a114717c4c",
        "b63320a36e69c52b46cd099e83fe5922070c43a1"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Jul 01 03:03:58 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Jul 01 03:03:58 2017 +0000"
      },
      "message": "Merge \"aaudio: fix resource leak in client tracking\" into oc-dr1-dev"
    },
    {
      "commit": "097da17bd5af3689194fa6d7fce3a5a114717c4c",
      "tree": "db39ad095a6e44c3fb1741c16a1bfa4f0226e973",
      "parents": [
        "358ad4257d88f9f0fbf09cc52bbaeb43e5b51e59",
        "968e85e37906545fc85ee42a1e61700d26543a65"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Jul 01 02:03:50 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Jul 01 02:03:50 2017 +0000"
      },
      "message": "Merge \"aaudio: fix mixer volume\" into oc-dr1-dev"
    },
    {
      "commit": "968e85e37906545fc85ee42a1e61700d26543a65",
      "tree": "70c11063c21a5f40bff0914a524c6f7a41a6848d",
      "parents": [
        "e27d3a435c0f2393f6a53bb6b23569aa04904bd0"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Jun 30 16:48:15 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Jun 30 16:48:15 2017 -0700"
      },
      "message": "aaudio: fix mixer volume\n\nBug: 63176151\nTest: play write_sine.cpp in both legacy and MMAP modes\nChange-Id: If5fb61fe959dbc361ff8f95ca3d743e877800163\n"
    },
    {
      "commit": "a17ae74e3570a5afa2ece02d2b4090ba7b731bc1",
      "tree": "7ec7ff27aa0b456fe7d679b4cd81361b603697e2",
      "parents": [
        "e27d3a435c0f2393f6a53bb6b23569aa04904bd0"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jun 29 15:43:55 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jun 30 20:38:34 2017 +0000"
      },
      "message": "aaudio: modify endpoint sharing logic\n\nA new Client stream in shared mode can share an existing endpoint\nif it has no preferences or compatible device, sample rate and channel\ncount requests.\n\nBug: 62961537\nTest: play and capture with AAudio in mmap mode\nChange-Id: I38536fb486dfc06f4399f7d02248384583fd3a17\n"
    },
    {
      "commit": "b63320a36e69c52b46cd099e83fe5922070c43a1",
      "tree": "51dd78b8a7e99d34eec00ee11344a073a866e39f",
      "parents": [
        "e27d3a435c0f2393f6a53bb6b23569aa04904bd0"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Jun 30 10:28:20 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Jun 30 10:28:20 2017 -0700"
      },
      "message": "aaudio: fix resource leak in client tracking\n\nWas using the wrong pid.\n\nBug: 38267698\nTest: run an aaudio example like write_sine.cpp and control-C in the middle\nChange-Id: I8819fcdd78354554b926d8b8a59efa1a81fed110\n"
    },
    {
      "commit": "11e8d335b1da528ee771b19b63df23ae6fd52f41",
      "tree": "b5679b54a7acfbdf455c95355da8c0b9a4dbc51c",
      "parents": [
        "1fa57e8d3149703e794997edffa4e03bfb0a6887"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed May 24 09:59:02 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Jun 29 21:40:21 2017 -0700"
      },
      "message": "aaudio: close MMAP stream if client dies\n\nNotify client when audio service dies. Clear connection.\nNotify AAudio service when client dies. Close client streams.\n\nUse sp\u003c\u003e to track ServiceStreams.\n\nBug: 38267698\nTest: test_no_close.cpp\nChange-Id: I5f1699ed3b8b7bd960947c0028a89ca8419ce7a0\n"
    },
    {
      "commit": "2ac035fdc577a843d07f385dbe3c4e2229d886dc",
      "tree": "5715d5f033318a3cbd5a89b73ee32334bdc6ea9a",
      "parents": [
        "f3ffd1ced8c4709388f8ed5c9a49284f36aa5b97"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Jun 23 14:51:14 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Jun 29 18:26:52 2017 +0000"
      },
      "message": "aaudio: prevent apps from affecting a stream they do not own\n\nBug: 62951648\nTest: need test that hacks a stream handle from another user ID\nChange-Id: I342f2a4cf9350c949f346b3c867d7f9e035c76b4\n"
    },
    {
      "commit": "47c5e530b01b620a4f65efa121a938789a6823b4",
      "tree": "b3285b6642ee395668ca3b0525321991c971d405",
      "parents": [
        "a88051816bc629eb20de8f4cecf2d4a4c1cbfc4a"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jun 26 18:28:00 2017 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jun 28 15:50:37 2017 -0700"
      },
      "message": "AAudioService: add dumpsys capability\n\nTest: adb shell dumpsys media.aaudio\nBug: 38396780\nChange-Id: I8b5c421bdd1b3228d8140816a68740709aa9757b\n"
    },
    {
      "commit": "ec89b2e2f8c84a7d3936db1a888034f4a4b0df16",
      "tree": "37bfd6b5e440bb91bb1b172ca0ea349c94056a61",
      "parents": [
        "0d3c68179e395757ab053cf6c480db7841c4d9d5"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Jun 20 15:05:06 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Sat Jun 24 09:04:47 2017 -0700"
      },
      "message": "aaudio: fix CTS for MMAP mode\n\nImprove calculation of buffer capacity based on requested minimum.\nAdjust timing of start() to reduce underflows.\nTrack ServiceEndpoints based on requested deviceId.\nFix getFramesRead() and flush() behavior.\nFix timeouts due to ClockModel lateness bug.\nMisc cleanup.\n\nBug: 37755299\nTest: test_aaudio.cpp\nChange-Id: I637c16e87fbe14b6f28c60aeea0b9dfed965ecd0\n"
    },
    {
      "commit": "a2f296e06bee54cc83130a17f136cab1006f55d5",
      "tree": "d3545a9d1aafb8485b2addd671f51079308e5d2a",
      "parents": [
        "ffd80b92df8521dd28ab5fd08b1098a58cb280e8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jun 21 18:51:47 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jun 22 10:22:09 2017 -0700"
      },
      "message": "aaudio: implement IPlayer for MMAP playback streams\n\nMake AudioStreamInternal derive from PlayerBase to\nprovide playback and volume control via IPlayer interface.\n\nBug: 62027849\nTest: verify aaudio playback in MMAP mode and registration of aaudio\nplayers in AudioService when active\n\nChange-Id: Ia0878d46637c0a954d8a6259868a2d3bccf19119\n"
    },
    {
      "commit": "160078a07033fb015ecaa46e7249d7702be2a169",
      "tree": "7ec7b225cdad7c787f779d2cc9e2655675e2e9bf",
      "parents": [
        "be9c9d5a8168a4818c0296ac30dbd6120aac0727",
        "37a466ae847cf08fc346e629fe4cf964ad67063f"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jun 01 18:59:11 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 01 18:59:13 2017 +0000"
      },
      "message": "Merge \"Fix copy/paste errors in use of AAUDIO_FORMAT_UNSPECIFIED\" into oc-dev"
    },
    {
      "commit": "37a466ae847cf08fc346e629fe4cf964ad67063f",
      "tree": "63d9b305c36f0625fe162381375fd9b2eb8ffc6d",
      "parents": [
        "629afae6135e6dc1e88ab4080f984fb30b3cdd7c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue May 30 15:53:14 2017 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed May 31 10:53:36 2017 -0700"
      },
      "message": "Fix copy/paste errors in use of AAUDIO_FORMAT_UNSPECIFIED\n\nBug: 62222736\nTest: builds OK\nChange-Id: Iabdac7a3d0893699eb72f85985002535c8f619c7\n"
    },
    {
      "commit": "9dca9824da74d50be02bc81f539cc77b7bde678a",
      "tree": "fc1191a65e3677298cc50195ed8a9781d5545d2a",
      "parents": [
        "629afae6135e6dc1e88ab4080f984fb30b3cdd7c"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri May 26 14:27:43 2017 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue May 30 15:36:21 2017 -0700"
      },
      "message": "aaudio: remove deprecated aaudio_audio_format_t\n\nShould be using aaudio_format_t\n\nBug: 62141619\nTest: compile and run CTS test_aaudio.cpp\nChange-Id: Ibbba2769dfd8bcd9c108d87c19fe1fad2ba43df1\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "cf5f6d2825d9a8430a291042ca9c6f68e5b666d0",
      "tree": "01266d4a2fdf5ccce8067b583be1f3a0ac9b81f0",
      "parents": [
        "433ecd85ef10284a71c4ea57279f53427fb9983d"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri May 26 12:35:07 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri May 26 15:38:09 2017 -0700"
      },
      "message": "aaudio: reduce logspam, improve critical logs\n\nThis will make AAudio less annoying and easier to debug.\n\nBug: 62080950\nTest: look in logcat\nChange-Id: Id7ae26a212f83ea8be0b285bd20334eb48607be8\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "87c9f646a94259d7c321c3b3d5947fa1778f5ac2",
      "tree": "89c57e19157557b2cb5d7aca7bc1371e530f734c",
      "parents": [
        "da6b9eafb5de2434717aea264ad61b025bc4fe7f"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed May 17 07:22:39 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed May 24 15:44:23 2017 -0700"
      },
      "message": "aaudio: lower latency using MMAP capture\n\nMMAP can be enabled by setting system properties.\n\nBug: 38267780\nTest: input_monitor.cpp\nChange-Id: I5e86fd1d9baef4fe59837ccbca7971acbb54d8b5\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "37dad7380c04cd4343999ffba012a0542482acea",
      "tree": "c56c693188955fc88241f126e8ec5203e23bf81e",
      "parents": [
        "0556a2363ff5eb49bd35dc47f2d34cc2042de052"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue May 23 14:07:52 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue May 23 14:29:10 2017 -0700"
      },
      "message": "aaudio: fix mixer volume to match AudioTrack\n\nBug: 62033564\nTest: write_sine.cpp - play with MMAP and with Legacy and compare by ear\n\nChange-Id: I4d142f872fabb732cab01bec8c17d821232ab2d1\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "c8f69a08a409fd163873d725c63f8d60259ae21d",
      "tree": "da3c5a871c2a78e109d02cf1c08cfb496d4aa3e6",
      "parents": [
        "feb0d87f693abd8fd2fa7ebfcdf7d91f0b95c131"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu May 11 15:53:06 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue May 16 10:34:05 2017 -0700"
      },
      "message": "aaudio: control MMAP mode using system properties\n\nTo facilitate testing of MMAP mode.\n\nBug: 38268547\nTest: set properties, see framesPerBurst in write_sine_callback.cpp\nChange-Id: I6e15c563215017f6a5020d89ac312ff8331afc4f\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "31e436e23a2a6f7d2de57158a1ae6542098a8e63",
      "tree": "1d5cd0b2192c3ead370637c38e721903405707b3",
      "parents": [
        "ebb1475d1a97ee3dbf25ea72383a6b7554aac1dd",
        "942bdc0aebc88dc8b12c0e7742ec0003bbb8b80f"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed May 10 23:14:53 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 10 23:14:55 2017 +0000"
      },
      "message": "Merge \"aaudio: plug some resource leaks\" into oc-dev"
    },
    {
      "commit": "942bdc0aebc88dc8b12c0e7742ec0003bbb8b80f",
      "tree": "2791ba38cdc9b1839a9d17bc20e53fde6a4c8f7c",
      "parents": [
        "441f2ccb103fdb6fe6409eac870ea30ee3ccfb33"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed May 03 11:36:50 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu May 04 17:23:47 2017 -0700"
      },
      "message": "aaudio: plug some resource leaks\n\nClose some file descriptors for shared memory that were not getting closed.\n\nBug: 37947848\nTest: see bug for test procedure\nChange-Id: Icdc13188b0a49d08b67babff0852c3a4eda8fd2b\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "e2fbb59e729f6c3cade3b531f6f6411417ccbf40",
      "tree": "519ff6ad94d7465c7672e6ac3dd73b4d892dbbfe",
      "parents": [
        "441f2ccb103fdb6fe6409eac870ea30ee3ccfb33"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon May 01 15:05:52 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu May 04 11:45:08 2017 -0700"
      },
      "message": "aaudio: add setPerformanceMode()\n\nThe performance mode affects the latency and the implementation of the\ndata path.\n\nMMAP is still disabled for now.\n\nBug: 37867485\nTest: write_sine.cpp\nChange-Id: I9bf5d5d13d1047d5ace69bd5ebdce7b6d65c14e7\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "441f2ccb103fdb6fe6409eac870ea30ee3ccfb33",
      "tree": "2da91b5aa41164cd6e48f5d86e3f731d54ded035",
      "parents": [
        "f1e459c6400a774d99390227e853a30f58cee4a2",
        "4c5129b410884ec0400cbe65fce56d0ade12d11b"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed May 03 22:24:21 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 03 22:24:26 2017 +0000"
      },
      "message": "Merge \"aaudio: Fix getFramesWritten() for callback mode.\" into oc-dev"
    },
    {
      "commit": "4c5129b410884ec0400cbe65fce56d0ade12d11b",
      "tree": "9f17ebb0f82552f0b0015d3b07d0ab0bb43b4349",
      "parents": [
        "c5cbb87d00ead068a7088db4060bce1c0e699b8c"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Apr 28 15:17:32 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue May 02 16:21:03 2017 -0700"
      },
      "message": "aaudio: Fix getFramesWritten() for callback mode.\n\nPlus other small fixes for CTS and cleanup\n\nBug: 37910599\nTest: test_aaudio.cpp\nChange-Id: I65a23daf99e9de857d3ce9fd12e9f11c614e298e\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "478d5df3a0e1693669f5809176d5c7f6e8c9aa88",
      "tree": "1f43c7ac9e4b2acdf637c03ad6cfb8c477ca5751",
      "parents": [
        "c5cbb87d00ead068a7088db4060bce1c0e699b8c"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon May 01 11:34:11 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue May 02 11:58:36 2017 -0700"
      },
      "message": "aaudio: fix mmap result checking\n\nWas checking for nullptr not MAP_FAILED\n\nBug: 33398120\nTest: see mmap() docs\nChange-Id: I02d178cb0188f8b0d6cd009699dccc7c97952e4b\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "e572f469de5dca1078a79d3d80e5b04f96ae7505",
      "tree": "312a86063172d4bedef4dd1f68447797debb3d08",
      "parents": [
        "6f85f6533a25f7eeaaacba53281572c00e63759a"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Apr 20 13:03:19 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon May 01 11:22:03 2017 -0700"
      },
      "message": "aaudio: apply volume in the MMAP data path\n\nThe volume scaling is in AudioStreamInternal and not the mixer\nbecause we will need volume scaling in EXCLUSIVE mode too.\n\nBug: 37518243\nTest: play a tone using NativeOboe app then press volume keys\nChange-Id: Ibbac9770ea4493f8ade64681be86f109a92803cd\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "71f35bb687476694882a617ba4a810a0bb56fe23",
      "tree": "93e01bfc7cb0b942e0ee16892c26d5a184b3e541",
      "parents": [
        "24059088a46160f731903cc66404184a531d0478"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Apr 13 16:05:07 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Apr 21 05:11:26 2017 +0000"
      },
      "message": "aaudio: fix SHARED MMAP mode in server plus other bugs\n\nFixed some buffer miscalculations, and some NPEs in the close() code.\nAdded debugging and some general cleanup.\nFixed data conversion.\nFixed start/pause/flush in server.\nAdded reference counting in server for endpoints.\nPrograms can now be ran more than once.\nGeneral code cleanup.\nReconnect with service if server dies.\nMove stop() logic into server for better synchronization.\nAdd sleep to prevent race condition when closing an MMAP stream.\n\nBug: 33398120\nTest: two write_sine_callback.cpp can be run simultaneously\nChange-Id: Ibb006215a498868c222228d675ff961d7e0bf514\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "a4eb0d86a29be2763be5fac51727858d5095794b",
      "tree": "f725cf700cac0e52e0376b6a9a867f4c37fe3bdc",
      "parents": [
        "9e7dd63dfff0cc967f025ea9e27a299aaa99fd69"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Apr 12 15:44:06 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Apr 13 13:50:40 2017 +0000"
      },
      "message": "aaudio: merge contents of  AAudioDefinitions.h into AAudio.h\n\nAs requested by native API council.\n\nBug: 30210002\nBug: 33398120\nTest: CTS test_aaudio\nChange-Id: I5ea7c53d09469221263d84cf6f82082e67c2523b\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "c0c70e3c7dd10bc2c0caffcab1f3f5fb406b35fb",
      "tree": "2544186372c9778460821e410c09a0edba8a17bf",
      "parents": [
        "d1b4d0a6a65476236f972cfc181a1db2b96d93ef"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Feb 09 13:18:38 2017 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Apr 12 18:26:12 2017 +0000"
      },
      "message": "AAudioService: integrated with audioserver\n\nCall the MmapStreamInterface from AudioFlinger instead of the FakeHAL.\nFix sending timestamps from the thread.\nAdd shared mode in service.\n\nBug: 35260844\nBug: 33398120\nTest: CTS test_aaudio.cpp\nChange-Id: I44c7e4ecae4ce205611b6b73a72e0ae8a5b243e5\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n(cherry picked from commit 7f6b40d78b1976c78d1300e8a51fda36eeb50c5d)\n"
    },
    {
      "commit": "57fbe42f3b804d9b97504bee224a1a5cdc3385dc",
      "tree": "c7d8578df103e84cc65a26872be8df282dd7a6e1",
      "parents": [
        "8cd8df2d1f94b1a59efa19a4becdb7d8cf01ce38"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Feb 23 16:05:36 2017 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Feb 24 10:50:19 2017 -0800"
      },
      "message": "Remove references to kernel macros.\n\nThe macros __force, __bitwise, __user are related to a kernel tool called\nsparse to find kernel bugs. These macros are always defined as nothing\nin the current uapi kernel header files, so these don\u0027t need to be here.\n\nChange-Id: I37ab48123a85b3f9b8f67920e9d56cf518b32597\nTest: Builds without warningers/errors.\n"
    },
    {
      "commit": "3316d5e6d375a4f09c681205e9094d30a0bfc4a2",
      "tree": "53d62d5e3493f6a51c9af8557ca4d4f0f5498e8c",
      "parents": [
        "3db4f4f85cfe90013952590b1aaea97dc62a243d"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Feb 15 11:23:01 2017 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Feb 16 16:27:55 2017 -0800"
      },
      "message": "libaaudio: changes for API council\n\nRemoved typedefs like aaudio_sample_rate_t\nRemoved use of handles. Just pass back opaque pointers.\nSimplified gettersi in Stream.\nRemoved getters from Builder.\nUpdate libaaudio.map.txt\n\nTest: CTS test_aaudio.cpp\nChange-Id: I63eaec3e5a8ecc516cfc1f950f4b4f54df1bd518\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "f53e613b3dedab3ecada2c93d8846233c442d129",
      "tree": "b4589d9099325e9d57d729b5f60cf4c4e8260e50",
      "parents": [
        "52a93bbb3b57d1a730aedaee0b9ec22e4c71551d"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Feb 09 13:30:22 2017 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Feb 10 19:14:40 2017 +0000"
      },
      "message": "libaaudio: change name from liboboe\n\nBug: 34749573\nTest: CTS test_aaudio.cpp\nChange-Id: I7e2b621488047f0798ca6f2fc00d2b5fed2bf015\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "3df348fbaca567ca891503213ff8c344a1ea2e05",
      "tree": "7deeef3f34905145f413646a8cc9aa246645dca9",
      "parents": [
        "24c4f0f3e9846ce17cc2cbb6c2400698b445b8f8"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Feb 08 11:41:55 2017 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Feb 08 15:35:29 2017 -0800"
      },
      "message": "AAudio: add setBufferCapacity()\n\nThis is needed so that an app can request a larger buffer.\nAlso fix a bug related to passing configuration data to the service.\n\nTest: test_aaudio.cpp\nChange-Id: Idd3066c84f6bac76a5d545b12081bc311025a6c3\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "5ed503c7a66c90f93759c90237a9b432dbd93f9f",
      "tree": "e8868af7a85c42ad915cef8ec05ca642937d25ba",
      "parents": [
        "82e1a5e928b6b73c6b568ed8bc4d0b81e503afd8"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Feb 01 09:38:15 2017 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Feb 01 12:20:40 2017 -0800"
      },
      "message": "liboboe: rename Oboe to AAudio\n\nAll of the edits were done using scripts in media/liboboe/scripts.\nThe conversion is done using SED, which is called from\nconvert_oboe_aaudio.sh\nThe conversion can be reverted when debugging using revert_all_aaudio.sh\nThe string substitutions are in oboe_to_aaudio.sed\n\nBug: 34749573\nTest: cts/tests/tests/nativemedia/aaudio\n\nChange-Id: Ia10b34472a90df2652b87607c99156e9084e57aa\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "dec33abe3739b2116ef6fbac36f7ca5d26f9d190",
      "tree": "1c64bd04521ab7dee9bb21b8d5d7bd0435ca302f",
      "parents": [
        "a77cf16037e73d1bee1852e13d92c9c7521de376"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Jan 17 14:48:16 2017 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Jan 30 17:18:08 2017 -0800"
      },
      "message": "OboeAudioService: add thread to service for passing timestamps\n\nCleanup several TODOs.\n\nTest: test_aaudio in CTS\nChange-Id: I7fc956b6a21cbb592f98e1e5a8f43ebd6926d796\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "2355edbcacfcb6e852a8707d893aaca788d42fdc",
      "tree": "c01ff46849cd0f88cc7f695a81073f2c40c94a47",
      "parents": [
        "cac8d4ea54ece7aeb4b2ffa7aafd06fbec731a62"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Dec 26 13:54:02 2016 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Jan 18 08:27:08 2017 +0000"
      },
      "message": "OboeService: initial commit\n\nThis builds a standalone service that is easy to test.\n\nBug: 33269952\nTest: test_oboe_api\n\nChange-Id: I1890b1b974e728c2c0c15e24aa02121c2774bd56\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    }
  ]
}
