)]}'
{
  "log": [
    {
      "commit": "4ceff3d5efd27c164788bb2b3f0fd17c691a0204",
      "tree": "64abf1f1bd7b0795ca8bac27f22c60a018177dc1",
      "parents": [
        "56968ec0bfbe70b76193a2614a23beacfc9cf9dc"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Aug 21 15:23:15 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Aug 21 15:25:50 2013 -0700"
      },
      "message": "screenshot layers wouldn\u0027t work in some cases\n\nspecifically when the display size and the screenshot window\nsize didn\u0027t match, the buffer would be rejected.\nWe simply fix this by setting the scalling mode to\n\"SCALE_TO_WINDOW\".\n\nBug: 9992306\nChange-Id: Ib821767899af330bb70d3cbbfa7d41b02794a075\n"
    },
    {
      "commit": "56968ec0bfbe70b76193a2614a23beacfc9cf9dc",
      "tree": "38aaf2c4507e3ad4ad11ae67f8e3cc2909126346",
      "parents": [
        "a525483dc73df39a72c9b4865102a86704b3622c",
        "1d6b97c869718001010cce3db387c73fd11bf32e"
      ],
      "author": {
        "name": "Dmitry Shmidt",
        "email": "dimitrysh@google.com",
        "time": "Wed Aug 21 19:35:25 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 21 19:35:25 2013 +0000"
      },
      "message": "Merge \"dumpstate: Fix wifi list of networks dump\" into klp-dev"
    },
    {
      "commit": "a525483dc73df39a72c9b4865102a86704b3622c",
      "tree": "f9483fd28065be4fd22b4bdcaa09d64d940b8530",
      "parents": [
        "d2cf8c2f07b4285a224acd262e6f052c37dbc0b0",
        "0e8f1443b87f9009159cef6394de48894f98f826"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Aug 21 18:55:19 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 21 18:55:19 2013 +0000"
      },
      "message": "Merge \"Fix a bug where non-cropped layer could be scaled incorrectly\" into klp-dev"
    },
    {
      "commit": "1d6b97c869718001010cce3db387c73fd11bf32e",
      "tree": "8a30c4205a2c193729bd64344705b4d2ececdea7",
      "parents": [
        "d2cf8c2f07b4285a224acd262e6f052c37dbc0b0"
      ],
      "author": {
        "name": "Dmitry Shmidt",
        "email": "dimitrysh@google.com",
        "time": "Wed Aug 21 10:58:29 2013 -0700"
      },
      "committer": {
        "name": "Dmitry Shmidt",
        "email": "dimitrysh@google.com",
        "time": "Wed Aug 21 10:58:29 2013 -0700"
      },
      "message": "dumpstate: Fix wifi list of networks dump\n\nBug: 9056601\n\nChange-Id: Ia0adb67afdf3d478033d0ee34bbb95e621e2fe51\nSigned-off-by: Dmitry Shmidt \u003cdimitrysh@google.com\u003e\n"
    },
    {
      "commit": "d2cf8c2f07b4285a224acd262e6f052c37dbc0b0",
      "tree": "7b1f005ff51e0f1cbe238eb905aa69bf053d7853",
      "parents": [
        "7127d17db148ad388a4eb3c152d4c257c6015476",
        "028dc8f2d72bc7cd4fbe7808781443125a742f78"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Wed Aug 21 14:38:51 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 21 14:38:51 2013 +0000"
      },
      "message": "Merge \"Provide HWC prepare with a valid output buffer\" into klp-dev"
    },
    {
      "commit": "7127d17db148ad388a4eb3c152d4c257c6015476",
      "tree": "497101be79d8b2fe398040d31c371f43159ee23c",
      "parents": [
        "32551478fc5417d3b7b5e33a202eb6ca66061f7d",
        "353ddc6e77816352107537c215dc8302f6e8587a"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Wed Aug 21 14:37:50 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 21 14:37:51 2013 +0000"
      },
      "message": "Merge \"Fix HWComposer dumping of float source crops\" into klp-dev"
    },
    {
      "commit": "32551478fc5417d3b7b5e33a202eb6ca66061f7d",
      "tree": "15af2f2aed316ec18085949c236f37851c4d4f2b",
      "parents": [
        "4f4f0943489d9113c66ac22b58cfba8c21dfa879",
        "22a99f0fc2884227b9d7e46959fcbe6270667efb"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Wed Aug 21 14:31:34 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 21 14:31:35 2013 +0000"
      },
      "message": "Merge \"Fix virtual displays for HWC 1.0\" into klp-dev"
    },
    {
      "commit": "0e8f1443b87f9009159cef6394de48894f98f826",
      "tree": "182527e8cdd24dab9319b7d58c0bf2a1c598348f",
      "parents": [
        "4f4f0943489d9113c66ac22b58cfba8c21dfa879"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 20 21:41:07 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 20 21:46:45 2013 -0700"
      },
      "message": "Fix a bug where non-cropped layer could be scaled incorrectly\n\nIf a layer is not cropped but its bounds are outside of the\nviewport (i.e.: clipped), the crop rectangle passed to\nhw composer would be invalid because it started invalid\nin the first place (to indicate \"no crop\").\n\nBug: 10410944\nChange-Id: I4ae4d49a1adef0be7fa4304ecf84b1a5b7d03fe0\n"
    },
    {
      "commit": "028dc8f2d72bc7cd4fbe7808781443125a742f78",
      "tree": "b0e255599a9034e1981971dd13ec03b49c9a30a0",
      "parents": [
        "353ddc6e77816352107537c215dc8302f6e8587a"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Tue Aug 20 16:35:32 2013 -0700"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Tue Aug 20 16:35:32 2013 -0700"
      },
      "message": "Provide HWC prepare with a valid output buffer\n\nWe weren\u0027t dequeing and setting the output buffer until just before\nset(). This didn\u0027t allow HWC to make decisions in prepare() based on\nthe output buffer format, dimensions, etc.\n\nNow we dequeue the output buffer at the beginning of the composition\nloop and provide it to HWC in prepare. In GLES-only rendering, we may\nhave to cancel the buffer and acquire a new one if GLES requests a\nbuffer with properties different than the one we already dequeued.\n\nBug: 10365313\nChange-Id: I96b4b0a851920e4334ef05080d58097d46467ab8\n"
    },
    {
      "commit": "353ddc6e77816352107537c215dc8302f6e8587a",
      "tree": "00f39549b94fa53fa63b9e8cf52501d5925e3f8f",
      "parents": [
        "8b308ed70ed782f68c8075aac2a6b66bbfcdb9af"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Tue Aug 20 16:11:50 2013 -0700"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Tue Aug 20 16:11:50 2013 -0700"
      },
      "message": "Fix HWComposer dumping of float source crops\n\nChange-Id: I45a9344b5fab17ccb54bebd01382d738a03860e6\n"
    },
    {
      "commit": "22a99f0fc2884227b9d7e46959fcbe6270667efb",
      "tree": "0121fe12b35a2e835c8472a4e206978d580adf9d",
      "parents": [
        "90f59bf9eba79b27629505bc2709d84e7c811c8b"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Tue Aug 20 16:04:47 2013 -0700"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Tue Aug 20 16:04:47 2013 -0700"
      },
      "message": "Fix virtual displays for HWC 1.0\n\nWe weren\u0027t swapping the buffers.\n\nBug 10366404\n\nChange-Id: I43eb7648231bedf24899da6fc0d9acc09e0b047e\n"
    },
    {
      "commit": "4f4f0943489d9113c66ac22b58cfba8c21dfa879",
      "tree": "7b99150e05f5949dfff2fd66f8cf9ca6ce486655",
      "parents": [
        "8b308ed70ed782f68c8075aac2a6b66bbfcdb9af"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Aug 19 17:26:18 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 20 11:16:45 2013 -0700"
      },
      "message": "SurfaceFlinger now runs in the process\u0027s main thread\n\nit used to spawn its own thread and return the main thread\nto the binder thread pool -- this was confusing the naming\nof things in the kernel.\n\nBug: 10331839\n\nChange-Id: I2d13a6d73409a38109300fcbe6a04b4c41cb5d00\n"
    },
    {
      "commit": "8b308ed70ed782f68c8075aac2a6b66bbfcdb9af",
      "tree": "4aed3f0744967e55dedd158bbe8d4ebd18676971",
      "parents": [
        "90f59bf9eba79b27629505bc2709d84e7c811c8b"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Mon Aug 19 08:56:07 2013 -0700"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Mon Aug 19 08:56:07 2013 -0700"
      },
      "message": "Fix build\n\nNeglected the \"checkbuild\"-built tests.\n\nChange-Id: I202692f1a6d1e306c88e820c959d07d16e7c6a00\n"
    },
    {
      "commit": "90f59bf9eba79b27629505bc2709d84e7c811c8b",
      "tree": "0488c6d7cd51a887391ba63c0a3593b34537ede2",
      "parents": [
        "7c6278de6e2aed171362012d578d8bd093c8f280",
        "3c25621ad7d13f64d3ab95a27fa970fbc9998f73"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Mon Aug 19 14:27:28 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 19 14:27:28 2013 +0000"
      },
      "message": "Merge \"Re-enable frame dropping for non-auto timestamps\" into klp-dev"
    },
    {
      "commit": "7c6278de6e2aed171362012d578d8bd093c8f280",
      "tree": "aaa91573911f93b9c52783d90d349919c2de2431",
      "parents": [
        "0f05a926647389551aba6b8cfac37aaf73e8bad8",
        "9e663de4fe1dcc872373ee530c60a375624671c3"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Sun Aug 18 04:31:24 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Aug 18 04:31:24 2013 +0000"
      },
      "message": "Merge \"Use new HWC display type/count constants.\" into klp-dev"
    },
    {
      "commit": "0f05a926647389551aba6b8cfac37aaf73e8bad8",
      "tree": "dae6b957eef19bd954ef76f221ed837bcae7e2cb",
      "parents": [
        "a33b62cc4700c68a3481d415a55e1a7b688981e1",
        "49457ac092071a8f964f7f69156093657ccdc3d0"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sat Aug 17 00:40:19 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Aug 17 00:40:19 2013 +0000"
      },
      "message": "Merge \"Encapsulate textures into their own Texture class\" into klp-dev"
    },
    {
      "commit": "49457ac092071a8f964f7f69156093657ccdc3d0",
      "tree": "f262348cf3229b216f0004e9c026fb3216e735cf",
      "parents": [
        "e048a4374c4e355c361f5eec0482ac85df0c73fe"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Aug 14 18:20:17 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Aug 16 16:29:02 2013 -0700"
      },
      "message": "Encapsulate textures into their own Texture class\n\nthe main reason for doing this is so that we can have\naccess to informations about a texture (like its dimension)\nclose to where we generate and use shaders in ES 2.0.\nPreviously, there wasn\u0027t any way to get to a texture\u0027s size\nfrom a RenderEngine implementation.\n\nBug: 8679321\n\nChange-Id: I388b338a70d07e3e8177dde248710ea1e4c82dff\n"
    },
    {
      "commit": "3c25621ad7d13f64d3ab95a27fa970fbc9998f73",
      "tree": "2115e7f38faf3ac66c885f9be003d2fc1082220a",
      "parents": [
        "a33b62cc4700c68a3481d415a55e1a7b688981e1"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Fri Aug 16 14:55:39 2013 -0700"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Fri Aug 16 15:15:16 2013 -0700"
      },
      "message": "Re-enable frame dropping for non-auto timestamps\n\nThis change adds an entire field to note whether the timestamp was\nauto-generated by Surface or supplied by the application.\n\nThe value is used when deciding whether or not to drop frames based\non buffer presentation timestamps.  If a desired presentation time\nwas set explicitly, BufferQueue will use that value to decide if a\nframe should be dropped.  If the timestamp was generated by Surface\nat the time the buffer was queued, the timestamp is ignored.\n\nBug 10151804\n\nChange-Id: Ibd571a7578351063b813cbdad2ddbeed70655ba5\n"
    },
    {
      "commit": "a33b62cc4700c68a3481d415a55e1a7b688981e1",
      "tree": "6d02d75564ab6fc8d3dab516c1401c8bfd5d6a3d",
      "parents": [
        "e60a0b1e6a29d79b4d0ec0374446cb829bcadee4",
        "bc2a90b024db82e3a277e5b366da17e00b21d98b"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Fri Aug 16 21:50:22 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 16 21:50:22 2013 +0000"
      },
      "message": "Merge \"Replace sRGB_888 with sRGB_X_8888\" into klp-dev"
    },
    {
      "commit": "9e663de4fe1dcc872373ee530c60a375624671c3",
      "tree": "6ebc930f8a2626a56a19ffe033890c95d1da036e",
      "parents": [
        "e048a4374c4e355c361f5eec0482ac85df0c73fe"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Fri Aug 16 14:28:37 2013 -0700"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Fri Aug 16 14:28:37 2013 -0700"
      },
      "message": "Use new HWC display type/count constants.\n\nChange-Id: I774d0c68906ac6dc69268f708c30a6b0868b8816\n"
    },
    {
      "commit": "e60a0b1e6a29d79b4d0ec0374446cb829bcadee4",
      "tree": "1ff2a5a2450b0ae7d1aa9ddafd7be7b0f82123cb",
      "parents": [
        "e048a4374c4e355c361f5eec0482ac85df0c73fe",
        "a5b7513711555c8681eb9391cfafe30fb7d6dd3d"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Aug 16 21:02:01 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 16 21:02:02 2013 +0000"
      },
      "message": "Merge \"gui: CpuConsumer::lockNextBuffer change return code when too many bufs acquired\" into klp-dev"
    },
    {
      "commit": "bc2a90b024db82e3a277e5b366da17e00b21d98b",
      "tree": "7e7e63e795a2e13d6065209e2702e27c61401a2e",
      "parents": [
        "e048a4374c4e355c361f5eec0482ac85df0c73fe"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Fri Aug 16 07:50:11 2013 -0700"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Fri Aug 16 07:50:11 2013 -0700"
      },
      "message": "Replace sRGB_888 with sRGB_X_8888\n\nBug: 10357459\nChange-Id: I3a1d92cce2c9d3e930408129fb20887276fffddc\n"
    },
    {
      "commit": "e048a4374c4e355c361f5eec0482ac85df0c73fe",
      "tree": "4837d48a23296dcdc2c90285fa231600961157a9",
      "parents": [
        "e0ec2a956840fa70387883f422b6020c1dfc6bad",
        "c2e41222bf02a6579763974f82d65875cfa43481"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Thu Aug 15 23:17:49 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 15 23:17:49 2013 +0000"
      },
      "message": "Merge \"Add support for EGL_KHR_gl_colorspace\" into klp-dev"
    },
    {
      "commit": "e0ec2a956840fa70387883f422b6020c1dfc6bad",
      "tree": "6a0b7868815a4fbe4fe56eac6efd9cadee7828ab",
      "parents": [
        "2eaefe198a0cae1ee0b6366797a6b074c76df9ef",
        "458197de008be8fe561286b09f4edddb2f5c540a"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Aug 15 23:12:26 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 15 23:12:26 2013 +0000"
      },
      "message": "Merge \"Fix ES2 composition on some devices\" into klp-dev"
    },
    {
      "commit": "2eaefe198a0cae1ee0b6366797a6b074c76df9ef",
      "tree": "5cae5b8aeda6fe703063afaa1c1e43930eca2331",
      "parents": [
        "6db4ff621898573b41abf570271a04a13bd36a69"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Aug 14 16:33:27 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Aug 15 15:11:01 2013 -0700"
      },
      "message": "Simplify handling of opaque layers in shader generation\n\njust ensure the alpha value is 1.0 in the opaque case\nwhen reading the color from the texture or the\nglobal color.\n\nBug: 8679321\n\nChange-Id: Ia38b30e97c3bce5a2d534a40c0d66e0bfc3ea40d\n"
    },
    {
      "commit": "458197de008be8fe561286b09f4edddb2f5c540a",
      "tree": "5ea0e30f1fc4152ecfcb80b2b25dedc2acbdb3fa",
      "parents": [
        "6db4ff621898573b41abf570271a04a13bd36a69"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Aug 15 14:56:51 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Aug 15 14:56:51 2013 -0700"
      },
      "message": "Fix ES2 composition on some devices\n\n- turns out fragment shaders don\u0027t have default precision by default\n- GLES 1.x extensions that became core in GLES 2.0 don\u0027t always work\n  as extensions in GLES 2.0 (!)\n\nBug: 8679321\nChange-Id: I5a4a93e158247910399325a965af5d2e3bbece9b\n"
    },
    {
      "commit": "6db4ff621898573b41abf570271a04a13bd36a69",
      "tree": "9275ab37a0242876278d23818535fb2e2774d10f",
      "parents": [
        "892f22dcb96927b4a4f9ab7badd6f2c9f4f37c1f"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Thu Aug 15 10:39:11 2013 -0700"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Thu Aug 15 10:39:11 2013 -0700"
      },
      "message": "Disable GLES 2.x rendering\n\nBug 10340705\n\nChange-Id: I91f3baf0d79655d8d031c100d0b116f745c2fbef\n"
    },
    {
      "commit": "892f22dcb96927b4a4f9ab7badd6f2c9f4f37c1f",
      "tree": "625971e4e8506efde64918f534d633e866556b6e",
      "parents": [
        "5bbe0ab655713849fbfe750d4d09690106f95d7f"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Thu Aug 15 10:05:01 2013 -0700"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Thu Aug 15 10:05:01 2013 -0700"
      },
      "message": "Initialize mIndent\n\nBug 10334731\n\nChange-Id: Ia3aa118a1516cc480b0d85179b78c4447f982dd6\n"
    },
    {
      "commit": "a5b7513711555c8681eb9391cfafe30fb7d6dd3d",
      "tree": "02e0c24fd8f010996887a97ed98ec8d4206f6401",
      "parents": [
        "c6bae007e6e29b585fc1207f84b378a480006173"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Aug 14 18:49:12 2013 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Aug 14 20:17:17 2013 -0700"
      },
      "message": "gui: CpuConsumer::lockNextBuffer change return code when too many bufs acquired\n\n- Return NOT_ENOUGH_DATA instead of INVALID_OPERATION when too many\n  buffers have already been locked.\n- INVALID_OPERATION is nominally used when something irrecoverable happens,\n  but in this case the client just needs to call unlockBuffer to go back into a\n  good state.\n\nBug: 10333400\nChange-Id: I3a034d77de85741429f832a90eedd670afa1dc94\n"
    },
    {
      "commit": "5bbe0ab655713849fbfe750d4d09690106f95d7f",
      "tree": "f8cf500b3450b8f33177662c8a2490fb44482da2",
      "parents": [
        "c6bae007e6e29b585fc1207f84b378a480006173"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Aug 14 18:22:02 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Aug 14 18:22:02 2013 -0700"
      },
      "message": "fix build. optional test broke.\n\nChange-Id: I0ed5e2cd4c8945ee95673ed0eec5820d9def5097\n"
    },
    {
      "commit": "c6bae007e6e29b585fc1207f84b378a480006173",
      "tree": "bced818dffaf78dbf72c2e5b5531ef386d43d2d1",
      "parents": [
        "b2620900a8be578dd3358606b26048a72bb2eb2d"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Aug 14 16:26:43 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Aug 14 16:27:19 2013 -0700"
      },
      "message": "Fix build. optional tests were broken.\n\nChange-Id: Iba9f5cb57f134559e1f9c55e293578d9f5d8cb96\n"
    },
    {
      "commit": "b2620900a8be578dd3358606b26048a72bb2eb2d",
      "tree": "c2d8040a5e904cda9a23811e9eac980d787f6c7c",
      "parents": [
        "56f825e7ab9f83706a74dcd4825c7bc839e49ae4",
        "5cdc8994a0ecd751a6350b16a1bef8b6b0d09b11"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Aug 14 22:43:25 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 14 22:43:25 2013 +0000"
      },
      "message": "Merge \"don\u0027t reallocate the mesh each time we use it\" into klp-dev"
    },
    {
      "commit": "56f825e7ab9f83706a74dcd4825c7bc839e49ae4",
      "tree": "2b9ce897a97bf75e7e6ee2bda38f4be6bf417134",
      "parents": [
        "5025593d0ee6bf6d03121d9c42623bae0f131c9d",
        "3f84483382be2d528918cc1a6fbc6a7d68e0b181"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Aug 14 22:42:51 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 14 22:42:52 2013 +0000"
      },
      "message": "Merge \"SurfaceFlinger now uses GLES 2.x when available\" into klp-dev"
    },
    {
      "commit": "5cdc8994a0ecd751a6350b16a1bef8b6b0d09b11",
      "tree": "dd59d9f3e94274d6d8cf46fb28780a78392a3e4f",
      "parents": [
        "3f84483382be2d528918cc1a6fbc6a7d68e0b181"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 13 20:51:23 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 13 20:51:23 2013 -0700"
      },
      "message": "don\u0027t reallocate the mesh each time we use it\n\nthe Mesh object can be part of each Layer (at least currently).\nalso reworked the Mesh code a bit to make it easier to access\nthe vertex data.\n\nChange-Id: I0490851ba898f0aa2e55b62958dcd8bdb535e98b\n"
    },
    {
      "commit": "5025593d0ee6bf6d03121d9c42623bae0f131c9d",
      "tree": "a4ed154349513f014baee33d936942c6f3840e8c",
      "parents": [
        "5ff5a84e4829bad9eb44cc9a32d8579ca089051b",
        "4f5b9a701b3d480ae4437ec60062ecb6c94446ee"
      ],
      "author": {
        "name": "Todd Poynor",
        "email": "toddpoynor@google.com",
        "time": "Wed Aug 14 00:22:41 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 14 00:22:41 2013 +0000"
      },
      "message": "Merge \"dumpstate: switch to HAL static libraries\" into klp-dev"
    },
    {
      "commit": "4f5b9a701b3d480ae4437ec60062ecb6c94446ee",
      "tree": "1a4b3fda26aa4945c4f48cc1776c47c02267ff84",
      "parents": [
        "6f23562e0c112bc5c6159c745d8af755cc530d77"
      ],
      "author": {
        "name": "Todd Poynor",
        "email": "toddpoynor@google.com",
        "time": "Tue Aug 13 16:30:01 2013 -0700"
      },
      "committer": {
        "name": "Todd Poynor",
        "email": "toddpoynor@google.com",
        "time": "Tue Aug 13 16:30:01 2013 -0700"
      },
      "message": "dumpstate: switch to HAL static libraries\n\nChange-Id: I865a0b4b4a84a2d54a239e7b09874287f0c1ad56\n"
    },
    {
      "commit": "3f84483382be2d528918cc1a6fbc6a7d68e0b181",
      "tree": "81de0907cd7d64eea68e50539b82dc9d70c9f793",
      "parents": [
        "5ff5a84e4829bad9eb44cc9a32d8579ca089051b"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Aug 07 21:24:32 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 13 16:07:45 2013 -0700"
      },
      "message": "SurfaceFlinger now uses GLES 2.x when available\n\nBug: 8679321\n\nChange-Id: I2b152d01fb4e2de2ea9fe87f1ddbd6826d7520d7\n"
    },
    {
      "commit": "5ff5a84e4829bad9eb44cc9a32d8579ca089051b",
      "tree": "5064e430ccee3c0c7978abcc20590e5ab029d01b",
      "parents": [
        "6f23562e0c112bc5c6159c745d8af755cc530d77"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 13 15:55:43 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 13 15:58:38 2013 -0700"
      },
      "message": "allow \"system\" screenshots even when the secure flag is set\n\nwe need too allow this case so that things like the rotation\nanimation can work.\nwith this change we only permit these screenshot if the\ndestination is SurfaceFlinger itself.\n\nBug: 10235036\nChange-Id: I66fea5391e52b0d7f17f25827572b236f2d9eb71\n"
    },
    {
      "commit": "c2e41222bf02a6579763974f82d65875cfa43481",
      "tree": "357d0cb44ab16d7037cae33426191945727a8ef8",
      "parents": [
        "6f23562e0c112bc5c6159c745d8af755cc530d77"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Thu Aug 08 13:40:22 2013 -0700"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Tue Aug 13 12:10:51 2013 -0700"
      },
      "message": "Add support for EGL_KHR_gl_colorspace\n\nChange-Id: I684d0b8556cd6c84ee4b4d67e1bb95c3b96fccfb\n"
    },
    {
      "commit": "6f23562e0c112bc5c6159c745d8af755cc530d77",
      "tree": "f079b0889ab7ab2ae709efdc5fa2837127072a49",
      "parents": [
        "45155969dc747d09d267cd1f22baf0eaf886a801",
        "ea4fdd4beb83ab7019753a144d9afac6728dd3ee"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Tue Aug 13 18:33:07 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 13 18:33:07 2013 +0000"
      },
      "message": "Merge \"Don\u0027t swallow eglCreateContext errors\" into klp-dev"
    },
    {
      "commit": "45155969dc747d09d267cd1f22baf0eaf886a801",
      "tree": "37b76acca7ab38136d805d5eb56c3227e8cda1b6",
      "parents": [
        "96a7dc08f2d504800b84b86eb9f480bd463b618d"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Aug 08 18:16:21 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Aug 12 23:45:28 2013 -0700"
      },
      "message": "make sure GLConsumer::releaseTexImage() works after detachFromContext()\n\nChange-Id: I27e0bc57e927d47b2b98113ee37b5396bcc72019\n"
    },
    {
      "commit": "ea4fdd4beb83ab7019753a144d9afac6728dd3ee",
      "tree": "605c1df33cfe41d36c76c98a7419a43698cfca31",
      "parents": [
        "96a7dc08f2d504800b84b86eb9f480bd463b618d"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Mon Aug 12 16:43:34 2013 -0700"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Mon Aug 12 16:43:34 2013 -0700"
      },
      "message": "Don\u0027t swallow eglCreateContext errors\n\nIf the implementation eglCreateContext failed, we called\neglGetError(), so we could check that it set the EGL error properly.\nBut since we\u0027d already called this, when the app called eglGetError()\nit would get EGL_SUCCESS!\n\nBug: 10181333\nChange-Id: Ic45d3a8fcb8c4421e04844c6d2f52761790b5948\n"
    },
    {
      "commit": "96a7dc08f2d504800b84b86eb9f480bd463b618d",
      "tree": "06168a9a64e61ea0f80cb3b534de414d0c46ad0a",
      "parents": [
        "9870c9b66cc73ee31aabba23aa06deaf673ee5ef",
        "a6bb107434ad36739c21e1f72ac8d0107808a7b9"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Aug 09 04:41:19 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 09 04:41:19 2013 +0000"
      },
      "message": "Merge \"make sure we have a context when creating the 1st surface\" into klp-dev"
    },
    {
      "commit": "9870c9b66cc73ee31aabba23aa06deaf673ee5ef",
      "tree": "81899233549379983a353d4bdb2564e0112b2c16",
      "parents": [
        "6c913be9ca95fd6b556d056e165a4ba6dc69795b"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Aug 08 17:46:48 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Aug 08 17:46:48 2013 -0700"
      },
      "message": "make GLConsumer\u0027s debug texture static\n\nthis is so that we don\u0027t burn a gralloc handle and a bit\nof memory per GLConsumer.\n\nChange-Id: I30c3e7ec45d7f1b5426aca8e06c7716870877706\n"
    },
    {
      "commit": "a6bb107434ad36739c21e1f72ac8d0107808a7b9",
      "tree": "8eeb40df019b998c12f5d3543bf215f5e53d044e",
      "parents": [
        "6c913be9ca95fd6b556d056e165a4ba6dc69795b"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Aug 07 20:10:20 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Aug 08 16:38:06 2013 -0700"
      },
      "message": "make sure we have a context when creating the 1st surface\n\nalso add an option to dump the stack trace when\ncalling a GL function without a context.\n\nChange-Id: I57b72bb8c322ac4253c3077bf150621bd9863b69\n"
    },
    {
      "commit": "6c913be9ca95fd6b556d056e165a4ba6dc69795b",
      "tree": "e6a1bc9d78a1a7eef75dd736ddf302357cc8987a",
      "parents": [
        "74020ca133095e1dff635ee74d9e9657d0ceac3b"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Thu Aug 08 12:15:49 2013 -0700"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Thu Aug 08 13:12:29 2013 -0700"
      },
      "message": "Add ISurfaceComposer::destroyDisplay\n\nBug: 10191053\nChange-Id: Ia89286f95421344a60ffedaaca5825c4e3cd7f9e\n"
    },
    {
      "commit": "74020ca133095e1dff635ee74d9e9657d0ceac3b",
      "tree": "3916a96b0a20b7c27edb08a8ed4113861bea3217",
      "parents": [
        "0de07adb0257f332c48f94ba37db2cb6d54865c6",
        "45263e2475ac6a885dbd78eff7d4e44f374e5237"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Aug 07 20:36:07 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 07 20:36:07 2013 +0000"
      },
      "message": "Merge \"don\u0027t hardcode debug texture dimensions\""
    },
    {
      "commit": "45263e2475ac6a885dbd78eff7d4e44f374e5237",
      "tree": "edd9f9b5a0a4155cc16880fa99cef1e439fc0a52",
      "parents": [
        "5f51ed9499508ecda2d44c794a258fe6f5e22149"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Aug 07 13:35:20 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Aug 07 13:35:20 2013 -0700"
      },
      "message": "don\u0027t hardcode debug texture dimensions\n\nChange-Id: I356333801d246a8cafb3e977a77dc7325e8b822d\n"
    },
    {
      "commit": "0de07adb0257f332c48f94ba37db2cb6d54865c6",
      "tree": "ad6ebef0412e08aedf82d6564db83df161a98147",
      "parents": [
        "b98240cc6ca8fe60b93bfc0d2f6e49c66329f8ff",
        "046b72fc5d93aae3b47b88b9f6683512d01d75d0"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Aug 07 13:18:51 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 07 13:18:51 2013 -0700"
      },
      "message": "am 046b72fc: Merge \"fix a possible deadlock when removing a layer and destroying a client\"\n\n* commit \u0027046b72fc5d93aae3b47b88b9f6683512d01d75d0\u0027:\n  fix a possible deadlock when removing a layer and destroying a client\n"
    },
    {
      "commit": "b98240cc6ca8fe60b93bfc0d2f6e49c66329f8ff",
      "tree": "ad6ebef0412e08aedf82d6564db83df161a98147",
      "parents": [
        "43c2718b3fb404d72d711eb37d5c5d10edc97605"
      ],
      "author": {
        "name": "Todd Poynor",
        "email": "toddpoynor@google.com",
        "time": "Tue Jul 30 19:12:10 2013 -0700"
      },
      "committer": {
        "name": "Todd Poynor",
        "email": "toddpoynor@google.com",
        "time": "Wed Aug 07 18:30:13 2013 +0000"
      },
      "message": "batteryservice: add battery current now and charge counter data\n\nChange-Id: I4b3ea25342d4a03a8e38bfee2ef3b1ce54f82582\n"
    },
    {
      "commit": "43c2718b3fb404d72d711eb37d5c5d10edc97605",
      "tree": "6cbab2db0351b69cbc8fb126e0ed2e427eb49de3",
      "parents": [
        "ff866e7642033d8f68c11eaa16d0afcecf0bab5b",
        "21558daf691dbcdff4a41e659fd013273db4d0b7"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Wed Aug 07 15:23:02 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 07 15:23:05 2013 +0000"
      },
      "message": "Merge \"Add EGL_KHR_get_all_proc_addresses to extension string\""
    },
    {
      "commit": "ff866e7642033d8f68c11eaa16d0afcecf0bab5b",
      "tree": "1d3ff194dfa1205ccd36211fc279a2a85b3836e3",
      "parents": [
        "5f51ed9499508ecda2d44c794a258fe6f5e22149",
        "f460f55c84b0a75de749b8a784059f5ff423ed93"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Wed Aug 07 15:23:00 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 07 15:23:00 2013 +0000"
      },
      "message": "Merge \"Set the swap interval of virtual display surfaces to 0\""
    },
    {
      "commit": "f460f55c84b0a75de749b8a784059f5ff423ed93",
      "tree": "805bc16c678d80866c4c7746a58b4dae8e7be19a",
      "parents": [
        "687821c05b5a85db1b172e7599861c803d268a8d"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Tue Aug 06 17:08:53 2013 -0700"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Tue Aug 06 19:32:02 2013 -0700"
      },
      "message": "Set the swap interval of virtual display surfaces to 0\n\nThis prevents slow/malicious virtual display consumers from\nbackpressuring SurfaceFlinger and preventing it from updating other\ndisplays.\n\nBug: 10193714\nChange-Id: I3e877d97202628d2d9abea24b66576f38299c14d\n"
    },
    {
      "commit": "5f51ed9499508ecda2d44c794a258fe6f5e22149",
      "tree": "479137cb257fdf981b52875b9150479efe7393cb",
      "parents": [
        "3dce3360e73f01ca8b9d707ad8be40a080cd560b"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 06 16:47:04 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 06 16:47:04 2013 -0700"
      },
      "message": "fix tests more\n\nChange-Id: I05c3dd6a22440844f8bd071f4c2b620b2bd8c720\n"
    },
    {
      "commit": "3dce3360e73f01ca8b9d707ad8be40a080cd560b",
      "tree": "3977e0e39115d5a7b8386f3fa33e257852f1d468",
      "parents": [
        "3ca76f416bc8665a97636ca8a2d0128b9da9d92c"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 06 16:42:05 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 06 16:42:05 2013 -0700"
      },
      "message": "fix tests\n\nChange-Id: I0f4d613481eda2c44a2d631a81d75de7e52e7a62\n"
    },
    {
      "commit": "3ca76f416bc8665a97636ca8a2d0128b9da9d92c",
      "tree": "6e5cc0e4f1f362b2eeb207fbe50fd17de19776f9",
      "parents": [
        "126b9c8e95743c0567a3809a5b8d37bda1c25397"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 06 16:07:33 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 06 16:07:33 2013 -0700"
      },
      "message": "remove support for glReadPixels screenshot path\n\nthis was only needed on some chipset we\u0027re not\nsupporting in KLP.\n\nChange-Id: I2e8fc07f135030bd61d2e241a8e426f1a4316425\n"
    },
    {
      "commit": "21558daf691dbcdff4a41e659fd013273db4d0b7",
      "tree": "151d3fe9ba391bf82dbec257a617c0cf0c2c8526",
      "parents": [
        "687821c05b5a85db1b172e7599861c803d268a8d"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Tue Aug 06 15:31:22 2013 -0700"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Tue Aug 06 15:33:46 2013 -0700"
      },
      "message": "Add EGL_KHR_get_all_proc_addresses to extension string\n\nWe\u0027ve had the extended behavior since Android 4.3, but the extension\nhadn\u0027t been ratified by Khronos yet so we couldn\u0027t add it to the\nextension string.\n\nBug: 9681677\nChange-Id: I78842316a3ab7a3f66a0ac1a4742d837de664c4c\n"
    },
    {
      "commit": "126b9c8e95743c0567a3809a5b8d37bda1c25397",
      "tree": "3d01659b26a453cbe4fafd8c9f27621025559d2a",
      "parents": [
        "db89edc94bd2a78226b407f9f7261e202e7fa325"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 06 15:19:15 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 06 15:19:15 2013 -0700"
      },
      "message": "Fix build. 3rd attempt\n\nChange-Id: I4317b34fd07890ea7cf9db51be42d72ef21aca89\n"
    },
    {
      "commit": "db89edc94bd2a78226b407f9f7261e202e7fa325",
      "tree": "007ffcc43a42459a5a089d3be8c51f81d40dd096",
      "parents": [
        "687821c05b5a85db1b172e7599861c803d268a8d"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Aug 02 01:40:18 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 06 20:05:36 2013 +0000"
      },
      "message": "All consumers now take an IGraphicBufferConsumer instead of a BufferQueue\n\nthis means they only have access to the consumer end of\nthe interface. we had a lot of code that assumed consumers\nwhere holding a BufferQueue (i.e.: both ends), so most of\nthis change is untangling in fix that\n\nBug: 9265647\nChange-Id: Ic2e2596ee14c7535f51bf26d9a897a0fc036d22c\n"
    },
    {
      "commit": "046b72fc5d93aae3b47b88b9f6683512d01d75d0",
      "tree": "c2aa83402c83a5711d486bbc6f3564c2be6c3fa6",
      "parents": [
        "9f476fd08079701d1ad0f7c591667b6e673ed38e",
        "e5886d917807d56fed07cd8e88b9be268d70368e"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Aug 06 18:37:12 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 06 18:37:12 2013 +0000"
      },
      "message": "Merge \"fix a possible deadlock when removing a layer and destroying a client\""
    },
    {
      "commit": "e5886d917807d56fed07cd8e88b9be268d70368e",
      "tree": "c2aa83402c83a5711d486bbc6f3564c2be6c3fa6",
      "parents": [
        "9f476fd08079701d1ad0f7c591667b6e673ed38e"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jun 05 14:30:54 2013 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Aug 05 14:28:46 2013 -0700"
      },
      "message": "fix a possible deadlock when removing a layer and destroying a client\n\ngenerally the last reference to a Layer is released in commitTransaction()\nwith mStateLock held. Layer itself only holds weak references to Client,\nhowever, ~Layer() briefly promotes this weak reference -- during that time\nthe all other strong references to that Client go away, ~Layer is left with\nthe last one... then hell breaks loose as ~Client is called, which in turn\nneeds to acquire mStateLock.\n\nWe fix this by holding a temporary copy of the drawing state during\nthe transaction so that the side-effects of copying the current\nstate into the drawing state are seen only after mStateLock has\nbeen released.\n\nBug: 9106453\nChange-Id: Ic5348ac12283500ead87286a37565e8da35f1db2\n"
    },
    {
      "commit": "687821c05b5a85db1b172e7599861c803d268a8d",
      "tree": "b9c8caee158c10b24cb13442f240395d679d1119",
      "parents": [
        "d9ba9707b0ab5c53e34d8ce9a5e71c41b85bb8da",
        "f7c6087bcc6a85cc82fd8dd83566550f880600ec"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Mon Aug 05 21:10:45 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 05 21:10:45 2013 +0000"
      },
      "message": "Merge \"BufferQueue: Support query of consumer usage bits\""
    },
    {
      "commit": "d9ba9707b0ab5c53e34d8ce9a5e71c41b85bb8da",
      "tree": "a530f96ac820166b0baa7b0fdb9a953acffc2f8a",
      "parents": [
        "c1c39f8807f5b3dad9ca221d912f7cd4f4f74d9c",
        "4b49e08385a96398aa2633e096fe916dc9f08768"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Fri Aug 02 22:34:13 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 02 22:34:13 2013 +0000"
      },
      "message": "Merge \"Roll back recent change\""
    },
    {
      "commit": "4b49e08385a96398aa2633e096fe916dc9f08768",
      "tree": "56f219a344195b6ca7910ec26dca7b87a7f5db0a",
      "parents": [
        "14fab7dd794cd6bf29e6425340683c6221062b3c"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Fri Aug 02 15:31:45 2013 -0700"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Fri Aug 02 15:31:45 2013 -0700"
      },
      "message": "Roll back recent change\n\nDisable dropping of frames based on timestamp.  Resume auto-\ngenerating timestamps in Surface.\n\nBug 10151804\n\nChange-Id: I15de26158e1d7ef22a5b150e685a126dc48ae2b4\n"
    },
    {
      "commit": "c1c39f8807f5b3dad9ca221d912f7cd4f4f74d9c",
      "tree": "58164c34ad3528aea5bbadc7e1d593277d6cf945",
      "parents": [
        "86cd09d388d8f6dd52ec1b3e19170966e99caacb",
        "a4e19521ac4563f2ff6517bcfd63d9b8d33a6d0b"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Aug 02 20:35:26 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 02 20:35:26 2013 +0000"
      },
      "message": "Merge \"Binderize the consumer side of BufferQueue\""
    },
    {
      "commit": "86cd09d388d8f6dd52ec1b3e19170966e99caacb",
      "tree": "1eada73287e9feb6ae8572c55bca1df513efd03a",
      "parents": [
        "ba93b3f8e403636b614a4a379f9421bc70dca84f",
        "14fab7dd794cd6bf29e6425340683c6221062b3c"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Fri Aug 02 16:53:11 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 02 16:53:11 2013 +0000"
      },
      "message": "Merge \"Drop frames based on presentation timestamp\""
    },
    {
      "commit": "a4e19521ac4563f2ff6517bcfd63d9b8d33a6d0b",
      "tree": "2ea2866fb6b49eabdc207bb42715665df2c94799",
      "parents": [
        "ba93b3f8e403636b614a4a379f9421bc70dca84f"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 31 20:09:53 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Aug 01 17:20:08 2013 -0700"
      },
      "message": "Binderize the consumer side of BufferQueue\n\nWhile currently untested, this should allow to move the\nBuffereQueue in the consumer process and have everything\nwork as usual.\n\nBug: 9265647\n\nChange-Id: I9ca8f099f7c65b9a27b7e7a3643b46d1b58eacfc\n"
    },
    {
      "commit": "14fab7dd794cd6bf29e6425340683c6221062b3c",
      "tree": "b8dac9c7ca47ea21852711cb3af0dfad1e343e9e",
      "parents": [
        "8776c34ca2e6cc92c453f5a83e11bcb67b0d5aff"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Thu Aug 01 13:37:42 2013 -0700"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Thu Aug 01 15:58:08 2013 -0700"
      },
      "message": "Drop frames based on presentation timestamp\n\nIf there are two or more buffers pending that are ready for\nimmediate presentation, drop all but the last one.\n\nAny code that didn\u0027t explicitly specify timestamps for buffers\nwas using the default value (auto-generated \"now\").  As a result,\nsurfaceflinger would drop frames whenever more than one buffer\nwas queued.  We now use zero as the auto-generated timestamp,\nand we don\u0027t set the timestamp in eglBeginFrame().\n\nChange-Id: I187f42d33de227cd3411ff0dcd3b9ce1961457eb\n"
    },
    {
      "commit": "ba93b3f8e403636b614a4a379f9421bc70dca84f",
      "tree": "4df2e51cd7003803a8f7d75f1fa5896493c9da4a",
      "parents": [
        "87f9b877964b7d7db9b59ba45b73b4b1a779ecf8"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Aug 01 15:48:40 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Aug 01 15:48:40 2013 -0700"
      },
      "message": "log an error when dequeueBuffer gets a NULL Fence\n\nBug: 9858745\nChange-Id: If35d6a7d770bf0a42d55bc55880a9ddb721fcfd0\n"
    },
    {
      "commit": "87f9b877964b7d7db9b59ba45b73b4b1a779ecf8",
      "tree": "dc2f14e9e49a01ad4fd13026c6f0edfa87714911",
      "parents": [
        "b304edb0b1f45ec7d4f10cfbff1b91f50bca86e4"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 31 19:18:22 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 31 20:10:10 2013 -0700"
      },
      "message": "remove unused code form GraphicBuffer\n\nChange-Id: I0dd67f1f93f654331e8f17b55730931dbc695ca7\n"
    },
    {
      "commit": "b304edb0b1f45ec7d4f10cfbff1b91f50bca86e4",
      "tree": "954f7258776d0f5c2683b85ed6307e6cc3ac2b30",
      "parents": [
        "8776c34ca2e6cc92c453f5a83e11bcb67b0d5aff"
      ],
      "author": {
        "name": "Alex Ray",
        "email": "aray@google.com",
        "time": "Tue Jul 30 12:48:57 2013 -0700"
      },
      "committer": {
        "name": "Alex Ray",
        "email": "aray@google.com",
        "time": "Wed Jul 31 13:48:57 2013 -0700"
      },
      "message": "remove libutils\n\nlibutils is being moved from frameworks/native/ to system/core/ in order\nto facilitate native C++ platform (non-frameworks) code.\n\nChange-Id: I44089fb960591a40b8a9c30faabb10459d107d71\n"
    },
    {
      "commit": "8776c34ca2e6cc92c453f5a83e11bcb67b0d5aff",
      "tree": "4a4649bb82947460e5ec742a605118f9d2751371",
      "parents": [
        "e142428a9c8b9d2380032cd4d7b55ee440fe8770"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jul 31 01:08:36 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jul 31 01:08:36 2013 -0700"
      },
      "message": "Fix BlobCache_test\n\nChange-Id: I5b20aeb4dcff80f1e18e1165b8461d20034dc1ac\n"
    },
    {
      "commit": "e142428a9c8b9d2380032cd4d7b55ee440fe8770",
      "tree": "7c55a190ef023bc7aba348d040211901448c13d3",
      "parents": [
        "1d76781b7aa19611c4045fdf6b848af6c6094e0b"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jul 29 21:24:40 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jul 30 21:19:13 2013 -0700"
      },
      "message": "Make Flattenable not virtual\n\nFallout from the Flattenable change, update all its uses.\n\nAdditionnaly, fix/tighten size checks when (un)flatten()ing\nthings.\n\nRemoved the assumption by some flattenables (e.g.: Fence)\nthat the size passed to them would be exact (it can\nand will be larger in some cases)\n\nThe code in Parcel is a bit complicated so that we don\u0027t\nhave to expose the full implementation (and also to\nkeep the code smallish).\n\nChange-Id: I0bf1c8aca2a3128491b4f45510bc46667e566dde\n"
    },
    {
      "commit": "1d76781b7aa19611c4045fdf6b848af6c6094e0b",
      "tree": "5893726ba71c52500ae5da3f3ae313f9c67a4d6e",
      "parents": [
        "7925b6bdb81bd15f4eacc28b1a6dd3af2c494abb"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jul 29 21:24:40 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jul 30 21:19:02 2013 -0700"
      },
      "message": "Make Flattenable not virtual (libutils)\n\nMaking an object Flattenable doesn\u0027t force it to\nbecome virtual anymore. For instance, Fence and GraphicBuffer\nare now non-virtual classes.\n\nAlso change Flatennable protocol a bit so that it updates\nits parameters (pointers, sizes) to make it easier\nto implement a flattenable in terms of other flattenables.\n\nChange-Id: Ie81dc7637180b3c2cfcbaf644f8987ca804eb891\n"
    },
    {
      "commit": "7925b6bdb81bd15f4eacc28b1a6dd3af2c494abb",
      "tree": "63ae4ef1913d44dac62440b7184cbe8de6f64768",
      "parents": [
        "f97b6e218a6143f20137e6ce76bbdc7621fac6cf",
        "5539e219de5ffa93e9f22b30dacf7c28e7f7a0be"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Jul 30 22:37:57 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 30 22:37:58 2013 +0000"
      },
      "message": "Merge \"EGL: fix eglTerminate blob cache behavior\""
    },
    {
      "commit": "5539e219de5ffa93e9f22b30dacf7c28e7f7a0be",
      "tree": "442ba281f7d5cc687357d4d4cd9587354d915b8b",
      "parents": [
        "bdce8170479d0efb548514c1a290e1bfea711cfd"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Jul 30 15:10:02 2013 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Jul 30 15:12:16 2013 -0700"
      },
      "message": "EGL: fix eglTerminate blob cache behavior\n\nBug: 9610573\nChange-Id: I258e7e0d82ab76fbacf0b9c25d4f92fca6df04ac\n"
    },
    {
      "commit": "f7c6087bcc6a85cc82fd8dd83566550f880600ec",
      "tree": "41fb8bb9fb195cc55beb2be4ba71efa26c6cc10e",
      "parents": [
        "aaff4ef717c08f6aed7ccd96e1d65222ceb4fd17"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Jul 30 14:05:02 2013 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Jul 30 21:38:34 2013 +0000"
      },
      "message": "BufferQueue: Support query of consumer usage bits\n\nBug: 9592202\nChange-Id: I61a17758200e61adaca695b426db3df0f6637d4c\n"
    },
    {
      "commit": "f97b6e218a6143f20137e6ce76bbdc7621fac6cf",
      "tree": "6d000f736898eb85520bdbd569ec070f92c9b6cc",
      "parents": [
        "aaff4ef717c08f6aed7ccd96e1d65222ceb4fd17",
        "9f476fd08079701d1ad0f7c591667b6e673ed38e"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Tue Jul 30 12:28:02 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jul 30 12:28:02 2013 -0700"
      },
      "message": "am 9f476fd0: Merge \"Add a symbol to represent MNC\u003d0\"\n\n* commit \u00279f476fd08079701d1ad0f7c591667b6e673ed38e\u0027:\n  Add a symbol to represent MNC\u003d0\n"
    },
    {
      "commit": "9f476fd08079701d1ad0f7c591667b6e673ed38e",
      "tree": "546474c6b4c5128371bb89e4c21842cbd809615a",
      "parents": [
        "082fc1cae6a0c283de3ad0d848e0757de3154d0b",
        "8df483c1fdb4926fb16a584f0342a0492aab63ac"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Tue Jul 30 19:19:41 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 30 19:19:41 2013 +0000"
      },
      "message": "Merge \"Add a symbol to represent MNC\u003d0\""
    },
    {
      "commit": "aaff4ef717c08f6aed7ccd96e1d65222ceb4fd17",
      "tree": "5b621144e9e82f4d6c25bf7a3eb07951e2604d91",
      "parents": [
        "ad678e18b66f495efa78dc3b9ab99b579945c9e2"
      ],
      "author": {
        "name": "Mike J. Chen",
        "email": "mjchen@google.com",
        "time": "Tue Jul 30 10:19:24 2013 -0700"
      },
      "committer": {
        "name": "Mike J. Chen",
        "email": "mjchen@google.com",
        "time": "Tue Jul 30 10:24:22 2013 -0700"
      },
      "message": "SurfaceFlinger: Set the result of binderized screencapture\n\nA recent change to screencapture to have the call to\nIGraphicBufferProducer happen on the incoming binder\nthread didn\u0027t set the result so the result was always\nreturned as NO_ERROR.\n\nThis made screencap fail on some devices (e.g. Wolfie)\nwhich relies on some kind of fallback mechanism to\ngenerate the screencap but the fallback mechanism\ndoesn\u0027t get triggered because the error isn\u0027t returned.\n\nBug: 9989385\n\nChange-Id: I2aee91ea1034869fcbb0f49b9a0087c3cff43bbe\nSigned-off-by: Mike J. Chen \u003cmjchen@google.com\u003e\n"
    },
    {
      "commit": "ad678e18b66f495efa78dc3b9ab99b579945c9e2",
      "tree": "b1158419e04a0417533618592ef58d5fa23490b5",
      "parents": [
        "bf5b849ec7b2050e1fe05aebb3914823da6a0d07"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jul 23 17:28:53 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jul 26 18:45:02 2013 -0700"
      },
      "message": "single buffer mode for BufferQueue\n\nBug: 9891035\nChange-Id: Id1ab5f911a6dc4c1d8235e65775b3d3635231ad4\n"
    },
    {
      "commit": "bf5b849ec7b2050e1fe05aebb3914823da6a0d07",
      "tree": "2be48a220c4aeeabb65a87115cab1d3e5f4c2010",
      "parents": [
        "c2414bb0989763641ca57cf72c11ef6d86565a23"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jul 26 17:26:16 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jul 26 17:26:16 2013 -0700"
      },
      "message": "fix build\n\nChange-Id: I04df8ec96510b16e84054089f7c02609d8fe2b0c\n"
    },
    {
      "commit": "c2414bb0989763641ca57cf72c11ef6d86565a23",
      "tree": "241ef0d78bc4fccaa73167f64a79e9ab33d94cf4",
      "parents": [
        "dd533712f8dd21c0dadfd5ce8a0ad85aa3e96ada"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jul 26 14:49:50 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jul 26 15:43:33 2013 -0700"
      },
      "message": "get rid of HAL pixelformats 5551 and 4444\n\nChange-Id: I39409103144c1ba09078c4ddc323a58987fb09ea\n"
    },
    {
      "commit": "dd533712f8dd21c0dadfd5ce8a0ad85aa3e96ada",
      "tree": "36814c5dc30b9599791a4ab9ae6b56a45390c3ad",
      "parents": [
        "5773d3f5b2694c647e010246dff99acc70131289"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jul 26 15:31:39 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jul 26 15:31:39 2013 -0700"
      },
      "message": "make transparent pixels transparents again\n\napparently boolean logic in hard...\n\nChange-Id: Ie70401fe12e0fa00b0b8c7cc475c1438cdbbf531\n"
    },
    {
      "commit": "8df483c1fdb4926fb16a584f0342a0492aab63ac",
      "tree": "546474c6b4c5128371bb89e4c21842cbd809615a",
      "parents": [
        "082fc1cae6a0c283de3ad0d848e0757de3154d0b"
      ],
      "author": {
        "name": "Johan Redestig",
        "email": "johan.redestig@sonymobile.com",
        "time": "Thu May 30 08:30:42 2013 +0200"
      },
      "committer": {
        "name": "Johan Redestig",
        "email": "johan.redestig@sonymobile.com",
        "time": "Fri Jul 26 18:39:09 2013 +0000"
      },
      "message": "Add a symbol to represent MNC\u003d0\n\nBug: 7170488\nChange-Id: Icfd39fd0c739216e89446252ea0e7ceba6f002c6\n"
    },
    {
      "commit": "5773d3f5b2694c647e010246dff99acc70131289",
      "tree": "d872f3545b5bc566acbf77a39b72207afa6e7e9a",
      "parents": [
        "1fe854f6788f6fe9177fcca85185d13ba37d1911"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jul 25 19:24:31 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jul 25 19:24:31 2013 -0700"
      },
      "message": "get rid of PixelFormatInfo and simplify things\n\nChange-Id: I025a362cc12d5b9b794fac14be500e25aab65396\n"
    },
    {
      "commit": "1fe854f6788f6fe9177fcca85185d13ba37d1911",
      "tree": "63b5fd33f89b7a000885ab33166b53b7f34a5452",
      "parents": [
        "9642dba11046bf4ae6fe9db285e07ef9075da64e"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jul 25 17:25:05 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jul 25 17:25:05 2013 -0700"
      },
      "message": "get rid of PIXEL_FORMAT_A_8\n\nChange-Id: I4e409a69c01b95b48f20112084dd927e2d043407\n"
    },
    {
      "commit": "9642dba11046bf4ae6fe9db285e07ef9075da64e",
      "tree": "148028e2d6b680317d483ff1dcf3a7bc0657069f",
      "parents": [
        "87bf0d97be5ef2689546b246dfb6c21c4eec3ce0",
        "6bac363cbdca7f5c4135d66c0e379475ecbd7319"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jul 25 02:17:52 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 25 02:17:52 2013 +0000"
      },
      "message": "Merge \"Fix a race in BufferQueue\""
    },
    {
      "commit": "87bf0d97be5ef2689546b246dfb6c21c4eec3ce0",
      "tree": "07ead5657d11419fc9547cbe094f2731364664e0",
      "parents": [
        "a7b0f04aaf7f04a9617dbbc839b1aaa6f20ca6d6"
      ],
      "author": {
        "name": "Todd Poynor",
        "email": "toddpoynor@google.com",
        "time": "Thu May 16 14:51:15 2013 -0700"
      },
      "committer": {
        "name": "Todd Poynor",
        "email": "toddpoynor@google.com",
        "time": "Thu Jul 25 01:57:32 2013 +0000"
      },
      "message": "add libbatteryservice\n\nIBatteryPropertiesListener is used by clients such as BatteryService to\nreceive notifications of changed battery/power status (from healthd).\n\nIBatteryPropertiesRegistrar manages registrations of\nIBatteryPropertiesListener clients.\n\nAdd BatteryService native header with defines from BatteryManager, and\nclass BatteryProperties to pass battery/power status around.\n\nChange-Id: I44e2736e503b586794097b7b9d31d07fefd9b15a\n"
    },
    {
      "commit": "a7b0f04aaf7f04a9617dbbc839b1aaa6f20ca6d6",
      "tree": "67cd9f59089c11be44da689db66771f6ff0d0baa",
      "parents": [
        "1d4f79c48237e8720538b59cd2ecb5a2a5e5e9d8"
      ],
      "author": {
        "name": "Todd Poynor",
        "email": "toddpoynor@google.com",
        "time": "Tue Jun 18 17:25:37 2013 -0700"
      },
      "committer": {
        "name": "Todd Poynor",
        "email": "toddpoynor@google.com",
        "time": "Wed Jul 24 16:18:12 2013 -0700"
      },
      "message": "defaultServiceManager wait for service manager ready\n\nIf the service manager is not ready when we attempt to create a local\nproxy, fail and retry.\n\nChange-Id: I7d7300bc07cd70608793479aa3da282d066da7f6\n"
    },
    {
      "commit": "1d4f79c48237e8720538b59cd2ecb5a2a5e5e9d8",
      "tree": "3abf2f3c7dda66018c865db0865713447a9db360",
      "parents": [
        "a49a4a2e55602ade66772e99724c3afb6f492975",
        "6547ff4327aa320fbc9635668d3fc66db7dd78f6"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Jul 24 20:47:37 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 24 20:47:37 2013 +0000"
      },
      "message": "Merge \"surfaceflinger: add frame duration logging\""
    },
    {
      "commit": "a49a4a2e55602ade66772e99724c3afb6f492975",
      "tree": "88689c5b22b14b77088ada2f98baf4be7c2793ec",
      "parents": [
        "02c9afa948681cd9cf4f1ddfbadc06b32429ff83",
        "194bc4ff7bf90af14771a3a7074c197a871e0127"
      ],
      "author": {
        "name": "Alex Ray",
        "email": "aray@google.com",
        "time": "Wed Jul 24 20:00:35 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 24 20:00:36 2013 +0000"
      },
      "message": "Merge \"libutils: give BasicHashtableImpl a virtual destructor\""
    },
    {
      "commit": "02c9afa948681cd9cf4f1ddfbadc06b32429ff83",
      "tree": "ab8dcd5249e82ba33d7147d21cc2c41036c6d012",
      "parents": [
        "656a6b9e3645bfe2cf073b69cbb9d02832f62c26",
        "4afb57b5dbd45e787255a634a241c44749642e4a"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Jul 24 17:53:36 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 24 17:53:37 2013 +0000"
      },
      "message": "Merge \"add static dependency on liblog\""
    },
    {
      "commit": "194bc4ff7bf90af14771a3a7074c197a871e0127",
      "tree": "7a4deef0b3e1db788a3c3b4e9be9e5eedbbe7a40",
      "parents": [
        "656a6b9e3645bfe2cf073b69cbb9d02832f62c26"
      ],
      "author": {
        "name": "Alex Ray",
        "email": "aray@google.com",
        "time": "Wed Jul 17 16:57:21 2013 -0700"
      },
      "committer": {
        "name": "Alex Ray",
        "email": "aray@google.com",
        "time": "Wed Jul 24 00:21:57 2013 -0700"
      },
      "message": "libutils: give BasicHashtableImpl a virtual destructor\n\nChange-Id: I4ec590b060d732af5fe525670becbe778684247b\n"
    },
    {
      "commit": "6bac363cbdca7f5c4135d66c0e379475ecbd7319",
      "tree": "4d03542e3fb573b092b3ba2585ba9d0ea06da573",
      "parents": [
        "7ffaa7c60d51cc0eb731158de2ac3df9c50cc0b4"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jul 23 21:50:20 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jul 23 21:55:32 2013 -0700"
      },
      "message": "Fix a race in BufferQueue\n\nBufferQueue::dequeueBuffer() could incorrectly return\nWOULD_BLOCK while in \"cannot block\" mode if it happened\nwhile a consumer acquired the last allowed buffer\nbefore releasing the old one (which is a valid thing\nto do).\n\nChange-Id: I318e5408871ba85e068ea9ef4dc9b578f1bb1043\n"
    },
    {
      "commit": "4afb57b5dbd45e787255a634a241c44749642e4a",
      "tree": "97fad4cd997411f0f122b38b2dc8f9db1e2a44ca",
      "parents": [
        "4ee6cbebfeaae9319660e116ab553732c8c2a3a7"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jul 23 17:39:35 2013 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jul 23 18:07:47 2013 -0700"
      },
      "message": "add static dependency on liblog\n\nChange-Id: Ibf8733142d52e4ffac2e3b26932d7196fb79c5a7\n"
    },
    {
      "commit": "656a6b9e3645bfe2cf073b69cbb9d02832f62c26",
      "tree": "71e5900f53d4955e19eaf6750d20f924c1d467ee",
      "parents": [
        "ea3d82cfef602dbd5a7adb132678b47b9d6a223a"
      ],
      "author": {
        "name": "Alex Ray",
        "email": "aray@google.com",
        "time": "Tue Jul 23 13:44:34 2013 -0700"
      },
      "committer": {
        "name": "Alex Ray",
        "email": "aray@google.com",
        "time": "Tue Jul 23 17:51:19 2013 -0700"
      },
      "message": "dumpstate: remove libutils dependency\n\nChange-Id: I9745f389402c01b90877612e060ac996eba99964\n"
    },
    {
      "commit": "6547ff4327aa320fbc9635668d3fc66db7dd78f6",
      "tree": "038c4ccba9a547edddfedccd59c70d4eac85b7fc",
      "parents": [
        "bdce8170479d0efb548514c1a290e1bfea711cfd"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Jul 16 20:12:42 2013 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Jul 23 17:28:47 2013 -0700"
      },
      "message": "surfaceflinger: add frame duration logging\n\nChange-Id: Ib414a45e7e191f23a2726cbbbeb606e9ce68a3b5\n"
    },
    {
      "commit": "ea3d82cfef602dbd5a7adb132678b47b9d6a223a",
      "tree": "c20c81db59482eabddb1bf657e4543a2cd02da4a",
      "parents": [
        "4ee6cbebfeaae9319660e116ab553732c8c2a3a7"
      ],
      "author": {
        "name": "Alex Ray",
        "email": "aray@google.com",
        "time": "Tue Jul 23 17:06:55 2013 -0700"
      },
      "committer": {
        "name": "Alex Ray",
        "email": "aray@google.com",
        "time": "Tue Jul 23 17:23:36 2013 -0700"
      },
      "message": "utils: move thread enums to system/core\n\nChange-Id: Ia97963cc9acf8661d01355786f5e7e7bf54581c2\n"
    },
    {
      "commit": "4ee6cbebfeaae9319660e116ab553732c8c2a3a7",
      "tree": "bb97a910860331e83675e95f7afbc1f36bae43bd",
      "parents": [
        "0e0f10b5619d6dc37ede7435c6e92e14f5411f27",
        "f5f8fa0bbdc4ba8a15a386b66da30e4c1d89ec9d"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jul 23 23:35:48 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 23 23:35:48 2013 +0000"
      },
      "message": "Merge \"libbinder: include sys/uio.h instead of cutils/uio.h\""
    }
  ],
  "next": "f5f8fa0bbdc4ba8a15a386b66da30e4c1d89ec9d"
}
