)]}'
{
  "log": [
    {
      "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": "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": "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": "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": "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": "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": "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": "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": "c19e22450e6e3d07594c935c7a9522e85e909e82",
      "tree": "2a81eb366d10425b83b6bbf9997d9c8813515ea1",
      "parents": [
        "787bae0578fbaab6219ebf23494866b224d01438"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jan 30 14:54:39 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Feb 03 14:42:43 2012 -0800"
      },
      "message": "Use virtual destructors\n\nIt turns out to be just a comment, as all except AudioMixer are RefBase.\n\nThere are only a few performance-sensitive cases where it\u0027s worth thinking\nabout whether you need a virtual destructor, and the headache usually\noutweighs the benefit.\n\nChange-Id: I716292f9556ec17c29ce8c76ac8ae602cb496533\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"
    }
  ]
}
