)]}'
{
  "log": [
    {
      "commit": "7d805b2f7e05e297723130eb20327ae9265765be",
      "tree": "48e8a37ddee29e7b438fedc92c8a4db2787f3a0f",
      "parents": [
        "0d089313e729c3848a95cfcebec79ee5c392e811"
      ],
      "author": {
        "name": "Johan Harvyl",
        "email": "johan.harvyl@sony.com",
        "time": "Mon Nov 12 08:02:18 2018 +0100"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Nov 16 15:24:58 2018 -0800"
      },
      "message": "Include pthread.h in AudioResamplerSinc\n\nCurrently it gets included through utils/Log.h which includes\nlog/log.h which will usually be taken as:\n\nsystem/core/liblog/include/log/log.h.\n\nIf on the other hand system/core/liblog/include_vndk/log/log.h gets\nincluded instead, pthread.h will not be included.\n\nTest: Manual - builds OK\nBug: 119390863\nChange-Id: I64255f0812367a55996a7b64da65646fdf1743c2\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": "57c4e6f7464d458eb52d209c2a63524913d6406d",
      "tree": "b7fae46bbc981c62460d572b51d6f68b9f9b847d",
      "parents": [
        "560a198f1f95a085e24944b20df536e75e21cedb"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 18 14:54:07 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 18 17:36:37 2016 -0700"
      },
      "message": "Fix build warnings\n\nChange-Id: I33178dbe0bfc087d6599579ca0529ad853c669ed\n"
    },
    {
      "commit": "4699a6a4c1fa62cd72dfda7b08573678eabbcfa3",
      "tree": "5ce6083c4b4b29fa6961ff59ab6f46b61a08f4af",
      "parents": [
        "262c39e35bf88e09dab3e0ae9f7df84db64273bb"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Feb 16 10:49:09 2016 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Feb 18 09:25:32 2016 -0800"
      },
      "message": "Clean up USE_NEON to make it easier to disable NEON for benchmarking\n\nBug: 27242871\nChange-Id: I30ba8bfe55885cde531706c760ec27e593d7f8b3\n"
    },
    {
      "commit": "d79072e9dff59f767cce2cda1caab80ce5a0815b",
      "tree": "cab9cab36ddf4bb61675c4508d923b283fd3edd6",
      "parents": [
        "a7b723715bab4ddf6db364c825135a9bc003c7c0"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jan 06 08:41:20 2016 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jan 25 15:34:04 2016 -0800"
      },
      "message": "Remove TimedAudioTrack and associated code\n\nBug: 8278435\nChange-Id: I095c1a4888e645e14d93b0b15fbef4524a831ca1\n"
    },
    {
      "commit": "6b3b7e304e0f8f167241b2c75f1eb04a9ef192ec",
      "tree": "1cec011ad26676dc9dc3eea778e18136c083e04f",
      "parents": [
        "25f82752942b1c78aec8ee303d61afff85cff9d1"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sun Mar 29 00:49:22 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 08 14:31:58 2015 -0700"
      },
      "message": "Return number of frames output from resample method\n\nChange-Id: Ic297e2ed59839f1788c83e099ef1a9e4af29591f\n"
    },
    {
      "commit": "63238efb0d674758902918e3cdaac322126484b7",
      "tree": "07fdf37a2bc73a886d8ea41f69e722ed914754af",
      "parents": [
        "d7e1d08c2ac21cdd2f3b7f83fec7094f6a98fc08"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 02 15:50:29 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 03 08:50:40 2015 -0800"
      },
      "message": "Remove redundant semicolon from namespace closing\n\nChange-Id: I163f9d3d216c283ae1160ce4802e5247cf44fba7\n"
    },
    {
      "commit": "2f5aa01e52b8869515373b5047f00272f245883e",
      "tree": "b44c62dca5f9a925ce3b3d860376164597c2780f",
      "parents": [
        "e1984fc72d9f814461992b9f5b1e5f9d45ce7afa"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Feb 17 15:04:28 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Feb 27 18:29:48 2015 -0800"
      },
      "message": "Line length 100\n\nChange-Id: Ic0ae92c300df221387bdd9669e4b7b995d83d28a\n"
    },
    {
      "commit": "675933be11f2c24f9f66011345377d2840938646",
      "tree": "c102134a72b0c8a9948cb6a6b75b431cb444af74",
      "parents": [
        "9060199701c97b290aa4a4184d147e0311ab8897"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Feb 17 14:23:04 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Feb 27 18:29:47 2015 -0800"
      },
      "message": "Extract resampler coefficient tables to separate files\n\nChange-Id: I2e186bd3172cecc08c436e6bf7546b913249e6c8\n"
    },
    {
      "commit": "3f76ca9d9b42146632a65c41d34a1cece863f972",
      "tree": "e5d848d5cb143287dd1c618e9013c8735e5ce503",
      "parents": [
        "d0eda851b7cb5566ac7078c73c3d3bde4d68d1b1",
        "c53b98f3773299ca26acbe5c4a56450a76c2ecf9"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 26 22:25:51 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Sep 26 22:25:51 2014 +0000"
      },
      "message": "am c53b98f3: am 6cd6792a: Merge \"Allow building on clang without __builtin_assume_aligned\"\n\n* commit \u0027c53b98f3773299ca26acbe5c4a56450a76c2ecf9\u0027:\n  Allow building on clang without __builtin_assume_aligned\n"
    },
    {
      "commit": "4fbf23238e3f927871576170d1a38c855e04473e",
      "tree": "d17d876e91becb783182e427013f7ea802731980",
      "parents": [
        "f129e84addb1b0ba1240f39430404dad717c21c2"
      ],
      "author": {
        "name": "Bernhard Rosenkraenzer",
        "email": "Bernhard.Rosenkranzer@linaro.org",
        "time": "Fri Sep 19 01:50:16 2014 +0200"
      },
      "committer": {
        "name": "Bernhard Rosenkraenzer",
        "email": "Bernhard.Rosenkranzer@linaro.org",
        "time": "Fri Sep 19 01:50:16 2014 +0200"
      },
      "message": "Allow building on clang without __builtin_assume_aligned\n\nClang versions up to and including 3.5 don\u0027t have\n__builtin_assume_aligned.\nDefine it to a reasonable approximation when building with those.\n\nChange-Id: I223ccfda6e6ae55ce29dda5e4cacc1b162728b2c\nSigned-off-by: Bernhard Rosenkraenzer \u003cBernhard.Rosenkranzer@linaro.org\u003e\n"
    },
    {
      "commit": "5e58b0abe5b6c8f5bd96a8f78bbeeeb4d3892020",
      "tree": "975ed02efce4eaefcf5b0ceb5f33d212542a33a6",
      "parents": [
        "72d039f007722c92ee5ea7ffd03ece19d2781103"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jun 23 19:07:29 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jul 08 21:09:13 2014 -0700"
      },
      "message": "Add floating point volume handling to AudioMixer\n\nUse floating point volume in AudioMixer mixing when floating\npoint input is used with the new mixer engine.\nAudioResampler is updated to take floating point volume to match.\nBoth legacy integer and floating point mixer engines work.\n\nFor now, integer volume is used when the new mixer engine\nruns in integer input mode, for backward compatibility with\nthe legacy mixer.  The new mixer engine will generally run in\nfloating point input mode. When the legacy path is removed,\nthe integer volumes will be removed.\n\nChange-Id: I79e80c292ae7c8b8bdd0aa371a1b2c3a1b618290\n"
    },
    {
      "commit": "3348e36c51e91e78020bcc6578eda83d97c31bec",
      "tree": "ee3df8ed9f79863fc34589813710896a7e08af86",
      "parents": [
        "075abae2a954bf3edf18ad1705c2c0f188454ae0"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jul 07 10:21:44 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jul 07 10:29:36 2014 -0700"
      },
      "message": "Replace int bitDepth with audio_format_t in Resampler\n\nRemove mBitDepth from class (not used).\nReplace with audio_format_t in factory method to distinguish\nbetween float and pcm 16-bit.\n\nChange-Id: I166860796c68285077ef4458d8758d19b82523f9\n"
    },
    {
      "commit": "e273141263e988ab086a8d41e0e4fc75c00f1b86",
      "tree": "9423ffa485d085bb073beb546ac24ad8ea8bdeb7",
      "parents": [
        "66036d50a8303cddfdd5c7320eea0eff48cb4a5e",
        "7e5c635114a7762ad44581300021667a0da97389"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@android.com",
        "time": "Thu Apr 24 15:43:05 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Apr 24 15:43:05 2014 +0000"
      },
      "message": "am 7e5c6351: am 4513aa2c: Merge \"AArch64: rewrite audioflinger\\\u0027s sinc resample by intrinsics.\"\n\n* commit \u00277e5c635114a7762ad44581300021667a0da97389\u0027:\n  AArch64: rewrite audioflinger\u0027s sinc resample by intrinsics.\n"
    },
    {
      "commit": "12b44bd5fe3069cd3450d05b6c446b600e0553d3",
      "tree": "d7c3ff6a66a682520248b3b39e68a470968e3663",
      "parents": [
        "51b3ea2b8f7298bffbd246c65a606cd053357b66"
      ],
      "author": {
        "name": "Zhongwei Yao",
        "email": "zhongwei.yao@arm.com",
        "time": "Thu Apr 10 17:23:42 2014 +0100"
      },
      "committer": {
        "name": "Zheng Xu",
        "email": "zheng.xu@arm.com",
        "time": "Thu Apr 10 18:28:46 2014 +0100"
      },
      "message": "AArch64: rewrite audioflinger\u0027s sinc resample by intrinsics.\n\nPass conformance test on armv7 and aarch64, performance test is done on armv7.\nCompared with original armv7 assembly version, this version has similar\nresult. Here is performance data on pandaboard android4.4 (input: random wave\nfile, unit: Mspl/s, toolchain:gcc 4.8):\n\n|                | origin(assembly) | current(intrinsics) | C version |\n|----------------+------------------+---------------------+-----------|\n| single channel | 6.17             | 7.14                | 3.43      |\n| double channel | 5.24             | 5.63                | 3.50      |\n\nChange-Id: If5670218e1586e9dfd2b8d9c66a6880f3e4808ca\n"
    },
    {
      "commit": "24781fff62a4cf7279d3dac83c33e2ac612712ba",
      "tree": "8730de2f28936dca32643c5806e71c6bdc73f9f5",
      "parents": [
        "1ebd04b5f4ffe774c37054aac305cd9e6c73d2b2"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Feb 19 12:45:19 2014 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Feb 19 12:48:59 2014 -0800"
      },
      "message": "Fix resampler to allow output of single frame\n\nBug: 13073201\nChange-Id: If7818a3389a191a37277bbd8e96a59ef8ce68509\nSigned-off-by: Andy Hung \u003chunga@google.com\u003e\n"
    },
    {
      "commit": "92b1343f5fbc2fc43198a0a1252fe023cc9a5061",
      "tree": "1b18972d51d768689868d373b1b0e4187eb1af99",
      "parents": [
        "d272d6bf640dcaebeee7405469f9cacfa4bc1b72"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Dec 14 07:13:28 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Dec 17 12:34:42 2012 -0800"
      },
      "message": "Fix build warnings\n\nChange-Id: I9e3cfa0c6b3467fe763ce55f759d179f02c5deea\n"
    },
    {
      "commit": "c4974312e5a1e2ab94eca56045f991baf1508d73",
      "tree": "17beaaaec5b9ac92e524f473e92ec6236dce6629",
      "parents": [
        "66c8dd24358a08a59944e9fc13d686e0ff91eee9"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Dec 14 07:13:28 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Dec 17 12:34:42 2012 -0800"
      },
      "message": "Fix build warnings\n\nChange-Id: I9e3cfa0c6b3467fe763ce55f759d179f02c5deea\n"
    },
    {
      "commit": "bc9ea63daaad764d242ce0eadfeb697abb9ce34e",
      "tree": "675f15de5cc9eda5b7a4f88001e41417eeb39db3",
      "parents": [
        "a81a88597138de226da88fe10456d46289107e8a"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Nov 19 15:27:26 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Nov 19 15:27:26 2012 -0800"
      },
      "message": "fix a typo in SINC resampler that prevented tracks to be mixed\n\nwe were always erasing the current mix instead of mixing into it.\n\nChange-Id: Ib229245f9e5a0d384f1727640a59e9f0469211a2\n"
    },
    {
      "commit": "d6864faccd19096b72d32481a3cc475e6d36e50d",
      "tree": "af3cad4f2e0397a57891d973c1be1f0624bd697b",
      "parents": [
        "4d9cef6c007afd195a8f36d35d46b359bf909331"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Nov 19 15:27:26 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Nov 19 15:27:26 2012 -0800"
      },
      "message": "fix a typo in SINC resampler that prevented tracks to be mixed\n\nwe were always erasing the current mix instead of mixing into it.\n\nChange-Id: Ib229245f9e5a0d384f1727640a59e9f0469211a2\n"
    },
    {
      "commit": "5d3370d0db4dc97fa413a302e426fb24e87462be",
      "tree": "ddaa49718d4c71bda6a7fe31112a9cfadb949092",
      "parents": [
        "3c11ff2f409a0abb5b9d8ffd5e13cc42cda67fdc"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sat Nov 10 04:44:30 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sat Nov 10 04:49:15 2012 -0800"
      },
      "message": "more optimizations...\n\ncalculate the offsets from the phase differently, this happens\nto reduce the register pressure in the main loop, which in turns\nallows the compiler to generate much better code (doesn\u0027t need\nto spill a lot of stuff on the stack).\n\nthis gives another 15% performance increase\n\nChange-Id: I2ce3479dd48b9e6941adb80e6d443d6e14d64d96\n"
    },
    {
      "commit": "7492a7ff46a75b5d8e10ae11d4ad50429cf945ce",
      "tree": "df55f34b9daec1a5c8b1ffb95bd08e59e8c751f5",
      "parents": [
        "0d585c85524eb5d398fadff5ca8dd43939ed9cb4"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sat Nov 10 04:44:30 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sat Nov 10 04:49:15 2012 -0800"
      },
      "message": "more optimizations...\n\ncalculate the offsets from the phase differently, this happens\nto reduce the register pressure in the main loop, which in turns\nallows the compiler to generate much better code (doesn\u0027t need\nto spill a lot of stuff on the stack).\n\nthis gives another 15% performance increase\n\nChange-Id: I2ce3479dd48b9e6941adb80e6d443d6e14d64d96\n"
    },
    {
      "commit": "3c11ff2f409a0abb5b9d8ffd5e13cc42cda67fdc",
      "tree": "0ad48cef640c2c7e43dce2e2b13a755bef2abf9d",
      "parents": [
        "3f6f4393d0adf4465959059d69798aed55e34876"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sat Nov 10 03:26:39 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sat Nov 10 03:26:39 2012 -0800"
      },
      "message": "refactor code to improve neon code\n\nwe want to make sure we don\u0027t transfer data from the\nneon unit to the arm register file, as this can be quite\nslow. instead we do all the calculation on the neon side\nand write the result directly to main memory.\n\nChange-Id: Ibb56664d3ab03098ae2798b75e2b6927ac900187\n"
    },
    {
      "commit": "0d585c85524eb5d398fadff5ca8dd43939ed9cb4",
      "tree": "b3e3b69dc47885811e7549e5dd8a3c340546e902",
      "parents": [
        "e35a582d02586cb43ad9e344138b4edad62868b3"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sat Nov 10 03:26:39 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sat Nov 10 03:26:39 2012 -0800"
      },
      "message": "refactor code to improve neon code\n\nwe want to make sure we don\u0027t transfer data from the\nneon unit to the arm register file, as this can be quite\nslow. instead we do all the calculation on the neon side\nand write the result directly to main memory.\n\nChange-Id: Ibb56664d3ab03098ae2798b75e2b6927ac900187\n"
    },
    {
      "commit": "c6ccbabd2800e749bc86a34d2ae233f99102ba51",
      "tree": "f11c89a8d8bbba54a0558e78e2b480a0407bc516",
      "parents": [
        "af03dfb73d05dfabdf55640aff8b2256fdd78663"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun Nov 04 15:16:13 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 08 12:45:59 2012 -0800"
      },
      "message": "NEON optimized SINC resampler\n\nthis currently gives us a 60% to 80% boost depending\non the quality level selected.\n\nChange-Id: I7db385007e811ed7bffe5fd3403b44e300894f5b\n"
    },
    {
      "commit": "ad9af03c4b491912239fc8c97a3ad0d342a33303",
      "tree": "2d851ce1cf0c35739f4b35c40fd6c18b679eba7d",
      "parents": [
        "7aa7ed773040ea60bbe0a2a6ea949d62802304a4"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun Nov 04 15:16:13 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 08 12:45:59 2012 -0800"
      },
      "message": "NEON optimized SINC resampler\n\nthis currently gives us a 60% to 80% boost depending\non the quality level selected.\n\nChange-Id: I7db385007e811ed7bffe5fd3403b44e300894f5b\n"
    },
    {
      "commit": "af03dfb73d05dfabdf55640aff8b2256fdd78663",
      "tree": "e76f71580f1769785e7d100bed443d3fe168e41f",
      "parents": [
        "e0461d1d47c3e3cac625ce062b641519da37ba94"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Nov 05 01:51:37 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 08 12:45:49 2012 -0800"
      },
      "message": "minor cleanups\n\nChange-Id: Ia12ee4fb59e90221761bec85e6450db29197591f\n"
    },
    {
      "commit": "7aa7ed773040ea60bbe0a2a6ea949d62802304a4",
      "tree": "1fdd71fa216de754a82d30ed8ba2d9e3a58de186",
      "parents": [
        "a47f3165f53c8e8fb8907a94de7417e2c3047eeb"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Nov 05 01:51:37 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 08 12:45:49 2012 -0800"
      },
      "message": "minor cleanups\n\nChange-Id: Ia12ee4fb59e90221761bec85e6450db29197591f\n"
    },
    {
      "commit": "e8299af5665bf9c396466c33b9b16a84fe78c7f6",
      "tree": "f3356a4917a4ec9827d70bc9acf80feac7c1360c",
      "parents": [
        "50ebdf2086b645b9b703a6d489238767a9afb34f"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun Nov 04 02:03:49 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Nov 05 01:03:43 2012 -0800"
      },
      "message": "change how we store the FIR coefficients\n\nThe coefficient table is now transposed and shows\nmuch better its polyphase nature: we now have a FIR\nper line, each line corresponding to a phase.\n\nThis doesn\u0027t change at all the results produced by\nthe filter, but allows us to make slightly better\nuse of the data cache and improves performance a bit\n(although not as much as I thought it would).\n\nThe main benefit is that it is the first step\nbefore we can make much larger optimizations\n(like using NEON).\n\nChange-Id: Iebf7695825dcbd41f25861efcaefbaa3365ecb43\n"
    },
    {
      "commit": "46afbec3743f1d799f185273ff897d1f8e0175dd",
      "tree": "ed6dbf983c554f78ab107d3002f6201e51356961",
      "parents": [
        "a798c97386a842d06d290797ba5dce95d031332a"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun Nov 04 02:03:49 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Nov 05 01:03:43 2012 -0800"
      },
      "message": "change how we store the FIR coefficients\n\nThe coefficient table is now transposed and shows\nmuch better its polyphase nature: we now have a FIR\nper line, each line corresponding to a phase.\n\nThis doesn\u0027t change at all the results produced by\nthe filter, but allows us to make slightly better\nuse of the data cache and improves performance a bit\n(although not as much as I thought it would).\n\nThe main benefit is that it is the first step\nbefore we can make much larger optimizations\n(like using NEON).\n\nChange-Id: Iebf7695825dcbd41f25861efcaefbaa3365ecb43\n"
    },
    {
      "commit": "50ebdf2086b645b9b703a6d489238767a9afb34f",
      "tree": "e8c80fb18a5e34ee4e47975b763e63c41cb83071",
      "parents": [
        "fb242fa66643d1bd5362077a44c02c86c8064564"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sat Nov 03 23:37:53 2012 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Nov 05 01:03:02 2012 -0800"
      },
      "message": "improve SINC resampler performance\n\nThe improvement is about 60% by just tweaking a few\nthings to help the compiler generate better code.\nIt turns out that inlining too much stuff manually was hurting us.\n\nChange-Id: I8068f0f75051f95ac600e50ce552572dd1e8c304\n"
    },
    {
      "commit": "a798c97386a842d06d290797ba5dce95d031332a",
      "tree": "1406a215180c4350ea3646f41f93217b0aec62b0",
      "parents": [
        "f27bdebd0c611f9618577f65346f44574146dc00"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sat Nov 03 23:37:53 2012 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Nov 05 01:03:02 2012 -0800"
      },
      "message": "improve SINC resampler performance\n\nThe improvement is about 60% by just tweaking a few\nthings to help the compiler generate better code.\nIt turns out that inlining too much stuff manually was hurting us.\n\nChange-Id: I8068f0f75051f95ac600e50ce552572dd1e8c304\n"
    },
    {
      "commit": "c5b0b9a13a29be483173f092663ed17ea306ac0d",
      "tree": "6ca159e3b1770b58737c695fe1e8a52f886fb97a",
      "parents": [
        "d8a71417484ed7d937ef612d6499704d0c325874"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Nov 01 21:03:46 2012 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Nov 01 21:03:46 2012 -0700"
      },
      "message": "new coefficients for the vhq resampler\n\nprevious coefficients were provided by a 3rd party and didn\u0027t have a\nway to re-generate them. we\u0027re now using the \u0027fir\u0027 utility.\n\nthe performance of the filter is virtually identical, except for\nthe down-sampling case which seems slightly better now:\n   It looks like both the previous and new coefficients are generating\nsome sort of clipping for full-scale signals in the down-sampling case\n(although the new ones seem better), the reason for that is\nunknown (see bug: 7453062)\n\nAlso updated the HQ coefficients for the down-samplers, previous ones\nwere a little bit too conservative -- the new ones push the cut-off\nfrequency up by about 1 KHz.\n\nChange-Id: I54a827b5c707c7cc41268ed01283758dce1d7647\n"
    },
    {
      "commit": "4ed475d3ad4231370371e14a94779c5d300eb3c5",
      "tree": "010c4fcad2bdf08f42cde74686ea66d222893866",
      "parents": [
        "719ae96a5308273100a68d112f131c61f9b3db81"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Nov 01 21:03:46 2012 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Nov 01 21:03:46 2012 -0700"
      },
      "message": "new coefficients for the vhq resampler\n\nprevious coefficients were provided by a 3rd party and didn\u0027t have a\nway to re-generate them. we\u0027re now using the \u0027fir\u0027 utility.\n\nthe performance of the filter is virtually identical, except for\nthe down-sampling case which seems slightly better now:\n   It looks like both the previous and new coefficients are generating\nsome sort of clipping for full-scale signals in the down-sampling case\n(although the new ones seem better), the reason for that is\nunknown (see bug: 7453062)\n\nAlso updated the HQ coefficients for the down-samplers, previous ones\nwere a little bit too conservative -- the new ones push the cut-off\nfrequency up by about 1 KHz.\n\nChange-Id: I54a827b5c707c7cc41268ed01283758dce1d7647\n"
    },
    {
      "commit": "d7a3c142b3ce4ed26e025533f57bef9e4ec58740",
      "tree": "0659fcefa8fe4d25b276bc0f837a32c9b5e2657a",
      "parents": [
        "cca56d5784c02a5f02ce5e47c3d6583d71a2469b"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Oct 30 13:51:44 2012 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Oct 30 13:51:44 2012 -0700"
      },
      "message": "fix SINC resampler on non ARM architectures\n\nmake sure the C version of the code generates the same\noutput than the ARM assemply version.\n\nChange-Id: Ide218785c35d02598b2d7278e646b1b178148698\n"
    },
    {
      "commit": "1f09b4ada212d259b531228db67ca160d280275c",
      "tree": "18f3249800ec4787d088436097c9df608b506cb1",
      "parents": [
        "d88a051aff15fdf5c57e1e5a4083bbd9635af3ad"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Oct 30 13:51:44 2012 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Oct 30 13:51:44 2012 -0700"
      },
      "message": "fix SINC resampler on non ARM architectures\n\nmake sure the C version of the code generates the same\noutput than the ARM assemply version.\n\nChange-Id: Ide218785c35d02598b2d7278e646b1b178148698\n"
    },
    {
      "commit": "cca56d5784c02a5f02ce5e47c3d6583d71a2469b",
      "tree": "dbfeed64df6777b0ba475dc2086abbf6282c23e1",
      "parents": [
        "955f37a0d8c6c441cd811104193970bd7c3bb486"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Oct 30 12:49:07 2012 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Oct 30 12:49:07 2012 -0700"
      },
      "message": "fix another issue with generating FIR coefficients\n\nthe impulse response of a low-pass is 2*f*sinc(2*pi*f*k), we were\nmissing the 2*f scale factor. This explains why we were seeing\nclipping and had to manually scale the filter down.\n\nChange-Id: I86d0bb82ecdd99681c8ba5a8112a8257bf6f0186\n"
    },
    {
      "commit": "d88a051aff15fdf5c57e1e5a4083bbd9635af3ad",
      "tree": "20bb8548ab209ab54df6e19f19e16e834a0a63f0",
      "parents": [
        "c0214ba2e267f87437bc2629dc99512054fc7a4d"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Oct 30 12:49:07 2012 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Oct 30 12:49:07 2012 -0700"
      },
      "message": "fix another issue with generating FIR coefficients\n\nthe impulse response of a low-pass is 2*f*sinc(2*pi*f*k), we were\nmissing the 2*f scale factor. This explains why we were seeing\nclipping and had to manually scale the filter down.\n\nChange-Id: I86d0bb82ecdd99681c8ba5a8112a8257bf6f0186\n"
    },
    {
      "commit": "7c4349fe6e1e4faaa0c0db40a74f2ccbac46f57e",
      "tree": "eb8b8e9ce47c23eddd15aac214f3591de73a9166",
      "parents": [
        "3e48fd11e3fca5c1d03354a99657298e110be56a"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Oct 29 17:13:20 2012 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Oct 29 17:13:20 2012 -0700"
      },
      "message": "fir a typo that caused up-sampling coefficiens to be wrong\n\nup-sample coefficient were generated with a cut-off frequency of 24KHz\nintead of ~20KHz, which caused more aliasing in the audible band.\n\nalso increased the attenuation to 1.3 dB on both up and down\nsampling coefficient to avoid clipping.\n\nChange-Id: Ie8aeecf1429190541b656810c6716b6aae5ece2e\n"
    },
    {
      "commit": "b4b75b47c2a4248e60bbc3229d6acc4d5f872431",
      "tree": "55de9b4294936b7453e36b5afa24b59770ae1a37",
      "parents": [
        "9aec8c3f7f72cd36a8e3d7aafc1149f50514087a"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Oct 29 17:13:20 2012 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Oct 29 17:13:20 2012 -0700"
      },
      "message": "fir a typo that caused up-sampling coefficiens to be wrong\n\nup-sample coefficient were generated with a cut-off frequency of 24KHz\nintead of ~20KHz, which caused more aliasing in the audible band.\n\nalso increased the attenuation to 1.3 dB on both up and down\nsampling coefficient to avoid clipping.\n\nChange-Id: Ie8aeecf1429190541b656810c6716b6aae5ece2e\n"
    },
    {
      "commit": "3bd72cc23f74e750069a2943ad3d5c9af3be4b55",
      "tree": "aff530f634a7ce504d1e7b7926136f06bea481e4",
      "parents": [
        "04b49594036f17bc260af711becd13924774caae"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Oct 26 13:48:42 2012 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Oct 26 14:58:42 2012 -0700"
      },
      "message": "improve SINC resampler coefficients\n\n- we increase the interpolation precision from 4 to 7 bits\nthis doesn\u0027t increase CPU power required, it only increases the\nsize of the filter table but significantly reduces the noise\nintroduced by the quantization of the impulse response.\n\n- the parameters of the filter are set such that aliasing is\nrejected at 80 dB below 20 KHz. Because we don\u0027t use a lot of\ncoefficient (to save compute power), there are quite a bit of\nattenuation in the pass-band: starting at 9KHz for the\ndown-sampler (48 to 44.1), and starting at 13 KHz for the\nup-sampler (44.1 to 48) -- the transition band is about 15 KHz.\n\nChange-Id: I855548d2aab8a0fb0d2a2da3a364b6842d7d3838\n"
    },
    {
      "commit": "443e69625d598ea578e2c838960778ce498fd773",
      "tree": "4d021ec94a7766aaed15c1d93f3fa7b7d9e89ba1",
      "parents": [
        "b6cf07ba69018fd4633e1b9f99646f8482c6d76d"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Oct 26 13:48:42 2012 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Oct 26 14:58:42 2012 -0700"
      },
      "message": "improve SINC resampler coefficients\n\n- we increase the interpolation precision from 4 to 7 bits\nthis doesn\u0027t increase CPU power required, it only increases the\nsize of the filter table but significantly reduces the noise\nintroduced by the quantization of the impulse response.\n\n- the parameters of the filter are set such that aliasing is\nrejected at 80 dB below 20 KHz. Because we don\u0027t use a lot of\ncoefficient (to save compute power), there are quite a bit of\nattenuation in the pass-band: starting at 9KHz for the\ndown-sampler (48 to 44.1), and starting at 13 KHz for the\nup-sampler (44.1 to 48) -- the transition band is about 15 KHz.\n\nChange-Id: I855548d2aab8a0fb0d2a2da3a364b6842d7d3838\n"
    },
    {
      "commit": "ebed918320bdacdb225f679a8d7135d1acd3fe51",
      "tree": "1f0157a53d0c958ab22a50871622983ac7579934",
      "parents": [
        "df4fca94ecad030e980e0c0f6b7d9711726d9638"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun Oct 21 03:04:05 2012 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun Oct 21 03:04:05 2012 -0700"
      },
      "message": "Fix a typo that caused the high quality resampler to produce garbage\n\nthe problem is that if libaudio_resampler is present, it is those\ncoefficients that will always be selected, but the correct\nmeta-data.\n\nBug: 7385994\nChange-Id: Ieebeb37b4dfb62a1a051bc29fae2ce056dbc6621\n"
    },
    {
      "commit": "61ea117b03b53382b5ecbc33004c7d37ea70ea8b",
      "tree": "5ad35048b02f3653408890bf0f279c05acf41426",
      "parents": [
        "c3ed4a1c3ea71681c71de48c206a899e702864bd"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun Oct 21 03:04:05 2012 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun Oct 21 03:04:05 2012 -0700"
      },
      "message": "Fix a typo that caused the high quality resampler to produce garbage\n\nthe problem is that if libaudio_resampler is present, it is those\ncoefficients that will always be selected, but the correct\nmeta-data.\n\nBug: 7385994\nChange-Id: Ieebeb37b4dfb62a1a051bc29fae2ce056dbc6621\n"
    },
    {
      "commit": "a6d41334d25ffde12484eb28301352560a063ef6",
      "tree": "4d8df3822f93824ada324d5038ab0b4cd27ce77b",
      "parents": [
        "95f24dacbde69295fd21bbf683281b277e097bb1"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Oct 01 14:04:31 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Oct 04 09:44:04 2012 -0700"
      },
      "message": "Integrate improved coefficient sinc resampler: VHQ\n\nSummary:\nVery high quality is enabled only for 44.1 -\u003e 48 or 48 -\u003e 44.1,\n  and uses low quality for all other use cases.\nTrack estimated CPU load and throttles the quality based on load;\n  as currently configured it should allow up to 2 instances of very high quality.\nMedium quality and high quality are currently disabled unless explicitly requested.\n\nDetails:\nOnly load .so the first time it is needed.\nCleanup code style: formatting, indentation, whitespace.\nRestore medium quality resampler, but it is not used (see next line).\nFix memory leak for sinc resampler.\nCheck sample rate in resampler constructor.\nAdd logs for debugging.\nRename DEFAULT to DEFAULT_QUALITY for consistency with other quality levels.\nRenumber VERY_HIGH_QUALITY from 255 to 4.\nUse enum src_quality consistently.\nImprove parsing of property af.resampler.quality.\nFix reentrancy bug - allow an instance of high quality and an instance\n  of very high quality to both be active concurrently.\n\nBug: 7229644\nChange-Id: I0ce6b913b05038889f50462a38830b61a602a9f7\n"
    },
    {
      "commit": "ac6020508acedd316391dee42329040bf45f8d90",
      "tree": "034a8ac9c453dfce993c8d2568121a9b6d042bd0",
      "parents": [
        "d69fd4d2567f9fce02252ce10d7ae3a28fc79e04"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Oct 01 14:04:31 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Oct 04 09:44:04 2012 -0700"
      },
      "message": "Integrate improved coefficient sinc resampler: VHQ\n\nSummary:\nVery high quality is enabled only for 44.1 -\u003e 48 or 48 -\u003e 44.1,\n  and uses low quality for all other use cases.\nTrack estimated CPU load and throttles the quality based on load;\n  as currently configured it should allow up to 2 instances of very high quality.\nMedium quality and high quality are currently disabled unless explicitly requested.\n\nDetails:\nOnly load .so the first time it is needed.\nCleanup code style: formatting, indentation, whitespace.\nRestore medium quality resampler, but it is not used (see next line).\nFix memory leak for sinc resampler.\nCheck sample rate in resampler constructor.\nAdd logs for debugging.\nRename DEFAULT to DEFAULT_QUALITY for consistency with other quality levels.\nRenumber VERY_HIGH_QUALITY from 255 to 4.\nUse enum src_quality consistently.\nImprove parsing of property af.resampler.quality.\nFix reentrancy bug - allow an instance of high quality and an instance\n  of very high quality to both be active concurrently.\n\nBug: 7229644\nChange-Id: I0ce6b913b05038889f50462a38830b61a602a9f7\n"
    },
    {
      "commit": "41dfd129a181a5b0b62628733cf96e0ce11d64d7",
      "tree": "4614b6808b79cb3e84d5d5b6dbce9275ca89de98",
      "parents": [
        "f818ccfbbfc574d179c4639af6b41c83c368a699"
      ],
      "author": {
        "name": "SathishKumar Mani",
        "email": "smani@codeaurora.org",
        "time": "Tue Jan 17 10:49:47 2012 -0800"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Wed Sep 26 18:48:44 2012 -0700"
      },
      "message": "audioflinger: use resample coefficients from audio-resampler library.\n\n-Add a separate quality VERY_HIGH_QUALITY in resampler\n-Use resample coefficients audio-resampler library for\n quality VERY_HIGH_QUALITY.\n-This improves the quality of resampled output.\n\nBug: 7024293\nChange-Id: Ia44142413bed5f5963d7eab7846eec877a2415e4\nSigned-off-by: Iliyan Malchev \u003cmalchev@google.com\u003e\n"
    },
    {
      "commit": "76b111685010e1fea7c0a865c038aee35507fde4",
      "tree": "25a9d24b4cc23476d25cc026ff0888a3ffcf73e8",
      "parents": [
        "12bff5dd87e6b863482e6bfd9f4561078ebcf3f0"
      ],
      "author": {
        "name": "SathishKumar Mani",
        "email": "smani@codeaurora.org",
        "time": "Tue Jan 17 10:49:47 2012 -0800"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Wed Sep 26 18:48:44 2012 -0700"
      },
      "message": "audioflinger: use resample coefficients from audio-resampler library.\n\n-Add a separate quality VERY_HIGH_QUALITY in resampler\n-Use resample coefficients audio-resampler library for\n quality VERY_HIGH_QUALITY.\n-This improves the quality of resampled output.\n\nBug: 7024293\nChange-Id: Ia44142413bed5f5963d7eab7846eec877a2415e4\nSigned-off-by: Iliyan Malchev \u003cmalchev@google.com\u003e\n"
    },
    {
      "commit": "e53b9ead781c36e96d6b6f012ddffc93a3d80f0d",
      "tree": "4bcde0bc9a797851ec1bee4f630c8c4f0735f623",
      "parents": [
        "b87396f9ebabbb7b47683bceca96cbe635a1ca00"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 12 16:29:55 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 13 11:09:47 2012 -0700"
      },
      "message": "Whitespace and indentation\n\nFix indentation to be multiple of 4.\nMake it easier to search:\n  sp\u003c not sp \u003c to\n  \"switch (...)\" instead of \"switch(...)\" (also \"if\" and \"while\")\nRemove redundant blank line at start or EOF.\nRemove whitespace at end of line.\nRemove extra blank lines where they don\u0027t add value.\n\nUse git diff -b or -w to verify.\n\nChange-Id: I966b7ba852faa5474be6907fb212f5e267c2874e\n"
    },
    {
      "commit": "4ff14bae91075eb274eb1c2975982358946e7e63",
      "tree": "e9e54fddb9832d30b69c2a11c9ed2884397f2f95",
      "parents": [
        "951bd8d1ad9581a414e171ad8605a9515d0ad667"
      ],
      "author": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Wed Feb 08 16:37:41 2012 -0800"
      },
      "committer": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Thu Feb 16 13:45:11 2012 -0800"
      },
      "message": "Upintegrate Audio Flinger changes from ICS_AAH\n\nBring in changes to audio flinger made to support timed audio tracks\nand HW master volume control.\n\nChange-Id: Ide52d48809bdbed13acf35fd59b24637e35064ae\nSigned-off-by: John Grossman \u003cjohngro@google.com\u003e\n"
    },
    {
      "commit": "d198b61603d5fa9298edea4ddb5852ea45159906",
      "tree": "3c03752e50c74f4bcdcf185d8e84e00788ffea04",
      "parents": [
        "7ae4a2c130ec2cb5dec69d095b810698acc543b3"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Feb 02 14:09:43 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Feb 09 16:58:07 2012 -0800"
      },
      "message": "Remove aliasing\n\nCode was aliasing mBuffer as buffer, but continuing to use both buffer\nand mBuffer after that point.  This was at best misleading, and at worst\ncould confuse the compiler into generating bad code.  There was no\nperformance advantage to the alias, in fact removing it saves 16 bytes.\n\nChange-Id: I55023ddba465d9be82f66745b088d18af658ac60\n"
    },
    {
      "commit": "54c3b66444ebfb9f2265ee70ac3b76ccefa0506a",
      "tree": "2ae6ae86501101399d639f2a1227742c120e7ac8",
      "parents": [
        "a2a0a5d7d56baa831870f4bf2a0d942a477d92ef"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 06 07:46:30 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 06 08:00:59 2012 -0800"
      },
      "message": "By convention const goes before the type specifier\n\nChange-Id: I70203abd6a6f54e5bd9f1412800cc01212157e58\n"
    },
    {
      "commit": "65ab47156e1c7dfcd8cc4266253a5ff30219e7f0",
      "tree": "da088916c7cadadcddf47467f20cc8b0b6ff7f41",
      "parents": [
        "98fe12aba55e8b8bb14b23c4c3cdba9a99a9753c"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 14 17:59:35 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 14 17:59:35 2010 -0700"
      },
      "message": "move native services under services/\n\nmoved surfaceflinger, audioflinger, cameraservice\n\nall native services should now reside in this location.\n\nChange-Id: Iee42b83dd2a94c3bf5107ab0895fe2dfcd5337a8\n"
    }
  ]
}
