)]}'
{
  "log": [
    {
      "commit": "79f39eb46055282c86815853ad94a1e01ca6675f",
      "tree": "3853d9c0c5b1877a390178558e77dd7b6c31ad75",
      "parents": [
        "f9e88fbee04f83638b07546741196bd4c242ef54"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Nov 17 17:49:17 2011 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Nov 29 13:10:25 2011 -0800"
      },
      "message": "Add support for sending VSYNC events to the framework\n\nuse gui/DisplayEvent to receive the events. Events are\ndispatched through a unix pipe, so the API is compatible\nwith utils/Looper. see gui/DisplayEvent.h for more info.\n\nBug: 1475048\nChange-Id: Ia720f64d1b950328b47b22c6a86042e481d35f09\n"
    },
    {
      "commit": "f9e88fbee04f83638b07546741196bd4c242ef54",
      "tree": "a0b0da85f2411f6a025637cd082f1efced6790e5",
      "parents": [
        "e11ec1df421be0b1a18fd3cf6ec23361d86ca32a"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Nov 29 13:07:24 2011 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Nov 29 13:07:40 2011 -0800"
      },
      "message": "Fix build.\n\nRevert \"Add support for sending VSYNC events to the framework\"\n\nThis reverts commit f3918c5bd4bc9f02f74da42995564150ca2dd382.\n\nChange-Id: I998e3e1aa3fa310829ae973b64fe11b01f6f468f\n"
    },
    {
      "commit": "f3918c5bd4bc9f02f74da42995564150ca2dd382",
      "tree": "9f8a1bb871b9b5a7571a6a9cbc65d539ac947b92",
      "parents": [
        "bb9ba8bae551305acba4f60577b0f461a9421bc5"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Nov 17 17:49:17 2011 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Nov 29 11:44:05 2011 -0800"
      },
      "message": "Add support for sending VSYNC events to the framework\n\nuse gui/DisplayEvent to receive the events. Events are\ndispatched through a unix pipe, so the API is compatible\nwith utils/Looper. see gui/DisplayEvent.h for more info.\n\nBug: 1475048\nChange-Id: If4126023fc9c067e56087ec7d16a8fd542ce1794\n"
    },
    {
      "commit": "2696d0520f9b928264caa5f98c2e6b1e749f9a11",
      "tree": "f47181e115c3ba1cda5c88d75beb84ba9cd7e96c",
      "parents": [
        "3254774b923378116cc7f9706431bd56f08bdd38",
        "70ac412b2fe7be2507189a9fdfb30c43b36d56ac"
      ],
      "author": {
        "name": "Dave Burke",
        "email": "daveburke@google.com",
        "time": "Tue Oct 18 23:00:08 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Oct 18 23:00:08 2011 -0700"
      },
      "message": "am 70ac412b: Merge \"Add a LayerScreenshot\" into ics-mr0\n\n* commit \u002770ac412b2fe7be2507189a9fdfb30c43b36d56ac\u0027:\n  Add a LayerScreenshot\n"
    },
    {
      "commit": "0ab84ef507f23505a72798fbe25cf4bb2c507ea3",
      "tree": "ea360721418d5b13c376c4f2bcbb4066ebb65f93",
      "parents": [
        "526f0a0e158cf46c244edc57624c15ebce26c71f"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Oct 13 16:02:48 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Oct 18 20:21:47 2011 -0700"
      },
      "message": "Add a LayerScreenshot\n\nA LayerScreenshot is a special type of layer that contains a screenshot of\nthe screen acquired when its created. It works just like LayerDim.\n\nMake sure to call compositionComplete() after rendering into a FBO.\n\nBug: 5446982, 5467587, 5466259\nChange-Id: I5d8a1b4c327f9973d950cd4f4c0bca7f62825cd4\n"
    },
    {
      "commit": "a3dca6fdaacf9ffea4a844848a53c1adeb089897",
      "tree": "584269bf3494ddddfbbacfb57a6a6e43225fe144",
      "parents": [
        "f7ae86f61ba7b326a33e53c3bbb87ebf212f543d",
        "840b8a678537519c27ddf2f818494eaa20a135d4"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Oct 17 11:32:19 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Oct 17 11:32:19 2011 -0700"
      },
      "message": "am 840b8a67: Revert \"Add a LayerScreenshot\"\n\n* commit \u0027840b8a678537519c27ddf2f818494eaa20a135d4\u0027:\n  Revert \"Add a LayerScreenshot\"\n"
    },
    {
      "commit": "f21dd1eabe5bf4da0dc0d9c23144aa997c05a56d",
      "tree": "c964eebbf3c2ea6c50532d57fd895989956f33a7",
      "parents": [
        "c831f6c9799e13d7fde167abfa9c03eb5ab0827c",
        "7f7362c02bcde8750e24781f5c7199f9551301c5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 17 11:32:08 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Oct 17 11:32:08 2011 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of ssh://android-git:29418/platform/frameworks/base\n"
    },
    {
      "commit": "840b8a678537519c27ddf2f818494eaa20a135d4",
      "tree": "f3b32ab3ba51f342b5b9d6e37dbce835739dd4a0",
      "parents": [
        "4fb6416e3a21031a88921a784ae62b13d8a1a39f"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun Oct 16 23:54:25 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun Oct 16 23:54:25 2011 -0700"
      },
      "message": "Revert \"Add a LayerScreenshot\"\n\nThis reverts commit d6809f40cf61203573ec5dbc437f695cd132cc18.\n"
    },
    {
      "commit": "de14ecaebcb958f542f50cff08109926aad2c685",
      "tree": "5534cd6e9505a6b544e9abc1a93952449ea16f8e",
      "parents": [
        "4f1924380cff7424e23beb82b1b7d448941e2441"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Fri Oct 14 16:44:08 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Fri Oct 14 16:44:08 2011 -0700"
      },
      "message": "SurfaceFlinger: Remove display freezing code\n\nThis change removes the dead code from SurfaceFlinger that resulted from\ndisabling support for freezing the display.\n\nChange-Id: I4e5ff00c94b4c7a79af2f65c9850c135210068ed\n"
    },
    {
      "commit": "122aa6bae9f72015e6d50e78d4d47a95e05d3f49",
      "tree": "363131575744911fd326f10eaf30c4e0913014e0",
      "parents": [
        "708fd1a5f90483153a0ec43c8f5588141acaba0e"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Oct 12 17:39:00 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Fri Oct 14 16:11:51 2011 -0700"
      },
      "message": "SurfaceFlinger: make sync transactions explicit\n\nThis change enables a layer or orientation update transaction sent to\nSurfaceFlinger to explicitly request a synchronous transaction.\n\nChange-Id: I97cbba610c13679849f66114b216fa6dbf12f2a9\n"
    },
    {
      "commit": "d6809f40cf61203573ec5dbc437f695cd132cc18",
      "tree": "f7c0278119e2264719eb13d66756fc39df4b35df",
      "parents": [
        "22dad40d3e8ce54a00f337ea06b9b0bbfbd3fd6b"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Oct 13 16:02:48 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Oct 14 14:32:48 2011 -0700"
      },
      "message": "Add a LayerScreenshot\n\nA LayerScreenshot is a special type of layer that contains a screenshot of\nthe screen acquired when its created. It works just like LayerDim.\n\nBug: 5446982\nChange-Id: I7814aff2380e7e146937f2b641907be2a30c76cc\n"
    },
    {
      "commit": "e2909e121c45d58fe587849b1474c80745fcd2b9",
      "tree": "00ec207d638a9815966e4d7f2c4808dcdd28d9b6",
      "parents": [
        "99f36683a4f2c218d52922ae7c2a0c0b3f2890ed"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Oct 10 15:48:06 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Oct 11 13:34:01 2011 -0700"
      },
      "message": "SurfaceFlinger: update orientation via transactions\n\nThis change merges the ISurfaceComposer::setOrientation functionality\ninto ISurfaceComposer::setTransactionState.  It enables the window\nmanager to atomically update both the display orientation and the\nposition and size of the windows in a single transaction with\nSurfaceFlinger.\n\nBug: 5439574\nChange-Id: I18a8ccc564d7d760ef8afb2d015ccdb7a7963900\n"
    },
    {
      "commit": "01a98ddbdfbaf1f0d2bc602537e6e314364902a3",
      "tree": "ce904db3ee0772e0e2a35882a6cf86c7b9fcd84e",
      "parents": [
        "04ef5b8dd7262ee90b56df9c992f103695d0a21c"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Sep 20 15:08:29 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Sep 21 19:26:15 2011 -0700"
      },
      "message": "Handle orientation changes more systematically.\nBug: 4981385\n\nSimplify the orientation changing code path in the\nWindowManager.  Instead of the policy calling setRotation()\nwhen the sensor determined orientation changes, it calls\nupdateRotation(), which figures everything out.  For the most\npart, the rotation actually passed to setRotation() was\nmore or less ignored and just added confusion, particularly\nwhen handling deferred orientation changes.\n\nEnsure that 180 degree rotations are disallowed even when\nthe application specifies SCREEN_ORIENTATION_SENSOR_*.\nThese rotations are only enabled when docked upside-down for\nsome reason or when the application specifies\nSCREEN_ORIENTATION_FULL_SENSOR.\n\nEnsure that special modes like HDMI connected, lid switch,\ndock and rotation lock all cause the sensor to be ignored\neven when the application asks for sensor-based orientation\nchanges.  The sensor is not relevant in these modes because\nsome external factor (or the user) is determining the\npreferred rotation.\n\nCurrently, applications can still override the preferred\nrotation even when there are special modes in play that\nmight say otherwise.  We could tweak this so that some\nspecial modes trump application choices completely\n(resulting in a letter-boxed application, perhaps).\nI tested this sort of tweak (not included in the patch)\nand it seems to work fine, including transitions between\napplications with varying orientation.\n\nDelete dead code related to animFlags.\n\nHandle pausing/resuming orientation changes more precisely.\nEnsure that a deferred orientation change is performed when\na drag completes, even if endDragLw() is not called because the\ndrag was aborted before the drop happened.  We pause\nthe orientation change in register() and resume in unregister()\nbecause those methods appear to always be called as needed.\n\nChange-Id: If0a31de3d057251e581fdee64819f2b19e676e9a\n"
    },
    {
      "commit": "9b8fc65b0353db3a962ab52dc556c356d556fcc1",
      "tree": "c62f12d000864f496c9ab42ff5752a376ee7c3ae",
      "parents": [
        "842d9de74f9eaaf8a7b89dbe8475faf014ddafb8"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Aug 17 18:19:00 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Aug 17 18:19:00 2011 -0700"
      },
      "message": "SurfaceTexture: fix queues-to-composer\n\nThis change fixes the NATIVE_WINDOW_QUEUES_TO_WINDOW_COMPOSER query of\nSurface and SurfaceTextureClient.  Surface now uses the inherited\nSurfaceTextureClient implementation of this query.  SurfaceTextureClient\nnow queries SurfaceFlinger to determine whether buffers that are queued\nto its ISurfaceTexture will be sent to SurfaceFlinger (as opposed to\nsome other process).\n\nChange-Id: Iff187e72f30d454229f07f896b438198978270a8\n"
    },
    {
      "commit": "439863f3b3e725b5de1cba4940a21900369961c0",
      "tree": "90ab56432c2436c3392b02ba08876c86796a36ef",
      "parents": [
        "f1bfa84ccf61cad2b6ea9f2e6a612a54a38b79bc"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jun 28 19:09:31 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jun 29 15:05:41 2011 -0700"
      },
      "message": "SF transactions are now O(1) wrt IPC instead of O(N).\n\nChange-Id: I57669852cbf6aabae244ea86940a08a5a27ffc43\n"
    },
    {
      "commit": "7bb843ca0777111dae7daf8f1b0705817cf523c4",
      "tree": "10545edc3ce21f38282d5e67e5bc08ff729884b3",
      "parents": [
        "dfc7958a2eafba52db90743a4707eed1d780b63b"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Apr 20 14:20:59 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jun 13 15:51:35 2011 -0700"
      },
      "message": "unify SurfaceTexture and Surface\n\nAdd the concept of synchronous dequeueBuffer in SurfaceTexture\nImplement {Surface|SurfaceTextureClient}::setSwapInterval()\nAdd SurfaceTexture logging\nfix onFrameAvailable\n"
    },
    {
      "commit": "d2acedf18c9a3527f6e3dc5d578a85fdc0ad4338",
      "tree": "06a23415d1486f5d7fb3e6d64640a1977f65dd86",
      "parents": [
        "6cc2bbe5cf8c959239d35972c0acac494e5c1559"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Mar 08 12:18:54 2011 -0800"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Mar 08 16:49:51 2011 -0800"
      },
      "message": "ANativeWindow: add queues-to-window-composer check.\n\nThis change adds a new \u0027method\u0027 to the ANativeWindow interface to check\nwhether buffers queued to the window will be sent directly to the system\nwindow compositor.\n\nChange-Id: I4d4b199e328c110b68b250029aea650f03c8724d\nBug: 3495535\n"
    },
    {
      "commit": "d6f5bde96b2fe82bc7e5d4e64266d585108c4648",
      "tree": "323f31caa5ff13610218cfaca6ee69a0a2588227",
      "parents": [
        "bc2e3fe480f1c670e483eaa9b8092902dd78ddf7"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jan 19 15:27:27 2011 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 28 08:04:00 2011 -0800"
      },
      "message": "Protected surface API\n\nTo be used by DRM framework, implemented by display HAL\n\nChange-Id: I054a07a94f4d5dbe792f3a597e2e49a100d90eb2\n"
    },
    {
      "commit": "f7acf162f8d682c6ebc9af41ca76795b79509193",
      "tree": "b2f5246744f5a8c15f841f6a45da4a53679eff67",
      "parents": [
        "e8d0e8a77690eca02f15b0d5e628be7cad5d0133"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Jan 12 18:30:40 2011 -0800"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Thu Jan 13 12:19:04 2011 -0800"
      },
      "message": "Fix remote GraphicBuffer allocation in SurfaceFlinger.\n\nThis change fixes a horrible hack that I did to allow application\nprocesses to create GraphicBuffer objects by making a binder call to\nSurfaceFlinger.  This change introduces a new binder interface\nspecifically for doing this, and does it in such a way that\nSurfaceFlinger will maintain a reference to the buffers until the app is\ndone with them.\n\nChange-Id: Icb240397c6c206d7f69124c1497a829f051cb49b\n"
    },
    {
      "commit": "0a53d5c81b5553d6063b8133492275ce88186978",
      "tree": "dc6573bc4f7011bc5e7be5e6a976f684e52ac061",
      "parents": [
        "42edf0f8cf8ca85dd5010558ff399e2c9a4c779c"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Dec 20 11:21:07 2010 -0800"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Thu Jan 06 13:12:35 2011 -0800"
      },
      "message": "Add the ISurfaceComposer::createGraphicBuffer IPC.\n\nThis change adds a new binder method to the ISurfaceComposer interface.\nThis IPC is intended to allow SurfaceFlinger clients to allocate gralloc\nbuffers using SurfaceFlinger as a proxy to gralloc.\n\nChange-Id: Ide9fc283aec5da6268ba62cfed0c3319a50b640d\n"
    },
    {
      "commit": "3dd25a6bf71bd535bf9dbbe16234229ff45414a0",
      "tree": "16194108cb3fdc84bd42631d81eaf1a518cfecb9",
      "parents": [
        "957d85ec046651a8b0549b62021079ddcc0b8f53"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Dec 10 16:22:31 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Dec 10 16:22:31 2010 -0800"
      },
      "message": "[3258939] Need snapshot to limit which layers are included\n\nChange-Id: Id7351a0e3f53dde99b291cffba553d89fd4d7ca9\n"
    },
    {
      "commit": "d2112306330ce0c162bee4b864991962ca2b655a",
      "tree": "d169f93867e853220c40d38826fe81b4a1ad9eff",
      "parents": [
        "ff3c470778a69d262470e9707fce58dd485c6cc9"
      ],
      "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": "596e590b472dc33a522f32a74e1f3bacb57534ab",
      "tree": "b302dc1b4c366aef6900082860eca6416a87f3c5",
      "parents": [
        "1cf3e2d0029e3f93d0c22a1b7a37025464c6c660",
        "7e9a54d460030a871a4f05e61e943c6a694e9ef8"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sat Oct 16 08:52:30 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Oct 16 08:52:30 2010 -0700"
      },
      "message": "am 7e9a54d4: am d4e03f37: addresses parts of 3096779 and 3097475\n\nMerge commit \u00277e9a54d460030a871a4f05e61e943c6a694e9ef8\u0027\n\n* commit \u00277e9a54d460030a871a4f05e61e943c6a694e9ef8\u0027:\n  addresses parts of 3096779 and 3097475\n"
    },
    {
      "commit": "99e3fab534d3a489726665cb8c71edecd5798b04",
      "tree": "86bb8ed74070ebc7bf2f92b0908a2c2959e25217",
      "parents": [
        "a4a2a3aaef730dbab020f7ece09149b05a399000",
        "5bfa3a34eaef759c3ec4def76f646eb1c0bf997f"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Oct 15 08:33:43 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 15 08:33:43 2010 -0700"
      },
      "message": "am 5bfa3a34: am 011b5bcc: Merge \"implement part of [3094280] New animation for screen on and screen off add support for screen on animation\" into gingerbread\n\nMerge commit \u00275bfa3a34eaef759c3ec4def76f646eb1c0bf997f\u0027\n\n* commit \u00275bfa3a34eaef759c3ec4def76f646eb1c0bf997f\u0027:\n  implement part of [3094280] New animation for screen on and screen off\n"
    },
    {
      "commit": "d4e03f37423bee383d17f7292753a5f67e497a28",
      "tree": "c559d99f0e6c6fda2621c6809b20ffadfc7bcda2",
      "parents": [
        "6d71f6a0ae9fd81ce25562aee67f841b5d8394cf"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Oct 14 14:54:06 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Oct 14 14:57:34 2010 -0700"
      },
      "message": "addresses parts of 3096779 and 3097475\n\n3097475: Animation setting should control the screen on animation\n3096779: CRT power-on animation can briefly show the top app instead of lockscreen\n\nThere is now a parameter that controls wether the ON and/or OFF animation are\nperformed. we also always clear the screen to black on power off, to make\nsure it won\u0027t briefly appear on power on.\nHOWEVER, 3096779 is not 100% fixed in the case where we\u0027re doing the animation\nbecause there is a race, where SF doesn\u0027t wait (b/c it doesn\u0027t know) for the\nframework to have redrawn the lockscreen.\n\nChange-Id: Ie0f02c9225fcdf24b1e8907e268eb7da2c5b0a03\n"
    },
    {
      "commit": "eb86aaaab34687a77454fa130b08788db1317d74",
      "tree": "6a0b8bd8dc7d3bb45511902d5d6fba012a3c8b43",
      "parents": [
        "4afdf666fdb034834c48445570ed9d6f4133fc71",
        "9a12a3c8d4bb20042cf69e07d268e3a04ac71f96"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Wed Oct 13 23:34:21 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 13 23:34:21 2010 -0700"
      },
      "message": "am 9a12a3c8: am ba799098: Merge changes I76513387,I335fb671 into gingerbread\n\nMerge commit \u00279a12a3c8d4bb20042cf69e07d268e3a04ac71f96\u0027\n\n* commit \u00279a12a3c8d4bb20042cf69e07d268e3a04ac71f96\u0027:\n  Remove dead code, and make the animation a setting.\n  turn off the electron beam\n"
    },
    {
      "commit": "2d2b803a92ba531cf6c4bb7042326653255b8780",
      "tree": "4f9bfc77e4850d74b260dff622d03a175add6840",
      "parents": [
        "e03471e12f1adcd818b5bfd9dcb894c75fe955c5"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Oct 12 16:05:48 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Oct 13 14:28:26 2010 -0700"
      },
      "message": "implement part of [3094280] New animation for screen on and screen off\nadd support for screen on animation\n\nChange-Id: If50cf52ae04b95b42da7d74cf7fa96d5cb54d238\n"
    },
    {
      "commit": "aab758e87991d1460ca94d4a5f22c0ef34641e2d",
      "tree": "560d9e47119175b6a5618dd16d9d9ac4a92145fd",
      "parents": [
        "844a6b3ccaff1ad1443ad985e4527b733ce97c0e"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Oct 11 12:37:43 2010 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Tue Oct 12 14:16:11 2010 -0700"
      },
      "message": "turn off the electron beam\n\nChange-Id: I335fb6719f1d5a3f1c6f37a046fd1c2c4ed2bbc6\n"
    },
    {
      "commit": "d10cd5765a2b706fc174f16b951d6b0a5d3740d3",
      "tree": "a3b21518ecfd0729e2f790745a088d7d6ee5cb1a",
      "parents": [
        "514c969ca72b081d84b5f563edf696c6642fa1fa"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Sun Oct 10 13:33:22 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Oct 12 11:00:18 2010 -0700"
      },
      "message": "Always create OpenGL accelerated windows in RGBA 8888.\n\nBug #3081600\n\nThe OpenGL renderer in libhwui uses a single EGL context per process and\nthus create it with an RGBA 8888 EGL configuration. To ensure that all\nwindows are compatible with this configuration, this change modifies\nthe window manager and SurfaceFlinger.\n\nThe window manager now checks the window\u0027s flags and if the window is\nhardware accelerated, it forces the window\u0027s pixel format to be\ntranslucent when creating the surface. The window itself is still\nmarked as opaque if we know that the window will be opaque on screen.\nThis keeps existing optimizations in place.\n\nSimilarly in SurfaceFlinger, a translucent Surface can now be created\nwith the Surface.OPAQUE flag, indicating SurfaceFlinger that the surface\ndoes not require blending, despite its RGBA 8888 configuration.\n\nChange-Id: Ic747b6b12564ba064412d842117880fcc199eb7c\n"
    },
    {
      "commit": "597c7f67b5f2491c6098a1de241a3f0fd274688a",
      "tree": "841774d2e67bfced0608d2344868c64ac566004e",
      "parents": [
        "541d942000c338a15dc4b361b15b72864640d2bf"
      ],
      "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": "38ed2e39c54a42dda8f00620f960788f569a3698",
      "tree": "bf7d48a3bb3c372e7348cab154cb73301ce4a87f",
      "parents": [
        "e17c054d34676c25f03b4eb0d8daebe41b84bf6e"
      ],
      "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": "Wed Sep 29 16:55:15 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: I5a3b0e431421800e3aad601d9af8f94adffbc71f\n"
    },
    {
      "commit": "ca5edbeba92b96913291792a4df984e158853b6d",
      "tree": "cef0f4174ca3d5e09a767787eec63b7a0cf7f2cf",
      "parents": [
        "5c6c5c7a43d44316395f5c35ab713372124b8b4c"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Sep 24 11:26:58 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Sep 24 14:56:39 2010 -0700"
      },
      "message": "add support for [1974164] Be able to take a screen shot on the device\n\nscreenshots are taken using ISurfaceComposer::captureScreen() which returns\nthe size of the screenshot and an IMemoryHeap containing the data.\nscreenshots have limitations:\n- they will always fail if a secure window is up on screen\n- require GL_OES_framebuffer_object extension\n- in some situation, video planes won\u0027t been captured\n\nChange-Id: I741c68a2d2984fb139039301c3349e6780e2cd58\n"
    },
    {
      "commit": "7623da435e45c7c03ef6a00a43675deb6645f070",
      "tree": "b789cdc5e60ccc4474bd319b1dbb4e1a7e3f3858",
      "parents": [
        "593c05ce7bcf7b6d94bd8c50da2b818cf05116b1"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jun 01 15:12:58 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jun 04 18:57:41 2010 -0700"
      },
      "message": "split surface management from surface\u0027s buffers management\n\nChange-Id: If3c5655d1231f8f0c49ba68f972b1b20c93b3f87\n"
    },
    {
      "commit": "770492cb2b19f6a36ad748cd05fbedfbb9a67dfa",
      "tree": "3c87a789492e52b3c26b1de9608f42690b86c2cd",
      "parents": [
        "cdfd5fe2c89a30a31f9de5a5481e8997f014a89b"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri May 28 14:22:23 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri May 28 17:19:16 2010 -0700"
      },
      "message": "more clean-up in preparation of bigger changes\n\nthe most important change here is the renaming of\nISurfaceFlingerClient to ISurfaceComposerClient\n\nChange-Id: I94e18b0417f50e06f21377446639c61f65f959b3\n"
    },
    {
      "commit": "000479f9e325b4e426a67033abd92d47da412725",
      "tree": "16b93ea777744aa24ffe7d3a191bb90529ad4ce5",
      "parents": [
        "28a5dc229ed25c771cde25668928edc788073029"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Feb 09 17:46:37 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Feb 11 13:16:22 2010 -0800"
      },
      "message": "split libsurfaceflinger_client and libcamera_client out of libui\n"
    },
    {
      "commit": "317a6280cc109e873646e4652be1582d870eedfd",
      "tree": "3b6d41d465282970f498e172b81ed0ee83e3183e",
      "parents": [
        "81655243a6a373cfde1e689970eeb62af19622d1"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Aug 13 17:29:02 2009 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Aug 13 18:19:32 2009 -0700"
      },
      "message": "Surface::GPU and Surface::HARDWARE are now deprecated; they will be set automatically if needed.\n\nthis also ripples into the window manager API by making some constant there deprecated as well.\n"
    },
    {
      "commit": "d763b5d9197e01662cafa376e1227e53e0463a3c",
      "tree": "a8e3a71cf4581453aa4bbfe5c70c0f870756c2d3",
      "parents": [
        "0926b6184adb9bd1d4a432c7d4de0be58c602cc2"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jul 02 18:11:53 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jul 02 18:50:51 2009 -0700"
      },
      "message": "get rid of references to MemoryDealer in SurfaceFlinger\n"
    },
    {
      "commit": "2d5ee25556cb363700dc5127f88ca05fb9493e14",
      "tree": "887c9aea220cc5e80075d237edb2e9c4051a5b68",
      "parents": [
        "36432ccc13f6d3db7af35661683c33ffa3406d85"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jun 04 18:46:21 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jun 04 18:46:21 2009 -0700"
      },
      "message": "fix a bunch of problems with destroying surfaces.\n\nnow, all destruction path, go through the purgatory which is emptied when ~ISurface is called, but we also make sure to remove the surface from the current list from there (in case a client forgot to request the destruction explicitely).\n"
    },
    {
      "commit": "947f4f4d384ea26eb2145cc070a3eed42c59534a",
      "tree": "edc5fb1e6e808a2b809720f44b6236ebe93b577b",
      "parents": [
        "6158b1bf0364da1582468a98ec09d004ba99deec",
        "0690519fcde1ccb189081aa79df61436f65686c2"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri May 22 01:27:01 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri May 22 02:16:08 2009 -0700"
      },
      "message": "merge master to master_gl\n"
    },
    {
      "commit": "0795272aa226f4e965968a03daddc53ce30b7cda",
      "tree": "6b4e8ba5e57c5dcf2dd770c24e14c43eda42fdd7",
      "parents": [
        "25ba5b6564224dceefa086b5c439ef28dad530ca"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue May 19 19:08:10 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed May 20 12:55:03 2009 -0700"
      },
      "message": "move libbinder\u0027s header files under includes/binder\n"
    },
    {
      "commit": "1473f46cbc82aa6f0ba744cc896a36923823d55b",
      "tree": "1a03737c7eb71b32735693e5cfdd91d0b57a2ad5",
      "parents": [
        "71d83c04897a10394009b02808bb6b86886b27e1"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Apr 10 14:24:30 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Apr 10 14:24:30 2009 -0700"
      },
      "message": "Integrate from //sandbox/mathias/donut/...@145728\n\nSurfaceFlinger rework for new EGL driver model support.\n"
    },
    {
      "commit": "eb0c86e18b7d620b679ff2a45a0233867a53a334",
      "tree": "9202e5ef5179bf79540459845de414ddb5df719e",
      "parents": [
        "e4fbd6235c8d1c5b0ed4883ec275dd3fc9c919fb"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "",
        "time": "Fri Mar 27 18:11:38 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Mar 27 18:11:38 2009 -0700"
      },
      "message": "AI 143320: am: CL 143171 am: CL 142873 fix [1732012] Only show screen rotation animation when triggered by sensor\n  Original author: mathias\n  Merged from: //branches/cupcake/...\n  Original author: android-build\n  Merged from: //branches/donutburger/...\n\nAutomated import of CL 143320\n"
    },
    {
      "commit": "9066cfe9886ac131c34d59ed0e2d287b0e3c0087",
      "tree": "d88beb88001f2482911e3d28e43833b50e4b4e97",
      "parents": [
        "d83a98f4ce9cfa908f5c54bbd70f03eec07e7553"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:31:44 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:31:44 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "d83a98f4ce9cfa908f5c54bbd70f03eec07e7553",
      "tree": "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
      "parents": [
        "076357b8567458d4b6dfdcf839ef751634cd2bfb"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:45 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:45 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "54b6cfa9a9e5b861a9930af873580d6dc20f773c",
      "tree": "35051494d2af230dce54d6b31c6af8fc24091316",
      "parents": [],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "message": "Initial Contribution\n"
    }
  ]
}
