)]}'
{
  "log": [
    {
      "commit": "a53ffa67b35a7e57efec57811e4f915d1caac1eb",
      "tree": "bb234b23e9f5a749e490a84d9fe161195af8ece7",
      "parents": [
        "9f81192d77a62564dc1e2c7dad1afe601784a7b9"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Oct 10 16:21:37 2018 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Sat Jan 19 15:43:55 2019 +0000"
      },
      "message": "aaudio: rename timestamp variables\n\nThere were several different timestamp variables with slightly\ndifferent meaning but with the same name.\nThat made it hard to debug the code.\n\nTest: atest CtsNativeMediaAAudioTestCases\nChange-Id: Iebf438676925c698377abe02c81f3d559829318a\n"
    },
    {
      "commit": "56d34f252ad803873fa4798b4cd0f4c6d28d2670",
      "tree": "9967806e97967f0ce9f06cabcb97ca0d2eea75d5",
      "parents": [
        "4cc873cc1dcf9e69572c2e52b68af1aebea0ad98"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Oct 11 13:30:56 2018 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Oct 11 13:38:12 2018 -0700"
      },
      "message": "aaudio: fix race condition in timestamp path\n\nThere was a potential race between setting the first timestamp\nand reading the first timestamp that could cause the timestamp service\nthread to exit. This would cause the client to not get any timestamps.\nThen the timing model would not advance and the stream would stall.\nThis could result in read() or write() returning zero,\nor a TIMEOUT error.\n\nThis was rare except for some devices that had different\ntiming in the HAL.\n\nBug: 68271891\nBug: 117557847\nTest: adb shell write_sine_callback -pl -m2 -n2 -s2 -c2 -l100\nTest: atest CtsNativeMediaAAudioTestCases\nChange-Id: Ib0974a576aaa17ff8de40899e60ed56015027bd7\n"
    },
    {
      "commit": "0127c1be07d63e046e136126cd465c3fa8977768",
      "tree": "4eb611ec5d010becd3583f93c640cc9468acb3b3",
      "parents": [
        "fdfae2898f0785f19de198ed00488e03bf52bca9"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Mar 29 13:48:06 2018 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Sep 07 11:08:24 2018 -0700"
      },
      "message": "aaudio: use new flowgraph to simplify processing\n\nConstruct a flowgraph based on the source and destination\nformat and channelCount. This is groundwork for supporting 24-bit\nPCM formats.\n\nAlso cleaned up handling of device related format.\n\nThis CL removes more code than it adds.\n\nBug: 65067568\nTest: write_sine_callback.cpp -pl\nTest: write_sine_callback.cpp -pl -x\nTest: input_monitor -pl\nTest: input_monitor -pl -x\nChange-Id: Ia155bff0164912011d09b61b54f983ccf4490bd1\n"
    },
    {
      "commit": "55e5eabf96af5a2964bfab1e64d81ad9be9ac975",
      "tree": "46127c87c1c2100d983c4bfbb611ec85bc6067b8",
      "parents": [
        "b8bddf5ece276f01052ad9b706417fd8cfe72d90"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Apr 10 15:16:38 2018 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Apr 13 18:14:20 2018 +0000"
      },
      "message": "aaudio: cleanup logs and add counters to dumpsys\n\nCounters will give us some history for AAudio.\nRemoved some unneeded logs.\nAdded log to help debug intermittent volume problem.\n\nBug: 64310586\nTest: adb shell logcat\nTest: adb shell dumpsys media.aaudio\nChange-Id: I012361bb4d0d0bfdedfe5ceef856b59282c8d3f0\n"
    },
    {
      "commit": "be645507a3ded6a481375419c8185e17c66dcb37",
      "tree": "d938ff05ee88f29968a6de963584e7b235f5f01a",
      "parents": [
        "142a00d21641393bb65a2484c0306f7c49ae9cb8"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Mar 22 13:48:18 2018 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Mar 23 11:10:30 2018 -0700"
      },
      "message": "aaudio: pass smart pointer to mixer thread\n\nBefore this, the mixer thread could close the stream using a stale pointer.\nThis could cause timeouts when plugging headphones in or out.\n\nBug: 76092458\nTest: write_sine_callback -m3 -pl -s1000\nTest: unplug and replug headphones many times on Marlin\nChange-Id: I437eb756686446a75fc5d04bc09d9408816585de\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": "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": "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": "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": "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": "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": "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"
    }
  ]
}
