)]}'
{
  "log": [
    {
      "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": "a4fe7d9cd54753ac068699eaf5750d34603220e9",
      "tree": "c3e6c161805715a07bdfb480985ae0bf3d40ea50",
      "parents": [
        "cbd0e571958736a4036bcd0496d4933780af880e",
        "3ac24a14e36085bb26b65652e11747deda0f1e18"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Apr 12 16:15:14 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 12 16:15:15 2017 +0000"
      },
      "message": "Merge \"Fix log spam for media.log\" 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": "3ac24a14e36085bb26b65652e11747deda0f1e18",
      "tree": "4d0336a8da1b211e559f1348625d4c8e5f63c7e9",
      "parents": [
        "dab5aae9390dccda539c2c805904440bc1e41e9e"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Apr 10 14:58:47 2017 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Apr 11 15:20:51 2017 +0000"
      },
      "message": "Fix log spam for media.log\n\nBug: 36481537\nTest: logcat does not show \"Waiting for service media.log\"\nChange-Id: Ia69b679d3b1f1dd292237c63855ff650566df133\n(cherry picked from commit 04b96fc3a6cfa8312c51bbba4e5729c9dd869f78)\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": "6fcb1488b835568dd1423ccd5f0b09483b8d9917",
      "tree": "ca9472bc7e1002e75088b621fdf4d61eb194ea0e",
      "parents": [
        "efb7b9b26b966f6440bc8c5126c78c46090bf590",
        "91164e7f94030b3e49a31d88c91d70d4bd358ebe"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 16 23:01:31 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 16 23:01:32 2017 +0000"
      },
      "message": "Merge \"Use static_assert instead of COMPILE_TIME_ASSERT_FUNCTION_SCOPE\""
    },
    {
      "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": "91164e7f94030b3e49a31d88c91d70d4bd358ebe",
      "tree": "7dd1d0ea1f841ff949f0fb40afef6471d15690ea",
      "parents": [
        "0e4b8e9cb1b422195c49be49b48d039aa0814acf"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 15 15:55:01 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 13 09:01:58 2017 -0700"
      },
      "message": "Use static_assert instead of COMPILE_TIME_ASSERT_FUNCTION_SCOPE\n\nTest: builds OK\nChange-Id: I5923dce96e43d7107f1d8e3145ad4bb5eca261e7\n"
    },
    {
      "commit": "00bf9d385f4dbfd11debd89b9fe7d5547aea5956",
      "tree": "725823dd80a9b4f60b05fb047ae248156a3acc7c",
      "parents": [
        "6b57f954a732129479f3e0604bed7fa40e36f3a2",
        "60fd12ab581e151522cf6d73f86031acf8fb46e7"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 13 15:57:12 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 13 15:57:13 2017 +0000"
      },
      "message": "Merge \"FastMixerState was missing a LOG_TAG\""
    },
    {
      "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": "60fd12ab581e151522cf6d73f86031acf8fb46e7",
      "tree": "75498b8a13effabaf172bb62acf657334568765b",
      "parents": [
        "0012417ddc1320c6df79258266da1e869036b211"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Feb 21 13:06:16 2017 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 10 14:31:14 2017 -0800"
      },
      "message": "FastMixerState was missing a LOG_TAG\n\nTest: logs in FastMixerState module have the correct tag\nChange-Id: Id38826754e35803a72376a9198d2839fe195b0b2\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": "22fd9de35b387f1ed808f4fe6e0b87eac3e82690",
      "tree": "693af83a6fce5b6bcab600a3b9c3c279c9a7d16f",
      "parents": [
        "f687b91129586fd1212bcb041d3f9aeb84635eb5",
        "18b570146c971fe729c391bfbb869391084e623d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 08 16:42:33 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 08 16:42:34 2017 +0000"
      },
      "message": "Merge \"audioflinger: add standby() method to MmapStreamInterface\""
    },
    {
      "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": "05d19b08f3affa6fa8407e779f67e7ad1c1ca84f",
      "tree": "d2c99a03302a60a9ab3db1a9f5cc90640686009a",
      "parents": [
        "4ec4e6b1073b0dc1b608aeeaf4e3129ea1a725c8"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Feb 28 16:28:19 2017 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Mar 03 12:37:45 2017 -0800"
      },
      "message": "fallout of cleaning-up libutils includes\n\nTest: run \u0026 compile\nBug: n/a\nChange-Id: I63585ed5a764b9ce7af2187b79ca0c83e683fd7f"
    },
    {
      "commit": "6141fe19f1e16330dab3632cf8b93e54b6417164",
      "tree": "7618a13b4abf2f39be0e6a1da79034a948e76e87",
      "parents": [
        "d48b3a7a3bd95d9efb157ebbfc0f11dc8d7a87fb",
        "869fab171971f350d5adf4680608ff39049270c3"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Feb 28 16:46:34 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 28 16:46:35 2017 +0000"
      },
      "message": "Merge \"AudioFlinger: fix Effects handling for MMapThread\""
    },
    {
      "commit": "869fab171971f350d5adf4680608ff39049270c3",
      "tree": "39f4990725b81c5d837db554c3e55d260108d453",
      "parents": [
        "a45c300fcad38e23107b3ad8dd1d3935f5127f9c"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Feb 27 18:44:19 2017 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Feb 27 18:44:19 2017 -0800"
      },
      "message": "AudioFlinger: fix Effects handling for MMapThread\n\nTest: CTS test_aaudio.cpp in Exclusive mode\nChange-Id: Iac63d901822255028b16c5b90ca07a72ceec372a\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\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": "45e4bf1cb9b202a7f25f8dc890e32e12fb60d982",
      "tree": "6457a737936c1e5a56dc21377d048ecd65f3b887",
      "parents": [
        "3db4f4f85cfe90013952590b1aaea97dc62a243d",
        "f228531c5d01f497f5802c44545e0000ec44ab83"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 15 22:24:37 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 15 22:24:38 2017 +0000"
      },
      "message": "Merge \"AudioFlinger: Do not wait for FastMixer if in cold idle.\""
    },
    {
      "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": "09cf7cab168663ca98a440a9473b1515e0eb0cfa",
      "tree": "88047fb13a5f38720af752a7b5b089594f3a2e7f",
      "parents": [
        "30ba02eab9e5075df2a5ee78f7cf298697dbf39f",
        "afb31487f3156a7284d2f0d06646c7bc00d99537"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Feb 15 04:27:04 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 15 04:27:04 2017 +0000"
      },
      "message": "Merge \"AudioFlinger: Fix memory allocation for client-less tracks\""
    },
    {
      "commit": "afb31487f3156a7284d2f0d06646c7bc00d99537",
      "tree": "78c18043878f0872011be59ec51c4df60ce99a33",
      "parents": [
        "23db2486baec1b7fcd9a8a0bd9c6df0adf1c7f32"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Feb 13 18:50:48 2017 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Feb 14 21:57:13 2017 +0000"
      },
      "message": "AudioFlinger: Fix memory allocation for client-less tracks\n\nTest: Ringtone with BT\nBug: 35350587\nChange-Id: If247d319d58f8f4d18b49f58ec950491871ebb2d\n"
    },
    {
      "commit": "1883f69de5f2c4e71df58d5b71d7c39f9779b50c",
      "tree": "e0dcf14a5f7f71de058b759d36e5cbab7ba7358a",
      "parents": [
        "36b31c87807a4f8cd22e73da9bf2df7babdb906e"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Feb 13 18:48:39 2017 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Feb 14 13:47:51 2017 -0800"
      },
      "message": "AudioFlinger: Check framecount overflow when creating track\n\nTest: Native POC\nBug: 34749571\nChange-Id: I7529658e52ac7e64d162eb5338f10fb25eaa8fe7\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": "32ba98626834cb77e5d14b3e419385f0e32ec0bc",
      "tree": "45f64b266d374bf82354dd2c60873e930988c329",
      "parents": [
        "a1ee4c28facd2e4ae0eb288178c8988bf1806148"
      ],
      "author": {
        "name": "Yunlian Jiang",
        "email": "yunlian@google.com",
        "time": "Tue Jan 31 15:55:00 2017 -0800"
      },
      "committer": {
        "name": "Yunlian Jiang",
        "email": "yunlian@google.com",
        "time": "Wed Feb 01 00:44:06 2017 +0000"
      },
      "message": "Fix warning: Dereference of null pointer.\n\nBug: None\nTest: The warning is gone.\nChange-Id: I4c08397c0ee18c7714eb9b1029844d427259907b\n"
    },
    {
      "commit": "c778e59330a01a9aee6ad354c1e53462df4c88af",
      "tree": "1a1e994236e73f2088f84b710c0d5a189f56f177",
      "parents": [
        "c0461f5b18eb6d5516804810f315e6c23879a09d"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Jan 25 10:35:30 2017 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Jan 25 10:35:30 2017 -0800"
      },
      "message": "audioflinger: Fix crash in EffectChain::dump\n\nCheck for null buffer in dumpInOutBuffer\n\nBug: 34691158\nChange-Id: I5d11fcb1ce0170da7a742fdbe42a7eaeba4370fe\nTest: try bug repro steps\n"
    },
    {
      "commit": "0688880d2862e6cddfea1fceca24e8a081a6be60",
      "tree": "0ddffd4d8d70f0fad63e6c1738fdd55d86b3db08",
      "parents": [
        "dffb51f4e35fe93215b025bdf4216f3b411c734b"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Jan 19 12:47:55 2017 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Jan 19 14:06:37 2017 -0800"
      },
      "message": "audioflinger and hal: Compatibility fixes for Treble\n\n 1. Treat both reply size being 0 and reply buffer being NULL\n    as an indication that the reply isn\u0027t needed.\n\n 2. Synchronize both input and output effect chain buffers,\n    and avoid excessive copies when the input buffer is the same as\n    the output buffer.\n\n 3. Improve effect chain debug dump by showing both\n    \"external\" and \"allocated\" pointers for effect audio data buffers.\n\nBug: 34368451\nChange-Id: I56aba6908408b5fce3f15c8d29138555101e8720\nTest: volume controls works when both Bass Boost and EQ effects enabled\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": "fc23520d9c3f15e28baa81de5f7dfa6c1b0af426",
      "tree": "d612d3bd0486cae96622768c95d41849b38dd9c6",
      "parents": [
        "9476864f6a9b8d500f6c74ba40bfd2e1ce5265a2"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 20 18:48:17 2016 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 11 12:58:55 2017 -0800"
      },
      "message": "audioflinger: define MMAP HAL Stream control interface\n\nAdded definition of MmapStreamInterface used by Oboe service\nto open, configure and control MMAP streams at the audio HAl.\n\nThis interface is implemented by audioflinger and abstracts the details\nof interacting with audio policy manager and audio HAL from Oboe service.\n\nA callback interface MmapStreamCallback is also defiend to communicate\nvolume and routing changes back to Oboe service.\n\nBug: 33398120\nTest: build\nChange-Id: If953d44903aaa4eb17ff16f1922ca16e5e0e0a87\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": "ee454fcb25bff0f9c5d3455775a4cb66429e875e",
      "tree": "c3951ebbde22c8c3e33712ccc2241f01f4647ca3",
      "parents": [
        "b554bff208ec1af8b6a8cfd78a86103c8dd46089",
        "022b9953153bdb1984f0abb17d21ef8c1826ad49"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Jan 10 23:22:49 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 10 23:22:50 2017 +0000"
      },
      "message": "Merge \"Re-implement HIDL effect processing using FMQ and IMemory\""
    },
    {
      "commit": "ad880540d13db9e39c94496fd9bc89dfbfd1e1f5",
      "tree": "e987c9baef0e830ebb6a2f7f1252b5d84d79210e",
      "parents": [
        "b3962d2405b279abde234e16e5b3bff3a4a5cab5",
        "9033512273129383c8cc78beee61f17b50ffff49"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Jan 10 21:28:47 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jan 10 21:28:47 2017 +0000"
      },
      "message": "Merge \"liblog: use log/log.h for ALOG macros\" am: 06d8feefec am: 71bf335ffa am: 8790fb2613\nam: 9033512273\n\nChange-Id: I67837417d7c8fbc2cc5239f903a0cdf3b107558b\n"
    },
    {
      "commit": "9033512273129383c8cc78beee61f17b50ffff49",
      "tree": "494a1c0f1d0d62b22df4a1b14bd6851b4115f785",
      "parents": [
        "e4f2656ff9310954ee30f55d3a3e8de4f6fd5080",
        "8790fb2613b493ab5ac3470deb522f79415eb6fe"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Jan 10 21:24:16 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jan 10 21:24:16 2017 +0000"
      },
      "message": "Merge \"liblog: use log/log.h for ALOG macros\" am: 06d8feefec am: 71bf335ffa\nam: 8790fb2613\n\nChange-Id: I8ccebdc05c7f280a101af02032d41413c198ef39\n"
    },
    {
      "commit": "8790fb2613b493ab5ac3470deb522f79415eb6fe",
      "tree": "f41fb9e04b7b48113bf21ba700c409c5e39ac9b4",
      "parents": [
        "3e383dc9cd672acc970fa726b613d89ccfb8f7d8",
        "71bf335ffa564aff06dc34a0fc5d24aadfcd2b6b"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Jan 10 21:19:19 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jan 10 21:19:19 2017 +0000"
      },
      "message": "Merge \"liblog: use log/log.h for ALOG macros\" am: 06d8feefec\nam: 71bf335ffa\n\nChange-Id: Id07d468c8e95af39e189f53919a0ac6aabc9604c\n"
    },
    {
      "commit": "eb16561336e6445f7edae047998f2459e046cdfe",
      "tree": "c4a00a444fb228f725324b66fbf426a0a00728c3",
      "parents": [
        "98d1217d58b1879eccee445c3510a8c563a61d11"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Jan 10 09:08:19 2017 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Jan 10 10:04:43 2017 -0800"
      },
      "message": "liblog: use log/log.h for ALOG macros\n\nTest: compile\nBug: 30465923\nChange-Id: I247151363604714088b6059279702702b4e9f89a\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": "96966995da4418326a01dd53719c8355a0db9415",
      "tree": "6c3fead7eb49fceaa94d4ee93ecd9b466b095adf",
      "parents": [
        "10eb0c33a090fa72148aac136dc5e54789461e3e",
        "b20b027d86c5ae7b84e88925bc0f1ee4f7487445"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Jan 07 04:16:05 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Jan 07 04:16:05 2017 +0000"
      },
      "message": "Merge \"Add SSE optimization of FIR float filter\" am: 5783c0a053 am: 440279f709 am: 61028e78a9\nam: b20b027d86\n\nChange-Id: Ibde0e3f33a88431a009b7f0550a8fd12c346037e\n"
    },
    {
      "commit": "b20b027d86c5ae7b84e88925bc0f1ee4f7487445",
      "tree": "dc6f2ae8b43d30aee8bd3d3430f3d09e5ddc476e",
      "parents": [
        "3c1d987a05dd3dcf3554a2e309418524282e9a3c",
        "61028e78a9c0dae060e4331f16d31eb8cc4e8dbe"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Jan 07 04:12:04 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Jan 07 04:12:04 2017 +0000"
      },
      "message": "Merge \"Add SSE optimization of FIR float filter\" am: 5783c0a053 am: 440279f709\nam: 61028e78a9\n\nChange-Id: I562825a1a689bcbc4cbe0ef5f7ebf281985b1a13\n"
    },
    {
      "commit": "61028e78a9c0dae060e4331f16d31eb8cc4e8dbe",
      "tree": "b62b634ed0784ee3b13b62d343a5559ef3198694",
      "parents": [
        "34df2b45c135014db19f75770227d5f8adf85550",
        "440279f709cf88eb91a758b7a6831ae05ce68ff8"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Jan 07 04:07:34 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Jan 07 04:07:34 2017 +0000"
      },
      "message": "Merge \"Add SSE optimization of FIR float filter\" am: 5783c0a053\nam: 440279f709\n\nChange-Id: I8d994318bf3e4c143a3a308ab98c3b6f9aed33e0\n"
    },
    {
      "commit": "5783c0a053191a75e8cd32b1e048b16f6f3021f4",
      "tree": "9ef71d4ab0f0434e6b23d6eb5a512c8ccfb6a0e9",
      "parents": [
        "0b4540f8678286079b907518912818ab7783f2ba",
        "841920db8206cc6428ab460e5fa5b7a50edd06d0"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Jan 07 03:57:08 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Jan 07 03:57:08 2017 +0000"
      },
      "message": "Merge \"Add SSE optimization of FIR float filter\""
    },
    {
      "commit": "10eb0c33a090fa72148aac136dc5e54789461e3e",
      "tree": "a54010cd5076a4f749ac54169539c1a090d1e0ba",
      "parents": [
        "c856cf0d72e5abb0c9db5fff46b8e4ebe6d04ef6",
        "adc5d9c58f32ed66219202513078c28398836d17"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Jan 07 03:14:18 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Jan 07 03:14:19 2017 +0000"
      },
      "message": "Merge \"AudioResampler: Add mono stopband tests\""
    },
    {
      "commit": "c856cf0d72e5abb0c9db5fff46b8e4ebe6d04ef6",
      "tree": "4f60f36eb6c075a3ae70dae4a6658b9d4e3c8a56",
      "parents": [
        "22e20cfa42647a041ab1299c9314e145fcb7bf56",
        "9145202c61433682ba26aeb283c87d774f41032a"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Jan 07 03:13:41 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Jan 07 03:13:41 2017 +0000"
      },
      "message": "Merge \"AudioResampler: Workaround for Clang assembly bug\""
    },
    {
      "commit": "22e20cfa42647a041ab1299c9314e145fcb7bf56",
      "tree": "ec40d60cd9145460ee65c59ae7e32af5bc255516",
      "parents": [
        "30f1d9f6262280b3e5269d53b1d05ed699325c06",
        "51157baa6c8b142ec2c723ffd0cf8dc53565ca11"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Jan 07 03:13:21 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Jan 07 03:13:21 2017 +0000"
      },
      "message": "Merge \"AudioResampler: Fix intrinsic integer mode for 64b\""
    },
    {
      "commit": "30f1d9f6262280b3e5269d53b1d05ed699325c06",
      "tree": "ecf5afaf0473b14a3790b258b6c6c2490e02005f",
      "parents": [
        "5e3030fd4ef828cc7254e96030f38ad64f162151",
        "ccbba6e66e49eddf9942c0bc710f12bec983e134"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Jan 07 02:28:10 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Jan 07 02:28:10 2017 +0000"
      },
      "message": "Merge \"AudioFlinger: Fix resampler tests\""
    },
    {
      "commit": "adc5d9c58f32ed66219202513078c28398836d17",
      "tree": "74079ba6cb103aacb51f6fe25e9dd31e49329ce5",
      "parents": [
        "9145202c61433682ba26aeb283c87d774f41032a"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jan 05 17:26:08 2017 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jan 06 16:37:55 2017 -0800"
      },
      "message": "AudioResampler: Add mono stopband tests\n\nTest: Native audioresampler test on Pixel XL\nChange-Id: I4a36df1ca0e6b5bfb3b352f4bd16ed7697448031\n"
    },
    {
      "commit": "9145202c61433682ba26aeb283c87d774f41032a",
      "tree": "2a15888e8dbc7e370f2bab33847cafeb0e7dd7f0",
      "parents": [
        "51157baa6c8b142ec2c723ffd0cf8dc53565ca11"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jan 05 17:11:19 2017 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jan 06 16:37:42 2017 -0800"
      },
      "message": "AudioResampler: Workaround for Clang assembly bug\n\nUsed to work on M with gcc.\n\nTest: Native audioresampler tests on Pixel XL disabling NEON\nBug: 34110890\nChange-Id: Ibaaaf9ed833a37a9017a3217d31cb5ced6fa2c82\n"
    },
    {
      "commit": "51157baa6c8b142ec2c723ffd0cf8dc53565ca11",
      "tree": "0b2528227950da91bd31d5ab7d4e994b793b7565",
      "parents": [
        "ccbba6e66e49eddf9942c0bc710f12bec983e134"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jan 05 16:59:20 2017 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jan 06 16:37:29 2017 -0800"
      },
      "message": "AudioResampler: Fix intrinsic integer mode for 64b\n\nFor legacy compatibility in 64 bit resampling mode (doubly\nunlikely to be used, but we should still fix it).\n\nTest: Native audioresampler tests on Pixel XL\nBug: 27174404\nChange-Id: Ia65a0c6aa4255f0fb62f16d05a225ded58373f8e\n"
    },
    {
      "commit": "ccbba6e66e49eddf9942c0bc710f12bec983e134",
      "tree": "210585fb058c169bde8216c157a6226b1f8afb00",
      "parents": [
        "36867767ba86244b0d942255b9d241b092151309"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jan 05 16:43:35 2017 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jan 06 16:34:13 2017 -0800"
      },
      "message": "AudioFlinger: Fix resampler tests\n\nTest: Run resampler tests on Pixel XL\nBug: 34113617\nChange-Id: Idee23b90bd1a353f841beab95c74a7b0ddb13783\n"
    },
    {
      "commit": "5e3030fd4ef828cc7254e96030f38ad64f162151",
      "tree": "5145869e0dac4277524eea0e904159bf0d954668",
      "parents": [
        "f0b3e3be1ead1cb40b50e3dc048947220acb62a5",
        "535e161e2e404dffb8389dd331be0132704b6d82"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 06 23:50:50 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 06 23:50:51 2017 +0000"
      },
      "message": "Merge \"media.log: re-implement NBLog using audio_utils_fifo\""
    },
    {
      "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": "535e161e2e404dffb8389dd331be0132704b6d82",
      "tree": "61afd43df445dbf8329bd248493770ee506b5814",
      "parents": [
        "af86dcee9d97e02e9069548684ef8c9db5190ff9"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Dec 05 12:19:36 2016 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Dec 29 11:12:19 2016 -0800"
      },
      "message": "media.log: re-implement NBLog using audio_utils_fifo\n\nNBLog previously has its own shared memory circular buffer code.\nNow NBLog operates on top of the circular buffer code in audio_utils.\n\nTest: media.log still works\nChange-Id: Ib3026d2a96e6c0b433603e8baf19164ad97a1e1f\n"
    },
    {
      "commit": "0ce91633d8a4f5dcb3706a7734c02ddb5099eefd",
      "tree": "c0a9e958f38ded2ed3f15609f860204ee0916b32",
      "parents": [
        "32a5f5d53f9fe2ba584d2ecdf3edd487fb4146a7"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Dec 27 10:50:15 2016 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Dec 27 10:50:15 2016 -0800"
      },
      "message": "audioflinger: Fix deletion of input buffer in EffectChain\n\nmInBuffer, when it is owned by EffectChain, comes from\nAudioFlinger::PlaybackThread::addEffectChain_l where it is\nallocated using \"new[]\", and thus needs to be deleted\nusing \"delete[]\".\n\nChange-Id: Ib16bab59f9e00627f8ef52f7232ebdd74a6c9a74\nTest: make\n"
    },
    {
      "commit": "32a5f5d53f9fe2ba584d2ecdf3edd487fb4146a7",
      "tree": "49e0e3a1b8302a9f7282b6bcab3c32ea3808ec23",
      "parents": [
        "105928c9d30ed4c697cc4cdd9e68d8d47a695133",
        "4532a36bf509d822a77cbc1b7837f9f1158c7796"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Dec 22 13:47:40 2016 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Dec 22 13:48:15 2016 -0800"
      },
      "message": "resolve merge conflicts of 4532a36 to master\n\nTest: build\nChange-Id: I9b93c4a703c0ee16116be2bea0e6df0606d29363\n"
    },
    {
      "commit": "4532a36bf509d822a77cbc1b7837f9f1158c7796",
      "tree": "8a66cebd69bafd8914cfe56d2d41ccc892ca94fa",
      "parents": [
        "6bc76c8868b49d9f58cc49e1be3d99ae3217870d",
        "1121dfb5f30a04393ddce02fe7808589fa9e3e25"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Dec 22 19:34:02 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Dec 22 19:34:02 2016 +0000"
      },
      "message": "Merge \"Replace cutils/log.h with either android/log.h or log/log.h\" am: a05da2eea4 am: 9e97dc7832\nam: 1121dfb5f3\n\nChange-Id: Ie8bea1c228c602fef54012228ed714e8053d8fa6\n"
    },
    {
      "commit": "1121dfb5f30a04393ddce02fe7808589fa9e3e25",
      "tree": "4f0e9eb6547b0b16b0272cab044766162bb6a812",
      "parents": [
        "d76a98d5f4997868da1832ed239f67c9ae150ace",
        "9e97dc7832949a67dbae4e28d2ea261accd571b4"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Dec 22 19:24:18 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Dec 22 19:24:18 2016 +0000"
      },
      "message": "Merge \"Replace cutils/log.h with either android/log.h or log/log.h\" am: a05da2eea4\nam: 9e97dc7832\n\nChange-Id: I414954c96ad8b803a0401d416887c9ce167db210\n"
    },
    {
      "commit": "60d02077d86d2d1092443519290101f503aa6f7a",
      "tree": "57992d2bd94784cd765729b806429928ead0d2e7",
      "parents": [
        "36a75eeb15e58726e8cbbfe9687975740133a11b"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Sep 29 08:48:48 2016 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Dec 22 08:25:58 2016 -0800"
      },
      "message": "Replace cutils/log.h with either android/log.h or log/log.h\n\nTest: compile\nBug: 31289077\nChange-Id: I795a76f978d2213737f1fa908da789c543219b75\n"
    },
    {
      "commit": "f28bcf5c057dd9738a09f3cb367cf0b44087135d",
      "tree": "309a55dc542ab5bf6caecbb78bf4e99809a3f1a1",
      "parents": [
        "5b4051afc26367d7accd06580c5135c8295759f9"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Dec 20 12:52:39 2016 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Dec 21 17:41:16 2016 -0800"
      },
      "message": "AudioFlinger: Use property for local log lines\n\ndumpsys lines can be increased up to 256 (kLogSize) by\n\nadb shell setprop persist.audio.locallog.lines 256\n\nTest: Run piano app and check audioflinger dumpsys\nBug: 30572472\nChange-Id: Ie27812b15732432856452e4c46d81abf860aaee2\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": "8d8125714f07598c8557fcdf0f2540d39c07cb00",
      "tree": "a582b8142e69a77ca975018c5c0268436f84f2a4",
      "parents": [
        "1b5516348b1123a4defc01176f1629b5f64098e0",
        "6e5dc44277dbe613b32bf634193c4b0dd7aea511"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Dec 17 00:15:04 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Dec 17 00:15:04 2016 +0000"
      },
      "message": "DO NOT MERGE - audioflinger: fix recursive mutex lock in EffectHandle. am: 31a4598a19 am: bc9bdb3b3e\nam: 6e5dc44277\n\nChange-Id: If35caac5a9880137dcb2efbf34ba71f1d21ecb74\n"
    },
    {
      "commit": "6e5dc44277dbe613b32bf634193c4b0dd7aea511",
      "tree": "69a0241b0f3c8b803bae7d16a008ad264fa2c791",
      "parents": [
        "8f9439a3589c50eb1f66e153dd1b95ef2bd8f62c",
        "bc9bdb3b3e67490cf2f816438306decc0783aa24"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Dec 17 00:07:34 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Dec 17 00:07:34 2016 +0000"
      },
      "message": "DO NOT MERGE - audioflinger: fix recursive mutex lock in EffectHandle. am: 31a4598a19\nam: bc9bdb3b3e\n\nChange-Id: I30ce59dfb1438b2d09b16db96936e03ae01d83d8\n"
    },
    {
      "commit": "e2bc75d146276c3cfe2b349073cf46f7706fa38d",
      "tree": "a987d687f9358f14b330c2402f3c40ffcd59ba9c",
      "parents": [
        "6a308b02f138e358fb239ee2df5d54dd988f34fd",
        "1ffc585aaaa236806bc0464566ea51189ad2d36e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 16 20:45:22 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 16 20:45:23 2016 +0000"
      },
      "message": "Merge \"audioflinger: fix recursive mutex lock in EffectHandle.\""
    },
    {
      "commit": "6a308b02f138e358fb239ee2df5d54dd988f34fd",
      "tree": "730e19d7ae133e2086c37dcec42d0b88e77ba01b",
      "parents": [
        "0a2ea58394190408a3d532bfcc242ba64ca71538",
        "20b9ef0b55c9150ae11057ab997ae61be2d496ef"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 16 17:12:23 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 16 17:12:23 2016 +0000"
      },
      "message": "Merge \"Add unique audio port IDs to AudioTrack and AudioRecord\""
    },
    {
      "commit": "31a4598a1908b3ccac7ddb33c511ce66840aa911",
      "tree": "32c59ae8474727beb681f6bb8710ec60a7d0c92b",
      "parents": [
        "b378b73dd7480b584340b8028802c9ca2d625123"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 15 14:46:09 2016 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 15 16:36:33 2016 -0800"
      },
      "message": "DO NOT MERGE - audioflinger: fix recursive mutex lock in EffectHandle.\n\nBug: 33661708\nBug: 32707507\nBug: 32095713\n\nTest: run CTS AudioEffectTest#test5_0Command, Custom binder test\n\nChange-Id: I03f674f126c191143bd8bdfe236f793e975826a5\n"
    },
    {
      "commit": "1ffc585aaaa236806bc0464566ea51189ad2d36e",
      "tree": "d2635c92c15cfefad96eb44cdf5e2f2aac185464",
      "parents": [
        "dcc65c73953d885d8d7433da2a8153f6d3c494a1"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 15 14:46:09 2016 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 15 15:04:27 2016 -0800"
      },
      "message": "audioflinger: fix recursive mutex lock in EffectHandle.\n\nBug: 33661708\nBug: 32707507\nBug: 32095713\n\nTest: run CTS AudioEffectTest#test5_0Command, Custom binder test\n\nChange-Id: I03f674f126c191143bd8bdfe236f793e975826a5\n"
    },
    {
      "commit": "7f208022668b5f77fecaeff7a655c90f41712af6",
      "tree": "b1ee70858cac67b8512f6bdbd170eb9b8c6565df",
      "parents": [
        "6d91c4fc369f8c144c76d879489e84984325859f",
        "72db998b4f41e795420055cda362847d5c5f8c92"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 15 18:03:45 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Dec 15 18:03:45 2016 +0000"
      },
      "message": "DO NOT MERGE - improve audio effect framwework thread safety am: b378b73dd7 am: 993c09b27b\nam: 72db998b4f\n\nChange-Id: I0d46e03a152fa697a329e80d5976e55237493915\n"
    },
    {
      "commit": "72db998b4f41e795420055cda362847d5c5f8c92",
      "tree": "83e824d5f21d33051a683256f949d1f4c1b076e6",
      "parents": [
        "56d69ea84fb6c75cd5e855f067f90cae5a085d27",
        "993c09b27bc5b2b9f93b29fac8e212a196a52c67"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 15 17:55:44 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Dec 15 17:55:44 2016 +0000"
      },
      "message": "DO NOT MERGE - improve audio effect framwework thread safety am: b378b73dd7\nam: 993c09b27b\n\nChange-Id: Ib46c5c88aa112e819fe320857b2136f14f84db1a\n"
    },
    {
      "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": "b378b73dd7480b584340b8028802c9ca2d625123",
      "tree": "00439baacf771d5439c6ec1747cfcdff13eeb4e5",
      "parents": [
        "5ed0c9ffdae597a023bdcade0868566832a01c2b"
      ],
      "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 09 10:25:06 2016 -0800"
      },
      "message": "DO NOT MERGE - 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\nBug: 32707507\nChange-Id: Ia1098cba2cd32cc2d1c9dfdff4adc2388dfed80e\n"
    },
    {
      "commit": "b15ed7a197061d688e465ac4a0d489fed65b8ceb",
      "tree": "13eb9e8815735d3645d2bbb6bb63946d518f5627",
      "parents": [
        "353613ca6ec69e9663b7188305cdd46914dccfb4",
        "08dab5ae92ddd1f3b337b6e35f918fea8c284a56"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Dec 09 03:59:00 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 09 03:59:01 2016 +0000"
      },
      "message": "Merge \"Use libmedia_helper as shared lib.\""
    },
    {
      "commit": "b643627a557e44b9ab5879cf71e162af2d514ce3",
      "tree": "995bc0b0fa9a614687aa8df2f119ab7fff0c7a88",
      "parents": [
        "8526d86ab12284135ed4ca27aeb816371c10c0e6"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 07 19:24:50 2016 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 08 12:14:32 2016 -0800"
      },
      "message": "fix client pid for effects applied by audio policy\n\nTest: Hangouts call, Play Music with and w/o effects\n\nChange-Id: Ia9b20f94be667dd92e0497f8ef9c0dc0e95afe28\n"
    },
    {
      "commit": "08dab5ae92ddd1f3b337b6e35f918fea8c284a56",
      "tree": "4ebbef53fa801437efecb2de9135543c5f1326c6",
      "parents": [
        "8526d86ab12284135ed4ca27aeb816371c10c0e6"
      ],
      "author": {
        "name": "Jaekyun Seok",
        "email": "jaekyun@google.com",
        "time": "Wed Dec 07 15:08:17 2016 +0900"
      },
      "committer": {
        "name": "Jaekyun Seok",
        "email": "jaekyun@google.com",
        "time": "Thu Dec 08 18:13:28 2016 +0900"
      },
      "message": "Use libmedia_helper as shared lib.\n\nThe dependencies to static libraries in frameworks should be removed\nas many as possible to reduce a size of the system partition.\nAnd that will improve coverage of the VNDK libraries because this\neffort might find new necessary shared libs which were linked\nstatically before.\n\nSize diffs of affected binaries on angler-userdebug build are as\nfollows.\n\nlibmedia                    : 598056 -\u003e 547928 (-50128)\nlibstagefright              : 1496420 -\u003e 1492124 (-4296)\nlibaudiopolicyservice       : 75372 -\u003e 66940 (-8432)\nlibaudiopolicymanagerdefault: 613168 -\u003e 583516 (-29652)\nlibaudioflinger             : 397840 -\u003e 364380 (-33460)\nlibaudiohal                 : 114752 -\u003e 68684 (-46068)\nlibaudiopolicyenginedefault : 122096 -\u003e 71968 (-50128)\nlibmedia_helper             : 0 -\u003e 66288 (+66288)\n\ntotal                       : (-155876)\n\nTest: building succeeded, and the image was tested on angler.\nBug: 33056637\nChange-Id: I00a71e518337a1efcf7f55256145776311596991\n"
    },
    {
      "commit": "78cbdfa7b68615cc61573f39a87563d891aed652",
      "tree": "970e75d4a0bf67c437fcaf889e236fc0e1039bf9",
      "parents": [
        "1029d18fc055b6831c46f365215552bda8b793db",
        "1f82f9569d257adc1d6d1c9a58e542c3c99c0109"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Dec 07 20:33:21 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Dec 07 20:33:21 2016 +0000"
      },
      "message": "Log audio information to ensure complete delivery\nam: 1f82f9569d\n\nChange-Id: I8c3045b0331a97b98168897d03ec1dc55235a59e\n"
    },
    {
      "commit": "f10c709fda87d971a206eebd5df47356e7f2aa39",
      "tree": "98b1a47d6a12c11a4b5a02e2a7fb5129b2a6680f",
      "parents": [
        "7cdef381717e3a96acc6c5786c88bf1eaf03d2f2"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 06 17:09:56 2016 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 07 09:40:43 2016 -0800"
      },
      "message": "audio policy: remove effects before releasing input\n\nmodify releaseInput() implementation so that effects added by policy\nrules are removed before closing the input stream to avoid\nfailure to destroy the effect chain\n\nmake sure that orphan effect chains are checked when an EffectHandle is\ndisconnected after thread destruction.\n\nTest: make and run Hangouts\nBug: 32707507\n\nChange-Id: I7833b4c5e42c0057a4477eb4485a20dd26ca2f90\n"
    },
    {
      "commit": "1f82f9569d257adc1d6d1c9a58e542c3c99c0109",
      "tree": "9b634a2a96b4609a1a5a8fe1a7b68d5eb5338700",
      "parents": [
        "83cb42836108742727ba8fc0bf24ab832001d687"
      ],
      "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": "Mon Dec 05 16:25:54 2016 -0800"
      },
      "message": "Log audio information to ensure complete delivery\n\nTest: Audio playback\nBug: 30572472\nChange-Id: Ibad6fc202692cd3480ae726627252afdead083f3\n"
    },
    {
      "commit": "7cdef381717e3a96acc6c5786c88bf1eaf03d2f2",
      "tree": "1e0b348638ee8777683717b141e8ed7e69c63864",
      "parents": [
        "2f6272e17232360bcd10ae7a5179bf6cf8d86e38",
        "3bc859bfba96815315c05469e9da07adfc0aa8d5"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Dec 05 21:27:40 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Dec 05 21:27:40 2016 +0000"
      },
      "message": "Merge \"audioflinger: update comment on mutex locking order\""
    },
    {
      "commit": "3bc859bfba96815315c05469e9da07adfc0aa8d5",
      "tree": "5a8e0ae75aade871abdf8a71367b10ff20469c33",
      "parents": [
        "0d96fa05bf3f22942c372ecc93a7f6a44ecda30a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Dec 05 11:07:22 2016 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Dec 05 11:07:22 2016 -0800"
      },
      "message": "audioflinger: update comment on mutex locking order\n\nTest: make\nBug: 32707507\nChange-Id: Ief55cb740373a97c59de470738e3c36fcde03aae\n"
    }
  ],
  "next": "abf6ff26df459d991cdbc2dca3b78046c97469db"
}
