)]}'
{
  "log": [
    {
      "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": "9a2732ba0a8d609ab040d2c1ddee28577ead9772",
      "tree": "25d0d131ed5dc1c34aee6099f258ceda4abd8984",
      "parents": [
        "ef6934cdf9a84321455e106f52432f93a2e2541e"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Oct 18 17:13:09 2016 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Oct 19 18:48:52 2016 +0000"
      },
      "message": "Visualizer: Check capture size and latency parameters\n\nBug: 31781965\nChange-Id: I1c439a0d0f6aa0057b3c651499f28426e1e1f5e4\n"
    },
    {
      "commit": "f4a63f6765118754e998fed3ed51d24fa0d0faac",
      "tree": "159a7297a1a4b260ad31b58ea97c4a0a8ba2d318",
      "parents": [
        "54c0001dc955398e855a36c082c4f3e517e92ad9",
        "bcc7230bb91811c4510f11d0c20d14fa743cc559"
      ],
      "author": {
        "name": "rago",
        "email": "rago@google.com",
        "time": "Thu Oct 13 01:33:18 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Oct 13 01:33:18 2016 +0000"
      },
      "message": "Fix potential NULL dereference in Visualizer effect am: 874f9e0b8e am: f060479b9a\nam: bcc7230bb9\n\nChange-Id: If5d6fefb276341472d827bac3f349561f7d1d990\n"
    },
    {
      "commit": "bcc7230bb91811c4510f11d0c20d14fa743cc559",
      "tree": "0795b34bade66b1e9713f82096707b642ca28cfa",
      "parents": [
        "d18d8fac612e57044ff3fe2c35ac2112e6b7bc18",
        "f060479b9adbe919bf35dc575d42ae50a4893a42"
      ],
      "author": {
        "name": "rago",
        "email": "rago@google.com",
        "time": "Thu Oct 13 01:26:47 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Oct 13 01:26:47 2016 +0000"
      },
      "message": "Fix potential NULL dereference in Visualizer effect am: 874f9e0b8e\nam: f060479b9a\n\nChange-Id: I69eb3819f246e6d807af099f9a0260146cd06fd2\n"
    },
    {
      "commit": "874f9e0b8eb0cbe508d15c8c03796c863851f21f",
      "tree": "9d5c6c632acc0190d7be0fb5fe87a7d75f21d98d",
      "parents": [
        "afb20c310207aa4380f0578545ffce993ded23da"
      ],
      "author": {
        "name": "rago",
        "email": "rago@google.com",
        "time": "Fri Oct 07 18:16:09 2016 -0700"
      },
      "committer": {
        "name": "rago",
        "email": "rago@google.com",
        "time": "Wed Oct 12 12:19:06 2016 -0700"
      },
      "message": "Fix potential NULL dereference in Visualizer effect\n\nBug: 30229821\n\nTest: fixing CL. Existing unit tests still pass.\n\nChange-Id: I6e4abd759d5d2abc3b391e92e2e18f060cab7af0\n"
    },
    {
      "commit": "2feb9ce748f9b7b3f844e66aaa76c667a3aeb91c",
      "tree": "186f0b3656b86fc53616ad32881726d61216fa6a",
      "parents": [
        "b308b1a5d95a03d45cf8bfaf4f35debd398f3c20",
        "bad0250dcb7f79bb1367db1045c6ca6dfc2238ec"
      ],
      "author": {
        "name": "rago",
        "email": "rago@google.com",
        "time": "Tue Sep 20 00:46:03 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Sep 20 00:46:03 2016 +0000"
      },
      "message": "Fix potential overflow in Visualizer effect am: 46dc714d52 am: 8720f85196\nam: bad0250dcb\n\nChange-Id: I23660e1da14f232ff786f9ab78da3e26f301c1b2\n"
    },
    {
      "commit": "bad0250dcb7f79bb1367db1045c6ca6dfc2238ec",
      "tree": "14d2afaeeac25ffa01ccadc105851b9bd986f2d7",
      "parents": [
        "dfe5b5193cfc6321a7ddd3a48ceeaf59097cb545",
        "8720f851962489573b3924b866530bf60373ad9e"
      ],
      "author": {
        "name": "rago",
        "email": "rago@google.com",
        "time": "Tue Sep 20 00:39:33 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Sep 20 00:39:33 2016 +0000"
      },
      "message": "Fix potential overflow in Visualizer effect am: 46dc714d52\nam: 8720f85196\n\nChange-Id: I0803632824e6fc5a70ad6a1ba36743eb11cc3e7e\n"
    },
    {
      "commit": "46dc714d523a41a4f886eecbe5b9947a4c900510",
      "tree": "dec8a194b1f84803d674c9a0ec6c6c6ad337d719",
      "parents": [
        "4fb531e2627a0bb5109de2aa6096a972f40dad72"
      ],
      "author": {
        "name": "rago",
        "email": "rago@google.com",
        "time": "Mon Aug 22 17:20:26 2016 -0700"
      },
      "committer": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Wed Aug 24 01:28:32 2016 +0000"
      },
      "message": "Fix potential overflow in Visualizer effect\n\nBug: 30229821\nChange-Id: Idd3c1563dc9d3261e6e168e945005bf133ab2cdb\n(cherry picked from commit 099ab280775946e7c36c73fde47f2ee5a2579f53)\n"
    },
    {
      "commit": "c655561b3580ae7ba3a721e69ac240606e11fab8",
      "tree": "b1284c00f28db946f0a416a52c5e9d6a94e9dbdd",
      "parents": [
        "13c925cab2decaed6786b0642f2b5a9f8516e71a",
        "29b83cbb9018e53a18cf6e0fb34893f9774dcb96"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jun 23 01:32:08 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jun 23 01:32:08 2015 +0000"
      },
      "message": "am 29b83cbb: DO NOT MERGE - audio effects: fix heap overflow\n\n* commit \u002729b83cbb9018e53a18cf6e0fb34893f9774dcb96\u0027:\n  DO NOT MERGE - audio effects: fix heap overflow\n"
    },
    {
      "commit": "29b83cbb9018e53a18cf6e0fb34893f9774dcb96",
      "tree": "c17fd5e1cd3b7e6be790d902a31ea2af520a548c",
      "parents": [
        "6ff53b96235bf99cdc1023b99d44f1c4cade1c0a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jun 19 15:33:57 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jun 23 00:40:18 2015 +0000"
      },
      "message": "DO NOT MERGE - audio effects: fix heap overflow\n\nCheck consistency of effect command reply sizes before\ncopying to reply address.\n\nAlso add null pointer check on reply size.\nAlso remove unused parameter warning.\n\nBug: 21953516.\nChange-Id: I4cf00c12eaed696af28f3b7613f7e36f47a160c4\n"
    },
    {
      "commit": "6368e6d23ca27cd59a9a1876d6b5a2301a8657ed",
      "tree": "8a89740c3b4dcb9a5241b5c1156154e5990086a2",
      "parents": [
        "115e995c6b3fe7ed33e2d5d88872cb87ab4e63f0"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jun 19 15:33:57 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Jun 20 01:21:51 2015 +0000"
      },
      "message": "audio effects: fix heap overflow\n\nCheck consistency of effect command reply sizes before\ncopying to reply address.\n\nAlso add null pointer check on reply size.\nAlso remove unused parameter warning.\n\nBug: 21953516.\nChange-Id: I4cf00c12eaed696af28f3b7613f7e36f47a160c4\n(cherry picked from commit 0f714a464d2425afe00d6450535e763131b40844)\n"
    },
    {
      "commit": "e541269be94f3a1072932d51537905b120ef4733",
      "tree": "39646def02d7230929eb85189f48b9193b8c23a0",
      "parents": [
        "7c96d53a65085f42ac2b6d416cbc16fd36ed72ff"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 16 11:25:07 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 16 15:05:05 2014 -0700"
      },
      "message": "Use new channel count functions for audio masks\n\nChange-Id: Ia658ab4b6320d19fdb50f123c930918724ff0ef3\nSigned-off-by: Andy Hung \u003chunga@google.com\u003e\n"
    },
    {
      "commit": "cb010a3fa85db1eb90346b35e484e21e7f1b1a4b",
      "tree": "720906051414d27dfca82c175618a83190d9ea3d",
      "parents": [
        "77d4f613bbed8b646c8ddade6a0737fcbd391b07",
        "e1ff1051ffee8fb650741ad133f0f28b73eb7a73"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Apr 18 22:11:00 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Apr 18 22:11:00 2014 +0000"
      },
      "message": "am e1ff1051: am e0f20cea: Merge \"libeffects: 64 bit compile issues\"\n\n* commit \u0027e1ff1051ffee8fb650741ad133f0f28b73eb7a73\u0027:\n  libeffects: 64 bit compile issues\n"
    },
    {
      "commit": "7cb0e733210c2ce7dd2a7c9d32f6d83c4dab9656",
      "tree": "406ac589b6b1cf7efaef89723fd0b8de5e5e2b91",
      "parents": [
        "cd4eb72edb0575ce1e84fbd3f27bb85bab6110ed"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Apr 18 13:48:25 2014 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Apr 18 13:57:58 2014 -0700"
      },
      "message": "libeffects: 64 bit compile issues\n\nChange-Id: I32dd13d307572fee91150f8e113df78924ca0067\n"
    },
    {
      "commit": "9cf4f07c2dc5d4f14bfd1adee691667eb55882ec",
      "tree": "15cfd27d1abe01fe5806201f38fff349536172f8",
      "parents": [
        "bce50bfc3846ab008bafa75c5d3f29fd7b5395f7",
        "e276aef8779a7763b318ebd3e8c09f35ff37a95c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@android.com",
        "time": "Fri Feb 28 17:24:25 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Feb 28 17:24:25 2014 +0000"
      },
      "message": "am e276aef8: am 0cf16339: Merge \"Fix preventing from heap overwrite in capture command\"\n\n* commit \u0027e276aef8779a7763b318ebd3e8c09f35ff37a95c\u0027:\n  Fix preventing from heap overwrite in capture command\n"
    },
    {
      "commit": "e27e2d9bcabc1a367cb56b4599665c931a1d22ec",
      "tree": "5ec47116fa737797ad8fd1d737ce27d4161103f2",
      "parents": [
        "3d2e09f0221693de08129edd02adf340a44e7a38"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Thu Feb 27 14:29:56 2014 -0500"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Thu Feb 27 14:29:56 2014 -0500"
      },
      "message": "Fix includes to no longer pull in Skia includes directories.\n\nbug:13225538\nChange-Id: I4fccc414923f7e62cd46d691c67cb44b9692c225\n"
    },
    {
      "commit": "abb7b17613fff41433cda94207eb535c9fed8fba",
      "tree": "1ccb9a72843f7b023cbd9b5365fc6c424b672dc7",
      "parents": [
        "80b72e6f4202ce26facbe51b8739814bca198a2c"
      ],
      "author": {
        "name": "Ryszard Grzesica",
        "email": "ryszard.grzesica@sonymobile.com",
        "time": "Fri Jan 17 11:40:16 2014 +0100"
      },
      "committer": {
        "name": "Takeshi Aimi",
        "email": "takeshi.aimi@sonymobile.com",
        "time": "Thu Feb 20 02:01:35 2014 +0900"
      },
      "message": "Fix preventing from heap overwrite in capture command\n\nThere was heap usage error in case of stop of audio framework while\ncapturePoint was negative. Pointer to reply data was moved but\nfinal silence write was done using original buffer size.\nNow silence set is done at the beginning under the condition\nthat framework has stopped.\n\nChange-Id: I7dab1e922f1813e5fbfd4a64c8b0d15d9465520c\n"
    },
    {
      "commit": "7d6fc5ebc8718ebb5bf505d9bda83ab63741a545",
      "tree": "3dff65731f7dcb75e20974287e8008c7048ca86f",
      "parents": [
        "4ef1dc2d5b5f5df93b173b0b4c4719d4484e031d"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Jan 24 21:00:32 2014 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jan 27 12:39:29 2014 -0800"
      },
      "message": "frameworks/av: convert LOCAL_MODULE_PATH to LOCAL_MODULE_RELATIVE_PATH\n\nLOCAL_MODULE_PATH doesn\u0027t work for multiarch builds, replace it\nwith LOCAL_MODULE_RELATIVE_PATH.\n\nChange-Id: I4e4ceec61d026bbe74ba604554c06104bde42e5e\n"
    },
    {
      "commit": "5bf2560ce9b70bee077e0c264ac06648f0f63acc",
      "tree": "f17ecec5321e8d583d045135f29f14f3c7418e71",
      "parents": [
        "eb76f318e9daf91dbf195bcb74852b3bd736a32a",
        "b2059ff384eee8ffb70a7ec8fc5570405201c734"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Nov 22 10:35:20 2013 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Nov 22 10:35:20 2013 -0800"
      },
      "message": "Merge commit \u0027b2059ff384eee8ffb70a7ec8fc5570405201c734\u0027 into HEAD\n"
    },
    {
      "commit": "c9d8ea7f8f9a1ca8ecd266695e3cac423790b2f9",
      "tree": "ba266ce44ccdc60775b8f91e6b33a05b3c207f89",
      "parents": [
        "0219856e5e45c0bdd20f2199297ec92f11f0875f"
      ],
      "author": {
        "name": "synergydev",
        "email": "synergye@codefi.re",
        "time": "Sat Oct 19 22:51:33 2013 -0700"
      },
      "committer": {
        "name": "synergydev",
        "email": "synergye@codefi.re",
        "time": "Sat Oct 19 22:57:43 2013 -0700"
      },
      "message": "libeffects: do not use GNU old-style field designators\n\nNot using a GNU extension improves portability\n\nChange-Id: I4e8a0376c089828ca4fc7f1aaf3914bfd917d4c5\n"
    },
    {
      "commit": "6fbc9ef121b081f888163190bb13cbac31599900",
      "tree": "588d44fb6e79c974ebbc1004e6ffcedefbc110f8",
      "parents": [
        "664539d25180ab8f77e0521533ea2821cf28985f"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Sep 24 15:31:13 2013 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Sep 24 15:37:06 2013 -0700"
      },
      "message": "Fix log typos in Visualizer effect\n\nFix errors in logs for Visualizer.\nSet loop counters on 32 bits\n\nBug 8413913\n\nChange-Id: Iad2140d003d15d45be46826a5e89baff14fe9e77\n"
    },
    {
      "commit": "09647d29eaf429ce88c9c9709ff63dee62f2147a",
      "tree": "3626eb231080732d92a0b1bdfbd1710b52e36aa6",
      "parents": [
        "4b701cc041d635e5ec56e382043a4c5d01aedd80"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Sep 20 11:58:40 2013 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Sep 23 15:53:53 2013 -0700"
      },
      "message": "Add support for level measurements in Visualizer\n\nNew commands to set a measurement mode and perform peak + RMS\n measurements.\n\nBug 8413913\n\nChange-Id: Ib25254065c79d365ebb34f9dc9caa0490e2d300d\n"
    },
    {
      "commit": "5baf2af52cd186633b7173196c1e4a4cd3435f22",
      "tree": "9c6752456812c4a927574a71e1d2ec2495ff6ce3",
      "parents": [
        "9a98b6de791aeb130192df10744f5b35f8b6ef1a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 12 17:37:00 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Sep 18 11:52:40 2013 -0700"
      },
      "message": "more support for audio effect offload\n\nOffloading of audio effects is now enabled for offloaded\noutput threads. If an effect not supporting offload is enabled,\nthe AudioTrack is invalidated so that it can be recreated in PCM\nmode.\n\nFix some issues in effect proxy related to handling of effect\ncommands to offloaded and non offloaded effects.\n\nAlso fixed a bug on capture index in software Visualizer effect.\n\nBug: 8174034.\n\nChange-Id: Ib23d3c2d5a652361b0aaec7faee09102f2b18fce\n"
    },
    {
      "commit": "ecba7488c5cceaacef95836b1b476433451e7761",
      "tree": "83245c19c2dda5c557531edb19478056034b5db5",
      "parents": [
        "5544c66ba0aa789a997b376df503a5ffae425dc7"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Apr 09 21:53:49 2013 -0700"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Apr 09 21:53:49 2013 -0700"
      },
      "message": "Add liblog\n\nBug: 8580410\nChange-Id: If493d87d60d71be664ad75b140c62acadb75b0d0\n"
    },
    {
      "commit": "da0dc0af0effe9fbfb3ce3187c8472fca2baf3c6",
      "tree": "67aa5a912048834766759d1842f7e54a20f74481",
      "parents": [
        "ec77122351b4e78c1fe5b60a208f76baf8c67591"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Apr 09 21:53:49 2013 -0700"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Apr 09 21:53:49 2013 -0700"
      },
      "message": "Add liblog\n\nBug: 8580410\nChange-Id: If493d87d60d71be664ad75b140c62acadb75b0d0\n"
    },
    {
      "commit": "7f16b197c76fbae9399242f055a7ee16dcd0fd6d",
      "tree": "c3ef4aac9bb7cedd1a694a50d4f9be0ec83cc817",
      "parents": [
        "6035cb5a61a7606cc8e4ecddec32b2eb37a9fd56"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Oct 25 16:05:57 2012 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Oct 25 16:05:57 2012 -0700"
      },
      "message": "Only export the symbols that need to be\n\nThe effects libraries were exporting many more symbols than needed.\nThis reduces the exported symbols to just the needed ones (basically\njust \"AELI\"), which happens to also save about 28KB.\n\nChange-Id: I115077e52e8dc845282e6f62a522908d26dd72d6\n"
    },
    {
      "commit": "655604a7c1ffadc04ec479e4f45345918f44b460",
      "tree": "35f365521cb1292429a01b80e1d61661d5341121",
      "parents": [
        "1bb85d27f09cb01b7e43e08600229258edf16e60"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Oct 25 16:05:57 2012 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Oct 25 16:05:57 2012 -0700"
      },
      "message": "Only export the symbols that need to be\n\nThe effects libraries were exporting many more symbols than needed.\nThis reduces the exported symbols to just the needed ones (basically\njust \"AELI\"), which happens to also save about 28KB.\n\nChange-Id: I115077e52e8dc845282e6f62a522908d26dd72d6\n"
    },
    {
      "commit": "6035cb5a61a7606cc8e4ecddec32b2eb37a9fd56",
      "tree": "4adad231ee22989258c1d6c6c95ea8c218a9807d",
      "parents": [
        "bd37975395b6517e155f6195d2300872bc26ee70"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Oct 25 11:02:50 2012 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Oct 25 12:16:59 2012 -0700"
      },
      "message": "Switch to new fx library API\n\nChange-Id: I6603aef5e3821a8f911e3f33ef8565d04bd1e2e5\n"
    },
    {
      "commit": "1bb85d27f09cb01b7e43e08600229258edf16e60",
      "tree": "3c1ec1cf442a4502c430ee07d1ff7ece2fa5276c",
      "parents": [
        "692c3e54c63aaaf7e9ef4d89761f98975bd34f33"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Oct 25 11:02:50 2012 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Oct 25 12:16:59 2012 -0700"
      },
      "message": "Switch to new fx library API\n\nChange-Id: I6603aef5e3821a8f911e3f33ef8565d04bd1e2e5\n"
    },
    {
      "commit": "a189a6883ee55cf62da1d7bf5bf5a8ab501938a4",
      "tree": "7ab4133c0ce507e289baacf76d745de27f9e8136",
      "parents": [
        "28b76b334f92a15a2be3cc9e2f7d229a3275d1ac"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Feb 20 12:16:30 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jul 17 11:35:16 2012 -0700"
      },
      "message": "Use struct assignment instead of explicit memcpy\n\nfor POD structs effect_descriptor_t and effect_config_t\n\nChange-Id: Ib2fc47f85fb65ed91b0abb1f87217c49b5eb571d\n"
    },
    {
      "commit": "3d51d5cb53cc630709a0ba78d0e60501a675f2d5",
      "tree": "c01dc8011b4e0061343c8b60b0da3508c63ae822",
      "parents": [
        "b4ea1ab821d652cb080910d4081f5f1318597a90"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Jun 12 18:10:35 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Jun 13 15:18:29 2012 -0700"
      },
      "message": "Add NOTICE and MODULE_LICENSE_APACH2 to libs build under /frameworks/av/\n\nChange-Id: I0a3af3e2abdedebd5934f3d941d01c32cfc75e26\nrelated-to-bug: 6647465\n"
    },
    {
      "commit": "f06c2ed50e1db871ae9eb2bd15a196064f8c278c",
      "tree": "a6e809ffab6281359f5c22166113cb2039579f68",
      "parents": [
        "67c0a58e05f4c19d4a6f01fe6f06267d57b49305"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Jun 06 09:52:31 2012 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Jun 07 09:16:27 2012 -0700"
      },
      "message": "Take latency and current time into account for visualization\n\nBuffer more data, and return the data that is currently being\noutput from the audio output, to ensure that visualizations are\nsmooth and responsive even when the audio output has a large\nlatency and/or large buffers.\nb/6522728\n\nChange-Id: I401637f01be7600b3c594a55c869036c13b206c0\n"
    },
    {
      "commit": "3476de62fb10e76412452ef4c6bd71936c9f7db1",
      "tree": "9c814922fd33670a7cdd23c9597cbd19ad5e1ef9",
      "parents": [
        "fbe308d428e42fe249ec317f76e3d11feb3264d5"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Sun Apr 15 17:15:07 2012 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 18 18:27:39 2012 -0700"
      },
      "message": "Add support for scaling mode parameter\n\nSupport VISUALIZER_PARAM__SCALING_MODE parameter.\n\nModify process() function to use new volume scaling parameter,\n used to set whether captured values are maximized by current\n headroom in the buffer (default existing behaviora) or left\n as is and thus affected by volume.\n\nModify AudioEffect to allow subclasses to override the following\n events: control status changed, enable status changed, command\n executed.\nIn Visualizer class (a subclass of AudioEffect), reset the\n scaling mode and capture size on the actual effect\n as cached when control is regained.\n This will allow the effect to be properly\n configured whenever Visualizers with different scaling\n modes or capture sizes are released (e.g. from java\n release() method).\n\nChange-Id: I05cb9f925a296dceca91bafa9fe294ef2b2c2bd5\n"
    },
    {
      "commit": "183dc7772d7eba127aab63829c7ca0359d817593",
      "tree": "1966c3817b8064f8bf3f30590afba5739ef265f3",
      "parents": [
        "529127450abdeddf5d2467c7973e779a6b1376ea"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Mar 23 15:35:48 2012 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 26 11:05:25 2012 -0700"
      },
      "message": "fix visualizer inactivity detection\n\nCurrent method implemented by the visualizer to detect that audioflinger has\nstopped providing audio buffers does not work if the application\nreads pcm captures too fast.\n\nThe fix consist in implementing a method based on real time measurement only.\nOne drawback is that the new method makes use of system calls that add some\noverhead to the process and capture functions.\n\nChange-Id: I53bd596b856f1cc7f0f47e08413af3335227100b\n"
    },
    {
      "commit": "33b383948e8f270bff30378476f00dce289004eb",
      "tree": "a42eeb76674395b36611da694166ddd4144a0fa8",
      "parents": [
        "dfaf549e3e310bc22444f4404b19f4907b24c286"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 13 15:59:35 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 14 16:44:34 2012 -0700"
      },
      "message": "Remove dependency on audio_* location\n\nChange-Id: I4bc66115fcb9ba22b057bd72db3f561dcb18a0d8\n"
    },
    {
      "commit": "5e92a7861196ddae14638d4b7a63fc4892b7ef59",
      "tree": "6772b944a26acb22381a2eb38871b46cff9d856a",
      "parents": [
        "0a20fa9c41c96e31fa20e071074a4b6e7f6c41c3"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jan 30 07:40:52 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Feb 08 09:21:39 2012 -0800"
      },
      "message": "Effect UUID inputs passed by pointer are const\n\nChange-Id: I1f5c338bcb7368e3dd8cd5f804b2e6d9fbe087f8\n"
    },
    {
      "commit": "5ff1dd576bb93c45b44088a51544a18fc43ebf58",
      "tree": "c002dcda87f08329197b01395539bd25f10ca737",
      "parents": [
        "8a08dcc0a5de19a904e77d5f31bed3dff9a59890"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Thu Jan 05 23:22:43 2012 +0000"
      },
      "committer": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Fri Jan 06 10:07:54 2012 +0000"
      },
      "message": "Rename (IF_)LOGW(_IF) to (IF_)ALOGW(_IF)  DO NOT MERGE\n\nSee https://android-git.corp.google.com/g/157065\n\nBug: 5449033\nChange-Id: I00a4b904f9449e6f93b7fd35eac28640d7929e69\n"
    },
    {
      "commit": "3d5188bd6abe55898f10a0edf3c05aff8aa2ef67",
      "tree": "7dd2eba6d9a65d42628ffe55d12e640776285035",
      "parents": [
        "42968939dfce0954d6540011199045ec4ed7de80"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 16 15:30:36 2011 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Dec 19 17:08:31 2011 -0800"
      },
      "message": "audio effects: rename configure command\n\nRenamed audio effect library interface command for audio format\nconfiguration from EFFECT_CMD_CONFIGURE to EFFECT_CMD_SET_CONFIG.\nThis makes the naming more consistent with other exixsting commands\nand allow adding a new command to get the configuration (EFFECT_CMD_GET_CONFIG).\nSame change for reverse channel configuration renamed from\nEFFECT_CMD_CONFIGURE_REVERSE to EFFECT_CMD_SET_CONFIG_REVERSE.\n\nImplemented EFFECT_CMD_GET_CONFIG in exisitng effect libraries.\n\nChange-Id: Ia7b1c620f13797fe5aceb3b0b4acbacce09fb067\n"
    },
    {
      "commit": "73bb0b9f2922679d057e29e9f502988178554a02",
      "tree": "56efd281b6a1e290a497351270ea7d25d8b35065",
      "parents": [
        "516fb1dad0c434fd89624c418543d35436a5374c",
        "1e809edd9b25e34d9c475ecd2c2e26ddc75cba2c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Nov 11 11:51:14 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Nov 11 11:51:14 2011 -0800"
      },
      "message": "am 2c29a5cf: am 1f8c6212: Merge \"visualizer: reset buffer if playback is idle\" into ics-mr1\n\n* commit \u00272c29a5cf1658532bca4e34f816fa30312241a336\u0027:\n  visualizer: reset buffer if playback is idle\n"
    },
    {
      "commit": "3df40a093d8d3d211f693e0e3ef4076750cabfea",
      "tree": "c26b2befde35a0235263d12d17dd30ad8d98370c",
      "parents": [
        "1dc0ab1d2e2c5f40193556ad1239e304563f3083"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 10 10:02:18 2011 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 10 10:27:05 2011 -0800"
      },
      "message": "visualizer: reset buffer if playback is idle\n\nVisualizer capture buffer must be reset if audio framework has stopped\ncalling process for a given period of time to get read of residual\ndata from previous captures.\n\nIssue 5571920.\n\nChange-Id: I6e73f971bb812cdbb2979a3b5e763abab07634eb\n"
    },
    {
      "commit": "3856b090cd04ba5dd4a59a12430ed724d5995909",
      "tree": "a24e4c98fa6049fd8085826be838000f9a67e39b",
      "parents": [
        "1d2acaffde56ad79e6e96f228d7857863462397c"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Thu Oct 20 11:56:00 2011 +0100"
      },
      "committer": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Wed Oct 26 09:57:54 2011 +0100"
      },
      "message": "Rename (IF_)LOGV(_IF) to (IF_)ALOGV(_IF)  DO NOT MERGE\n\nSee https://android-git.corp.google.com/g/#/c/143865\n\nBug: 5449033\nChange-Id: I0122812ed6ff6f5b59fe4a43ab8bff0577adde0a\n"
    },
    {
      "commit": "63b96e48deb0a4c5b594693922bd9101ffc3ef93",
      "tree": "f4e64e5c62746d337a1b1de063a57c50c9fa3b62",
      "parents": [
        "a5a0cea84cdf116f4de4f812c26be73e70a260e6",
        "5e0067b486c3862316aa1f293cf9690c0cf54bda"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Jul 12 12:15:07 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 12 12:15:07 2011 -0700"
      },
      "message": "Merge \"Remove the simulator target from all makefiles. Bug: 5010576\""
    },
    {
      "commit": "5e0067b486c3862316aa1f293cf9690c0cf54bda",
      "tree": "104ac8491b40d6e9d8353322792fb83ce76f4c82",
      "parents": [
        "52f556b976a9caceee183d8af2118ddbee02c70a"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 11 22:12:16 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 11 22:12:16 2011 -0700"
      },
      "message": "Remove the simulator target from all makefiles.\nBug: 5010576\n\nChange-Id: I04d722f258951a3078fe07899f5bbe8aac02a8e8\n"
    },
    {
      "commit": "ba7b8f881a9b6b21803752326d2932a3bd42d7cf",
      "tree": "3e6ac78f1dea2eb4bde64c598c21a9b8e87a9db2",
      "parents": [
        "9b88b72ee2c3fd01fb46e77b7e6d80f3bd52e958"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jun 17 18:54:16 2011 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 11 12:00:53 2011 -0700"
      },
      "message": "Audio Effect API: process reverse stream function\n\nAdded function to audio effect interface for processing of\na reverse stream.\nThis is necessary for audio pre processes like echo cancellation.\n\nChange-Id: I6e12d79dbbed6376acdfc79304b8c0ab3f705eae\n"
    },
    {
      "commit": "6d8b694d999e9be7d5dcc336535832a80fb6f61f",
      "tree": "4fcdbf4a7f7fa24a16d7bf27816922031870102f",
      "parents": [
        "5895e970ae119210773a5184c019178e2516b132"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jun 24 07:01:31 2011 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 07 15:25:51 2011 -0700"
      },
      "message": "Moved and renamed effect API header files\n\nMoved specific effect header files to\nsystem/media/audio_effects/include/audio_effects\nand renamed to lower case (effect_xxx.h).\n\nChange-Id: Icfc2264bfd013cab0395d7e310ada636b9fe3621\n"
    },
    {
      "commit": "e1315cf0b63b4c14a77046519e6b01f6f60d74b0",
      "tree": "c10fd288fd0d0d85c619e7e635a249765202fabc",
      "parents": [
        "a3e73df3b402f1ebdbef7c8a8e3111d852e7bd35"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 17 19:16:02 2011 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 27 15:15:00 2011 -0700"
      },
      "message": "New effect library API\n\nMoved and renamed media/EffectApi.h to hardware/audio_effect.h\nModified the effect library API to expose a library info structure\ncontaining an interface functions table.\nAlso removed enums for audio channels, audio format and devices\nfrom effect API and use values from system/audio.h instead.\n\nModified effects factory to support new library interface format and\nload libraries and efffects listed in audio_effects.conf file.\nThe file audio_effects.conf is first loaded from /vendor/etc and\nthen from /system/etc/audio_effects.conf if not found.\n\nModified existing effect libraries to implement the new library interface.\n\nChange-Id: Ie52351e071b6d352fa2fbc06c3846686f8c45df9\n"
    },
    {
      "commit": "9691a73139bb36c5bf294ed13eedcb04d7f05320",
      "tree": "ba00ccb1b57782b8d542f373edc326417954822e",
      "parents": [
        "35812d2cc295e95e9383b64c07f5f8919d7a6885"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Mon Mar 14 14:02:13 2011 -0700"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Mon Mar 14 14:25:59 2011 -0700"
      },
      "message": "frameworks/base: remove LOCAL_PRELINK_MODULE\n\nChange-Id: I54dd62ebef47e7690afa5a858f3cad941b135481\nSigned-off-by: Iliyan Malchev \u003cmalchev@google.com\u003e\n"
    },
    {
      "commit": "c8b3ca3caf7edc08d652937d29724ae7a496655a",
      "tree": "2b70fb6b5c23cec00e3675c0add16c12ed128622",
      "parents": [
        "d0041bc2649a4989965e4684563200029e324808",
        "2726a0ff895ecc0eac3ea5dbc04f407b008cc7f0"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Oct 27 11:11:19 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 27 11:11:19 2010 -0700"
      },
      "message": "am cd08ada7: am 67c7a4ae: Merge \"Fix off-by-two and other bugs in the visualization code. b/3137511\" into gingerbread\n"
    },
    {
      "commit": "64c3bdea8cba454d4404baded584ea0f0611b3ee",
      "tree": "96b7ede041d48ff8932c8e3fedf6ae72a9396c88",
      "parents": [
        "53409d6fe668e695e92479371f0ec162723feed5"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Oct 27 09:06:01 2010 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Oct 27 10:23:59 2010 -0700"
      },
      "message": "Fix off-by-two and other bugs in the visualization code.\nb/3137511\n\nChange-Id: Ic431701e93c025bc417c9742e9af6bb2350c7dd6\n"
    },
    {
      "commit": "c425ffbfdca80c663b16a875228c15a1147a75f4",
      "tree": "98e05d9e0bcf0b7089cf60092dcfb5c7f21e9fa8",
      "parents": [
        "9b4e14edf6c20bcb5830b692121042cccffedfe6",
        "da4b9bdd4682fb3a20964908cb18d02c943b7f35"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Sep 27 08:48:40 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Sep 27 08:48:40 2010 -0700"
      },
      "message": "am 1b37df95: am 9627847d: Merge \"Fix error in AudioEffect command status reporting.\" into gingerbread\n\nMerge commit \u00271b37df95ec9d03aaa5f4055c6cd86db42f9c9727\u0027\n\n* commit \u00271b37df95ec9d03aaa5f4055c6cd86db42f9c9727\u0027:\n  Fix error in AudioEffect command status reporting.\n"
    },
    {
      "commit": "0fa449cc475580d995e9d56756c3da5507d2b6f6",
      "tree": "1e344eefa5847ad1e8ea3fc508e0d63ba5334c13",
      "parents": [
        "76e2c7be04aeff55f3e6a473ff1cd6d9ec2d620c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 24 11:52:04 2010 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 24 15:24:54 2010 -0700"
      },
      "message": "Fix error in AudioEffect command status reporting.\n\nAudioEffect::command() should not interpret the status\nreturned in pReplyData unless the command is ENABLE or\nDISABLE.\n\nAlso fixed:\n- bug in Visualizer::getWAveForm() status reporting.\n- wrong initialization value for capture buffer in visualizer engine.\n\nChange-Id: I60fb0011f9dba96ee74661dec1e8ef441edcaf35\n"
    },
    {
      "commit": "a4d13a5419af68fe5adb521e265f8c80c4e760b1",
      "tree": "aa42a890231b7dd3ec2c21478bf19d2c276425a2",
      "parents": [
        "a60165dbfcc44c6114ce63dba38bb3f08f614081",
        "cd20f59a3987e738b50adb02761ef853d6531597"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 21 16:53:20 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 21 16:53:20 2010 -0700"
      },
      "message": "am 6943b94b: am a6dc4699: Merge \"Fix issue 2913071.\" into gingerbread\n\nMerge commit \u00276943b94b8f267c83060946bae0961efc30444dee\u0027\n\n* commit \u00276943b94b8f267c83060946bae0961efc30444dee\u0027:\n  Fix issue 2913071.\n"
    },
    {
      "commit": "0e75f0f0147baeb6277c3dcc4403cf0201155a99",
      "tree": "0136b0ebc6a1115a6a1181baee81a0cc191a0d1b",
      "parents": [
        "e9364134485f78f8e8354b27419b67646f343812"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 21 14:52:01 2010 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 21 15:11:50 2010 -0700"
      },
      "message": "Fix issue 2913071.\n\nScale audio signal during capture according to peak level so that\nreturned values on 8 bits contain enough information even for weak\nsignals.\n\nAlso do not reject requests to enable/disable the visualizer if we are\nalready in the requested state.\n\nChange-Id: I07a705619764350834e61f82d161761eab688747\n"
    },
    {
      "commit": "ed0de3c123aaa86147993721d4794648a65aab75",
      "tree": "c60dc3ffbc36f10adfe01d864e22f1d5b87443d4",
      "parents": [
        "da90dff17b6ce79d0a7d8ab2dbe2aa69cd1c11aa",
        "e99819aa8cc397d02255b59b91c6e6850afee3a7"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jul 28 07:53:24 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jul 28 07:53:24 2010 -0700"
      },
      "message": "am 6fa88882: am 62d83a0c: Merge \"Audio effects: modified command() parameter types.\" into gingerbread\n\nMerge commit \u00276fa8888254deb4961dc64c6ac03dc103c9cd8bcf\u0027\n\n* commit \u00276fa8888254deb4961dc64c6ac03dc103c9cd8bcf\u0027:\n  Audio effects: modified command() parameter types.\n"
    },
    {
      "commit": "25f4395b932fa9859a6e91ba77c5d20d009da64a",
      "tree": "01098a211d6c782708b840c28ebd396a6eb72a7b",
      "parents": [
        "23e1de74359f4bb1763aef0adfebe073122b032c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jul 28 05:40:18 2010 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jul 28 05:49:21 2010 -0700"
      },
      "message": "Audio effects: modified command() parameter types.\n\nThe type of the cmd, cmdSize and *pReplySize parameters of the effect control interface command()\nfunction have been modified from int to uint32_t. This is more consistent with their role.\n\nChange-Id: I84d289fc262d6753747910f06f485597dfee6591\n"
    },
    {
      "commit": "23e1de74359f4bb1763aef0adfebe073122b032c",
      "tree": "f7c8a84104ae81d565a867208d606fd3887d47fe",
      "parents": [
        "8b4179f44917ec4845ade406a49a713cd568fe8a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 23 00:19:11 2010 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jul 27 00:41:31 2010 -0700"
      },
      "message": "Audio Effects: added methods to effects java classes to store and load current effect settings in\na single call.\n\nAddional changes:\n- Fixed simulator build\n- Use effect interface UUIDs from OpenSL ES includes when available\n- Added cleanspec rules to remove now obsolete test effect libraries\n- Fixed bug in AudioEffect JNI setParameter function.\n\nChange-Id: Ic25ddb135e2cec5a68c181d727321f5ac7a1ab6b\n"
    },
    {
      "commit": "618678e74cc7a013b84d8f5b53d19dd2c5463a85",
      "tree": "6aa6a82a61e1b237fbc13e9d5427b536e537887e",
      "parents": [
        "bbf6dcd2aa8eb877e6412aaade25a077f62a6284",
        "2c994dbcae12a7515d01c70aa058b0a9ac1e4c20"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Mon Jul 19 11:27:08 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 19 11:27:08 2010 -0700"
      },
      "message": "Merge \"Fix sim-eng build.\""
    },
    {
      "commit": "2c994dbcae12a7515d01c70aa058b0a9ac1e4c20",
      "tree": "ed1725c31cd584280a6ef5ec7d3e931c22ee0fd3",
      "parents": [
        "f913c25c713cbe0fe16dd1cc17bdfaba6b77070f"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Mon Jul 19 10:42:32 2010 -0700"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Mon Jul 19 10:53:30 2010 -0700"
      },
      "message": "Fix sim-eng build.\n\nDifferent handling of libdl.  Added sim handling in one place, corrected\ntypo in sim handling in another.\n\nChange-Id: I24153ad5b8873083225390ba6a751941d231d092\n"
    },
    {
      "commit": "f997cabca292d70d078ae828e21c28e6df62995f",
      "tree": "8e82ee801d8465366f659028f7105ee3ca38d4cc",
      "parents": [
        "46bf665ea3687f06069ebd1a0acd01ed7b5ac9cb"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 19 06:24:46 2010 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 19 06:31:30 2010 -0700"
      },
      "message": "Fixed problems in audio effect volume control.\n\nFixed the following problems in audio effect volume control in AudioFlinger:\n- Make sure that the volumes returned by EffectChain::setVolume_l() are correct even is\nno change is detected since last call\n- Do not use isEnabled() to validate volume control but mState \u003e\u003d ACTIVE instead as the volume control\nmust be also active in STOPPING and STOPPED states.\n\nChange-Id: Id62da3164fad500ee8a5efd6cd78c77e8fdcb541\n"
    },
    {
      "commit": "2c8e5cab3faa6d360e222b7a6c40a80083d021ac",
      "tree": "fd19b8baa829edb78116b089d1122ea4ef0921e1",
      "parents": [
        "ada2ac8e09b6d3f2b3c3155a852ba0fffae1b592"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 09 12:28:50 2010 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Jul 17 06:33:00 2010 -0700"
      },
      "message": "First submission of audio effect library from NXP software.\n\nThis CL contains the first open sourceable version of the audio effect library from NXP software.\nThe effects implemented are:\n- Bass boost\n- Virtualizer (stereo widening)\n- Equalizer\n- Spectrum analyzer\n\nSource file for the effect engines are located under libeffects/lvm/lib\nThe wrapper implementing the interface with the audio effect framework in under libeffects/lvm/wrapper\n\nThe code of other effect libraries has also been reorganized fo clarity:\n- the effect factory is now under libeffects/factory\n- the test equalizer and reverb effects are under libeffect/testlibs\n- the visualizer is under libeffects/virtualizer\n\nChange-Id: I8d91e2181f81b89f8fc0c1e1e6bf552c5809b2eb\n"
    }
  ]
}
