)]}'
{
  "log": [
    {
      "commit": "1bb9082596c9cac2995dc9b4465a7c6d5666d099",
      "tree": "7d3b5fc5f617f395167f07282d686857e15ac032",
      "parents": [
        "01506e4ad26d1f1bf5b81121a8d17b3305940eab"
      ],
      "author": {
        "name": "rago",
        "email": "rago@google.com",
        "time": "Tue May 02 18:31:48 2017 -0700"
      },
      "committer": {
        "name": "rago",
        "email": "rago@google.com",
        "time": "Thu May 04 15:21:18 2017 -0700"
      },
      "message": "Fix wait time for audio threads in suspend mode\n\nBetter estimation of wait time in suspended audio threads.\n\nBug: 34772697\n\nTest: phone calls with BT headset.\nChange-Id: Icf99c0671def810b57332a321e4de4680697715b\n"
    },
    {
      "commit": "dff774afa22569774eb2c8c25b1b3f934badea4b",
      "tree": "123482f94f2a9246407e4cdad103c599cfa60acc",
      "parents": [
        "6534425f9f508561928fa5c39dd315fd4c354060"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 21 15:29:38 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 21 15:35:23 2017 -0700"
      },
      "message": "audioflinger: improve mmap stream volume\n\nFirst try to use HW volume control and then fall back\nto volume control in AAudio service.\n\nBug: 37518243\nTest: play a sound and check AAudio volume  callback is called\nwhen pressing volume  keys.\n\nChange-Id: Ie18be9f553ae23c247974d8923e7dcddeb1047c8\n"
    },
    {
      "commit": "d9534fb35245b8bcd2489e717bdd1ad9269b3000",
      "tree": "e952072b004f3a743465cf67d89e9420246f7bc3",
      "parents": [
        "0de04e850beced076e4b1fcf0e513255f62a7d85",
        "c0c70e3c7dd10bc2c0caffcab1f3f5fb406b35fb"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Apr 12 20:04:06 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 12 20:04:07 2017 +0000"
      },
      "message": "Merge \"AAudioService: integrated with audioserver\" into oc-dev"
    },
    {
      "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": "ddb332138cc8f3b4efad9b14b038f0a462b1b661",
      "tree": "867840ca5a15bf27c03946b9cefe07df4c0ccb8e",
      "parents": [
        "a4fe7d9cd54753ac068699eaf5750d34603220e9",
        "6d8018f0b7be9deec6b0acab10a0dca6e91d0fb8"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Apr 12 16:15:31 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 12 16:15:32 2017 +0000"
      },
      "message": "Merge \"Improve audio logs and dumpsys media.audio_flinger\" into oc-dev"
    },
    {
      "commit": "38f86713cbd22caae9fdd4ac2f0bb76ff91df34d",
      "tree": "0a63e9771a87a74837cad231f54e15c1ce8eb635",
      "parents": [
        "ef0b6b64144b6e062bbb445a6df73c365b66646d"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Apr 11 14:10:17 2017 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Apr 11 15:03:51 2017 -0700"
      },
      "message": "Audio policy / flinger: updates to recording callback and record stop\n\nDo not trigger the callback for recording events when the patch\n  handle is NONE, the patch handle will be updated for the\n  recording session later.\nWhen stopping recording, only stop the record thread if the\n  track is not active, not if it\u0027s not the first one.\n\nTest: cts-tradefed run cts-dev -m CtsMediaTestCases -t android.media.cts.AudioRecordingConfigurationTest\nBug: 36569938\n\nChange-Id: I1b7445ef4115d6337ba7b926f7e6b068361926a7\n"
    },
    {
      "commit": "6d8018f0b7be9deec6b0acab10a0dca6e91d0fb8",
      "tree": "2ce104a9e93cd8604e6624517a818ef8ddedb241",
      "parents": [
        "eb12e8bd16208fdd3017e2d99fee721993efdaa4"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Feb 21 13:05:56 2017 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Apr 07 15:30:08 2017 +0000"
      },
      "message": "Improve audio logs and dumpsys media.audio_flinger\n\nInclude mFrameCount in shared memory corrupt error log.\n\nFix typo in log for primary audio interface.\n\nInclude the new server frame count in logs for fast tracks.\n\nAlways log when fast is successful for output tracks, as it helpful\n  (was already there for input).\n\nCleanup dumpsys for threads.\n\nBug: 37153050\nTest: builds OK, and logs contain more information\nChange-Id: I2b5b4d700e8eb7c261a3125fb03ddc00bf08537e\n(cherry picked from commit 1bfe09a0b1755a79abd32b41c0dd433b88fc260c)\n"
    },
    {
      "commit": "293558ad1977e24e65f7ba78f47382d33fc77d64",
      "tree": "125f39f7efcb1c44fde136bdfefeef1bdc8af2a4",
      "parents": [
        "01c10f8cdcd58d1e7025f426a72e6e75ba5d7fc2"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Mar 21 12:19:20 2017 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Mar 24 17:06:30 2017 -0700"
      },
      "message": "AudioFlinger: Improve Thread logging.\n\nTest: dumpsys media.audio_flinger\nBug: 30572472\nChange-Id: I43f72354a6ece045f5f9f664946a406166974258\n"
    },
    {
      "commit": "886deb506ea2938cfec40fc0dd2bff072850386b",
      "tree": "c766adb78101eaee0cf091d14cbd26f3377f14e1",
      "parents": [
        "1e039394f351ef77592689f32294a1c73840ad0e",
        "d3bb645f0b7f567b033b8664499d685f8ec10628"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 13 16:37:07 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 13 16:37:08 2017 +0000"
      },
      "message": "Merge \"Re-format to decrease the maximum line length of files to 100 characters\""
    },
    {
      "commit": "d3bb645f0b7f567b033b8664499d685f8ec10628",
      "tree": "1f1093b9594df4691cc99a2e2c81bc67ea0de136",
      "parents": [
        "0012417ddc1320c6df79258266da1e869036b211"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Dec 05 18:14:37 2016 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 13 16:36:17 2017 +0000"
      },
      "message": "Re-format to decrease the maximum line length of files to 100 characters\n\nTest: compiles OK\nChange-Id: Ibe663032cd390ed2bcca6dc921d47732e6e15e21\n"
    },
    {
      "commit": "1e039394f351ef77592689f32294a1c73840ad0e",
      "tree": "551c0992185c35afed61e1e9dfeecee98756a7a3",
      "parents": [
        "00bf9d385f4dbfd11debd89b9fe7d5547aea5956",
        "6bf707f4c0752643757a7389384817da41d34fab"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 13 16:34:22 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 13 16:34:23 2017 +0000"
      },
      "message": "Merge \"Rename audio_utils/conversion.h to mono_blend.h\""
    },
    {
      "commit": "6bf707f4c0752643757a7389384817da41d34fab",
      "tree": "4b5fc278ee8a74ae100b2aadea46a6f9b4c2da1b",
      "parents": [
        "0012417ddc1320c6df79258266da1e869036b211"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Feb 23 16:53:58 2017 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 10 15:34:17 2017 -0800"
      },
      "message": "Rename audio_utils/conversion.h to mono_blend.h\n\nThere is only one function declared in that header file, and it is\nmono_blend, so a more specific filename may be easier to understand.\n\nTest: compiles OK\nChange-Id: Ie2aec6c706b1822581b34d3702818b8200a1db8a\n"
    },
    {
      "commit": "89e5a2b102b484fe19dbda2a0b118edfefc70241",
      "tree": "7d569d72d3a2e16c77a10e08de04746fab6ad52e",
      "parents": [
        "ca47e6d574cd3d02821b87657a80d84b328d4f26",
        "dcdfaecc1fa630a799e1fdb508a9b92da55abc36"
      ],
      "author": {
        "name": "Nicolas Roulet",
        "email": "nicoroulet@google.com",
        "time": "Thu Mar 09 22:55:06 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 09 22:55:06 2017 +0000"
      },
      "message": "Merge \"NBLog periodic merging thread\""
    },
    {
      "commit": "dcdfaecc1fa630a799e1fdb508a9b92da55abc36",
      "tree": "407138ab3b7cef085ca4f283ea24378910ce775e",
      "parents": [
        "cca34c05ca2d5e7ac6c2fbee3ac2db88f059143d"
      ],
      "author": {
        "name": "Nicolas Roulet",
        "email": "nicoroulet@google.com",
        "time": "Tue Feb 14 10:18:39 2017 -0800"
      },
      "committer": {
        "name": "Nicolas Roulet",
        "email": "nicoroulet@google.com",
        "time": "Thu Mar 09 12:30:24 2017 -0800"
      },
      "message": "NBLog periodic merging thread\n\nBug: 35468674\nTest: no change in functionality, everything works as before\nChange-Id: Id2cea243bc15767ca6803c9505bf23a18411500e\n"
    },
    {
      "commit": "18b570146c971fe729c391bfbb869391084e623d",
      "tree": "44427ed969851fc0e8638b508e265d6d039556b9",
      "parents": [
        "421c434e615a417d9f5443af9e52a30e3b29c256"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Feb 13 16:23:52 2017 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 08 00:33:34 2017 +0000"
      },
      "message": "audioflinger: add standby() method to MmapStreamInterface\n\nBug: 33398120\nTest: open/start/stop/close MMAP no IRQ stream for capture and playback\n\nChange-Id: I48ec202a71565f759c441c2a835d8c8190e76334\n"
    },
    {
      "commit": "10cbff139360f3f642e0e3b3ccf2d463dbed22cf",
      "tree": "85bef4f57dd8ff375059a1682c64941da884d0d5",
      "parents": [
        "1e50d1daa696e159d1ed0606de373c1cccef2c84"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Feb 21 17:30:14 2017 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Feb 24 18:56:55 2017 -0800"
      },
      "message": "VolumeShaper: Enable for offload and direct tracks\n\nTest: Play Music in offload mode\nBug: 31015569\nChange-Id: I00bb59e3e6809d4682f42057b1cc083f4fa9b9d1\n"
    },
    {
      "commit": "d5973043bed640cf634a26d65dedcde5d5ab3037",
      "tree": "338921b361392c03b1c7e34fb4ed3ae80672c175",
      "parents": [
        "8dc323ef737babc1b1c0b0347b4b895969aee77b",
        "4da7820be451847bad698ac0f687b964d9b5d34f"
      ],
      "author": {
        "name": "Nicolas Roulet",
        "email": "nicoroulet@google.com",
        "time": "Fri Feb 17 19:46:18 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 17 19:46:19 2017 +0000"
      },
      "message": "Merge \"Minor code style changes and namespace fix\""
    },
    {
      "commit": "8dc323ef737babc1b1c0b0347b4b895969aee77b",
      "tree": "4afdfab9a14f359bf13e87d9f120fb0363032049",
      "parents": [
        "ca8126c04c91b6b5030be2e2c8cff786c160faac",
        "c20cb50c1c14cd765874511872f087c875f43ed9"
      ],
      "author": {
        "name": "Nicolas Roulet",
        "email": "nicoroulet@google.com",
        "time": "Fri Feb 17 19:41:23 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 17 19:41:24 2017 +0000"
      },
      "message": "Merge \"Added process name to PID log\""
    },
    {
      "commit": "4da7820be451847bad698ac0f687b964d9b5d34f",
      "tree": "5f0f110685f4f4d4c908834a589748addbf39bbd",
      "parents": [
        "c20cb50c1c14cd765874511872f087c875f43ed9"
      ],
      "author": {
        "name": "Nicolas Roulet",
        "email": "nicoroulet@google.com",
        "time": "Fri Feb 03 12:53:39 2017 -0800"
      },
      "committer": {
        "name": "Nicolas Roulet",
        "email": "nicoroulet@google.com",
        "time": "Thu Feb 16 14:22:28 2017 -0800"
      },
      "message": "Minor code style changes and namespace fix\n\nBug: 35329090\nTest: recompile, no change of functionality\nChange-Id: Ied3ec7d95ce29896e8bf1851b08345da74bf8299\n"
    },
    {
      "commit": "c20cb50c1c14cd765874511872f087c875f43ed9",
      "tree": "4da5367ebd84ebeac6dd927d535a5b1dd84c79e4",
      "parents": [
        "2f77a2229be73b222098c45aed73728842667e12"
      ],
      "author": {
        "name": "Nicolas Roulet",
        "email": "nicoroulet@google.com",
        "time": "Wed Feb 01 12:35:24 2017 -0800"
      },
      "committer": {
        "name": "Nicolas Roulet",
        "email": "nicoroulet@google.com",
        "time": "Thu Feb 16 14:22:16 2017 -0800"
      },
      "message": "Added process name to PID log\n\nBug: 35357686\nTest: included in CL\nChange-Id: Ie4d3cb66a2c766ce87ebabcc9c0d3aa988702e09\n"
    },
    {
      "commit": "9ee35d72c4b89db99c2df0b0125373f360b337f8",
      "tree": "413fd927c46dc9a96d8cd73bb9d0dcaa658b4663",
      "parents": [
        "2f77a2229be73b222098c45aed73728842667e12",
        "fda69406966f8578a7827e889bff615f0144b441"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 16 01:40:05 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 16 01:40:06 2017 +0000"
      },
      "message": "Merge \"AudioFlinger: Prevent FastMixer for A2DP sink\""
    },
    {
      "commit": "fda69406966f8578a7827e889bff615f0144b441",
      "tree": "fd68918b0b249545de38ab704a15bbe625318720",
      "parents": [
        "36b31c87807a4f8cd22e73da9bf2df7babdb906e"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Feb 15 14:33:12 2017 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Feb 15 15:53:12 2017 -0800"
      },
      "message": "AudioFlinger: Prevent FastMixer for A2DP sink\n\nAlso avoids issues with FastMixer and BT suspend.\n\nTest: BT with Play Movies\nBug: 34335167\nBug: 35166960\nBug: 35384619\nChange-Id: Ie1bfaf2d09b7cfe6b86a1d26fc1d5fdabf82c020\n"
    },
    {
      "commit": "f228531c5d01f497f5802c44545e0000ec44ab83",
      "tree": "097e67199b3cf43ed1a07448c9f41df9da123d81",
      "parents": [
        "36b31c87807a4f8cd22e73da9bf2df7babdb906e"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Feb 14 18:31:59 2017 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Feb 15 09:55:04 2017 -0800"
      },
      "message": "AudioFlinger: Do not wait for FastMixer if in cold idle.\n\nTest: BT outgoing call\nBug: 34335167\nBug: 35166960\nChange-Id: I1da0de844560bf77b4149dc30979eebc131d009e\n"
    },
    {
      "commit": "30d48d9542fb3f85889108c1ee2daff98a4860e7",
      "tree": "b85955dd0493f049b91a5b4ab32527f39a4ba6e2",
      "parents": [
        "b129be34d1b08440d2867702b22e81c037be899a",
        "9fc8b5cd4a64ef07e84c69112461324d5c13a0b0"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Feb 14 01:38:56 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 14 01:38:57 2017 +0000"
      },
      "message": "Merge \"VolumeShaper: Initial implementation\""
    },
    {
      "commit": "9fc8b5cd4a64ef07e84c69112461324d5c13a0b0",
      "tree": "2d058e73f09f1822108daad51948a34c420634e3",
      "parents": [
        "ed1abbfc73d4ade0ef08239fc56ac66d70a00a92"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jan 24 13:36:48 2017 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Feb 13 14:31:46 2017 -0800"
      },
      "message": "VolumeShaper: Initial implementation\n\nThe VolumeShaper is used to apply a volume\nenvelope to an AudioTrack or a MediaPlayer.\n\nTest: CTS\nBug: 30920125\nBug: 31015569\nChange-Id: I42e2f13bd6879299dc780e60d143c2d465483a44\n"
    },
    {
      "commit": "f5f4056014118f6ddd16affe853fd0605001ab40",
      "tree": "3b556420f26402317914702ed0cc86e1564428f4",
      "parents": [
        "2d6140b8dce137f89029b12468e25d5911f23420",
        "555530ab903504ad3586bc24cd8a4f200f5c39ae"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Feb 13 19:30:47 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 13 19:30:48 2017 +0000"
      },
      "message": "Merge \"audio: several concurrent capture fixes\""
    },
    {
      "commit": "7863c791dba8c4e5e9591b6837d410e580be0a25",
      "tree": "5199273fa3bac5303b0aa8dcdfd984f49f75e30f",
      "parents": [
        "94a20830fc0768efc138ab7f746f80e8b3d60c15",
        "6acd1d432f526ae9a055ddaece28bf93b474a776"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Feb 10 20:24:21 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 10 20:24:22 2017 +0000"
      },
      "message": "Merge changes from topic \u0027mmap_no_irq\u0027\n\n* changes:\n  Add support for mmap stream\n  audioflinger: define MMAP HAL Stream control interface\n"
    },
    {
      "commit": "555530ab903504ad3586bc24cd8a4f200f5c39ae",
      "tree": "1c7904daf0e13a86bb225d2e52f791ef84ec85a5",
      "parents": [
        "c96fc852f010f9254a38a0073a4de7a848e33e44"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Feb 07 18:17:24 2017 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Feb 09 21:09:55 2017 -0800"
      },
      "message": "audio: several concurrent capture fixes\n\nMake sure AudioRecord clients are invalidated synchronously\nwhen closing an input stream instead of when the capture thread\nexits.\n\nFix AudioPolicyManager::getInputForDevice() logic to make sure that\nnot only the first opened input encountered is considered when looking\nfor a compatible input to reuse for concurrent capture.\n\nBug: 22702906\nTest: run CTS test\nChange-Id: I7f69609d4ee70a37ab06753ff970b12df17d885b\n"
    },
    {
      "commit": "83f042776b131b149f803fff6ab184ae2c4d98cd",
      "tree": "d3c78a3313c94799261a927c84cddc7c0ebdd398",
      "parents": [
        "ba05ff122c080be9fafe1f8112052cacfcd2b6fe"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Feb 07 10:45:09 2017 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Feb 09 15:51:36 2017 -0800"
      },
      "message": "audioflinger: Adjust priority of hal threads\n\nHALs are prohibited from using framework binder, and there is\nno equivalent scheduling policy service in hwbinder. Thus, in order\nto match priorities of FastCapture / Mixer threads with their\ncounterparts in the HAL, it is needed to request the priority boost\nfrom audioflinger on behalf of the HAL.\n\nTest done to verify the priority was correctly set.\n\nBug: 34131400\nChange-Id: If8b6b031c0fcba771fae901a5b8e7da89b3a1570\nTest: check priority match between audioflinger\u0027s and hal\u0027s threads\n"
    },
    {
      "commit": "8eacd8090e16c022dcbb11850cff83f984fe2357",
      "tree": "8efbb8305163d4956d8e096e769801a11e6ba2b8",
      "parents": [
        "c17c28aac0fa31be3fc4068da5e2f95731e7c361",
        "fe1e1449cadff4f946c33403aecc73b4b4a11e56"
      ],
      "author": {
        "name": "Nicolas Roulet",
        "email": "nicoroulet@google.com",
        "time": "Fri Feb 03 17:35:28 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 03 17:35:29 2017 +0000"
      },
      "message": "Merge \"Implemented typed, thread-specific logging system. Currently supported types are:  * Strings  * Integers  * Floats  * Timestamps  * Process IDs\""
    },
    {
      "commit": "fe1e1449cadff4f946c33403aecc73b4b4a11e56",
      "tree": "500bb66d15abbbd9b48dce430480cc35d4e6245b",
      "parents": [
        "5a3b54df3014ece49eb1f339e5598c01c6126251"
      ],
      "author": {
        "name": "Nicolas Roulet",
        "email": "nicoroulet@google.com",
        "time": "Mon Jan 30 12:02:03 2017 -0800"
      },
      "committer": {
        "name": "Nicolas Roulet",
        "email": "nicoroulet@google.com",
        "time": "Thu Feb 02 16:45:04 2017 -0800"
      },
      "message": "Implemented typed, thread-specific logging system. Currently supported types are:\n * Strings\n * Integers\n * Floats\n * Timestamps\n * Process IDs\n\nAdded printf-like formatted logging using mentioned types.\n\nTest: included in this CL\nBug: 29421410\nChange-Id: Ie07b78d8d39c32fcc8a122ffa9b1b7082800b990\n"
    },
    {
      "commit": "9bb03b4e10bfd26247eeb1865e40bb0645489816",
      "tree": "28095b6ca75df060542ad33b5f69b56face1963c",
      "parents": [
        "2872c7ab71fb554ee14d4e8b65677f9c7a97f966",
        "2247f7b84bf0ce3cc9c909ef987eedb086e3b4e8"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Jan 14 06:39:22 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Jan 14 06:39:23 2017 +0000"
      },
      "message": "Merge \"audioflinger: Fix effect creation handling\""
    },
    {
      "commit": "2247f7b84bf0ce3cc9c909ef987eedb086e3b4e8",
      "tree": "3045baaee4d5fb8bebee134017d46d1a479f8310",
      "parents": [
        "38267b773f2cdec4d684b12fde73179bcc66e0c7"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Jan 13 11:52:54 2017 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Jan 13 20:10:31 2017 +0000"
      },
      "message": "audioflinger: Fix effect creation handling\n\nThe code flow was incorrect for sure. The \u0027if\u0027 branch is chosen\nif \u0027effect \u003d\u003d 0\u0027, and \u0027effectRegistered\u0027 is set to \u0027true\u0027 before\nthe effect is even created.\n\nTest: audioflinger doesn\u0027t crash if effect failed to get created\nChange-Id: I00d5f28e8b96acd765867e212c5b8193e21f9b4a\n"
    },
    {
      "commit": "8981605d43e24c46d395acb5f145b99589d45917",
      "tree": "8bb7ee0e15081201b70730bbaafed49b47d211dc",
      "parents": [
        "d7c5ec857930496bb8a1045dc8b87b2fdd99899c"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jan 11 17:08:23 2017 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jan 11 17:19:37 2017 -0800"
      },
      "message": "AudioFlinger: Move RecordBufferConverter to libaudioprocessing\n\nTest: Recording loopback\nBug: 31015569\nChange-Id: I7897d959f36ac7424544e35f47576c99a442dd54\n"
    },
    {
      "commit": "6acd1d432f526ae9a055ddaece28bf93b474a776",
      "tree": "5035b942396a0e907e0c23f803a349d17dc50ad5",
      "parents": [
        "fc23520d9c3f15e28baa81de5f7dfa6c1b0af426"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 04 14:23:29 2017 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 11 12:59:06 2017 -0800"
      },
      "message": "Add support for mmap stream\n\nAdd support for MMAP streams created by Oboe service.\n- A new audio thread class MmapThread deriving from ThreadBase\nis added to manage permissions, volume, routing and wakelocks for activity\non MMAP streams.\n- Requests received over MmapStreamInterface to open, start and stop\na MMAP stream are forwarded to audio policy manager so that activity\non MMAP capture and playback streams is visible to audio policy and\ntaken into account in volume and routing management.\n`\n\nBug: Bug: 33398120\nTest: manual test\nChange-Id: I957906495fe9277d2972d810b633f50cd1e14ec3\n"
    },
    {
      "commit": "068561c8e84569d51df2adbbb53b56fdfd09c06b",
      "tree": "67e6c9c383b4667adc502b0ed6928a672a6a5b6d",
      "parents": [
        "ee454fcb25bff0f9c5d3455775a4cb66429e875e"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jan 03 17:09:32 2017 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jan 10 17:06:46 2017 -0800"
      },
      "message": "AudioFlinger: Split off audio processing library\n\nTest: native AudioResampler test, general playback test\nBug: 31015569\nChange-Id: Ifb248f4402a583438d756c014dcd7a4577aef713\n"
    },
    {
      "commit": "022b9953153bdb1984f0abb17d21ef8c1826ad49",
      "tree": "aff19a7663d75cbb16bc003424bacb6f97b738cd",
      "parents": [
        "e61f9e57e61cbf4d86d6385dd3cddb41e245f749"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Jan 04 16:36:51 2017 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Jan 09 18:18:18 2017 -0800"
      },
      "message": "Re-implement HIDL effect processing using FMQ and IMemory\n\nResult: no hwbinder calls due music processing.\n\nTest: make, use Play Music with effects, check traces\nBug: 30222631\nChange-Id: I06d0e94e603688874b31824427f3b0878b5f7c8e\n"
    },
    {
      "commit": "e1c4b5d7a94c21b8ce0c5707b4af84de596fbb79",
      "tree": "8c448787f6c4f7bfe7647cc32601350247d4066a",
      "parents": [
        "2b934d36939c571a47cc972670176bc0356c54be"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Dec 22 09:22:45 2016 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Jan 04 20:50:54 2017 -0800"
      },
      "message": "Re-implement HIDL stream read and write using FMQ\n\nResult: no hwbinder calls due read / write session.\n\nTest: make, perform Loopback RTT, check traces\nBug: 30222631\n\nChange-Id: I4a8792525ec374111302cfd5c0a2e41f9f4cc418\n"
    },
    {
      "commit": "d01b0f18491c355d808a57cb272404480e69618f",
      "tree": "f76d375fda0baa041dedad60a7cbabdc562f3ede",
      "parents": [
        "36867767ba86244b0d942255b9d241b092151309"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Nov 07 16:10:30 2016 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jan 03 14:13:02 2017 -0800"
      },
      "message": "AudioFlinger: update to use uid_t\n\nTest: Power manager shows correct uids for audio\nBug: 32713790\nChange-Id: I60134f60631ea00886efc912ba298443aadd3c00\n"
    },
    {
      "commit": "5b4051afc26367d7accd06580c5135c8295759f9",
      "tree": "7570bfc424d02beb1ac90b4f1e2afba02c23d222",
      "parents": [
        "1570e5805254f638ccf5bb5c29870a9c8e7a7db3",
        "dae27707fc7d8370eb200d25d1a7c6dd7ad5e201"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Dec 20 00:35:47 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 20 00:35:47 2016 +0000"
      },
      "message": "Merge \"AudioFlinger: Associate audio time with client uid\""
    },
    {
      "commit": "dae27707fc7d8370eb200d25d1a7c6dd7ad5e201",
      "tree": "0dd0ed540d7d58a7d19e83ee9ff648d57f218df6",
      "parents": [
        "07f49573613aee5a8e661f74a324db371ecc8551"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Oct 31 14:01:16 2016 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Dec 14 17:52:54 2016 -0800"
      },
      "message": "AudioFlinger: Associate audio time with client uid\n\nGroup active track operations for add and remove together.\nPlaybackThread now uses strong pointer for active tracks.\n\nTest: Play Music, Youtube, Batterystats, CTS AudioTrack\nBug: 32361950\nChange-Id: I101df081dd8d090560a83c44c2fa9ffcbf39c84d\n"
    },
    {
      "commit": "20b9ef0b55c9150ae11057ab997ae61be2d496ef",
      "tree": "21bd57d748dd47600b1e62bfb18d4acb08e15438",
      "parents": [
        "8526d86ab12284135ed4ca27aeb816371c10c0e6"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Dec 05 11:03:16 2016 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Dec 12 12:29:41 2016 -0800"
      },
      "message": "Add unique audio port IDs to AudioTrack and AudioRecord\n\nThis will allow to track activity at the track level instead of\nat audio session level as only possible with current implementation.\n\nAudioTracks and AudioRecords will receive a unique audio port ID the\nfirst time they register to audio policy with\ngetOutputForAttr()/getInputForAttr() and keep this ID for their\nlifetime.\n\nThis CL is the first partial change and just updates the\naudio policy and audio flinger APIs used at track creation time.\n\nTest: basic regression test of audio playback and capture use cases\n\nChange-Id: I8d612e67738e120494f61e3f7c60bfd0b2c6a329\n"
    },
    {
      "commit": "abf6ff26df459d991cdbc2dca3b78046c97469db",
      "tree": "9e6ab352b182d73d3508c32c81090ec9e355f5a2",
      "parents": [
        "26a8ba63104f3c7d4e0a750b58d56ad76dbce373",
        "2148bf0e79c436b8764b9edc4c8f2730cce98a32"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Dec 03 04:33:19 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Dec 03 04:33:20 2016 +0000"
      },
      "message": "Merge \"Log audio information to ensure complete delivery\""
    },
    {
      "commit": "0d5a2ed0a05a2bf337c68edb54f24c60e18032c1",
      "tree": "6b8dac8ec17119ad5b661b85cff30bffe1d4a645",
      "parents": [
        "0d96fa05bf3f22942c372ecc93a7f6a44ecda30a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 01 15:28:29 2016 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 02 12:21:39 2016 -0800"
      },
      "message": "improve audio effect framwework thread safety\n\n- Reorganize handle effect creation code to make sure the effect engine\nis created with both thread and effect chain mutex held.\n- Reorganize handle disconnect code to make sure the effect engine\nis released with both thread and effect chain mutex held.\n- Protect IEffect interface methods in EffectHande with a Mutex.\n- Only pin effect if the session was acquired first.\n- Do not use strong pointer to EffectModule in EffectHandles:\nonly the EffectChain has a single strong reference to the EffectModule.\n\nTest: Tested with EffectTest app. Regression tests in main audio use cases.\n\nBug: 32707507\nChange-Id: Ia1098cba2cd32cc2d1c9dfdff4adc2388dfed80e\n"
    },
    {
      "commit": "2148bf0e79c436b8764b9edc4c8f2730cce98a32",
      "tree": "8d380e3f69e99d4ebf76c08c51a5833dc0eca2ff",
      "parents": [
        "b54cab90d4bf84745a57232080d72a50c3b731da"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Nov 28 19:01:02 2016 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Dec 01 17:36:41 2016 -0800"
      },
      "message": "Log audio information to ensure complete delivery\n\nTest: Audio playback\nBug: 30572472\nChange-Id: Ibad6fc202692cd3480ae726627252afdead083f3\n"
    },
    {
      "commit": "9cab746b116b8aed38ca6b97bfea35103535e522",
      "tree": "cc36a1ef710484eb9df3195a757ff430bdbe4bd4",
      "parents": [
        "5850c4c8eecbe0db3cee8511a4f82cb443e27d08"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 10 13:05:20 2016 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 10 14:04:09 2016 -0800"
      },
      "message": "Revert \"AudioFlinger: Associate audio time with client uid\"\n\nThis reverts commit 2f366df67c31119bb6dd726becd32d14b18e6573.\n\nBug: 32728805\nChange-Id: If0a158154814492eda427de0af8a49c0b0a91180\n"
    },
    {
      "commit": "5850c4c8eecbe0db3cee8511a4f82cb443e27d08",
      "tree": "27aa0d14f34059b7941251d50221856b66f702a7",
      "parents": [
        "c6cd50f4e6b07530cb0391002fcf3e5a6ae4767f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 10 13:04:31 2016 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 10 13:49:16 2016 -0800"
      },
      "message": "Revert \"AudioFlinger: Remove naked track pointers\"\n\nThis reverts commit 062bfceaefab29f0f71db7d5a248b3f5f0572b6a.\nBug: 32728805\n"
    },
    {
      "commit": "77109420fe285b4e9618bd5f0cd12e0fcef6eced",
      "tree": "f738962f880d4a2a14bc46e598f4f049e8ed2962",
      "parents": [
        "eb6300d4bbe1cb0e24e26b15e3b5af8afe874c5f",
        "1f12a8ad958344c50733b948628ffa06db9c5bc6"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Nov 10 19:15:45 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 10 19:15:46 2016 +0000"
      },
      "message": "Merge \"Audio: Use uid_t for uids\""
    },
    {
      "commit": "1f12a8ad958344c50733b948628ffa06db9c5bc6",
      "tree": "d9ce12941c1461657bf32779f6d18605defd5cf1",
      "parents": [
        "062bfceaefab29f0f71db7d5a248b3f5f0572b6a"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Nov 07 16:10:30 2016 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Nov 08 16:43:39 2016 -0800"
      },
      "message": "Audio: Use uid_t for uids\n\nTest: Power manager shows correct uids for audio\nBug: 32713790\nChange-Id: If5337e17283268f74dc0f00cc66ece9153d680ef\n"
    },
    {
      "commit": "0871d93cbadad8d736a09454b47846e09a793504",
      "tree": "5955cc2fc577d70022d46b5dcfb3d4a6a410c18b",
      "parents": [
        "19b396db94fa9dc3dfe713e8687dad4804e06327",
        "062bfceaefab29f0f71db7d5a248b3f5f0572b6a"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Nov 08 03:18:41 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 08 03:18:42 2016 +0000"
      },
      "message": "Merge \"AudioFlinger: Remove naked track pointers\""
    },
    {
      "commit": "19b396db94fa9dc3dfe713e8687dad4804e06327",
      "tree": "86759f272c9f80f115c8ef1750e0c49f14753f7b",
      "parents": [
        "b847a8944c659d743ede4145cb1d52cc89f5030b",
        "2f366df67c31119bb6dd726becd32d14b18e6573"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Nov 08 01:39:26 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 08 01:39:27 2016 +0000"
      },
      "message": "Merge \"AudioFlinger: Associate audio time with client uid\""
    },
    {
      "commit": "062bfceaefab29f0f71db7d5a248b3f5f0572b6a",
      "tree": "364bf9fb56e116b3999558175453f7aec1ad4f77",
      "parents": [
        "2f366df67c31119bb6dd726becd32d14b18e6573"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Nov 01 14:58:47 2016 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Nov 07 14:51:57 2016 -0800"
      },
      "message": "AudioFlinger: Remove naked track pointers\n\nTest: Play Music offloaded and kill audioserver\nChange-Id: I3114a67f248e067e0b5334d76e4b5e6c39858040\n"
    },
    {
      "commit": "2f366df67c31119bb6dd726becd32d14b18e6573",
      "tree": "e38f357fab72df9693d5c5ad0d50079927a0744f",
      "parents": [
        "3ee0f1069e56d74b9cb39de8b0d9701369a4446b"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Oct 31 14:01:16 2016 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Nov 07 14:50:45 2016 -0800"
      },
      "message": "AudioFlinger: Associate audio time with client uid\n\nGroup active track operations for add and remove together.\nPlaybackThread now uses strong pointer for active tracks.\n\nTest: Play Music, Youtube, Batterystats, CTS AudioTrack\nBug: 32361950\nChange-Id: Ica96e2b84b9dfa5766571e24de49401a81a30e9d\n"
    },
    {
      "commit": "913d06c099bd689375483a839e11057ccf284d1c",
      "tree": "25d7f40231f47897013b0984348f40bf05b72ea7",
      "parents": [
        "267e07cd8432679bcdd72b0bdf38846446c1c4ed"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Nov 01 12:49:22 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Nov 07 09:29:37 2016 -0800"
      },
      "message": "Move TypeConverter into a shared library\n\nThis will be needed for the default implementation of the audio HAL\nin TREBLE for parsing supported formats etc. provided by HAL in\na form of string literals.\n\nAs a bonus, remove some hand-written type conversions in AudioFlinger\nused in dumps.\n\nExample changes in the dump output:\n\n   HAL format: 0x1 (pcm16) \u003d\u003d\u003e HAL format: 0x1 (AUDIO_FORMAT_PCM_16_BIT)\n   Processing format: 0x5 (pcmfloat) \u003d\u003d\u003e Processing format: 0x5 (AUDIO_FORMAT_PCM_FLOAT)\n   Output device: 0x2 (SPEAKER) \u003d\u003d\u003e Output device: 0x2 (AUDIO_DEVICE_OUT_SPEAKER)\n   Input device: 0 (NONE) \u003d\u003d\u003e Input device: 0 (AUDIO_DEVICE_NONE)\n   AudioStreamOut: 0x... flags 0x6 (PRIMARY|FAST) \u003d\u003d\u003e\n       AudioStreamOut: 0x... flags 0x6 (AUDIO_OUTPUT_FLAG_PRIMARY|AUDIO_OUTPUT_FLAG_FAST)\n\nTest: make \u0026 run\nChange-Id: I9cde640e6827b7aa6d62e9caade9e738227e299f\n"
    },
    {
      "commit": "f2ae3e19080938db8cbf29a963fd744a3964fcc2",
      "tree": "f5f1ef5ff03ae54e10af8e2726ce1db80b49f87d",
      "parents": [
        "2aa19a96710eaaaf6679453f0278d393fd768de5"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Oct 27 17:10:59 2016 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Oct 28 10:09:28 2016 -0700"
      },
      "message": "BatteryNotifier: attribute battery usage of video to correct uid.\n\nTest: manual check batterystats\nBug: 32361950\nChange-Id: Id052220e87f6667ca908d5bf6be6164dc8c14c53\n"
    },
    {
      "commit": "9ee0540d3a61bff03d561ca431a371c3d9335d2b",
      "tree": "1bf7817725f35ec9c0755e819cb5f58fdf0bf487",
      "parents": [
        "e7e8d636b486cf49487db1d8da5e8e7cb15d9549"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Oct 13 15:58:17 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Oct 19 09:46:33 2016 -0700"
      },
      "message": "Remove last references to hardware/audio.h\n\nDeviceHalInterface transitioned to \"capabilities\" model\n(similar to the one already used by streams, e.g. \u0027supportsDrain\u0027).\nNo direct checking of the HAL version is needed.\n\nAudioPolicy uses its own version read from the configuration,\nand these values never checked against the actual HAL version,\nthus it does not need versions and macroses from hardware/*.\n\nTest: make \u0026 run on N6P\nChange-Id: Ic4a56bfa19a9a61edac2b9f9a163fd8f63a0ff87\n"
    },
    {
      "commit": "9fe94012187a29eeeca2c74e75f121192560fba0",
      "tree": "6019137198afcc098e664c337b86b765d63a63bc",
      "parents": [
        "61a4fac2e3ec271241e3a4f405d7357b7f6ca4c2"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Oct 14 14:57:40 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Oct 14 15:29:33 2016 -0700"
      },
      "message": "Split audio effects headers\n\nThere can be different use cases with the code that imports\nheaders from audio_effects (each subsequent case is a more\nspecialized version of the previous one):\n\n  1. The code only needs access to general structures\n     like effect_descriptor_t:\n     \u003d\u003d\u003e include system/audio_effect.h\n     Example: AudioSystem in libmedia\n\n  2. The code that needs access to effect UUID and parameter\n     enums:\n     \u003d\u003d\u003e include system/audio_effects/effect_foo.h\n     Examples: media framework effects interfaces, libwilhelm\n\n  3. The code that needs to call into HAL:\n     \u003d\u003d\u003e include hardware/audio_effect.h\n     Examples: libaudiohal (implementation part) and libeffects\n\n  4. The code that implements a particular effect:\n     \u003d\u003d\u003e include audio_effects/effect_foo.h\n     Examples: cts/.../CTSTestEffect.cpp\n               stuff in hardware/, vendor/\n\nNote that AudioPolicy still deals with the effects HAL directly,\nthis needs to be fixed.\n\nChange-Id: I963335ede6a196f9225caf21e1a01d03635e363c\nTest: make\n"
    },
    {
      "commit": "00260b5e6996b0a4b12f71c5b84e44adea040534",
      "tree": "7e93a2e3cc5f918d8f7a7409d9c98712eed0d2fe",
      "parents": [
        "47677e3edda7b15bc0b48c6863a01ae052785e0c"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Oct 13 12:54:24 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Oct 13 14:02:38 2016 -0700"
      },
      "message": "Remove dependencies on hardware/audio_effects.h and EffectsFactoryApi.h\n\nAlso remove some outstanding dependencies on hardware/audio.h.\n\nMost of the time, only constants and structs from audio_effects.h\nare used, and no actual calls into HAL are made. Move these\ndefinitions into system/audio_effect.h, and generate constants\nfrom TREBLE HAL definition.\n\nFor parameters, always use values from AudioParameter class.\n\nThere are still some outstanding includes of hardware/audio.h\nin code that directly deals with audio modules. Need to extend\nlibaudiohal interfaces to support required functionality.\n\nTest: make\n\nChange-Id: I0bcdf8ae199485d4d65f3eeb7e7a3b9b5cdb6ab6\n"
    },
    {
      "commit": "473de569eed6438ee3eea955efe309900122f051",
      "tree": "bd7a57db417df87bb37243012f3854034defa6ac",
      "parents": [
        "d3196abc2d216e74be7b137cd0b93ef5b4f005db",
        "5bc5b90bbe3eae27c6de5a556eda531d4430dfab"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Oct 12 19:56:09 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Oct 12 19:56:09 2016 +0000"
      },
      "message": "AudioFlinger: Improve effect compatibility with RAW and FAST am: d3bb0adfe4 am: 4a7ef5c1d7\nam: 5bc5b90bbe\n\nChange-Id: I681d68a632a527983972df160ba5dab1c50967cc\n"
    },
    {
      "commit": "5bc5b90bbe3eae27c6de5a556eda531d4430dfab",
      "tree": "33c6c894943057ea9867ad8d396ec8f1fa04fdab",
      "parents": [
        "13c04bc10f428243921c71699646476a2b921363",
        "4a7ef5c1d70bbe944ca812769f98ff45400562c8"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Oct 12 19:48:55 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Oct 12 19:48:55 2016 +0000"
      },
      "message": "AudioFlinger: Improve effect compatibility with RAW and FAST am: d3bb0adfe4\nam: 4a7ef5c1d7\n\nChange-Id: Ia7d516d957b0582ec6776d4306019e6f2dfc10c0\n"
    },
    {
      "commit": "d3bb0adfe40e60bb94e9a87e8d5bffb4ea6863b0",
      "tree": "b9ee66240bf0caaaecfbb6d9ca7c1ce54d5e8697",
      "parents": [
        "2035bc0e096cbef893a36c1888da67a77d1330b9"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Oct 11 17:16:43 2016 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Oct 12 10:01:27 2016 -0700"
      },
      "message": "AudioFlinger: Improve effect compatibility with RAW and FAST\n\nEffects without process function now are allowed with RAW\nand FAST playback and record tracks.\n\nBug: 32053844\nChange-Id: I58064eb2c357043c2da1a781a20988f42570d97e\n"
    },
    {
      "commit": "cbc8f617c1aebef5d041fa40dcd38a5466690b99",
      "tree": "525470607c3e6436c5a73caac90830104fcde9ac",
      "parents": [
        "0c739c59dd1a3d52beb82a353c13b6c853d93f5f"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Oct 11 18:05:13 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Oct 11 18:05:13 2016 -0700"
      },
      "message": "Eliminate dependencies on hardware/audio.h (trivial cases)\n\nframeworks/av must not depend on hardware/ (except for the code\nfrom libaudiohal that actually calls into HAL).\n\nThis CL deals with simple cases where depending on system/audio.h\nis enough.\n\nChange-Id: Ia2cb66cc8c92316ce5ab884a008d5e531263c2e4\nTest: make\n"
    },
    {
      "commit": "a0c91339814f37ea78365afb436c9f3d1f0a0090",
      "tree": "b0075232d68758a314754a9293c65ea15091ca95",
      "parents": [
        "5090f7d3211b5517a7602c910c04462f7eee0727"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Sep 19 10:01:12 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Sep 26 14:53:38 2016 -0700"
      },
      "message": "Update NBAIO to use the new audio HAL abstraction layer\n\nMoved the HAL access abstraction layer to a separate library so it\ncan be used both by audioflinger and libnbaio.\n\nBug: 30222631\nTest: manual with Loopback app, Hangouts, YouTube\n\nChange-Id: Id622c2f1aa8f55a775d34f369a596c2c4d29d5be\n"
    },
    {
      "commit": "711ee66377eb053cd7a3467ca519239ebb7bf300",
      "tree": "e4c3ded55e5de71dde6f30bf551014cf4f2f2a86",
      "parents": [
        "2dddfc19437c00d77ad4943b6d10ad038ebf486e",
        "5c24d28bfc72423ff5bb6de3d46fe4747d9b64b1"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sun Sep 25 21:33:55 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sun Sep 25 21:33:55 2016 +0000"
      },
      "message": "audioflinger: limit max number of tracks per client am: ad7dd9610b am: 6cfa8fdc9f\nam: 5c24d28bfc\n\nChange-Id: I3653bed5e0a0ef1476aa4409b256a8a81c6bc3fa\n"
    },
    {
      "commit": "5c24d28bfc72423ff5bb6de3d46fe4747d9b64b1",
      "tree": "9c1f9c68d80e8042e273626d2c1b9ac6959b87c9",
      "parents": [
        "a9f9acc3ba7502f0aede544c821cbe1c5f3bd992",
        "6cfa8fdc9f28dabe98c44e7317330f06f7a88813"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 23 19:08:03 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 23 19:08:03 2016 +0000"
      },
      "message": "audioflinger: limit max number of tracks per client am: ad7dd9610b\nam: 6cfa8fdc9f\n\nChange-Id: I1952387cd010a11ce9512a8b56a363cc4bb7a078\n"
    },
    {
      "commit": "6cfa8fdc9f28dabe98c44e7317330f06f7a88813",
      "tree": "72f4a6f51de98737236a97b033bd306e6c87f164",
      "parents": [
        "cfb81966d1ff5b7bdbb014d73e7946976efc0b8b",
        "ad7dd9610b6fafa81baf69607f4ac669da88182a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 23 19:06:07 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 23 19:06:07 2016 +0000"
      },
      "message": "audioflinger: limit max number of tracks per client\nam: ad7dd9610b\n\nChange-Id: I0dd67dfc1324cd4969561370faf105bcf7286949\n"
    },
    {
      "commit": "7bafda7a153cda393ce018241fa7304845225ae5",
      "tree": "b50b6e95c158427610b71aca1145e12b4b4fac30",
      "parents": [
        "cc0ec44a984b92535a9dc40873b551c5087df2d5",
        "ad7dd9610b6fafa81baf69607f4ac669da88182a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 23 18:55:08 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 23 18:55:08 2016 +0000"
      },
      "message": "Merge \"audioflinger: limit max number of tracks per client\" into nyc-mr1-dev"
    },
    {
      "commit": "39ed2aa31b0c6c8e485660c2aedff74f10d14411",
      "tree": "ccefc2d11804064a33fa4c6822b5b26240e84c80",
      "parents": [
        "162c17fad1ffa1db1588f82773933e8984661089",
        "6353f121d73b8312bfad6451c14213e64113999e"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Sep 23 00:29:45 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 23 00:29:45 2016 +0000"
      },
      "message": "Add logging of written frame counts am: 2c45393d84\nam: 6353f121d7\n\nChange-Id: I3f569f4587c09f9f3f85d2466a3c742e2720b529\n"
    },
    {
      "commit": "ad7dd9610b6fafa81baf69607f4ac669da88182a",
      "tree": "fb08c9c45c9db1d22c4828c4fb98ff8bc2a471df",
      "parents": [
        "08e1f41731ad95a0019b3733b999958a07f705ac"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 22 12:38:37 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 22 23:43:32 2016 +0000"
      },
      "message": "audioflinger: limit max number of tracks per client\n\nLimit max number of audio tracks for a given application to\nlimit the chance of denial of service by misbehaving apps\nnot releasing tracks.\n\nBug: 7007023\nChange-Id: Id7ac37450aabdbeaa5f83cb6e4b2a2b0c749f99c\n"
    },
    {
      "commit": "b54c854d1ef1bb66e093c94099f915178eac570e",
      "tree": "e07e0f670a489ddc829a95054a835bcf1754539c",
      "parents": [
        "b5ae35c5cf5cc7176661eea9bf725437c85693b0"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Sep 21 12:55:15 2016 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Sep 22 16:20:39 2016 -0700"
      },
      "message": "Add logging of written frame counts\n\nBug: 31591209\nChange-Id: Ife5917aa65b02c3b0791dfe1975c70ccf58f9a75\n(cherry picked from commit 2c45393d842a5d2968ef78fa7a08667efdf15f2a)\n"
    },
    {
      "commit": "2c45393d842a5d2968ef78fa7a08667efdf15f2a",
      "tree": "d259a3720b7b676532ee145202827f00d580273e",
      "parents": [
        "3b0515db3405df2e759984aff7ac59aed0b16a98"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Sep 21 12:55:15 2016 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Sep 22 13:12:37 2016 -0700"
      },
      "message": "Add logging of written frame counts\n\nBug: 31591209\nChange-Id: Ife5917aa65b02c3b0791dfe1975c70ccf58f9a75\n"
    },
    {
      "commit": "1dc98674f701dada94143b4d31b7221c58346c6c",
      "tree": "44f80a66fdff774d2229ca3aaabdd614ed1f8013",
      "parents": [
        "9debf8f6d26f7aa12c68ddfb6cdb1323d4b5adbf"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Aug 18 17:50:29 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Sep 21 15:58:24 2016 -0700"
      },
      "message": "Abstract away access to audio streams HAL in AudioFlinger\n\nIn this CL all direct access to audio_stream_t, audio_stream_out_t, and\naudio_stream_in_t their functions is encapsulated within the new\nhierarchy of Stream[In|Out]HalLocal classes.  AudioFlinger uses\ninterface classes Stream[In|Out]HalInterface to access these functions.\n\nNote that NBAIO still receives raw HAL stream handles and needs to be\nconverted separately.\n\nBug: 30222631\nTest: manual with Loopback app\n\nChange-Id: I6388cfa2006791c9c0aa7bb186719209726a2d48\n"
    },
    {
      "commit": "db0fd69d5dd2cb70009884458d5c78c9e7256c15",
      "tree": "4b16fae6e5bf6231de2d2a931beae3a892bc626c",
      "parents": [
        "681caefc7d3db69952daf1536513070c50b99635",
        "77b44035440f4dfc1c8d29da7d800f111ebe6376"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 16 10:26:09 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 16 10:26:09 2016 -0700"
      },
      "message": "Merge commit \u002777b44035440f4dfc1c8d29da7d800f111ebe6376\u0027 into fix_merge\n\nChange-Id: I0f1d2b605a8d90f86f8fa27cbf971018981c6c38\n"
    },
    {
      "commit": "77b44035440f4dfc1c8d29da7d800f111ebe6376",
      "tree": "16bb499a29cb5ac24acdaf0f350e6fd838972e36",
      "parents": [
        "b58c4e1bbd4e2420614e1bfe13f885e502301b63",
        "79c3335e35ce7dea158ac8bf03922c843987f5a9"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 16 16:37:18 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 16 16:37:18 2016 +0000"
      },
      "message": "audio flinger: add support for effects without process function am: 6dd0fd92d6\nam: 79c3335e35\n\nChange-Id: I719e0379c19d6e0e4e50597726f83b3a1d0b3cd8\n"
    },
    {
      "commit": "6dd0fd92d6cdeb2cf5b7127c0e880e5eacfd4574",
      "tree": "bbc1a7a950617900e093696c6e81c589151ba65c",
      "parents": [
        "7c6bd7b17835cfa615d1f74aa7fe7c45c7190e4d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 15 12:44:53 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 15 17:27:27 2016 -0700"
      },
      "message": "audio flinger: add support for effects without process function\n\nAdd support for effects indicating they do not implement a process\nfunction and do not consume CPU or add latency.\n\nEnable those effects on RAW and FAST outputs and inputs.\nDo not call the process function.\n\nBug: 31491112.\nChange-Id: If020c8bb3b180568dec5138b087edec8c2524182\n"
    },
    {
      "commit": "1f12a380bef8aa162dec458cc7849e886815aeaa",
      "tree": "2743ba02d3f3da04eced074dd69a9d22bf823166",
      "parents": [
        "3366b888d878e25b5ab335d6e658a31fe38ab7a9",
        "1b291841a58ce6b2b291232dfdd56134b2185c48"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Sep 14 21:41:16 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 14 21:41:17 2016 +0000"
      },
      "message": "Merge \"Fix RecordThread running too often if fast capture is active\""
    },
    {
      "commit": "e4f1f63a2c54ee8687ad8cca18df0f6639ad7c81",
      "tree": "941cdb35111e5e01ece553475e5bbf7841a7116c",
      "parents": [
        "1724ee3caa5f0b4e73979036073f0b71a115083a"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Aug 31 11:35:10 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Sep 13 16:27:15 2016 -0700"
      },
      "message": "Abstract away access to audio devices HAL\n\nIn this CL all direct access to audio_hw_device_t and its functions is\nencapsulated within the new class DeviceHalLocal. Loading of hardware\nmodules is encapsulated withing DevicesFactoryHalLocal.  AudioFlinger\nuses interface classes DevicesFactoryHalInterface and DeviceHalInterface\nto access these functions.\n\nBug: 30222631\nChange-Id: Ic88b20c55813a24b898f4a832e082c17d81935b7\n"
    },
    {
      "commit": "1b291841a58ce6b2b291232dfdd56134b2185c48",
      "tree": "d2eebced63ee2d64c58f604c68fd328c88816d2d",
      "parents": [
        "6b11f552f99ce7bd40ea164f65ac1590a3f4198b"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jul 18 14:55:21 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Sep 12 15:52:22 2016 -0700"
      },
      "message": "Fix RecordThread running too often if fast capture is active\n\nBug: 30159297\nChange-Id: Ieca804450168391c162fc4862398586fcc5d7e4e\n"
    },
    {
      "commit": "18e6e46cfa616c34095e269505121f5033312924",
      "tree": "e8a485ee21e2cbbd592ab7dd97b0d97134acdc5e",
      "parents": [
        "b2569aa382f29a20652726133d89c8ca7d4c9e28",
        "85cda4dc026ca3ce8725202738b2deb24ce94829"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Aug 30 02:30:12 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Aug 30 02:30:12 2016 +0000"
      },
      "message": "Do not park the FastMixer on AudioPatch changes am: f60abceac7 am: 927fefa85b\nam: 85cda4dc02\n\nChange-Id: Iabc962fec667ad2f77dfb2721cccb05e00adb2b2\n"
    },
    {
      "commit": "85cda4dc026ca3ce8725202738b2deb24ce94829",
      "tree": "b4c1227e1791e7566ad068ccfd2ff35daab218ec",
      "parents": [
        "56b0c92009e76851ed3a161804117971b4defa4b",
        "927fefa85b5acbb88b3ec4b49467286d0cc3bb9e"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Aug 26 22:37:37 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Aug 26 22:37:37 2016 +0000"
      },
      "message": "Do not park the FastMixer on AudioPatch changes am: f60abceac7\nam: 927fefa85b\n\nChange-Id: I175e8ebb94c97638707480b1725cea9491ea9a98\n"
    },
    {
      "commit": "f60abceac70c7a30dc2f888c4b80256b4a01a6dd",
      "tree": "1cc5171b3bd41042ec6f45556684056cdbc69963",
      "parents": [
        "7b960a5dc58cfcbb3ef5ac05c93549edf954e5d0"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Aug 26 11:37:54 2016 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Aug 26 13:23:48 2016 -0700"
      },
      "message": "Do not park the FastMixer on AudioPatch changes\n\nCan be turned on again by property af.patch_park.\n\nBug: 30952714\nChange-Id: Id7f7750e28ecf950d110379309d18819e169e999\n"
    },
    {
      "commit": "4e6ff4151f03c6b7211136b83e71fca34bbc402c",
      "tree": "990012b1ec4e5726b8998a794039c02978ec118a",
      "parents": [
        "b57d5f9e2a1bd8e079427f21f8f1afe65a5f1e13",
        "e50af19356b852781a28233d50f06b7adde7d470"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Aug 22 23:08:27 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Aug 22 23:08:27 2016 +0000"
      },
      "message": "audioflinger: Fix battery accounting for offload tracks am: e94c27a17f am: 7cba7beec4\nam: e50af19356\n\nChange-Id: I80e26985a69800d31b0aa9331bccdc0a91caa08b\n"
    },
    {
      "commit": "e50af19356b852781a28233d50f06b7adde7d470",
      "tree": "47834b3f887c40ff955a4c2f3bd93b057aa7c010",
      "parents": [
        "5e86258dca0694303b2549aaff1e22b30521a28f",
        "7cba7beec49e0509a0c7aebf0942dcf347b2a42b"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Aug 22 23:03:42 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Aug 22 23:03:42 2016 +0000"
      },
      "message": "audioflinger: Fix battery accounting for offload tracks am: e94c27a17f\nam: 7cba7beec4\n\nChange-Id: Id5d5b2e5ac25a167583243d84fd060698c18930f\n"
    },
    {
      "commit": "e94c27a17fd56fd5ac63fc2de9df08cfcc80b1e3",
      "tree": "d88183ad52dcb7f0c96426a59cb6ed4200a996be",
      "parents": [
        "15223ec262f8f1135be6ee727a480dd4a04457e7"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Aug 18 17:31:46 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Aug 18 17:31:46 2016 -0700"
      },
      "message": "audioflinger: Fix battery accounting for offload tracks\n\nEnsure that the list of wakelock UIDs is only cleared if\nthe offload playback wakelock is released during async completion\nwait.\n\nBug: 30830106\nChange-Id: Icf18b9e88e55c27bc03d8a904cc91f593cc95815\n"
    },
    {
      "commit": "5ca8f32280377dd923e72c3c6bd3994217461b8b",
      "tree": "b5146ce7885539d8b002d3270346f574e3965711",
      "parents": [
        "7aeb8c8d4437eb8f45be3ad3828764795e14ad4c",
        "63ef5a38f82d22c1f97922fe490a1fd336566d5c"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Aug 10 23:53:01 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Aug 10 23:53:01 2016 +0000"
      },
      "message": "resolve merge conflicts of fd923e7 to stage-aosp-master am: df5d9246f9\nam: 63ef5a38f8\n\nChange-Id: I516a43c5e56323e99ad7a8ca2e4811b77c9704f4\n"
    },
    {
      "commit": "df5d9246f9607b1c2f8b134c46a05af06e206da3",
      "tree": "7cd9fcb42c86c8cfe950db239e21e8b5ece98369",
      "parents": [
        "7ad2854adc0abe8dd7909a6ed401107ad09bc3d2",
        "fd923e7fe2779bcd69d79471b8c30c8b98918f62"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Aug 10 15:40:39 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Aug 10 16:10:32 2016 -0700"
      },
      "message": "resolve merge conflicts of fd923e7 to stage-aosp-master\n\nChange-Id: I75b44b89bae41197a1fd68362d20b8ba2b4dd192\n"
    },
    {
      "commit": "e964d4e421e2d1ca937227a580c0c837091a11e3",
      "tree": "876478fb4d5b18ddf8ba3b761440e46651b45ecb",
      "parents": [
        "f6d5a13c3a7a84e35e28b9840dde0f29728b6849"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Aug 09 14:31:32 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Aug 10 11:35:57 2016 -0700"
      },
      "message": "Fix clang-tidy warnings in audio and playerservice.\n\n* Add explicit keyword to conversion constructors.\nBug: 28341362\n* Use const reference type for read-only parameters.\nBug: 30407689\nTest: build with WITH_TIDY\u003d1\n\nChange-Id: I265f3b094e08d5705b506b3fbba51439c134af84\n"
    },
    {
      "commit": "36d0ca16024820df9a12903d2ac443fabcc180bc",
      "tree": "51e8f285ae66ad7cb922caeb7ba8d5f1d20367e3",
      "parents": [
        "67fbddfdc2cafd63c83d3bb55a2451d4c26f546d"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Aug 09 14:31:32 2016 -0700"
      },
      "committer": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Aug 10 17:56:35 2016 +0000"
      },
      "message": "Fix clang-tidy warnings in audio and playerservice.\n\n* Add explicit keyword to conversion constructors.\nBug: 28341362\n* Use const reference type for read-only parameters.\nBug: 30407689\nTest: build with WITH_TIDY\u003d1\n\nChange-Id: I265f3b094e08d5705b506b3fbba51439c134af84\nMerged-In: I265f3b094e08d5705b506b3fbba51439c134af84\n"
    },
    {
      "commit": "b7809a709886c5dc58e737cd3c356579a088dc65",
      "tree": "23115631abc67af3f9d9b609da17cd39f947a014",
      "parents": [
        "1ec42202f602beb77802db24d5a2bec1c896bb0c",
        "54efaa90a110e50b1b9a5e4badaf30d494be56a0"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Aug 01 22:43:16 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Aug 01 22:43:16 2016 +0000"
      },
      "message": "audioflinger: fix OutputTrack initial check am: af3ec7c9a0 am: 5271857554\nam: 54efaa90a1\n\nChange-Id: I7c4f4db022099abbcd20cdfb0971efa2d46998f6\n"
    },
    {
      "commit": "54efaa90a110e50b1b9a5e4badaf30d494be56a0",
      "tree": "54a0dc254b619d92b5945c9bd0b45a40d693c188",
      "parents": [
        "d3c73b760b8dcabf0988105521b33cff1deccf13",
        "527185755453d8cbdde97e8c956daa18d8b60987"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Aug 01 22:29:29 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Aug 01 22:29:29 2016 +0000"
      },
      "message": "audioflinger: fix OutputTrack initial check am: af3ec7c9a0\nam: 5271857554\n\nChange-Id: Icf61ce31fb83cc5796be5122c65b483437b17365\n"
    },
    {
      "commit": "af3ec7c9a0cfc483017d4457e0e3d77de4b1a33a",
      "tree": "2de75cb35401811b038042d1b111451d3f029984",
      "parents": [
        "3e5605b8b8a8f349d70cdb0d53409cfe69cada7b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Aug 01 11:25:19 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Aug 01 11:34:34 2016 -0700"
      },
      "message": "audioflinger: fix OutputTrack initial check\n\nCall initCheck() on newly created OutputTrack in\nDuplicatingThread::addOutputTrack() to make sure that\nthe track is successfully attached to the AudioMixer.\n\nAlso make invalid track name always fatal in AudioMixer::deleteTrackName().\n\nBug: 29953737\nChange-Id: I47f2517bd53de940e125391de99c40611ad0fc9d\n"
    },
    {
      "commit": "57ef37350cd88ded7b83a2f4362fcbaab36f9372",
      "tree": "7586dd4d435141313f8512c0b0976ff9da0c996b",
      "parents": [
        "974ff82b6c000ee0ae756a936a908fa28b96d5ca",
        "ad6d52d38917069e3d8e68cec1625855b9d96200"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jul 29 16:39:32 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 29 16:39:33 2016 +0000"
      },
      "message": "Merge \"Flush FastCapture PipeReader when starting after stop\""
    },
    {
      "commit": "f2c7f0043f13a0317e343082d3dc2913d3699f70",
      "tree": "11522499c01ef345d679c1b7df67bbfd81024b93",
      "parents": [
        "6c28be466bcca2508a8c7a0186c4236dd62a3a5c",
        "648bc951b86860dd11463340029eaef4b4d90003"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jul 29 01:05:39 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jul 29 01:05:39 2016 +0000"
      },
      "message": "Merge \\\\\\\"AudioFlinger: Account for frames dropped in suspend mode\\\\\\\" into nyc-mr1-dev am: f769ab76d1 am: 4166015417\nam: 648bc951b8\n\nChange-Id: I23516b04456b3d8f49c44ca42f4e62bd8dc134e4\n"
    },
    {
      "commit": "6d988186ffa998a1e28251b3e655cfcbccca9db5",
      "tree": "e01c96735f01306ef67cc5acf6e3f953889ba08f",
      "parents": [
        "bcb918b955a36a79aa908f392fb8a7b1cdd405f8",
        "5c42082da799fa6469321e621216922444678900"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jul 29 01:05:31 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jul 29 01:05:31 2016 +0000"
      },
      "message": "AudioFlinger: Account for frames dropped in suspend mode am: 238fa3deff am: ef0eed3d26\nam: 5c42082da7\n\nChange-Id: I9c51ed42c901c054fd25e7629725655d763ff390\n"
    },
    {
      "commit": "648bc951b86860dd11463340029eaef4b4d90003",
      "tree": "c8f0cda636bf5f114f76f6eb517f8072193cf849",
      "parents": [
        "f413847e1e9932d74ea5c358d59db1cf29764c7c",
        "416601541797b132ee8abe1e1d15d773ad975ce5"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jul 29 00:36:58 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jul 29 00:36:58 2016 +0000"
      },
      "message": "Merge \\\\\"AudioFlinger: Account for frames dropped in suspend mode\\\\\" into nyc-mr1-dev am: f769ab76d1\nam: 4166015417\n\nChange-Id: Ied8c294777ddf380876197fe620c8931e681deb5\n"
    },
    {
      "commit": "5c42082da799fa6469321e621216922444678900",
      "tree": "a349987e30848fcf580ce138413227c6f713d077",
      "parents": [
        "b7e9c3b4d88582f040857d8733e6b0b43c2d774f",
        "ef0eed3d26e54c176b813fb7656c1cfb2c473062"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jul 29 00:36:48 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jul 29 00:36:48 2016 +0000"
      },
      "message": "AudioFlinger: Account for frames dropped in suspend mode am: 238fa3deff\nam: ef0eed3d26\n\nChange-Id: I0790c3ac10654142856c9e252277fc3c7880b7c4\n"
    },
    {
      "commit": "416601541797b132ee8abe1e1d15d773ad975ce5",
      "tree": "03b82bca32f9d5cde183a95919f9eec3b0c3e5c1",
      "parents": [
        "53ca0e79ee9b02309b6eb1b890a1c309b6dcb2b2",
        "f804475807407442d5596ab7378ed07d50664063"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jul 28 23:50:09 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jul 28 23:50:09 2016 +0000"
      },
      "message": "AudioFlinger: Prevent offload underrun during active playback\nam: f804475807\n\nChange-Id: Iefc9c73590b5aede7ef3ee1a2eaf728bdd01113e\n"
    },
    {
      "commit": "f929f9b203ef4787d45f8b24aab053aaab993be9",
      "tree": "03b82bca32f9d5cde183a95919f9eec3b0c3e5c1",
      "parents": [
        "f769ab76d185a63e6da12f58fe902e977f1ad0fd",
        "f804475807407442d5596ab7378ed07d50664063"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jul 28 23:40:56 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 28 23:40:56 2016 +0000"
      },
      "message": "Merge \"AudioFlinger: Prevent offload underrun during active playback\" into nyc-mr1-dev"
    },
    {
      "commit": "238fa3deff26d7e4d9e81bd0a88c936f16226c4e",
      "tree": "a14e74e084954b1a67625c52046ab5febe76a0c5",
      "parents": [
        "11dd692efa611d129167abea854dc14f0046d727"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jul 28 10:53:22 2016 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jul 28 12:29:04 2016 -0700"
      },
      "message": "AudioFlinger: Account for frames dropped in suspend mode\n\nThese frames must be added to the kernel position in timestamps.\n\nBug: 30025777\nChange-Id: I30c14503c9467059c3782e5c96c01ae1cf3709f6\n"
    },
    {
      "commit": "f804475807407442d5596ab7378ed07d50664063",
      "tree": "1912f24061d3d57d209eef933edf0e6c41203b82",
      "parents": [
        "11dd692efa611d129167abea854dc14f0046d727"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jul 27 14:58:11 2016 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jul 27 16:20:43 2016 -0700"
      },
      "message": "AudioFlinger: Prevent offload underrun during active playback\n\nBug: 29897830\nChange-Id: Id99d416cdaa8bf62daca8f92e3564f2895f15490\n"
    }
  ],
  "next": "ad6d52d38917069e3d8e68cec1625855b9d96200"
}
