)]}'
{
  "log": [
    {
      "commit": "a5529c8778c2f407f482fc12165aeb76c0f505c2",
      "tree": "ffa08b15bbbaa2436d60e4d00cfae6cbcc3d8a82",
      "parents": [
        "4eaf95afa47c8d7ce2b2928bc297572bf6a711d5"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Dec 07 19:38:17 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Dec 08 16:13:59 2010 -0800"
      },
      "message": "remove support for PUSH_BUFFER surfaces and overlays\n\nthe same functionality is now supported through\nthe h/w composer HAL, and YUV support in the GPU.\n\nChange-Id: I8146605449954b8e8fd7f78810b7d873c2d8f5bf\n"
    },
    {
      "commit": "0694d0f3b3d016b9eedda13c447e8e7735a4a177",
      "tree": "4175ca77e79716de8e5cba384603a5c5b316c23b",
      "parents": [
        "48a862ef5f1a9fe9f646f0862d676170fd8dc51d"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun Oct 24 14:53:05 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun Oct 24 14:53:05 2010 -0700"
      },
      "message": "fix [3118445] Transform * Transform does not work as expected\n\nThe problem wasn\u0027t in the multiply operator, but rather in the code\nthat built the transform from the HAL bitmask.\n\nWe now use the multiply operator to build the Transform from the bitmask,\nwhich guarantees, it\u0027ll always be correct.\n\nAlso added a simple test for Transform.\n\nChange-Id: I09bf3b0e51d92f59d83ea91c4cc94fc2aa0bf227\n"
    },
    {
      "commit": "df85c455c34a920d22a8e3f7459a1cc615efcd27",
      "tree": "5ad42218a1f355354a8a77b6a97a8624736aa286",
      "parents": [
        "f67f0acc677c20516c0f8f7dfbdf8b75bb0c2f52"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Sep 29 13:02:36 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Oct 04 17:36:17 2010 -0700"
      },
      "message": "refactored screenshot code\n\nthe core screenshot function now can capture the screen at any lower resolution\nperforming bilinear filtering.\n\nwe also now have some client code to interface with the screenshot service.\n\nit\u0027s now possible to request a screenshot at a lower resolution.\n\nChange-Id: I33689bba98507ab928d0898b21596d0d2fe4b953\n"
    },
    {
      "commit": "06e7056660d65d4b0bbe1bb2cbf3e779074dbd9f",
      "tree": "35e234d6c4cdc66294090ddc13401ab6ef0542a2",
      "parents": [
        "1b0b30d04304392748a8a4ab5a69e52a19f51b3a"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Sep 24 15:01:49 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Sep 24 15:01:49 2010 -0700"
      },
      "message": "simple test app for screen capture API\n\nChange-Id: I1f7c453508ccfd4faaa8b1279968a358ce3f1e5a\n"
    },
    {
      "commit": "208cb0772429b9ac800010829ecc7b854bdc2d24",
      "tree": "ad100015679a6232c23969466c02d90e085049a6",
      "parents": [
        "5767cf62a45d64980a4bf91bdd2e8357f79e1a4e"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jul 27 20:11:35 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jul 27 20:11:35 2010 -0700"
      },
      "message": "fix [2873058] Surface::dequeueBuffer blocks on last buffer, i.e. cannot dequeue all allocated buffers at once.\n\nthis situation happened when the last buffer needed to be resized\n(or allocated, the first time). the assumption was that the buffer\nwas in use by SF itself as the current buffer (obviously, this\nassumption made no sense when the buffer had never been allocated, btw).\n\nthe system would wait until some other buffer became the \"front\" buffer.\n\nwe fix this problem by entirely removing the requirement that the\nbuffer being resized cannot be the front buffer. instead, we just\nallocate a new buffer and replace the front buffer by the new one.\n\nthe downside is that this uses more memory (an extra buffer) for a\nbrief amount of time while the old buffer is being reallocated and\nbefore it has actually been replaced.\n\nChange-Id: I022e4621209474ceb1c671b23deb4188eaaa7285\n"
    },
    {
      "commit": "81bac09fa6b01dd1495644d9c825c3666762fced",
      "tree": "346e826932eef1b4402dfa98796075e63d3c90e8",
      "parents": [
        "e1ea0811de760256cee3b1ffca227251e1cf52c5"
      ],
      "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"
    }
  ]
}
