)]}'
{
  "log": [
    {
      "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": "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": "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": "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": "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"
    }
  ]
}
