)]}'
{
  "log": [
    {
      "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": "1b6230983186cca4977efe6a3c49261d327495cd",
      "tree": "65edfbc26f9965d465ed1ef51b567b2ec44b44bc",
      "parents": [
        "5b0eb1778af2d455ede77028884b336644ff90ff"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Fri Jun 17 11:39:18 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Jun 28 13:18:07 2011 -0700"
      },
      "message": "SurfaceTexture: add a CPU -\u003e GL sync test.\n\nThis change adds a test to verify that proper synchronization is done\nwhen using SurfaceTexture to use CPU generated images as OpenGL ES\ntextures in \u0027synchronous mode\u0027.  Synchronous mode is particularly tricky\nbecause SurfaceTexture will allow the buffer that\u0027s currently bound to\nthe GL texture to be dequeued.  We rely on Gralloc\u0027s lock function to\nblock until this buffer is no longer being used by the OpenGL ES.\n\nChange-Id: I1c4e37f3e9d60ab9a0905a90a1f5060fda8e485c\n"
    },
    {
      "commit": "9fb5976367911d0ab42d296238f0f06d517e867d",
      "tree": "98c01d0b42d77db071fba25d8c3e98dacfaa2dfc",
      "parents": [
        "bd5404d0312752e7c8946e8540129f0d2d97bcd7"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Jun 27 15:41:52 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Jun 27 15:45:40 2011 -0700"
      },
      "message": "SurfaceTexture: consume buffers after err checks\n\nThis change moves the point at which queued buffers get consumed to\nafter any error checks that could cause updateTexImage to fail.  This\nway, if updateTexImage returns an error the buffer remains queued.\n"
    },
    {
      "commit": "bd5404d0312752e7c8946e8540129f0d2d97bcd7",
      "tree": "abdb05720d7149f0adee32a0f4ae9712cb57d78e",
      "parents": [
        "932e4e613987658383e23fa151c3f5b87d07f028"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Sun Jun 26 18:27:47 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Jun 27 15:45:39 2011 -0700"
      },
      "message": "SurfaceTexture: change onFrameAvailable behavior\n\nThis change alters the conditions under which the onFrameAvailable\ncallback gets called by the C++ SurfaceTexture class.  The new behavior\nis to call the callback whenever a frame gets queued that will be\nvisible to the buffer consumer.  This means that buffers queued in\nsynchronous mode always trigger the callback, as those buffers will\nremain pending until they are consumed.  Buffers queued in asynchronous\nmode will only trigger the callback if there was not previously an\nunconsumed buffer pending.\n\nThe new behavior means that a consumer should perform a draw operation\nexactly once for every onFrameAvailable call that it recieves.  This\nchange also modifies SurfaceFlinger and the SurfaceTexture JNI to\nsupport of the new behavior.\n\nChange-Id: I8b2c6e00961d3d58b11c6af50b555b6e4c5f5b40\n"
    },
    {
      "commit": "0904d0af81e8a0a5404d6c03f4dcea02bea8170d",
      "tree": "30ed521b5552efb6baeac987de69ea73e83fcdba",
      "parents": [
        "62250fbcd15dc46fd37341f9843e87585e132f05"
      ],
      "author": {
        "name": "Grace Kloba",
        "email": "klobag@google.com",
        "time": "Thu Jun 23 21:21:47 2011 -0700"
      },
      "committer": {
        "name": "Grace Kloba",
        "email": "klobag@google.com",
        "time": "Thu Jun 23 21:21:47 2011 -0700"
      },
      "message": "Add allowSynchronousMode to SurfaceTexture constructor.\n\nChange-Id: I54f30a3c16bbe6b813f3bcd1d389da5627531304\n"
    },
    {
      "commit": "4e8a5c922c287ec97fec847194e930f8598a1941",
      "tree": "4cb995f8d142f646a8c99d9818b6cdee456de398",
      "parents": [
        "0f5d8441ef3ee88855df71b15d81f4c14f12d63d"
      ],
      "author": {
        "name": "tedbo",
        "email": "tedbo@google.com",
        "time": "Wed Jun 22 15:52:53 2011 -0700"
      },
      "committer": {
        "name": "tedbo",
        "email": "tedbo@google.com",
        "time": "Wed Jun 22 16:18:09 2011 -0700"
      },
      "message": "Add method to create a ParcelSurfaceTexture from android.view.Surface.\n\nChange-Id: I05e343ab7e327478f60322af9373574b70c148f5\n"
    },
    {
      "commit": "dba3968ab27a6d2ca4cc7e07f0d23e918ba61606",
      "tree": "59c56f87498b6dae15f52d1d980270e8855b772e",
      "parents": [
        "c972c795cfdb0d16d664510b5041e43cfdc2a5ac"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Jun 15 14:24:38 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Jun 20 15:42:57 2011 -0700"
      },
      "message": "SurfaceTexture: make tests use a large framebuffer.\n\nThis change makes the SurfaceTexture GL tests use a large (512x512)\nframebuffer.  The tests now use glViewport to render to a region of the\nframebuffer with a size matching that of the texture being drawn.  The\nNpot test pixel checks must be changed because now the rendered region\nis the same size as the texture.\n\nChange-Id: Icc41803189c25e33ba1da7d2470720f0a11f3e4b\n"
    },
    {
      "commit": "c972c795cfdb0d16d664510b5041e43cfdc2a5ac",
      "tree": "ec8f0e4686903bdb3351f7d2129984d20ff8032d",
      "parents": [
        "b2af97e9a11119a257289cb8c539b5de79093052",
        "aff74054189a4276a250eac91ac301ab2df37ae3"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Jun 20 15:34:00 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 20 15:34:00 2011 -0700"
      },
      "message": "Merge \"SurfaceTexture: fix a NULL ptr dereference.\""
    },
    {
      "commit": "aff74054189a4276a250eac91ac301ab2df37ae3",
      "tree": "9ff93cb4a6667ffd4692e07cab3f5b4125729a2d",
      "parents": [
        "f71e5469441286c6f466043e64a7f6492557cbd9"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Jun 20 12:04:09 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Jun 20 14:16:49 2011 -0700"
      },
      "message": "SurfaceTexture: fix a NULL ptr dereference.\n\nThis change adds a NULL check when searching the slot list in\nSurfaceTextureClient for the slot corresponding to a buffer being\nqueued or canceled.\n\nBug: 4645023\nChange-Id: I806cbc1e34da118ea33a83c4f25ce8193ba1c3ad\n"
    },
    {
      "commit": "537cf4a6a375f25e4ed0fef286965c864878f6c2",
      "tree": "e50693807e727b068345a46d5f0889fc470d332e",
      "parents": [
        "b82f85bbfdac6bf6d4e59d91886f40678d20000b"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Jun 14 17:04:29 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Jun 15 12:44:01 2011 -0700"
      },
      "message": "SurfaceTexture: enable a test that now passes.\n\nThis change enables the QueryFormatAfterSettingWorks.\n\nChange-Id: Ic868011a36a6c86c8646880246cd5b6960a13364\n"
    },
    {
      "commit": "b82f85bbfdac6bf6d4e59d91886f40678d20000b",
      "tree": "5ca03445a580526423916b7bb5b3d6cf61bfa253",
      "parents": [
        "f71e5469441286c6f466043e64a7f6492557cbd9"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Jun 14 15:41:45 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Jun 15 12:44:01 2011 -0700"
      },
      "message": "SurfaceTexture: enable a test that is now passing.\n\nThis change enables the TexturingFromCpuFilledYV12BufferPow2 test.\n\nChange-Id: Ib356ee3d2f8979f34f849fd4090f598295e2e92e\n"
    },
    {
      "commit": "fba5fcf367ddbeb0ab804a60e0cb9bb42f5f7fb0",
      "tree": "0e7477120706ff54f38bf1392582c5e117a46ebe",
      "parents": [
        "d23398d40c415a5ac056de0b0a07f9a03843a148"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Jun 13 19:06:52 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Jun 14 13:45:53 2011 -0700"
      },
      "message": "SurfaceTexture: increase the test\u0027s Surface layer.\n\nThis change increases the Surface layer used for displaying the test\nresults so that the tests will be visible over other windows in the\nsystem.\n\nChange-Id: I47f147f8743ff2a39d57d551811668371202bd31\n"
    },
    {
      "commit": "d23398d40c415a5ac056de0b0a07f9a03843a148",
      "tree": "404a2dc831bd84abfddd4d18d2ee2ef7666993b2",
      "parents": [
        "3c7d846c26eaacfb6e1e33256f7447a12923ccc1"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Thu Mar 17 16:32:52 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Jun 14 13:45:53 2011 -0700"
      },
      "message": "SurfaceTexture: add some RGBA_8888 tests.\n\nChange-Id: Id09915c98a00eca1209b7dab32039a06d260908e\n"
    },
    {
      "commit": "3c7d846c26eaacfb6e1e33256f7447a12923ccc1",
      "tree": "b07c5f7aa3b2958707cad9706e4bc23c905ec6f0",
      "parents": [
        "ff24bf439ff6dfffcbcd1456a24f264f7c40f77a"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Apr 06 15:43:16 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Jun 14 13:45:52 2011 -0700"
      },
      "message": "SurfaceTextureClient: minor test refactoring.\n\nChange-Id: Iabc6d27ca35d30d896c6aef65c4f1b5a1eed47b8\n"
    },
    {
      "commit": "44ce622fc393ded35c68b7b871461521397431f0",
      "tree": "ac9d7329c08136f77f359752d0323fd9e77441fc",
      "parents": [
        "849d78973c25b73f65490ff64023e17317a2b29c",
        "acce04ea933940a777fac097b61d55f8d61fd5d1"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Jun 14 13:39:05 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 14 13:39:05 2011 -0700"
      },
      "message": "Merge \"SurfaceTexture: add a format querying test.\""
    },
    {
      "commit": "0991a7fb12ce62bff0ea5aed6c4c92c106747158",
      "tree": "77b1a3ba29338f4b010d98c35fa9aa34b6e5b723",
      "parents": [
        "3f71cfc14990e28c0de1af81933bf3f6e25c00f9",
        "9b8e1962d65589073b004889195245e757fb0e12"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jun 13 17:20:53 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 13 17:20:53 2011 -0700"
      },
      "message": "Merge changes I9b8e1962,I7bb843ca\n\n* changes:\n  Temporarily don\u0027t return the current buffer in synchronous mode\n  unify SurfaceTexture and Surface\n"
    },
    {
      "commit": "9b8e1962d65589073b004889195245e757fb0e12",
      "tree": "37bb0c331b24cc85b4e0e6354e44f13518bdba8d",
      "parents": [
        "7bb843ca0777111dae7daf8f1b0705817cf523c4"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed May 04 18:28:07 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jun 13 15:51:35 2011 -0700"
      },
      "message": "Temporarily don\u0027t return the current buffer in synchronous mode\n\nactivate synchronous mode by default.\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": "acce04ea933940a777fac097b61d55f8d61fd5d1",
      "tree": "1f60cda51b55bb56a40419e20a8b74eb758534e8",
      "parents": [
        "bd3e537980027f4502a13c204b3c7b9d10adad31"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Sun Jun 12 13:56:15 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Jun 13 15:01:05 2011 -0700"
      },
      "message": "SurfaceTexture: add a format querying test.\n\nThis change adds a test to verify that querying the format of a\nSurfaceTextureClient immediately after setting it returns the correct\nresult.  The test is currently disabled because it does not pass.\n\nChange-Id: I5bddb39c5bf96d6104624094383d410ed913e9f3\n"
    },
    {
      "commit": "323badd7ddc1574e8e4954735d05befc27cfddad",
      "tree": "c1b52e4e1a5c1f715629231d9746a242df5f399f",
      "parents": [
        "43bdc23b13ba473824a74d3df67704d6d9c543c7"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Jun 13 13:43:51 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Jun 13 13:43:51 2011 -0700"
      },
      "message": "SurfaceTexture: disable a deadlocking test.\n\nThis change disables the UpdateTexImageAfterFrameFinishedWorks test\nbecause it\u0027s currently causing deadlocks on some devices.\n\nChange-Id: Ic9186db207e8d656f3af5d86fa138c7d96393c55\n"
    },
    {
      "commit": "43bdc23b13ba473824a74d3df67704d6d9c543c7",
      "tree": "b2e960e297e743e505d32d432511a70d8314357f",
      "parents": [
        "bd3e537980027f4502a13c204b3c7b9d10adad31"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Jun 13 13:41:01 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Jun 13 13:41:01 2011 -0700"
      },
      "message": "SurfaceTexture: add a pixel tolerance to the tests.\n\nThis change adds a default tolerance of 2 to all the pixel value checks\nin the SurfaceTexture tests.\n\nChange-Id: Id5a7cdffdfae16076e2daf4964a3326105b5ae2c\n"
    },
    {
      "commit": "9deb930ebf7db317e7abec59b37a88c47999f9cf",
      "tree": "5307637660912b842f417e4ab3610732f2d84431",
      "parents": [
        "4e03d327d6310cd2c5ca3ecd55f91363b555de71"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Jun 08 09:40:45 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Jun 13 10:50:13 2011 -0700"
      },
      "message": "SurfaceTexture: add some GL-\u003eGL tests.\n\nThis change adds some tests to verify streaming images from one GL\nthread to another via SurfaceTexture.  Currently the tests do not\nvalidate the correctness of the streamed images, but rather simply\nverify that this streaming does not cause a deadlock.  3 of the 4 tests\nare currently disabled because they do cause deadlocks on some devices.\n\nChange-Id: I5677942053190063b97f370dba96c116711bc3bb\n"
    },
    {
      "commit": "15e0d9f5e0700fa7dc0ecd0f07d5fea6f9597ca0",
      "tree": "8836161a609c4d4d465b70bd848e1c0877f972f2",
      "parents": [
        "eadfb673e7b346af02a925ad04494100db1ebbf7"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Jun 07 15:23:23 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Jun 13 10:50:13 2011 -0700"
      },
      "message": "SurfaceTexture: add getTransformMatrix tests.\n\nThis change adds a test verifying that with no transform set on the\nSurfaceTextureClient, the SurfaceTexture will return an identity\ntransform matrix.  It also verifies this same effect in the presence of\nan additional call to native_window_set_buffer_count just before the\ncall to getTransformMatrix.\n\nBug: 4490420\nChange-Id: Ic5adfa29b5696cc2b451433834e3758ef20c5edd\n"
    },
    {
      "commit": "eadfb673e7b346af02a925ad04494100db1ebbf7",
      "tree": "6ff88f77a6762f00a868807706f1e995d16373ae",
      "parents": [
        "fe93010446e68c747f4af727cbc48eaf63131689"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Sun Jun 12 17:03:06 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Jun 13 10:50:12 2011 -0700"
      },
      "message": "SurfaceTexture: fix a getTransformMatrix crash.\n\nThis change moves the computation of the transform matrix out of\ngetTransformMatrix and instead performs the computation when\nupdateTexImage gets called.  This is needed in order for\ngetTransformMatrix to succeed even if the buffers have been freed (e.g.\nby changing the buffer count) because the computation depends upon the\nproperties of the current GraphicBuffer.\n\nChange-Id: Ied541ab8747b7ad604f862717135f9a16a816be9\nBug: 4490420\n"
    },
    {
      "commit": "73e0bc805a143d8cc2202fccb73230459edc6869",
      "tree": "59aeea0bcd592df160cf08606fa03cd5fa0a4211",
      "parents": [
        "48a542aabe2d58a0c3e7bac7f384d9951e5a26ed"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue May 17 22:54:42 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri May 27 17:04:55 2011 -0700"
      },
      "message": "9-axis sensor fusion with Kalman filter\n\nAdd support for 9-axis gravity and linear-acceleration sensors\nvirtual orientation sensor using 9-axis fusion\n\nChange-Id: I6717539373fce781c10e97b6fa59f68a831a592f\n"
    },
    {
      "commit": "dd386ccb9039a6ece8ebeda0dfd2e81156057229",
      "tree": "b490099790e854cc76e13504e329f2e1afb0a7fa",
      "parents": [
        "44e9e0d825aef362a3413dfd63812962f5de1b1a"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue May 24 18:39:46 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed May 25 12:27:33 2011 -0700"
      },
      "message": "SurfaceTexture: disable a failing test.\n\nThe SurfaceTextureSyncModeWaitRetire test was disabled.  It is failing\nbecause of the synchronization hacks that were added to SurfaceTexture\nto work around bugs in vendor device drivers.\n\nChange-Id: I09a74538bfe14a04833acb6847471e00826cc7fc\n"
    },
    {
      "commit": "44e9e0d825aef362a3413dfd63812962f5de1b1a",
      "tree": "a9f39b6996e0b4092c37b0841da1adfcb3d61ad7",
      "parents": [
        "a218715a7fca98c868feccee4751c94e38b676ff"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon May 23 18:44:04 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed May 25 12:27:33 2011 -0700"
      },
      "message": "SurfaceTexture: fix an error check in dequeueBuffer.\n\nThis change fixes the MIN_UNDEQUEUED_BUFFERS error check in\ndequeueBuffer.  The check should only be performed if a buffer has been\nqueued since the last time the buffer count was changed by the client.\nThe check must be applied conditionally because video decoders require\nall the bufferes to be dequeued and registered before beginning the\ndecode.\n\nChange-Id: I08d96b380544e395c2fcf0f3983a199bfd695b09\n"
    },
    {
      "commit": "a218715a7fca98c868feccee4751c94e38b676ff",
      "tree": "3386ef4297d74a48b940e2b9d61fdd6f9c209cd0",
      "parents": [
        "4ece6db47ec33ed439ae2177fbc0cc3e7e79cdca"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Thu May 19 13:33:00 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed May 25 12:27:33 2011 -0700"
      },
      "message": "SurfaceTexture: clean up some comments, tests, etc.\n\nThis change fixes up some stale comments, member variable names, log\nmessages and disables a failing test.\n\nChange-Id: Ic1d3344b18066cf710e4a42838b2417c6b1f2f6c\n"
    },
    {
      "commit": "bca2d5b3df1394ae2bdfe1e9b65a75276754eadb",
      "tree": "72c76450b58818ef684b545ae31129703bb86e8b",
      "parents": [
        "90eb1053c1f3621ebe6817fb70aa22f27f83a849"
      ],
      "author": {
        "name": "Teng-Hui Zhu",
        "email": "ztenghui@google.com",
        "time": "Wed May 18 10:38:40 2011 -0700"
      },
      "committer": {
        "name": "Teng-Hui Zhu",
        "email": "ztenghui@google.com",
        "time": "Wed May 18 14:37:51 2011 -0700"
      },
      "message": "Disable error report temporarily to enable inline video\n\nbug:4435022\n\nChange-Id: I06f05a4781ad432ab71db93f0815eb89cd2e7a69\n"
    },
    {
      "commit": "e845c352c8eb93412fa7caedb5435d3597c795d0",
      "tree": "615a7bacd4bf4112fb9fc443d565ab1805c7fed9",
      "parents": [
        "7f3289c95ec489651f1c04f1a71cfc7a8b535805"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed May 11 15:05:29 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed May 11 18:01:51 2011 -0700"
      },
      "message": "fix onFrameAvailable\n\nChange-Id: I391fe9f6684ac9fd4f91416ce18b583f7087d966\n"
    },
    {
      "commit": "7f3289c95ec489651f1c04f1a71cfc7a8b535805",
      "tree": "1f1358ac1757de4e6aca689ee5c9ac12ea108c32",
      "parents": [
        "402ff24aa199a2587498b694e2be67ceb1265c69"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon May 09 19:08:33 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed May 11 18:01:51 2011 -0700"
      },
      "message": "Add SurfaceTexture logging\n\nChange-Id: If1b74be5230813fb76429935d88b9d4a7c41700c\n"
    },
    {
      "commit": "402ff24aa199a2587498b694e2be67ceb1265c69",
      "tree": "90d37bedbae4aaf34029c23cd7569fe7bde27ae9",
      "parents": [
        "a6b717b52a79c83e66247ab49050ddf07b4d5126"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon May 02 19:51:12 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed May 11 18:01:51 2011 -0700"
      },
      "message": "Implement {Surface|SurfaceTextureClient}::setSwapInterval()\n\nChange-Id: I8382e346ddaa2c4c8ff56ac3ffd7f0109572f188\n"
    },
    {
      "commit": "a6b717b52a79c83e66247ab49050ddf07b4d5126",
      "tree": "758169ab548f1c72a332e9d0851a6d65cc0088d3",
      "parents": [
        "5bbb1cf9d7f9ecb8a2fc5ca8ba51c222c2aaff16"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Apr 26 14:57:10 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed May 11 18:01:51 2011 -0700"
      },
      "message": "new tests for SurfaceTexture synchronous mode\n\nChange-Id: Icfdaa625238246f8d0224efe28fdf2c1c24203f8\n"
    },
    {
      "commit": "5bbb1cf9d7f9ecb8a2fc5ca8ba51c222c2aaff16",
      "tree": "960bc168b38e085af1c584784bf08b66224c0bf0",
      "parents": [
        "ed3894c07a67b3e35d07084c4a8b410908bfedc5"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Apr 21 18:52:51 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed May 11 18:01:51 2011 -0700"
      },
      "message": "Add the concept of synchronous dequeueBuffer in SurfaceTexture\n\nChange-Id: Ic94cbab092953243a0746e04bbe1b2eb0cc930ef\n"
    },
    {
      "commit": "ed3894c07a67b3e35d07084c4a8b410908bfedc5",
      "tree": "d6be3a0f844843e230bf10e285896d3a6336e167",
      "parents": [
        "0297dcae8fddb18ab9e28ba1858a57a8aec3ef32"
      ],
      "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": "Wed May 11 18:01:51 2011 -0700"
      },
      "message": "unify SurfaceTexture and Surface\n\nChange-Id: I49da2f5d8408e4cd7e148cfb777bb4ff68cd8f37\n"
    },
    {
      "commit": "0297dcae8fddb18ab9e28ba1858a57a8aec3ef32",
      "tree": "956126b5b62743efbdfbaa63268662e9a3a8aa80",
      "parents": [
        "f605a5aae5856d0c6114f36659ff9e8c5f3b5c19"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Apr 25 20:22:14 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed May 11 18:01:51 2011 -0700"
      },
      "message": "Fix a bug where setgeometry couldn\u0027t be undone\n\nThis change the binder protocol between SurfaceTextureClient\nand SurfaceTexture. dequeueBuffer() now takes the requested\nparameters for the buffer. SurfaceTexture decides if the\nbuffer needs to be reallocated and does the allocation\nif needed. In that case it returns BUFFER_NEEDS_REALLOCATION\nto tell SurfaceTextureClient that it needs to call\nrequestBuffer (which all parameters have been removed) to\nacquire a pointer to the buffer.\n\ndequeueBuffer and requestBuffer could be folded into a single\nIPC call, but we chose to optimize the case where buffers are\nnot created and avoid some complexity in the marshalling code.\n\nChange-Id: I097a7f6f40a3491e10f3f3742eab33999286c304\n"
    },
    {
      "commit": "b2a153adc9860616acdb96d7cdd64494d5a2a0f2",
      "tree": "3e87a5d9681d86ad68c14222774f77bc4bd3ae4a",
      "parents": [
        "be0cc36525f090032d1b84d95e1d8ba5fc714fc2"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Sun May 01 11:33:26 2011 -0700"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Tue May 03 16:40:14 2011 -0700"
      },
      "message": "frameworks/base: android_native_buffer_t -\u003e ANativeWindowBuffer\n\nChange-Id: Idc2eabaa805bb6d308ebb315872623f28d428417\nSigned-off-by: Iliyan Malchev \u003cmalchev@google.com\u003e\n"
    },
    {
      "commit": "4d7c1ce651bd5e283e694fa34641e1dc080613c0",
      "tree": "cfb1f708b760f20b08ec81a6bc4d25c59ec8cc04",
      "parents": [
        "9c7ac0d142eaf4b083a309299ab023932a9bb109"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Thu Apr 14 16:54:38 2011 -0700"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Tue May 03 15:49:40 2011 -0700"
      },
      "message": "frameworks/base: make the ANativeWindow query() method const\n\nquery() does not modify the object\u0027s data, so it needs to be a const method\n\nChange-Id: I67c40a3c865461e6f1cc2193fd2d74286ff6ac8f\nSigned-off-by: Iliyan Malchev \u003cmalchev@google.com\u003e\n"
    },
    {
      "commit": "ca2773bc456dfaf84685f75c4a20e26269879e87",
      "tree": "8a4550f0745e9dd2df01bae25acdad0eb27dc608",
      "parents": [
        "ab036058ac7a07eac113a49a34a02f565700fdd1",
        "8f9f2fd43b95ef250d74ba95baf32fd13ca2bff5"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Thu Apr 28 15:03:56 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 28 15:03:56 2011 -0700"
      },
      "message": "Merge \"libgui: enable tests in the \u0027tests\u0027 build.\""
    },
    {
      "commit": "926340cf56c9a2d21008d050a4e0f1390cf648bf",
      "tree": "a639bdb00ff61894130ecddd3d5a3bfb4e12892b",
      "parents": [
        "f076aa5594840baf70fd78a00d1152bd13dfb80c"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Apr 27 18:57:33 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Apr 27 18:58:46 2011 -0700"
      },
      "message": "Fix uninitialized variable in SurfaceTexture\n\nChange-Id: Ie77cdad481fc0522ff5ea3b7e14ce94e07150793\n"
    },
    {
      "commit": "8f9f2fd43b95ef250d74ba95baf32fd13ca2bff5",
      "tree": "61e5301ecd28724e55902c547d3d0e833da5138e",
      "parents": [
        "a5679c8ad4242b08f09cb2a6573a9a1218d7064c"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Apr 26 17:26:37 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Apr 26 17:26:37 2011 -0700"
      },
      "message": "libgui: enable tests in the \u0027tests\u0027 build.\n\nThis change makes the libgui makefile recurse into the tests directory\nso that the tests get built by a top-level make when\nTARGET_BUILD_VARIANT\u003dtests.\n\nChange-Id: I6f623cc4b86dfeb00b9d21823316dbd9def23110\n"
    },
    {
      "commit": "6fad64c747040e6abcc6a57b99e5ba9293ee4d99",
      "tree": "d43c999efa712e5171414c94d1d1a9effe044c0b",
      "parents": [
        "88eb5c07f567c30195d4940167cabc50bf2c1e34"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Apr 26 14:57:40 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Apr 26 15:03:27 2011 -0700"
      },
      "message": "Report errors when eglCreateImageKHR fails\n\nChange-Id: Ica39b72ac2505675e619ef4994bd67b98bf6e7da\n"
    },
    {
      "commit": "7868c64fffd164dccf06411372b922dfea26c0e6",
      "tree": "8981cd17712aed03ccc89ab27319929f65d4e31d",
      "parents": [
        "5dbf2ed575c424a0d65e70458d5a02eb21872b33"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Apr 25 16:41:11 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Apr 25 16:41:11 2011 -0700"
      },
      "message": "EGL: Allow creating a SurfaceTexture EGLSurface.\n\nThis change removes the check that disallowed the creation of an\nEGLSurface that would send frames to a SurfaceTexture.\n\nChange-Id: I44c6d5df503cc676a88144d72d39b414692ce4c9\n"
    },
    {
      "commit": "5dbf2ed575c424a0d65e70458d5a02eb21872b33",
      "tree": "89ee926b4a18d0abf2464fa2eeec046238c7395e",
      "parents": [
        "a13802d8805c2af2fae4d64e3dee99abd73ecfa9"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Apr 25 16:40:05 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Apr 25 16:40:05 2011 -0700"
      },
      "message": "libgui: Fix the tests so they build.\n\nChange-Id: I7205b0819e5801ac549109ff562c3ab1b113d176\n"
    },
    {
      "commit": "9638e5c167be321643bf3f3ee39e3fb45541fb3b",
      "tree": "ec79a54e7f44db04b4b5cc7f09ba944f6836a258",
      "parents": [
        "2a231f8435dba525c838779e0fd44710ea23cd98"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Apr 20 14:19:32 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Apr 20 14:26:11 2011 -0700"
      },
      "message": "Get rid of the \"pid\" parameter from createSurface\n\nChange-Id: I28635e3f803e6abe965d79998e305f54a202465d\n"
    },
    {
      "commit": "578492e999b3919cfc587024c5f86d6837c3aa7c",
      "tree": "362cb7ad4c104098f8994e6aa03917b95281e1fe",
      "parents": [
        "4af51a14febf0c6caf844f4620c423c6dd46bfab",
        "27cd07ca8006fd80d85379ada416874bfa78aa88"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Apr 18 19:51:26 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 18 19:51:26 2011 -0700"
      },
      "message": "Merge \"changes to SurfaceTexture needed for unification with SF\""
    },
    {
      "commit": "27cd07ca8006fd80d85379ada416874bfa78aa88",
      "tree": "b84ecf49433b440242072cc186ba6944c7b372b7",
      "parents": [
        "7797e647fc8fcd5091b9449c0044f5cb70db5b47"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Apr 11 21:19:55 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Apr 11 21:19:55 2011 -0700"
      },
      "message": "changes to SurfaceTexture needed for unification with SF\n\n- implement connect/disconnect\n- implement missing query\n- handle texture_2d in addition to texture_external_oes\n\nChange-Id: I971a70821f00f22b01f5337de4a7d451177fec4d\n"
    },
    {
      "commit": "5f05f99aaedaba18c426fac287bcb18d56dbe881",
      "tree": "791dab7fb51fb0e49663e9af9f8ac9f44f9242ec",
      "parents": [
        "7797e647fc8fcd5091b9449c0044f5cb70db5b47"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Apr 08 19:10:43 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Apr 08 19:28:04 2011 -0700"
      },
      "message": "Fix a GraphicBuffer leak in SurfaceTexture\n\nThis leak was intentional, it was there to deal with the fact that\nsome gralloc implementations don\u0027t track buffer handles with\nfile-descriptors so buffers needed to stay alive until there were\nregistered, which is not guaranteed by binder transactions.\n\nIn this new implementation, we use a small BBinder holding a\nreference to the buffer, which with tuck into the parcel. This forces\nthe reference to stay alive until the parcel is destroyed, which\nis guaranteed (by construction) to happen after the buffer is\nregistered.\n\nthis allows the public facing API to not expose the previous hack.\n\nChange-Id: I1dd6cd83679a2b7457ad628169e2851acc027143\n"
    },
    {
      "commit": "c8a04b536bb8ad12a87e6dd68d66cff1e7fcd7e7",
      "tree": "8e8018a9898f9785eeef5e8484c93d51cee4f052",
      "parents": [
        "fb96b5ece35ed3c0f3e682d1f9864d7700fe63fc"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Apr 05 15:44:20 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Apr 05 20:11:55 2011 -0700"
      },
      "message": "remove more unused references to ISurface\n\nChange-Id: I2201f1ca2bb8f203a081d94a0134f798778dfbef\n"
    },
    {
      "commit": "e5a1bffd9106b1d82259de1a202e1f2f28742392",
      "tree": "5db6b7eb4b1b32395aae1950e2bcec1c6a80fd4d",
      "parents": [
        "616fb9a38a5b558b1245b0e7f6dc0c4e5ef1a985"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Mar 31 19:10:24 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Apr 01 14:43:35 2011 -0700"
      },
      "message": "SurfaceTexture can now force the client to request a buffer\n\nSurfaceTexture now has the concept of default size a new method,\nsetDefaultBufferSize() to set it. When the default size is\nchanged, dequeueBuffer() will return a value telling the\nclient that it must ask for a new buffer.\n\nThe above only applies if the client has not\noverriden the buffer size with setGeometry.\n\nChange-Id: I520dc40363054b7e37fdb67d6a2e7bce70326e81\n"
    },
    {
      "commit": "696257ccf315a1da042787c5b2d1f80c7146fc94",
      "tree": "39c185c6f97540243e5d071e545343822f46f2cc",
      "parents": [
        "1be6cce70175bd90744498d5fca95e3f9eec1cf6"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Mar 25 18:42:40 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Mar 25 18:42:40 2011 -0700"
      },
      "message": "merge libsurfaceflinger_client into libgui\n\nthis is the first step in unifying surfacetexture and surface.\nfor this reason the header files were not moved, as most of them\nwill eventually go away.\n\nNOTE: currently we keep libsurfaceflinger_client.so as an empty\nlibrary to workaround prebuilt binaries wrongly linking against\nit.\n\nChange-Id: I130f0de2428e8579033dc41394d093f4e1431a00\n"
    },
    {
      "commit": "c5f94d8a4779050125145396ca83fbc862c7ed6b",
      "tree": "83d016c9670032683faa39fda755b236a9010954",
      "parents": [
        "262564df9613e8950fb3828ecc6dfffe79cc1b31"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Feb 18 11:02:42 2011 -0800"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Mar 17 13:10:03 2011 -0700"
      },
      "message": "Add support for timestamps into SurfaceTexture.\n\nAPI addition: The timestamps are represented as nanoseconds from some\narbitrary time point. Like the SurfaceTexture transform matrix, the\ntimestamp retrieved by getTimestamp is for the last frame sent to the\nGL texture using updateTexImage().\n\nCamera HAL change: Expect vendors to set these timestamps using\nnative_window_set_buffers_timestamp().  For now, they are\nautogenerated by SurfaceTextureClient if set_buffers_timestamp() is\nnever called, but such timing is likely not accurate enough to pass a\nCTS test.\n\nbug:3300707\n\nChange-Id: Ife131a0c2a826ac27342e11b8a6c42ff49e1bea7\n"
    },
    {
      "commit": "bae716bc153962c3ac79660bf32e5c50f0de343d",
      "tree": "2ee7aa6eddbd9789b1b561143927c274004e0977",
      "parents": [
        "75597105e6e03f656bdc1e40acac44afb9a3b01b"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Mar 14 15:34:04 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Mar 15 10:37:37 2011 -0700"
      },
      "message": "SurfaceTexture: disallow unsupported uses.\n\nThis change makes the ANativeWindow_lock NDK function error out if it is\npassed an ANativeWindow with a concrete type that is not Surface.  It\nalso makes eglCreateWindowSurface fail if it is passed a\nSurfaceTextureClient as its \u0027window\u0027 argument.\n\nBug: 4087277\nChange-Id: Ie68c50c52d88f72d8a387f6c094908044c83a88c\n"
    },
    {
      "commit": "f95a9f019daa0631e6d6ddc826ad9cfe787c42ce",
      "tree": "8e2998c5efebb67a007cfcbe7f2e110d97abbf92",
      "parents": [
        "c4ca7c511499693f13622b135637f600ec913e57"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Mar 14 15:08:53 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Mar 14 17:47:11 2011 -0700"
      },
      "message": "SurfaceTextureClient: Add ISurfaceTexture getter.\n\nThis change adds a getter method to SurfaceTextureClient to get the\nISurfaceTexture object with which the SurfaceTextureClient is\ncommunicating.\n\nBug: 4086509\nChange-Id: Ifec621e0fe5392a5be56b2348fdc54067cbebcdd\n"
    },
    {
      "commit": "c4ca7c511499693f13622b135637f600ec913e57",
      "tree": "10256c7257fc9c93ee4d53f8cdba2386d7b9a9e6",
      "parents": [
        "122dd0999f09eedbe42e619b64276633bea60e6a"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Mar 14 15:00:06 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Mar 14 17:47:11 2011 -0700"
      },
      "message": "ANativeWindow: add query for the concrete type.\n\nThis change adds a query to the ANativeWindow interface for getting the\nconcrete type of the ANativeWindow.\n\nBug: 4086509\nChange-Id: I64aa86d72fbca3b52a98e1fc35608737781a3178\n"
    },
    {
      "commit": "f3cedb602197a6255e3a7b005cc368577d75bf3a",
      "tree": "6ef1c6c1f18af099260804a44d4f9b3ab4232b98",
      "parents": [
        "6cd4656bf11d45ebac40a382c0c8bcb9a21f00cc"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Thu Mar 10 16:24:46 2011 -0800"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Mar 14 11:30:16 2011 -0700"
      },
      "message": "SurfaceTexture: fix transform matrix computation.\n\nThis change fixes the transform matrix computation in SurfaceTexture\nwhen a crop rectangle is specified by the image producer.  It also adds\na test for this case as well as a basic test for the uncropped case.\n\nBug: 4070775\nChange-Id: I1481c9ce9d08fe7f2bff86d3afdeab7d4002b157\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": "96dcc978430f0daf6d73fee96a01779ed537a0ce",
      "tree": "683c5986dd007030e5a98e57aa6c0764d19da51b",
      "parents": [
        "8e79442c4fdabd2f82d0ed8e23d394816edee495"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Sun Feb 27 14:10:20 2011 -0800"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Feb 28 12:24:40 2011 -0800"
      },
      "message": "Add the MIN_UNDEQUEUED_BUFFERS query to ANW.\n\nThis change adds a new query to ANativeWindow for getting the minimum\nnumber of buffers that must be left un-dequeued during the steady-state\noperation of the ANativeWindow.\n\nChange-Id: Ie8c461fc26b02ecde02ddb4f95bf763662cf1551\nRelated-Bug: 3356050\n"
    },
    {
      "commit": "f7398e2808675d134460196054397237c502891a",
      "tree": "bd04a34d4c259c3f7f43d687cf5382f1ed2fefa5",
      "parents": [
        "e160c7b9f1841ae4a81fc66c36f2f43662bc4128",
        "c7839751aa1de52e0c3aab7dd1518b0fc8f2ee0a"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Feb 07 13:47:02 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Feb 07 13:47:02 2011 -0800"
      },
      "message": "am c7839751: am c2efcd2c: Merge \"Initialize the SurfaceTexture transform fields.\" into honeycomb\n\n* commit \u0027c7839751aa1de52e0c3aab7dd1518b0fc8f2ee0a\u0027:\n  Initialize the SurfaceTexture transform fields.\n"
    },
    {
      "commit": "267222630184d08ba06949d1199a13e2e83fe068",
      "tree": "88157daf6c7e0010d0e70c81f8a554750c86c576",
      "parents": [
        "b85787411085bbea0ac725135cae02a4167b7aa7"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Fri Feb 04 13:46:38 2011 -0800"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Fri Feb 04 13:46:38 2011 -0800"
      },
      "message": "Initialize the SurfaceTexture transform fields.\n\nChange-Id: I2c25f15949253a1dbe493fef440e5ef118c40e71\nrelated-bug: 3426067\n"
    },
    {
      "commit": "a257be1895218e5c3e153313db9dd703fd9cc84f",
      "tree": "457726588b7e414388795ed24f1c38a67dc96dd6",
      "parents": [
        "9d3fb3717f2acec71a3330e448ecf63ee997b1f8",
        "421d94c20321e1de528416b279bf148baba47b39"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Feb 02 16:21:24 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Feb 02 16:21:24 2011 -0800"
      },
      "message": "am 421d94c2: am ecb4b3f0: Merge \"Pass the IGraphicBufferAlloc to SurfaceTextureClient.\" into honeycomb\n\n* commit \u0027421d94c20321e1de528416b279bf148baba47b39\u0027:\n  Pass the IGraphicBufferAlloc to SurfaceTextureClient.\n"
    },
    {
      "commit": "83bac216a7ba8493a7916e40b2555e73c3a5cc1a",
      "tree": "ff57384d2f89f0dd958add05408179b537dc973f",
      "parents": [
        "b799314e64d5afe050aeee394f0c29d7728c1e22"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Feb 02 15:31:47 2011 -0800"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Feb 02 15:31:47 2011 -0800"
      },
      "message": "Pass the IGraphicBufferAlloc to SurfaceTextureClient.\n\nThis change passes a reference to the IGraphicBufferAlloc binder object\nto SurfaceTextureClient objects.  When STC objects are created they\nquery their associated ISurfaceTexture object for the\nIGraphicBufferAlloc that the SurfaceTexture uses to allocate buffers.\nHaving the SurfaceTextureClient hold this reference prevents the\nGraphicBufferAlloc in SurfaceFlinger from freeing the allocated buffers\nbefore the SurfaceTextureClient is done with them.\n\nChange-Id: Ib8e30e8b37fdd60438cbb4cb7e9174d0ba6d661c\nrelated-bug: 3362519\n"
    },
    {
      "commit": "79d01fe8232c67a18aeb8784c2b8783358ec4e44",
      "tree": "43830cfbb9359478145c443a9a5edc44f3abd14f",
      "parents": [
        "a3b5960f6f28a81cd63abd69adcdfb5dcc05aa30"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Jan 26 11:52:02 2011 -0800"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Jan 31 15:35:29 2011 -0800"
      },
      "message": "Clear GL errors before updating a SurfaceTexture.\n\nChange-Id: Ibdac657ae9e9ccae53c63abed9caf1f1513915c2\n"
    },
    {
      "commit": "2ece4cdc3fd0f8a45a889c711dba7165729e8ca5",
      "tree": "a76c7f3eed692edcce369a6ae198202fdd1c7500",
      "parents": [
        "0982dc6488a921d9d54d23b9180a9acf33c61526"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Fri Jan 28 18:21:54 2011 -0800"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Fri Jan 28 18:21:54 2011 -0800"
      },
      "message": "Reset ANativeWindow crop on buffer geometry changes.\n\nThis changes the ANativeWindow API and the two implementations to reset\nthe window\u0027s crop rectangle to be uncropped when the window\u0027s buffer\ngeometry is changed.\n\nBug: 3359604\nChange-Id: I64283dc8382ae687787ec0bebe6a5d5b4a0dcd6b\n"
    },
    {
      "commit": "6913062faabb1eb84e20de1e8e8e42a4932fde70",
      "tree": "22d592dac54c8d236684f2673bbdfc79be208c03",
      "parents": [
        "a9f27fa631ab21d52c75842ccaacc1cbcd75fca0"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Fri Jan 28 12:03:52 2011 -0800"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Fri Jan 28 12:08:18 2011 -0800"
      },
      "message": "Quiet the SurfaceFlingerClient dequeueBuffer error.\n\nThis is a temporary WAR for the case where dequeueBuffer is called when\nall the buffers owned by a SurfaceTexture are not available - either\nthey\u0027re the current texture buffer or the next one.  Currently, an error\nis returned in that case, and this change just prevents that error from\nbeing logged.  In the future this will be fixed to not return an error\nin that case.\n\nBug: 3356050\nChange-Id: Ic6cc304881a63ce134cfd0bcb4265e3e3fa94b6a\n"
    },
    {
      "commit": "376590d668e22a918439877b55faf075427b13f3",
      "tree": "d55b9baf0efec6a49de60786cc996f6ef699d067",
      "parents": [
        "0fb736c0937d9d65001e0176d90e1011226594bf"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Thu Jan 13 14:43:36 2011 -0800"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Sun Jan 16 17:28:39 2011 -0800"
      },
      "message": "Implement SurfaceTexture frame-available callback.\n\nThis change implements the onFrameAvailable callback for the\nSurfaceTexture java class.  It includes the C++ SurfaceTexture code as\nwell as the JNI and Java code to enable the callback.\n\nChange-Id: Ifd8b8e7ad46ee70cba6da1c2e96dab8045d1ea30\n"
    },
    {
      "commit": "0fb736c0937d9d65001e0176d90e1011226594bf",
      "tree": "5473f148978fd8ea96b1583dcfdfbcd5bdcdcaf9",
      "parents": [
        "39de45846cd9431e9fc1ee44591152bc566f9858"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Fri Jan 14 13:53:31 2011 -0800"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Sun Jan 16 16:35:01 2011 -0800"
      },
      "message": "Fix SurfaceTexture transform matrix.\n\nChange-Id: I31520c547cafa5cc85cd0f73883ab3a9ff4648e2\n"
    },
    {
      "commit": "4559ea41d849714aba4dffeeb13aa9ee648b7327",
      "tree": "d20d3a4940600ae1478dd6d722aa28f5dd97cc7c",
      "parents": [
        "a47aa87a19c733e28d9d2db1c4eb7f29d668db7b"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Sat Jan 15 13:05:24 2011 -0800"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Sat Jan 15 17:00:06 2011 -0800"
      },
      "message": "Compare GraphicBuffers using handles.\n\nThis change fixes a bug in SurfaceTextureClient where GraphicBuffers\nwere being compared using pointer comparison rather than handles.\n\nChange-Id: Ib8989af94be32d4efd86e020a732f5143088a863\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": "e8d0e8a77690eca02f15b0d5e628be7cad5d0133",
      "tree": "13b3c48018de1d0fdb0a6fcda12f76b28c56391e",
      "parents": [
        "c15c7a79a69733bd21d6548fd74c2874fdabe7e8"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Jan 12 20:22:41 2011 -0800"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Thu Jan 13 12:19:03 2011 -0800"
      },
      "message": "Add logging to SurfaceTextureClient.\n\nChange-Id: I984c3b9c88f8af613a50138188ff1b770e2de6b4\n"
    },
    {
      "commit": "a7eacc148adec1ee26636a0c727ceefa9e012ba6",
      "tree": "01f4f52af1dde8d748776f32367552378c024d4b",
      "parents": [
        "b0ba48c95ea8768a051100c5adb4c906caa1e080"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Jan 11 15:00:09 2011 -0800"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Jan 12 11:28:38 2011 -0800"
      },
      "message": "Fix a bug in SurfaceTexture::dequeueBuffer.\n\nThis change fixes a bug that allowed the most recently queued buffer to\nbe returned by dequeueBuffer.  At the next updateTexImage call, the\ndequeued buffer would be set as the contents of the texture even though\nthe client could be writing to it.\n\nChange-Id: I53dc14eed13262475627d5551337df57fd78fe00\n"
    },
    {
      "commit": "b598fb90727be45e926a11abefc319819a733540",
      "tree": "12457615a7573c7e2beaab0631ff6d204909d571",
      "parents": [
        "7a8f01abf98b6212358ea0e0401879093d2c0f93"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Sun Jan 09 16:33:17 2011 -0800"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Jan 12 11:28:38 2011 -0800"
      },
      "message": "Implement crop \u0026 transform for SurfaceTexture.\n\nThis change adds support for the setCrop and setTransform methods of the\nSurfaceTexture C++ class.  The crop and transform for the current\ntexture will be accessed by applications as a single texture coordinate\ntransform matrix.\n\nChange-Id: I6482bf96f680e5c175364e848936db3908d6c8f8\n"
    },
    {
      "commit": "d369dc42506ec003f1839bb9e27edada411324b5",
      "tree": "3b4f8881a614aa1e44ff337ee136b8eb8306ed2a",
      "parents": [
        "7dc00d5eb27de41f93a7e232b3cd374c84eb77d1"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Sun Jan 09 13:25:39 2011 -0800"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Sun Jan 09 16:40:06 2011 -0800"
      },
      "message": "Fix a bug in SurfaceTexture::setBufferCount.\n\nWe need to reset mCurrentTexture and mLastQueued in setBufferCount\nbecause it frees all of the buffers associated with the buffer slots.\n\nChange-Id: Ie2f834ec1c07ce7a4ab9b2b5fc5fe8c294010c60\n"
    },
    {
      "commit": "7dc00d5eb27de41f93a7e232b3cd374c84eb77d1",
      "tree": "671efcdf1d3e45b0ba7ad07a1f8db6268464f070",
      "parents": [
        "fd804f31a36c31661859b53bbee1bb408462ddca"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Sun Jan 09 13:24:09 2011 -0800"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Sun Jan 09 16:40:06 2011 -0800"
      },
      "message": "Add method logging to the SurfaceTexture C++ class.\n\nChange-Id: Ic05b05428d34c04634ce9fc3f924ff3322bb2da2\n"
    },
    {
      "commit": "fd804f31a36c31661859b53bbee1bb408462ddca",
      "tree": "2dd795a482e947c107bd33e5dec271b0a220b4d0",
      "parents": [
        "3b4fcbc9f13bab6a2e9e5c37cc5e18fec7341c04"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Fri Jan 07 16:05:47 2011 -0800"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Sun Jan 09 16:40:06 2011 -0800"
      },
      "message": "Initialize the SurfaceTexture buffer slots.\n\nChange-Id: I81a562ad897173f33cd6a2127737718a7db610eb\n"
    },
    {
      "commit": "68e4a7ac849b681b1fb769857fc04f64262480c4",
      "tree": "c13a745fc7c54db14529326e1ade56c44d1b922a",
      "parents": [
        "0a53d5c81b5553d6063b8133492275ce88186978"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Dec 20 11:27:26 2010 -0800"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Thu Jan 06 13:20:47 2011 -0800"
      },
      "message": "Add the SurfaceTexture C++ implementation.\n\nThis change adds the C++ implementation of SurfaceTexture and related\nclasses. The goal of this is for a SurfaceTexture to be passed to\ncamera service or Stagefright in place of a Surface to allow camera\npreview or decoded video frames to be streamed to an OpenGL ES texture\nthat an application can use.\n\nChange-Id: I55c83a7017f1ecb81c9c9e3252cbd118b914296c\n"
    },
    {
      "commit": "36f429d300be2550d7459b488dfc05b00ec59312",
      "tree": "b0140340e8e76a98677b601897c6fc4abd998d1a",
      "parents": [
        "0f5843069bd419fba4fb253986645dfbca0784b7"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Sep 16 21:41:13 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Sep 16 21:41:13 2010 -0700"
      },
      "message": "Fix typo which causes sensors to fail miserably\n\nChange-Id: Ieca18fc089e2bdf7d049f213836971b54d11cd76\n"
    },
    {
      "commit": "4d3cb63b9b9177b79c575ca1b21040cc42ee7879",
      "tree": "d7d00b7efd84dc9b8dcc359f038c734a216f31d9",
      "parents": [
        "ec33b82c42f3dd996a72b80359c87524b51ffb2a"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Sep 16 17:04:16 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Sep 16 17:33:48 2010 -0700"
      },
      "message": "part of fix for [3004226] Cannot end the call - Proximity sensor doesn\u0027t work\n\n- In SensorEventQueue, only bail on errors from Looper::loopOnce\n- Improve sensor error logging\n\nChange-Id: Ib3cf8d5d9fdac8513a3d753155827e0feeda1662\n"
    },
    {
      "commit": "4fe6c3e51be77e35f40872cdbca6c80f8f8b7ecb",
      "tree": "5cbcfad147ad1bf26deb384e41d27f4e6bfcdb80",
      "parents": [
        "c891d2b3529b9cf24ef4781a585cd4784815e711"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Sep 13 23:17:30 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Sep 14 01:59:45 2010 -0700"
      },
      "message": "Replace epoll() with poll() and rename PollLoop to Looper.\n\nAs part of this change, consolidated and cleaned up the Looper API so\nthat there are fewer distinctions between the NDK and non-NDK declarations\n(no need for two callback types, etc.).\n\nRemoved the dependence on specific constants from sys/poll.h such as\nPOLLIN.  Instead looper.h defines events like LOOPER_EVENT_INPUT for\nthe events that it supports.  That should help make any future\nunder-the-hood implementation changes easier.\n\nFixed a couple of compiler warnings along the way.\n\nChange-Id: I449a7ec780bf061bdd325452f823673e2b39b6ae\n"
    },
    {
      "commit": "42c03e579aade011b451e2a13ea3f44a2ef0056a",
      "tree": "1716fbd88e2beb816d303c3d3fa0ca1785b8db61",
      "parents": [
        "6e86915e8f5dfffa60ae5d1a4ca9aa74912fd026"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Sep 07 15:28:30 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Sep 07 15:46:55 2010 -0700"
      },
      "message": "Modify native ALooper to take an explicit ident.\n\nThe ALooper API now uses an explicit \"identifier\" for the integer\nthat is returned rather than implicitly using the fd.  This allows\nthe APIs that had the fd to be a little more sane.\n\nChange-Id: I8507f535ad484c0bdc4a1bd016d87bb09acd7ff0\n"
    },
    {
      "commit": "050b56244ff46d43e4886018d7cd20f0b1dc02b9",
      "tree": "1c0cfcd08dbd18b386bebe5dd2cbeb1c945ccbda",
      "parents": [
        "3fb627525e077fa5452a99ac1e2a7e9c41995044"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jul 29 16:51:38 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jul 29 18:18:00 2010 -0700"
      },
      "message": "Added SensorManager.getMinDelay()\n\nExposed the new \"min delay\" sensor property through native and\njava sensor apis. This allows the caller to know what is the\nmaximum rate at which a sensor can return events, or, if a sensor\nworks in \"update\" mode (events returned only when the value changes).\n\nAlso augmented SensorManager.regusterSensorEvent() so that it can\naccept a value in microsecond in addition to the 4 constants already\ndefined.\n\nChange-Id: If425e9979892666df8c989d7de3c362230fa19e0\n"
    },
    {
      "commit": "b54a3c95801da5464bbfcbb551545b543ca4d46c",
      "tree": "4ad702a20a858ec5951c6e7c277a0cc73a684fe5",
      "parents": [
        "efba8bf53aa6d0efb8cf778aaa63a482b813d2b1"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jul 22 18:57:41 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jul 22 18:57:41 2010 -0700"
      },
      "message": "Fix a memory corruption when writting Sensor into a parcel\n\nChange-Id: I03f703ae2224f43924031bfea4c68aa979bb9f05\n"
    },
    {
      "commit": "23e8de26b7b3d04daf08526f314c2fdd2f8fee65",
      "tree": "239037f931ad847efc861c12c94b68c855a894d6",
      "parents": [
        "5df13ef30e7dd58e4e718e6d949ac3d1f5af94e0"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 21 15:59:50 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 21 16:09:39 2010 -0700"
      },
      "message": "propagate sensor event rate properly\n\nChange-Id: I32e67d30e4295285a6827956cc8161b2025d70bc\n"
    },
    {
      "commit": "1bf797857e025e8a71db86fb9e79765a767ec1eb",
      "tree": "e8d1aabae069f2b7368be746b99667eb150363f5",
      "parents": [
        "ff7049ab2886acc73e145367118646f7741ce333"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 14 23:41:37 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jul 19 17:57:29 2010 -0700"
      },
      "message": "new SensorService\n\nremove old sensor service and implement SensorManager\non top of the new (native) SensorManger API.\n\nChange-Id: Iddb77d498755da3e11646473a44d651f12f40281\n"
    },
    {
      "commit": "b957b9d63c88efd3a961759424987b99219adeed",
      "tree": "930432d7a5ca739d27d494734de339a938ec7fb6",
      "parents": [
        "e558010a623ead3564fe4d656a5963bf05c17edd"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jul 13 22:21:56 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jul 13 22:21:56 2010 -0700"
      },
      "message": "first step at implementing the native sensor support\n\nin this commit:\n- implemented the C stub\n- implemented the binder interfaces involved\n- implemented most of the C++ client side\n\nmissing:\n- SensorManager cannot connect to the SensorServer yet\n(because there is no SensorServer yet)\n\nChange-Id: I75010cbeef31c98d6fa62fd5d388dcef87c2636b\n"
    }
  ]
}
