)]}'
{
  "log": [
    {
      "commit": "bcba155942705de42174871fc1215b3f4655797b",
      "tree": "eea9f615be119d03fee1060dae391ff1841fd3b8",
      "parents": [
        "5908eaef126c746aa88448b53cdc69623dee4fb4"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Sep 15 12:21:40 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Sep 16 09:33:22 2011 -0700"
      },
      "message": "A new API \"androidGetThreadPriority\"\n\nChange-Id: I6baeead8c70460863343fd557250635fb1e6a170\n"
    },
    {
      "commit": "93578af23ecfb8f5b6001346d63c6214cdec5d17",
      "tree": "8510331c6755707fbc9af5ab83a49c91641e1812",
      "parents": [
        "a0b1cc0fb193805803cdd2b62dd0bd1e6607aa16",
        "b59ab9f41faafb358afb4f951de96f34a656e0b4"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Sep 14 21:27:25 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 14 21:27:25 2011 -0700"
      },
      "message": "Merge \"Velocity Tracker II: The Revenge of Velocity Tracker Bug: 5265529\""
    },
    {
      "commit": "b59ab9f41faafb358afb4f951de96f34a656e0b4",
      "tree": "2fe7eefa2f4a044df7440378691264b644fc93f5",
      "parents": [
        "aab55bf3e323b73062bd932682886b19c062a8a0"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Sep 14 10:53:18 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Sep 14 19:16:37 2011 -0700"
      },
      "message": "Velocity Tracker II: The Revenge of Velocity Tracker\nBug: 5265529\n\nRewrote the velocity tracker to fit a polynomial curve\nto pointer movements using least squares linear regression.\nThe velocity is simply the first derivative of this polynomial.\n\nClients can also obtain an Estimator that describes the\ncomplete terms of the estimating polynomial including\nthe coefficient of determination which provides a measure\nof the quality of the fit (confidence).\n\nEnhanced PointerLocation to display the movement curve predicted\nby the estimator in addition to the velocity vector.\n\nBy default, the algorithm computes a 2nd degree (quadratic)\npolynomial based on a 100ms recent history horizon.\n\nChange-Id: Id377bef44117fce68fee2c41f90134ce3224d3a1\n"
    },
    {
      "commit": "1318864fa7ce6c85aaf629b1db08c79e4d0cf41e",
      "tree": "0a55adab2711acd93131bf933dd5b8f638c2a7d9",
      "parents": [
        "e71ffeb7e0eaa181130aaaad18a94ef3ab73ecb1",
        "0209da1cb177888af6c58e9bcc13c5d9665d6354"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Sep 14 17:42:22 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 14 17:42:22 2011 -0700"
      },
      "message": "Merge \"Change an assert failure due to unsupported level by HW AVC decoder and report the error to applications\""
    },
    {
      "commit": "3f0c821740305c352eb355ba3d72906a7a97751c",
      "tree": "37e771ac039d0b0578bc7266ea9122771edf7c99",
      "parents": [
        "d4fdc0f5621098d89c686a0edbfc22247005c46c",
        "7e8626fd7580dc5e0d4b4e4ceef0988067b60037"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 13 17:50:31 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 13 17:50:31 2011 -0700"
      },
      "message": "Merge \"Issue 5298399: Lost speech after a crash in gTalk.\""
    },
    {
      "commit": "7e8626fd7580dc5e0d4b4e4ceef0988067b60037",
      "tree": "f0737733bd57b2f217abe1154143e40ec5ec5e0a",
      "parents": [
        "3705b22c9704050dfb46d784ae84e9d7f9357ad4"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 13 15:04:17 2011 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 13 17:33:29 2011 -0700"
      },
      "message": "Issue 5298399: Lost speech after a crash in gTalk.\n\nFixed problem in AudioTrack::restoreTrack_l() causing a permanent\nfailure if the IAudioTrack interface to AudioFlinger could not be\nrestored at the first attempt.\n\nChange-Id: I039d4fe2dca8d3baf71f1a6c51119f27a67b6611\n"
    },
    {
      "commit": "0209da1cb177888af6c58e9bcc13c5d9665d6354",
      "tree": "881903a5c7f6df847531cdb98a4d7ffffaf2431d",
      "parents": [
        "62bb0cdc746e850c2d2d5da4f6c7a38f8782f4bc"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Sep 12 19:56:23 2011 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Sep 13 11:00:17 2011 -0700"
      },
      "message": "Change an assert failure due to unsupported level by HW AVC decoder and report the error to applications\n\nChange-Id: I522a994981d86329ccc86c3b536b561dc6e40eeb\nrelated-to-bug: 5300618\n"
    },
    {
      "commit": "d41108c91fcf2f7a47b733c61ee5983cf22bd6a8",
      "tree": "dd9c47c44c3fbabd34dd29f5711f3ba1e7b2e49c",
      "parents": [
        "92bda84b11ba2aec98036313784444d9f5aebc9a"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Sep 12 14:14:08 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Sep 12 14:14:08 2011 -0700"
      },
      "message": "Turn an another assertion into a runtime error in ACodec\u0027s implementation\n\nChange-Id: I6779b29f200b90d088273ab3204724ef3d8d59bd\nrelated-to-bug: 5284760\n"
    },
    {
      "commit": "6c048260f30d9bba1a83c4f79388cd6b3109be7d",
      "tree": "f33b3872e68745cfb7e8bfbcd43a3d35ad1e1fb9",
      "parents": [
        "48b391480519c5d6cb4428af6b29b1e3405e4601",
        "13c7197da8a16f77f6398708a6314c80cb01e0d1"
      ],
      "author": {
        "name": "Ben Komalo",
        "email": "benkomalo@google.com",
        "time": "Sun Sep 11 16:48:32 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Sep 11 16:48:32 2011 -0700"
      },
      "message": "Merge \"Revert encryption mapping for device wipes.\""
    },
    {
      "commit": "0e23c2efb03c8eac7e2bcd6aad61cfc4b15340fc",
      "tree": "99bc808252196a7813ea1b75af26c85708c65ac1",
      "parents": [
        "51322732739b355dd842abc9cef34df8613b2626",
        "581761d4aa0133fe7354cc9e4a5dd3d9d7258c5f"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Sep 09 17:01:25 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 09 17:01:25 2011 -0700"
      },
      "message": "Merge \"Tweak VelocityTracker. Bug: 5265529\""
    },
    {
      "commit": "581761d4aa0133fe7354cc9e4a5dd3d9d7258c5f",
      "tree": "b54e8f590d67a5a90d1ec19f66f58a47acee4fa4",
      "parents": [
        "bfcb60ab0f696c8ef70830c365550e62fe2808bf"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Sep 09 15:39:35 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Sep 09 16:04:09 2011 -0700"
      },
      "message": "Tweak VelocityTracker.\nBug: 5265529\n\nCalculate the velocity using the most recent touch sample as the\npoint of reference instead of the oldest.  This change more heavily\nweights recent touch samples and reduces the sample time window\nused for calculation.  This significantly improves the accuracy\nof fling gesture detection.\n\nChange-Id: Ib1940933e786e5f6a731552a99bcd9400741d55f\n"
    },
    {
      "commit": "973f553be4aabf9656d6c1596b47767896677b0a",
      "tree": "0a41919bfce6237a4bb6332e6c463d630c34e738",
      "parents": [
        "7b8d7cb59cfdc492df920b0c48960a691994f598"
      ],
      "author": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Wed Sep 07 23:55:27 2011 -0700"
      },
      "committer": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Fri Sep 09 15:36:42 2011 -0700"
      },
      "message": "Make MediaScanner skip certain directories\n\nThe list of directories to skip are configurable via setprop.\nThe main motivation is that some test data folder takes long time\nto scan, and media scanner may compete for CPU time against perf\ntests therefore skewing the results.\n\nBug: 5263115\nChange-Id: I568213e2a4babf6033021c1d336ef0347c0e3315\n"
    },
    {
      "commit": "13c7197da8a16f77f6398708a6314c80cb01e0d1",
      "tree": "092ded9f3fd6a3d59b4840f640f2cf4abb4ff45c",
      "parents": [
        "920d06db8dd2d6380a437fd03cb54b8caac92cee"
      ],
      "author": {
        "name": "Ben Komalo",
        "email": "benkomalo@google.com",
        "time": "Wed Sep 07 16:35:56 2011 -0700"
      },
      "committer": {
        "name": "Ben Komalo",
        "email": "benkomalo@google.com",
        "time": "Fri Sep 09 14:44:40 2011 -0700"
      },
      "message": "Revert encryption mapping for device wipes.\n\nExternal storage volumes that were emulated+encrypted needed to have\ntheir encryption mapping removed so that it doesn\u0027t try to encrypt the\nvolume after formatting them.\n\nThis just wires through an argument through vold, and assumes that vold\nwill do the right thing even if there is no encryption mapping set.\n\nBug: 5017638\nChange-Id: I858fae3d12cb415bc34637f520f71220ad9daaad\n"
    },
    {
      "commit": "fc301b0bb5c635c6bb51b48c504a8db5f9010e5c",
      "tree": "463dec648e238d2e6821a86d121f2a3f8048b3ff",
      "parents": [
        "117999d1f44ec3423369385495ae207898b7b73e"
      ],
      "author": {
        "name": "Dave Burke",
        "email": "daveburke@google.com",
        "time": "Tue Aug 30 14:39:17 2011 +0100"
      },
      "committer": {
        "name": "Dave Burke",
        "email": "daveburke@google.com",
        "time": "Fri Sep 02 11:26:59 2011 +0100"
      },
      "message": "Require INTERNET permission for network-based content.\nBug #1870981\n\nChange-Id: Ia3ad166390c4d60cea19c3783895b078a2c4c15f\n"
    },
    {
      "commit": "98bb251c8b527600e7a4cca6cc33499710bbfbf1",
      "tree": "76188de45f4b4fc862f7527e2eddc14c8bc38e27",
      "parents": [
        "abf82f9ea4960ead8716b183aac1792820cccdd1"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Tue Aug 30 21:33:10 2011 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu Sep 01 13:37:14 2011 +0800"
      },
      "message": "Add video snapshot camera parameter.\n\nThe API is still hidden.\n\nbug:5187868\n\nChange-Id: I59e1b5774ca32be049723d1a0887faa90d8884bb\n"
    },
    {
      "commit": "abf82f9ea4960ead8716b183aac1792820cccdd1",
      "tree": "e40a06b99792fda8d533dd87a8b584816088f0cf",
      "parents": [
        "a6ec356d2f5d2829fd8eff315a37f49501eac842",
        "ffd056fc73d852f15c32355443e3c88813df5ec6"
      ],
      "author": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Wed Aug 31 22:00:35 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 31 22:00:35 2011 -0700"
      },
      "message": "Merge \"Incr. MIN_UNDEQUEUED_BUFFERS in SurfaceMediaSource\""
    },
    {
      "commit": "ffd056fc73d852f15c32355443e3c88813df5ec6",
      "tree": "452c9470c02b4dba496f5f0cb43287afec44935d",
      "parents": [
        "2c5423da4e3b23c0381952da2671f05a7501f9af"
      ],
      "author": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Mon Aug 29 19:53:51 2011 -0700"
      },
      "committer": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Wed Aug 31 17:43:24 2011 -0700"
      },
      "message": "Incr. MIN_UNDEQUEUED_BUFFERS in SurfaceMediaSource\n\nThe buffers in SurfaceMediaSource were 4 earlier, whereas\nwe need 5 for one of the devices.\n\nChange-Id: I87bf5e28bbb0f7c9661dc01b040baa903d95d2c2\n"
    },
    {
      "commit": "b2c4f0bf11f38fd31d80f1256c89b9db043a2929",
      "tree": "d5d08a3a5cf189a5a5bc6ffeebf3a02e0464cb68",
      "parents": [
        "6752d4827dee6bf5fb52cae61c00690e23d0b779",
        "728e08bc3fd99dc64f436270f53c22f3457204a8"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Aug 31 13:41:06 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 31 13:41:06 2011 -0700"
      },
      "message": "Merge \"Fix SurfaceMediaSource timestamp handling.\""
    },
    {
      "commit": "c21843a8b5c395cbaae6db0f786bdee556075f5d",
      "tree": "22a798f6c97054bd2cc40ceb0cc2ef910c5a84cd",
      "parents": [
        "66b665ab8b8b52450310b1a551bfa8f52dbb2c10",
        "34cb9f2a960c4173bdafb4b8a2444c1bca4c5f0d"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 30 19:24:04 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 30 19:24:04 2011 -0700"
      },
      "message": "Merge \"fix Surface positions are not floats\""
    },
    {
      "commit": "34cb9f2a960c4173bdafb4b8a2444c1bca4c5f0d",
      "tree": "6eb4ad90db43a343d9cd80e6f97603b311d88b8c",
      "parents": [
        "32901b4fec5db9a137add68f0f38518636593668"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 30 18:51:54 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 30 18:51:54 2011 -0700"
      },
      "message": "fix Surface positions are not floats\n\nAdded Surface.setPosition(float, float) which allows to set a surface\u0027s\nposition in float.\n\nBug: 5239859\nChange-Id: I903aef4ad5b5999142202fb8ea30fe216d805711\n"
    },
    {
      "commit": "0e35c78d25a8df8b3bde566ad6c474f9df242ea4",
      "tree": "257814957ad7bdfc43cb5527c4a22e9e25b88d6f",
      "parents": [
        "d0116b680a2c194eb3b8713a230151bfb32a6aef",
        "05ce0941649c3cdd7f8034496719e607977fc005"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Aug 30 10:51:54 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 30 10:51:54 2011 -0700"
      },
      "message": "Merge \"226483: A2DP connected, but music out to speaker\""
    },
    {
      "commit": "728e08bc3fd99dc64f436270f53c22f3457204a8",
      "tree": "6e0efa9d9432a616777db0c3ddd7c06e646d706e",
      "parents": [
        "2db44c5838fb0bb35092a19f31ee887892a451a1"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Mon Aug 29 18:16:03 2011 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Aug 30 10:49:15 2011 -0700"
      },
      "message": "Fix SurfaceMediaSource timestamp handling.\n\nWas not basing timestamps on startTimeUs.\nNow synchronizes properly with audio.\n\nBug: 4510826\nChange-Id: I613db0aa91e51fc75d120e65540e742d8ab2ae43\n"
    },
    {
      "commit": "05ce0941649c3cdd7f8034496719e607977fc005",
      "tree": "1e507788895e36bcd18b37cd109ec90e7c46d90c",
      "parents": [
        "2c5423da4e3b23c0381952da2671f05a7501f9af"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Aug 30 10:18:54 2011 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Aug 30 10:19:38 2011 -0700"
      },
      "message": "226483: A2DP connected, but music out to speaker\n\nWhen the A2DP headset is connected, there is a possible\nrace condition when the audio tracks are moved from\nthe mixer thread attached to the speaker output to the thread\nattached to A2DP output.\nAs the request to clear the stream type to output mapping cache in\nthe client process is asynchronous, it is possible that the flag\nindicating to the client audio track to re-create the IAudioTrack\non the new thread is processed before the cache is invalidated.\nIn this case, the track will be attached to the old thread and\nmusic will continue playing over the device speaker instead of being\nredirected to A2DP headset.\n\nChange-Id: Ib2ce1eb5320eaff83287b93779061bf4e7a330df\n"
    },
    {
      "commit": "b4bf90b40e30096479a4d4cc9cf135e991ef1994",
      "tree": "c00cccd8405fc51990f0f7cf2f92ace2b394e0ea",
      "parents": [
        "bce1667e7ae69ff575e73e776040524fb5515c5f",
        "33eafef1a9ef508f7b1ae1edf4caf29b81a80255"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Aug 29 14:38:52 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 29 14:38:52 2011 -0700"
      },
      "message": "Merge \"Add C++ thread API androidGetThreadSchedulingGroup\""
    },
    {
      "commit": "b8a9e15c2aa3d317834555244a90f184b46e1dcb",
      "tree": "2ef6393df0109ee6f4e20b75b82e6a632b85de79",
      "parents": [
        "2b9c5d8a89065ab18e58d79ae65a81267b248e1c",
        "4da5660eee240cea3f7411a0ed5a1120bccdeb45"
      ],
      "author": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Fri Aug 26 20:05:58 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 26 20:05:58 2011 -0700"
      },
      "message": "Merge \"Modify enum value of OMX_COLOR_FormatAndroidOpaque\""
    },
    {
      "commit": "4da5660eee240cea3f7411a0ed5a1120bccdeb45",
      "tree": "89bbeb1d89c09a97aaf87a7d00f4e88df8b13ebf",
      "parents": [
        "9fe4459797db3ee9b18e613ef3c377a9401acd37"
      ],
      "author": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Fri Aug 26 19:34:49 2011 -0700"
      },
      "committer": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Fri Aug 26 19:38:13 2011 -0700"
      },
      "message": "Modify enum value of OMX_COLOR_FormatAndroidOpaque\n\nThe enum value chosen earlier had a conflict with one of the vendors.\n\nChange-Id: I47832dd1157447f89324d56e8ab146260cd7927c\n"
    },
    {
      "commit": "539340fe2c3dfd33564c1ddc9ee5c2884aa56874",
      "tree": "a45a6b702449ba71b59315c20e80cc07979ac773",
      "parents": [
        "dae908a391222710d26692ee5fcf307fd96197a2",
        "e688257456c315cbd2d5fd4f32bd52eac0b98195"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Aug 26 13:47:26 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 26 13:47:26 2011 -0700"
      },
      "message": "Merge \"Support for posting messages and synchronously waiting for a response.\""
    },
    {
      "commit": "22cb204cbb9fadd0a909e0e918c0cb19c60da740",
      "tree": "a3f242a5441545fcc1c4ec2b56ee8dd424978b80",
      "parents": [
        "1fc756da434441708eb557a22363eea7f41f3f73"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Aug 25 16:47:23 2011 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Aug 25 17:33:49 2011 -0700"
      },
      "message": "Bug 4364249 Play position is 0 after flushing AudioTrack\n\nAudioTrack::stop() is not synchronous, so a stop() followed\n by flush(), which is synchronous, will not always report\n a playhead position of 0 after being called.\nThis CL adds a flag to mark a track as flushed, and report the\n correct playhead position in this state.\nBug 5217011 has been created to address the real issue in the\n future, where flush could be made synchronous, to properly\n address bug 4364249.\n\nChange-Id: Icf989d41a6bcd5985bb87764c287f3edb7e26d12\n"
    },
    {
      "commit": "e688257456c315cbd2d5fd4f32bd52eac0b98195",
      "tree": "d70df4feb8c2adca64eee969fb273d0f072ffa13",
      "parents": [
        "1aabd124bc642e61f491df74c1efb4e18b34c63a"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Aug 25 16:09:06 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Aug 25 16:28:18 2011 -0700"
      },
      "message": "Support for posting messages and synchronously waiting for a response.\n\nChange-Id: Id6c7a08c34fd5cb6c4632f78ece9e7898b29e52c\n"
    },
    {
      "commit": "409f95ff89653760af53bede1a8ec19e21ecc4b5",
      "tree": "c251357d26d1347a87c954b4dad54f566747e61c",
      "parents": [
        "011833c308f68928a024de71ee89c0db1c491570",
        "557b7092cc9a1dfe766ac3d0421e1049c653c4ae"
      ],
      "author": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Wed Aug 24 15:18:07 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 24 15:18:07 2011 -0700"
      },
      "message": "Merge \"Testing the GL/ CPU encoding w/ Gralloc buffers\""
    },
    {
      "commit": "557b7092cc9a1dfe766ac3d0421e1049c653c4ae",
      "tree": "4434bf618807f7e1c6000fb926d85a89ad2d6600",
      "parents": [
        "defa12e95b8d25db5f3e9a044e83d6fe680b67a3"
      ],
      "author": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Thu Aug 18 21:53:02 2011 -0700"
      },
      "committer": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Wed Aug 24 13:57:46 2011 -0700"
      },
      "message": "Testing the GL/ CPU encoding w/ Gralloc buffers\n\nThis is the test for Gralloc buffers based encoding.\ncontains a combination of two main changes:\n\n1. GL based encoding tests added to SurfaceMediaSource_test\n\n2. SurfaceMediaSource ::read() colorformat\n\nThe SurfaceMediaSource::getformat() sets it to OMX_COLOR_FormatAndroidOpaque.\nThe omx encoder needs to interpret that colorformat and reads the format\nfrom the Gralloc buffers directly\n\nChange-Id: Iee2fe8901384109a4952e1d6c528c59eb01eb5b1\n"
    },
    {
      "commit": "d52c14df02a0d6db42f643e80e248b52fe5e2fdd",
      "tree": "3917f03cac376b3a6703171c0fd09e529342cfa0",
      "parents": [
        "7a12d6ba14a35276fd3afb314d6c95055da4c6f0"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Aug 10 11:48:07 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Aug 22 14:56:29 2011 -0700"
      },
      "message": "SurfaceFlinger: use the HWC gralloc usage bit\n\nThis change makes SurfaceFlinger always use the\nGRALLOC_USAGE_HW_COMPOSER usage bit when allocating buffers that may be\npassed to the HWComposer.\n\nChange-Id: I70362a8ede2b359fb2046853f85149d597465817\n"
    },
    {
      "commit": "65fd251c3913fc921468a3dad190810db19eb9df",
      "tree": "7cc9e086b96a4e2c77ec5b77aab6bed5679e89f0",
      "parents": [
        "c0a2222552f48a2543a64a4cbe913d0b9ffc3cbf"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Aug 18 11:20:58 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Aug 19 15:02:26 2011 -0700"
      },
      "message": "Input system bug fixes, particularly for stylus.\nBug: 5049148\n\nFinished stylus support, including support for indirect stylus\nand mouse tools.\n\nAdded TILT axis.  When stylus tilt X/Y is available, it is transformed\ninto an orientation and tilt inclination which is a more convenient\nrepresentation and a simpler extension to the exiting API.\n\nTouch devices now only report touch data using a single input\nsource.  Previously touch devices in pointer mode would report\nboth absolute touch pad data and cooked pointer gestures.\nNow we just pick one.  The touch device switches modes as needed\nwhen the focused application enables/disables pointer gestures.\nThis change greatly simplifies the code and reduces the load\non the input dispatcher.\n\nFixed an incorrect assumption that the value of ABS_(MT_)DISTANCE\nwould be zero whenever the stylus was in direct contact.  It appears\nthat the correct way to determine whether the stylus is in direct\ncontact (rather than hovering) is by checking for a non-zero\nreported pressure.\n\nAdded code to read the initial state of tool buttons and axis values\nwhen the input devices are initialized or reset.  This fixes\nproblems where the input mapper state might have the wrong initial\nstate.\n\nMoved responsibility for cancelling pending inputs (keys down,\ntouches, etc.) to the InputDispatcher by sending it a device reset\nnotification.  This frees the InputReader from having to synthesize\nevents during reset, which was cumbersome and somewhat brittle\nto begin with.\n\nConsolidated more of the common accumulator logic from\nSingleTouchInputMapper and MultiTouchInputMapper into\nTouchInputMapper.\n\nImproved the PointerLocation output.\n\nChange-Id: I595d3647f7fd7cb1e3eff8b3c76b85043b5fe2f0\n"
    },
    {
      "commit": "3ced044154945f9d60983032278e00fe28f4ab1b",
      "tree": "84dc5de0042328edd75dc1a24982e7f3af9f92c9",
      "parents": [
        "16296180984756e631611005179f42865af35621"
      ],
      "author": {
        "name": "Rajneesh Chowdury",
        "email": "rajneeshc@google.com",
        "time": "Fri Aug 12 16:43:37 2011 -0700"
      },
      "committer": {
        "name": "Rajneesh Chowdury",
        "email": "rajneeshc@google.com",
        "time": "Fri Aug 19 14:34:47 2011 -0700"
      },
      "message": "Fix for 4142219 Don\u0027t hard code platform-specific limitations (Jni/ Java)\n\nAlso fixes 5118207 add other video codec support for video editor export.\n\nChange-Id: If72427173bd8ff684af07ba00f4425c1deef29c6\n"
    },
    {
      "commit": "c8f4c6a5d02d46eedd876bfc0be3468d6d4000e0",
      "tree": "91c045bb01ac5e5f0f7d46312b8e6ffa6f6b4b88",
      "parents": [
        "a8993e10f9aca690722512d147d2f98ed29a3d75",
        "9b8fc65b0353db3a962ab52dc556c356d556fcc1"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Thu Aug 18 14:31:39 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 18 14:31:39 2011 -0700"
      },
      "message": "Merge \"SurfaceTexture: fix queues-to-composer\""
    },
    {
      "commit": "fde00591c6e3243a7834b21f57e8c386f23aa597",
      "tree": "54dd66de3665d0e2aacb490f806f1fbdb6393f43",
      "parents": [
        "7fa6e4248383ea9d894cc2ac8037cbb04cb13197",
        "b9ac75d3dfc53ab4a0a104da147f1dfd7bc8c12f"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Wed Aug 17 22:24:53 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 17 22:24:53 2011 -0700"
      },
      "message": "Merge \"Add new camera focus mode FOCUS_MODE_CONTINUOUS_PICTURE.\""
    },
    {
      "commit": "9b8fc65b0353db3a962ab52dc556c356d556fcc1",
      "tree": "c62f12d000864f496c9ab42ff5752a376ee7c3ae",
      "parents": [
        "842d9de74f9eaaf8a7b89dbe8475faf014ddafb8"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Aug 17 18:19:00 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Aug 17 18:19:00 2011 -0700"
      },
      "message": "SurfaceTexture: fix queues-to-composer\n\nThis change fixes the NATIVE_WINDOW_QUEUES_TO_WINDOW_COMPOSER query of\nSurface and SurfaceTextureClient.  Surface now uses the inherited\nSurfaceTextureClient implementation of this query.  SurfaceTextureClient\nnow queries SurfaceFlinger to determine whether buffers that are queued\nto its ISurfaceTexture will be sent to SurfaceFlinger (as opposed to\nsome other process).\n\nChange-Id: Iff187e72f30d454229f07f896b438198978270a8\n"
    },
    {
      "commit": "c395530de8d91e301460e0bc16e70696043049e3",
      "tree": "8c5fb64e8c142a33f7c7bfaaa114dea37e74b804",
      "parents": [
        "656f9b6a1cf7e1e6154959d20c078fb2d98cfc91",
        "8618ebcc5d20a5983da1fc6200d50c3662aca6e3"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Aug 17 16:45:35 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 17 16:45:35 2011 -0700"
      },
      "message": "Merge \"don\u0027t return the current buffer from dequeueBuffer\""
    },
    {
      "commit": "8618ebcc5d20a5983da1fc6200d50c3662aca6e3",
      "tree": "56e364cad0f30931fb430f68bb7d40f483d68e8e",
      "parents": [
        "1a227437be33157175b4de5f47d08a02647ee71a"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Aug 17 15:42:04 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Aug 17 15:49:13 2011 -0700"
      },
      "message": "don\u0027t return the current buffer from dequeueBuffer\n\nwe were not reseting mCurrentTexture in some situations\nwhich in turn caused dequeueBuffers() return a\n\"FREE\" buffer that was also current.\nVery often it was harmless, but it created a race with\nupdateTexImage() which could cause the following\nqueueBuffers() to fail.\n\nBug: 5156325\nChange-Id: If15a31dc869117543d220d6e5562c57116cbabdb\n"
    },
    {
      "commit": "32f684651674469eb3bf2a618c239a5bf9846c21",
      "tree": "3660fa46633c99ebc91a5cef25a067b788e6e117",
      "parents": [
        "45add1abe3c6a96aa170f5321bb14fb8e16e9a6b",
        "ddf155b8338eb894a97612e4cb21257c11d8434a"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Aug 17 14:40:57 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 17 14:40:57 2011 -0700"
      },
      "message": "am ddf155b8: am 5dcda1fd: am 88512f59: am a8313e71: Merge \"Fix String16 operator+ to actually work\"\n\n* commit \u0027ddf155b8338eb894a97612e4cb21257c11d8434a\u0027:\n  Fix String16 operator+ to actually work\n"
    },
    {
      "commit": "ddf155b8338eb894a97612e4cb21257c11d8434a",
      "tree": "61b261474cdd94124eef612647faf6e542dbffda",
      "parents": [
        "51beb81a8e901020293b7a30a68b405bca71d258",
        "5dcda1fda53bdc6dfe80cf37e62cacdc216224b1"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Aug 17 14:38:15 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 17 14:38:15 2011 -0700"
      },
      "message": "am 5dcda1fd: am 88512f59: am a8313e71: Merge \"Fix String16 operator+ to actually work\"\n\n* commit \u00275dcda1fda53bdc6dfe80cf37e62cacdc216224b1\u0027:\n  Fix String16 operator+ to actually work\n"
    },
    {
      "commit": "5dcda1fda53bdc6dfe80cf37e62cacdc216224b1",
      "tree": "f077ab3af42f4fd0e2d98a39ae6e693da0b4c2a9",
      "parents": [
        "ee93fd5c0d7b0296fca17363ec00dc2ee63a0841",
        "88512f59bc051a42f4dd70acc8af5622f7e99db6"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Aug 17 14:35:20 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 17 14:35:20 2011 -0700"
      },
      "message": "am 88512f59: am a8313e71: Merge \"Fix String16 operator+ to actually work\"\n\n* commit \u002788512f59bc051a42f4dd70acc8af5622f7e99db6\u0027:\n  Fix String16 operator+ to actually work\n"
    },
    {
      "commit": "88512f59bc051a42f4dd70acc8af5622f7e99db6",
      "tree": "1160596c095f0991d9ac7cb2cecf7cfc347c83cb",
      "parents": [
        "7a0d746bf2eaca4ff9d150e2cd2604b72ec5a2cb",
        "a8313e71fe8b483448d14e22610101c5f3672744"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Aug 17 14:31:08 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 17 14:31:08 2011 -0700"
      },
      "message": "am a8313e71: Merge \"Fix String16 operator+ to actually work\"\n\n* commit \u0027a8313e71fe8b483448d14e22610101c5f3672744\u0027:\n  Fix String16 operator+ to actually work\n"
    },
    {
      "commit": "b9ac75d3dfc53ab4a0a104da147f1dfd7bc8c12f",
      "tree": "8153bfc44e9bea4256e99a02ce9e97467e24ec1e",
      "parents": [
        "2fd1f816cd6911145af5f60476108cd088168ba6"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Tue Aug 16 21:14:16 2011 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu Aug 18 00:15:40 2011 +0800"
      },
      "message": "Add new camera focus mode FOCUS_MODE_CONTINUOUS_PICTURE.\n\nThe API is still hidden.\n\nbug:5086125\nChange-Id: I69268a95ad6aae249771d3a8dfb423ffe2d87081\n"
    },
    {
      "commit": "4d07453ded674f5116ed4098cd4cec3b79cca3ba",
      "tree": "08214092d9af9dc22c164a24ff75f8127d2e8dab",
      "parents": [
        "d144748d4767b2ccfb13857e23f78bc944e9531d"
      ],
      "author": {
        "name": "Josiah Gaskin",
        "email": "josiahgaskin@google.com",
        "time": "Tue Aug 16 15:16:04 2011 -0700"
      },
      "committer": {
        "name": "Josiah Gaskin",
        "email": "josiahgaskin@google.com",
        "time": "Tue Aug 16 15:16:04 2011 -0700"
      },
      "message": "Fix String16 operator+ to actually work\n\nThis change fixes the String16 utility\u0027s operator+ function.\n\nChange-Id: Ibed7b07277b50bf178febc72b6ce497893e66f17\n"
    },
    {
      "commit": "d84fd7927eaf70fb7b9a55dd6c2adccfa66009ac",
      "tree": "e6051a1e65e85f1d6db1a1cd50b4c55b7153e9c4",
      "parents": [
        "7a9effebcf84dcbd820cafe6886a5562cb3d8e22"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Aug 16 13:48:44 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Aug 16 13:48:44 2011 -0700"
      },
      "message": "Error handling in ACodec and Nuplayer.\n\nCodec errors (and codec not found errors) now trigger a controlled shutdown\nof playback and signal errors to the MediaPlayer client.\n\nChange-Id: I2ee23ff2a1422d05a1a21e50ecb87d7c7ab958cc\n"
    },
    {
      "commit": "6fe248139223a9dfaab709bc13849bdc16f27564",
      "tree": "4089c0d358a6dcecdb0baf2aa1239ff1ef8ea569",
      "parents": [
        "91b539801833012798b1998c30440136add7e7d4"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Aug 10 21:07:02 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Aug 11 22:33:02 2011 -0700"
      },
      "message": "fix a memory leak and memory corruption in RefBase\n\nwe would leak a weakref_impl if a RefBase was never incWeak()\u0027ed.\nthere was also a dangling pointer that would cause memory corruption\nand double-delete when a custom destroyer was used to delay the\nexecution of ~RefBase.\n\nit turns out that the custom destroyer feature caused most of the\nproblems, so it\u0027s now gone. The only client was SurfaceFlinger\nwho now handles things on its own.\n\nRefBase is essentially back its \"gingerbread\" state, but the\ncode was slightly cleaned-up.\n\nBug: 5151207, 5084978\nChange-Id: Id6ef1d707f96d96366f75068f77b30e0ce2722a5\n"
    },
    {
      "commit": "1ee60119c4fa51ebfa781cf5fdc33f192e8551b8",
      "tree": "2fb0ce22107a1d3f0c73f3bd5d63a877f5a16d44",
      "parents": [
        "61bb11cfa03abc345f27ec14f63929b6f600edff"
      ],
      "author": {
        "name": "Ted Bonkenburg",
        "email": "tedbo@google.com",
        "time": "Tue Jul 26 09:51:18 2011 -0700"
      },
      "committer": {
        "name": "Ted Bonkenburg",
        "email": "tedbo@google.com",
        "time": "Thu Aug 11 19:58:25 2011 -0700"
      },
      "message": "Remove ParcelSurfaceTexture and update MediaPlayer\n\nThis removes the ParcelSurfaceTexture class since that functionality has been\nfolded into Surface.java. The change also updates the MediaPlayer to get rid\nof setParcelSurfaceTexture() and modifies setTexture() to use the new Surface\nfunctionality in order to simplify the code.\n\nChange-Id: Iafa75ea3188263928128325d8a726786971b4de4\n"
    },
    {
      "commit": "ed3418076dc28c71be9bf2c09ed266ceab160a70",
      "tree": "077580565c2d0c0e61a90eb002d93c90a58d84ba",
      "parents": [
        "4dbd1bc6ae84cb4d0cd28922e917473ec6e53517",
        "b654e6e55a3e8d7e8c2e0b8b1ff4bb4f76c10e05"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Aug 11 15:22:42 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 11 15:22:42 2011 -0700"
      },
      "message": "am b654e6e5: am d144748d: Merge \"Add missing include\"\n\n* commit \u0027b654e6e55a3e8d7e8c2e0b8b1ff4bb4f76c10e05\u0027:\n  Add missing include\n"
    },
    {
      "commit": "b654e6e55a3e8d7e8c2e0b8b1ff4bb4f76c10e05",
      "tree": "d9a5df0134c6397647b21c62bd6a12ae2af8ac64",
      "parents": [
        "5f07406717db34927f5095de3829b1e74ebd7c16",
        "d144748d4767b2ccfb13857e23f78bc944e9531d"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Aug 11 15:18:22 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 11 15:18:22 2011 -0700"
      },
      "message": "am d144748d: Merge \"Add missing include\"\n\n* commit \u0027d144748d4767b2ccfb13857e23f78bc944e9531d\u0027:\n  Add missing include\n"
    },
    {
      "commit": "6752ec80b25cb1f39507d18745c7e62323772cda",
      "tree": "a60b43960ba842d1a853337080a568941de42df4",
      "parents": [
        "246ae5011c385d100f73b441ce7e47a6ea7e33ba"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Aug 10 10:37:50 2011 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Aug 11 14:33:45 2011 -0700"
      },
      "message": "Audio effects: track CPU and memory use separately\n\nBefore this change, CPU and memory usage for an audio effect were\nregistered and checked against the limit by audio policy manager\nupon effect instantiation. Even if an effect was not enabled\nit would prevent another effect to be created if the CPU load budget\nwas exceeded, which was too restrictive.\n\nThis change adds a method to register/unregister CPU load only when\nan effect is enabled or disabled.\nIt also adds a mechanism to place all effects on the global output mix\nin suspend state (disabled) when an effect is enabled on a specific session.\nThis will allow applications using session effects to have the priority\nover others using global effects.\n\nAlso fixes some issues with suspend/restore mechanism:\n- avoid taking actions when an effect is disconnected and was not enabled.\n- do not remove a session from the suspended sessions list when corresponding\neffect chain is destroyed.\n\nChange-Id: I5225278aba1ae13d0d0997bfe26a0c9fb46b17d3\n"
    },
    {
      "commit": "d1c5b0233c0beecc46928318cd3dde9a9e609907",
      "tree": "9cc2f87cceb6fc9249439052938811e137cd85f7",
      "parents": [
        "311ffe37a5ebe79a888509211584bffb5a2eb7ce"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Aug 11 13:36:04 2011 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Aug 11 13:36:04 2011 -0700"
      },
      "message": "Add missing include\n\nChange-Id: I00181029e80a2ba75320550c14e950fadbab8a64\n"
    },
    {
      "commit": "e30af493a68391cc37891c56a5dd4fcfccffe9fc",
      "tree": "878ab71fa840675bf9fe4347ae1cc02b7e343c73",
      "parents": [
        "8f226dcb21c84f5479a0a1b2d6486293dcd2e937",
        "44874c236de282b0d898f179fc9fdafa84aae40d"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Aug 11 12:24:51 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 11 12:24:51 2011 -0700"
      },
      "message": "am 44874c23: am c962512c: Merge \"added stub for getting buffer from surface texture\"\n\n* commit \u002744874c236de282b0d898f179fc9fdafa84aae40d\u0027:\n  added stub for getting buffer from surface texture\n"
    },
    {
      "commit": "44874c236de282b0d898f179fc9fdafa84aae40d",
      "tree": "09f66d4e5101a7ce2ae71068db7d5f85c03c818c",
      "parents": [
        "ca97671e2b74ed31b5bef6fd0b39e489f1ec5f51",
        "c962512cac19e2bb1103c0c1a5f739d40d4d7740"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Aug 11 12:19:44 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 11 12:19:44 2011 -0700"
      },
      "message": "am c962512c: Merge \"added stub for getting buffer from surface texture\"\n\n* commit \u0027c962512cac19e2bb1103c0c1a5f739d40d4d7740\u0027:\n  added stub for getting buffer from surface texture\n"
    },
    {
      "commit": "311ffe37a5ebe79a888509211584bffb5a2eb7ce",
      "tree": "60d02ad9608c8e1c9e604880bf5fea870e203b23",
      "parents": [
        "6f5a837c9c4a55c82111c6cd5af6055b63fcb5a9"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Aug 11 11:56:59 2011 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Aug 11 11:56:59 2011 -0700"
      },
      "message": "added stub for getting buffer from surface texture\n\nChange-Id: If61153cacdd8027848f40f8d9035f7c4aead0a98\n"
    },
    {
      "commit": "875dee4e126db967b69bbfe8be323d1562d08282",
      "tree": "c9ef05df8cf548251a97d675a692b89d36a3b6cf",
      "parents": [
        "379eac24740374552eed03db7d7e1a1ee3011a2a",
        "5c71575983e96e6e4c5149e7e39d92f760f5c1fc"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Aug 10 19:40:48 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 10 19:40:48 2011 -0700"
      },
      "message": "Merge changes I5174a6ec,I1f8538b6,Idb71fdcf\n\n* changes:\n  fix a crasher in SurfaceTexture::updateTexImage()\n  rework dequeueBuffer()\u0027s main loop.\n  error out when SurfaceTexture APIs are called while not connected\n"
    },
    {
      "commit": "379eac24740374552eed03db7d7e1a1ee3011a2a",
      "tree": "2b23aa60ce7b1df8ece2721579515d47bb4aa409",
      "parents": [
        "294a6199bd3a6eb7a78d5e2d85bdf706aa886a36",
        "1478836d2a3c1b93dadda13397dda1f71bbed667"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Aug 10 19:40:15 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 10 19:40:15 2011 -0700"
      },
      "message": "Merge \"Fix typos and use new HAL_PRIORITY_URGENT_DISPLAY constant\""
    },
    {
      "commit": "5c71575983e96e6e4c5149e7e39d92f760f5c1fc",
      "tree": "f329ccee1c1cd06d469318d19d62dee34ab4bf7a",
      "parents": [
        "71fd1213b49e6a33bea42348876eb1db2ab3d362"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Aug 10 17:35:09 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Aug 10 17:35:52 2011 -0700"
      },
      "message": "fix a crasher in SurfaceTexture::updateTexImage()\n\nwe now make sure to drain the buffer queue on disconnect.\nthis happens only when in synchrnous mode. in async mode\nwe clear all buffers except the head of the queue.\n\nfor extra safety we also catch the null pointer\nin updateTexImage (which should  never happen) and return\nan error.\n\nBug: 5111008\n\nChange-Id: I5174a6ecbb0de641c6510ef56a611cbb4e9e1f59\n"
    },
    {
      "commit": "71fd1213b49e6a33bea42348876eb1db2ab3d362",
      "tree": "bad46c918113fcfa7e18d8d63bdd6656546cdae5",
      "parents": [
        "a04cda9986366ab480ad8008c4d923271b05d78e"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Aug 10 16:33:23 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Aug 10 17:35:26 2011 -0700"
      },
      "message": "rework dequeueBuffer()\u0027s main loop.\n\nthis simplifies the code a bit and also makes sure\nwe reevaluate mAbandoned and mConnectedApi each time\nwe come back from waiting on mDequeueCondition\n\nChange-Id: I1f8538b62ad321b51ed79d953b700036daba796d\n"
    },
    {
      "commit": "a04cda9986366ab480ad8008c4d923271b05d78e",
      "tree": "bc7b846040e1dda936c65a18c1aeda656c88f22c",
      "parents": [
        "fd545de7cd43d6335eb3e44df36336728a8e1e4c"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Aug 10 15:28:58 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Aug 10 17:33:46 2011 -0700"
      },
      "message": "error out when SurfaceTexture APIs are called while not connected\n\n- also log a warning when freeAllBuffers is called with a non empty buffer queue\n- rename freeAllBuffers to freeAllBuffersLocked\n\nChange-Id: Idb71fdcf233b9ccae62d5a2a7c3c4bad2501d877\n"
    },
    {
      "commit": "8f226dcb21c84f5479a0a1b2d6486293dcd2e937",
      "tree": "cc495a1e9d6e760e17d6336793b9b9f29bf4587d",
      "parents": [
        "b4459d8d6d5377db2494f5a11124d49194f1044c",
        "ca97671e2b74ed31b5bef6fd0b39e489f1ec5f51"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@android.com",
        "time": "Wed Aug 10 13:59:44 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 10 13:59:44 2011 -0700"
      },
      "message": "am ca97671e: am 6f5a837c: Merge \"Fix getSwitchState according to device capabilities.\"\n\n* commit \u0027ca97671e2b74ed31b5bef6fd0b39e489f1ec5f51\u0027:\n  Fix getSwitchState according to device capabilities.\n"
    },
    {
      "commit": "b4459d8d6d5377db2494f5a11124d49194f1044c",
      "tree": "e0da0b1b0383b6db010130734ed90f86e5a96925",
      "parents": [
        "8a6fb50d69ec40a413b117bc9145a97ec427852f",
        "7e79b9aad85db332d334f8bc1625bf46f030830f"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Aug 10 13:59:41 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 10 13:59:41 2011 -0700"
      },
      "message": "am 7e79b9aa: am dbff9107: Merge \"Support wrapping app processes to inject debug instrumentation. Bug: 4437846\"\n\n* commit \u00277e79b9aad85db332d334f8bc1625bf46f030830f\u0027:\n  Support wrapping app processes to inject debug instrumentation. Bug: 4437846\n"
    },
    {
      "commit": "ca97671e2b74ed31b5bef6fd0b39e489f1ec5f51",
      "tree": "fc9c0417d4e2aa2857af9ed67a1fdf450224385b",
      "parents": [
        "7e79b9aad85db332d334f8bc1625bf46f030830f",
        "6f5a837c9c4a55c82111c6cd5af6055b63fcb5a9"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@android.com",
        "time": "Wed Aug 10 13:56:33 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 10 13:56:33 2011 -0700"
      },
      "message": "am 6f5a837c: Merge \"Fix getSwitchState according to device capabilities.\"\n\n* commit \u00276f5a837c9c4a55c82111c6cd5af6055b63fcb5a9\u0027:\n  Fix getSwitchState according to device capabilities.\n"
    },
    {
      "commit": "7e79b9aad85db332d334f8bc1625bf46f030830f",
      "tree": "487389c56bab25a3e30917d8ebe989ef74617b83",
      "parents": [
        "4e197ea8a6c5d5f4393a474591cccdd3fa27ecde",
        "dbff91077ddf437b62794e077d2ce9e10fff8170"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Aug 10 13:56:31 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 10 13:56:31 2011 -0700"
      },
      "message": "am dbff9107: Merge \"Support wrapping app processes to inject debug instrumentation. Bug: 4437846\"\n\n* commit \u0027dbff91077ddf437b62794e077d2ce9e10fff8170\u0027:\n  Support wrapping app processes to inject debug instrumentation. Bug: 4437846\n"
    },
    {
      "commit": "6f5a837c9c4a55c82111c6cd5af6055b63fcb5a9",
      "tree": "011fa55f1c405246660b6a18787c14fd1fb006cf",
      "parents": [
        "dbff91077ddf437b62794e077d2ce9e10fff8170",
        "42305c54c72692c56d6f77db50b475107cd7a39e"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@android.com",
        "time": "Wed Aug 10 13:42:03 2011 -0700"
      },
      "committer": {
        "name": "Android Code Review",
        "email": "code-review@android.com",
        "time": "Wed Aug 10 13:42:03 2011 -0700"
      },
      "message": "Merge \"Fix getSwitchState according to device capabilities.\""
    },
    {
      "commit": "dbff91077ddf437b62794e077d2ce9e10fff8170",
      "tree": "350f326738f900e12e5d518b5300123d8c6ddd96",
      "parents": [
        "e15a73ee4c9a28d89888095c7649a70c116ee160",
        "d5d7e164d316e595a64faf1555839d1939da0863"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Aug 10 13:41:36 2011 -0700"
      },
      "committer": {
        "name": "Android Code Review",
        "email": "code-review@android.com",
        "time": "Wed Aug 10 13:41:36 2011 -0700"
      },
      "message": "Merge \"Support wrapping app processes to inject debug instrumentation. Bug: 4437846\""
    },
    {
      "commit": "422e3f749697ee264ea377bf92e6b65912ba7978",
      "tree": "0850381095975f3b8aeaa23e9aa6dbe11ad2ec86",
      "parents": [
        "aba367eea4792a1d3778061181e3a38e188f4f06"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 10 12:45:24 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 10 12:45:24 2011 -0700"
      },
      "message": "Revert \"Notify the OMX component that it\u0027s going to be used in \"secure\" mode.\"\n\nThis reverts commit 7616178271e95f009452a21ea45e7225997dc27a.\n"
    },
    {
      "commit": "1478836d2a3c1b93dadda13397dda1f71bbed667",
      "tree": "208d5c15bad2aab89d19948e0a6f611ccc440c35",
      "parents": [
        "3aa7bf7330eaf231d00f7dfdcb504215822148be"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 09 18:57:37 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 09 18:57:37 2011 -0700"
      },
      "message": "Fix typos and use new HAL_PRIORITY_URGENT_DISPLAY constant\n\nChange-Id: I703f8a96dd0dfec427e74363ad95729bfefc95c7\n"
    },
    {
      "commit": "f6d08b95289ec9069fa2f3789dbfc4748dbb4883",
      "tree": "11bd4321dc42756d85d49786196ffb43536318ce",
      "parents": [
        "7466b0fdfe6ae07e56053d70db414b7a2f792400",
        "43a3d91dff059034d699c9612dab68b8d9cdf556"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 09 15:23:19 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 09 15:23:19 2011 -0700"
      },
      "message": "Merge changes Ie06e73e5,I7ac6b5b0\n\n* changes:\n  free all buffers when ANativeWindow::disconnect is called\n  return correct value from query after connecting a surface\n"
    },
    {
      "commit": "c74b93fdf3ddb6fdab7878edab4d304fb14917f9",
      "tree": "96a1db2deffc309c16b63d5e4dc1fda165b6ed8e",
      "parents": [
        "a4418e0fd94f27c0b40abe17d42af0880cb3effb"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Aug 02 13:33:41 2011 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Aug 09 10:21:10 2011 -0700"
      },
      "message": "Keep effects sessions active when the caller dies.\n\nDon\u0027t remove effects until the session they are in goes away or all\nAudioEffects have been explicitly released. This allows the control\npanel process to die without stopping the effects.\n\nChange-Id: I4496e5df080230ca1af149dec95c1309ab8ea888\n"
    },
    {
      "commit": "053b02df2d350466a2226a90709e50fedef54747",
      "tree": "28a844d96bfc2fdd0e3714305a8cb86e977a1d90",
      "parents": [
        "fc4ba1141570fab7734e53586dc3d6f3afde10de"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Aug 08 19:14:03 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Aug 08 20:25:44 2011 -0700"
      },
      "message": "return correct value from query after connecting a surface\n\nthe first time a surface was connected, the values returned\nby query NATIVE_WINDOW_DEFAULT_{WIDTH|HEIGHT} and\nNATIVE_WINDOW_TRANSFORM_HINT were wrong until a call\nto queueBuffer was performed.\n\nBug: 5137366, 5121607\nChange-Id: I7ac6b5b0daa876638f6bed7c20f286a6e6d984f6\n"
    },
    {
      "commit": "7616178271e95f009452a21ea45e7225997dc27a",
      "tree": "09f0833599cd31c29010cc678b05224b04aef882",
      "parents": [
        "e7a0bc0126e3d4cb6ec268ed847f5ea4cc70f7c6"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Aug 08 15:28:21 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Aug 08 15:28:21 2011 -0700"
      },
      "message": "Notify the OMX component that it\u0027s going to be used in \"secure\" mode.\n\nChange-Id: Id87c4b295eb38f7d24045918e73df298d7b842f9\nrelated-to-bug: 5137212\n"
    },
    {
      "commit": "e38a2cba16f2161a3a41521c84325cc5c24d9668",
      "tree": "f685b0a22c9237e5d84717b86aaf4797446b0348",
      "parents": [
        "e30d6f1588a47fa4ad57a1de7bb28a7a0c58dedf"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Aug 04 15:05:17 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Aug 04 15:05:17 2011 -0700"
      },
      "message": "Eliminate superfluous memcpys by wrapping an ABuffer in a MediaBuffer\n\nChange-Id: I1313f117cd7cdfaf7d6ec25413a0b4b8ea495037\nrelated-to-bug: 5122973\n"
    },
    {
      "commit": "70fb9085044c5e6f52c33c970d238b764cf2373b",
      "tree": "2a1e4b684899ad695600fbf2fb6158792fff794a",
      "parents": [
        "bb1e275c0e684dd213f124da77110cdd9d6f090c"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Tue Aug 02 17:49:50 2011 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu Aug 04 16:40:28 2011 +0800"
      },
      "message": "Add camera bayer image format.\n\nThe API are hidden.\n\nbug:5086073\n\nChange-Id: Ic9a53e5d5007ad3f12a28406ee25098227f14cbc\n"
    },
    {
      "commit": "3a5e36f96bf61a8fb71c49cf93bd97c5e1d6abb4",
      "tree": "32f83006fd40076bb74d5b5764595127efd7f4f2",
      "parents": [
        "f8c1f1298ac3ede518c8d29eeb6719746c6afaf0",
        "98c531dca9e52af280ca002658bbe38775b3f6ae"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Aug 02 17:19:05 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 02 17:19:05 2011 -0700"
      },
      "message": "am 98c531dc: am 9b0c6bee: Merge \"Fix a compiling error when trying to use setBufferCount\"\n\n* commit \u002798c531dca9e52af280ca002658bbe38775b3f6ae\u0027:\n  Fix a compiling error when trying to use setBufferCount\n"
    },
    {
      "commit": "98c531dca9e52af280ca002658bbe38775b3f6ae",
      "tree": "bf06f94f7cff2c9dae6f009423339aab2f297c3f",
      "parents": [
        "e1d271546767a8e2213aabba92506af9e97020b4",
        "9b0c6beed2cd5463655712ad80ed160c08611ff8"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Aug 02 17:15:24 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 02 17:15:24 2011 -0700"
      },
      "message": "am 9b0c6bee: Merge \"Fix a compiling error when trying to use setBufferCount\"\n\n* commit \u00279b0c6beed2cd5463655712ad80ed160c08611ff8\u0027:\n  Fix a compiling error when trying to use setBufferCount\n"
    },
    {
      "commit": "c6ca43176dc30b4c3175cfeedb3dd7ec4c8d4202",
      "tree": "13cffac3b80d2b758e7b60f6d826ffa191955ada",
      "parents": [
        "f87743e7bdfd10b9a1719036a6320a32df078879"
      ],
      "author": {
        "name": "Teng-Hui Zhu",
        "email": "ztenghui@google.com",
        "time": "Tue Aug 02 16:26:41 2011 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Aug 02 16:57:20 2011 -0700"
      },
      "message": "Fix a compiling error when trying to use setBufferCount\n\nChange-Id: I1aefaf7ec111340a584e0beeeea60b845e16bb1f\n"
    },
    {
      "commit": "bb1e275c0e684dd213f124da77110cdd9d6f090c",
      "tree": "0a20f8da5c8e09ca8663053ae39e544bfd315243",
      "parents": [
        "0175028b73eefc503f67d5686b71e1957677e0de"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Sat Jul 30 05:00:37 2011 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Tue Aug 02 15:48:41 2011 +0800"
      },
      "message": "Pass camera frame metadata from camera service to Java.\n\nbug:4460717\nChange-Id: I2fae6e1dfca6b8f3a5ee5716fc7817f5417bf657\n"
    },
    {
      "commit": "25d8fb51dae37f1becf4fb3d32e8600c418eb6e8",
      "tree": "f91a22aefc4d3a50ecd049273c7e36cc571815dd",
      "parents": [
        "1164d776c612a33bc5e54262589490fb1d2c257d"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Tue Aug 02 13:20:36 2011 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Tue Aug 02 14:27:58 2011 +0800"
      },
      "message": "Add camera recording hint parameter.\n\nThe API is still hidden.\n\nbug:4266229\nChange-Id: I5e4c24e9e2808582aecb55ac4f1d5be3ed7e36a2\n"
    },
    {
      "commit": "be1aa8250cee7819c49741e819e81659d1d03823",
      "tree": "3041a44459110da304f930b1a3ebcbd042291999",
      "parents": [
        "ad65b46d5f6c569b588556dcf85b64d59600b175"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Jul 27 16:04:54 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Jul 31 15:38:09 2011 -0700"
      },
      "message": "Refactor input reader to add stylus support.\nBug: 5064702\n\nIntroduced the concept of an InputListener to further decouple\nthe InputReader from the InputDispatcher.  The InputListener\nexposes just the minimum interface that the InputReader needs\nto communicate with the outside world.  The InputReader\npasses arguments to the InputListener by reference, which makes\nit easy to queue them up.\n\nConsolidated all of the InputReader locks into one simple global\nMutex.  The reason this wasn\u0027t done before was due to potential\nre-entrance in outbound calls to the InputDispatcher.  To fix this,\nthe InputReader now queues up all of the events it wants to send\nusing a QueuedInputListener, then flushes them outside of the\ncritical section after all of the event processing is finished.\nRemoving all of the InputMapper locks greatly simplifies the\nimplementation.\n\nAdded tests for new stylus features such as buttons, tool types,\nand hovering.\n\nAdded some helpers to BitSet32 to handle common code patterns\nlike finding the first marked bit and clearing it.\n\nFixed a bug in VelocityTracker where the wrong pointer trace\ncould get cleared when handling ACTION_POINTER_DOWN.  Oops.\n\nChanged PointerCoords so it no longer stores useless zero\naxis values.  Removed editAxisValue because it is not very\nuseful when all zero value axes are absent and therefore\ncannot be edited in place.\n\nAdded dispatch of stylus hover events.\n\nAdded support for distance and tool types.\n\nChange-Id: I4cf14d134fcb1db7d10be5f2af7b37deef8f8468\n"
    },
    {
      "commit": "a30ed30b756136e253fd797b6eaf83205c413e15",
      "tree": "3e55091b1bef74317d7f52f08ac825486fd33ec7",
      "parents": [
        "86574d66dacc09c9b5a0a0ab2623ec01704b6fc8",
        "b7f09f28b92927ad5eb46f86e11a8a3df33ec914"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Fri Jul 29 14:16:18 2011 -0400"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Fri Jul 29 14:16:18 2011 -0400"
      },
      "message": "resolved conflicts for merge of b7f09f28 to honeycomb-plus-aosp\n\nChange-Id: Iebde13c41a2adf4e693d87e808cb0659f913e4e6\n"
    },
    {
      "commit": "b7f09f28b92927ad5eb46f86e11a8a3df33ec914",
      "tree": "9ca31dfa758b2a6c79743ff2889ad86c326eb36b",
      "parents": [
        "5f7203eb258503bc5d2ba29176bdf483a68a93b8",
        "b7ed8471f1b96aff901149cf9ac29e4b32672f93"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Fri Jul 29 09:53:09 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jul 29 09:53:09 2011 -0700"
      },
      "message": "am b7ed8471: am 01caec8c: Merge \"Adding an optional param to the SurfaceTexture constructor.\"\n\n* commit \u0027b7ed8471f1b96aff901149cf9ac29e4b32672f93\u0027:\n  Adding an optional param to the SurfaceTexture constructor.\n"
    },
    {
      "commit": "b7ed8471f1b96aff901149cf9ac29e4b32672f93",
      "tree": "a71b648bae8012050c4fa9f73e132c595a763c02",
      "parents": [
        "5a27a7543edbd09a56e36d04adb4cfab922e6346",
        "01caec8c4165a6cce2f276f8016b9eadab966944"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Fri Jul 29 09:50:11 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jul 29 09:50:11 2011 -0700"
      },
      "message": "am 01caec8c: Merge \"Adding an optional param to the SurfaceTexture constructor.\"\n\n* commit \u002701caec8c4165a6cce2f276f8016b9eadab966944\u0027:\n  Adding an optional param to the SurfaceTexture constructor.\n"
    },
    {
      "commit": "0e4afa1fb10c0ab0878b136a1c11ea27129c7e81",
      "tree": "f08822735b4dc61978a1a65592f26420ddfc0885",
      "parents": [
        "bd1dee94dfe2e1d7564cae3c8c6be53cc4e66998"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Fri Jul 29 11:04:51 2011 -0400"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Fri Jul 29 11:06:24 2011 -0400"
      },
      "message": "Adding an optional param to the SurfaceTexture constructor.\n\nChange-Id: I0fdbccf483a16af8039b85c0562f19a34ebce536\n"
    },
    {
      "commit": "42305c54c72692c56d6f77db50b475107cd7a39e",
      "tree": "ef474884e0e06bf6688bdfb25b6a5fd1c5c6a218",
      "parents": [
        "bd1dee94dfe2e1d7564cae3c8c6be53cc4e66998"
      ],
      "author": {
        "name": "Michaël Burtin",
        "email": "mburtin@gmail.com",
        "time": "Fri Jul 29 14:25:47 2011 +0200"
      },
      "committer": {
        "name": "Michaël Burtin",
        "email": "mburtin@gmail.com",
        "time": "Fri Jul 29 15:28:02 2011 +0200"
      },
      "message": "Fix getSwitchState according to device capabilities.\n\nWhen querying switch state for a given device id, ensure that the device\nexposes the given switch in its capabilities, report AKEY_STATE_UNKNOWN\notherwise.\nThis fix a bug in InputManager that reports an incorrect switch state\n(down) when a device exposes at least one switch in its capabilites and\nanother switch is queried. For example, this can leads in always\nreporting LID state open (SW_LID down) if only SW_HEADPHONE_INSERT is\nexposed in capabilities.\n\nChange-Id: I4e5265ec02af918c317673789e7948529842aa2d\nSigned-off-by: Michaël Burtin \u003cmburtin@gmail.com\u003e\n"
    },
    {
      "commit": "d5d7e164d316e595a64faf1555839d1939da0863",
      "tree": "a91f61091b3f1025cd58cab417167b83dcdcbcec",
      "parents": [
        "4d1fa60bfe660fd0fc6671116da597c0027cbb16"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon May 16 17:08:42 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@android.com",
        "time": "Thu Jul 28 14:00:27 2011 -0700"
      },
      "message": "Support wrapping app processes to inject debug instrumentation.\nBug: 4437846\n\nChange-Id: Ib0559e5224b0fa0df074e485787307b6634e8654\n"
    },
    {
      "commit": "4f35092af55d569975e6931ee6e8c0343f749d1e",
      "tree": "c15077eab86d9e3da6cee3c63fc07b69d8898479",
      "parents": [
        "3d5a703db83265f7914eed8580de986106abfad2",
        "66269ea6f68f2f25888ce1080c94ac782742fafc"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Jul 27 15:54:51 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 27 15:54:51 2011 -0700"
      },
      "message": "Merge \"Move extract native libraries to JNI code\""
    },
    {
      "commit": "43a5d6e541fef5983e967d9b67792c0a088418ea",
      "tree": "aa14971b2431d0c07b150825e22c4f9e471cdf40",
      "parents": [
        "f92fbc5daf6a4446054205ee2d829ea157afa2b7",
        "6ff9b812abe388478bbaba118a580c3f4a30c863"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 27 14:45:28 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 27 14:45:28 2011 -0700"
      },
      "message": "Merge \"Bug 4599730 Get audio channel count on MediaPlayer\""
    },
    {
      "commit": "913a5a3cc600b496da937010160cd326bd98798f",
      "tree": "29f4c9e14d4b165b4334091f6f5497c9e1cce960",
      "parents": [
        "b0878223db87700cdc988a6d9197ca4e3c4772db"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jun 14 11:50:22 2011 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Jul 27 11:31:57 2011 -0700"
      },
      "message": "DO NOT MERGE. may fix build on some version of gcc\n\nChange-Id: Id99d390862731fd3fbc009dbffdf1d2a59dbe348\n"
    },
    {
      "commit": "6ff9b812abe388478bbaba118a580c3f4a30c863",
      "tree": "419eae586adb35add8ac2a88227564830a6ddb3d",
      "parents": [
        "72de151fdb82e5e010c3461e37e492b8cce9b44a"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jul 25 09:26:22 2011 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 27 10:21:09 2011 -0700"
      },
      "message": "Bug 4599730 Get audio channel count on MediaPlayer\n\nRelated changes:\n - Fix bug in get/setParameter* to recycle Parcels when done with them.\n\nChange-Id: Iaff05e91bbd99a14fccb79d816dd873359b6ae65\n"
    },
    {
      "commit": "d8d3276a29aab91855a5a5e88042abbfd40124a3",
      "tree": "e1eb8d239b66e8babf273c2bff3be7256e3eeb37",
      "parents": [
        "e25e51f5fc279da619f6882b388316dcc5c39a9d",
        "6dbdc40e9a317488fc5f6e14cf9e699bce9a9387"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jul 27 09:02:47 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 27 09:02:47 2011 -0700"
      },
      "message": "Merge \"Fix issue 4604090: notification sound interrupted.\""
    },
    {
      "commit": "4c2292efbbfe7338138a9a0e8eefeaabdef1a0b4",
      "tree": "65e88242ebf7961310a9405ba18a1c470c6a5aa5",
      "parents": [
        "83f463f6f8e5a469a27c0620985022548aa64ade"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Fri Jul 22 02:37:11 2011 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Wed Jul 27 05:25:35 2011 +0800"
      },
      "message": "Add camera face detection API.\n\nAPI are still hidden.\n\nbug:4460717\nChange-Id: I1a515061f141a89bd61c875257712789fb15d2d4\n"
    },
    {
      "commit": "686200cb5f3e80c0b0519ec14cc54b280a560863",
      "tree": "c15a2e68f60ad61bf2b3cae397bedb779c36de4f",
      "parents": [
        "070ce94b9fd91d1bb22161a85178440cb46d8ece",
        "f3503c2c30dc0b7eb7603998469f437136497c5c"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jul 26 12:08:07 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 26 12:08:07 2011 -0700"
      },
      "message": "Merge \"remove dead code and member variables.\""
    },
    {
      "commit": "66269ea6f68f2f25888ce1080c94ac782742fafc",
      "tree": "0ecbefcdbecf98cbacd428a422e6a2a846ac726e",
      "parents": [
        "e432a0005180ba9ac2c1d7822c4761b475fddc51"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Jul 12 14:14:01 2011 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Jul 26 10:14:58 2011 -0700"
      },
      "message": "Move extract native libraries to JNI code\n\nThe built-in ZipFile class was quite a long time to find an unpack\nlibraries. Move everything to using the libutils ZipFileRO class that\ngoes quite a bit faster. Initial measurements are 6 times faster than\nthe Java code.\n\nAlso, read files off the disk and compare their CRC against the APK\u0027s\nCRC to see if we need to write the new file to disk. This also cuts down\nthe bootup time by up to a second per APK that has native files.\n\nChange-Id: Ic464a7969a17368fb6a6b81d026888c4136c7603\n"
    },
    {
      "commit": "f3503c2c30dc0b7eb7603998469f437136497c5c",
      "tree": "934ebd5f0c8da99a02cb7a4df77d908c54d34f02",
      "parents": [
        "9a817a35f11cb118209a3238451603258ae7f105"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jul 25 19:56:08 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jul 25 20:03:43 2011 -0700"
      },
      "message": "remove dead code and member variables.\n\nalso fix some comments and improve debugging logs.\n\nChange-Id: I83e55309f306332b59e1ec46104c4a7fffbf3c97\n"
    },
    {
      "commit": "6dbdc40e9a317488fc5f6e14cf9e699bce9a9387",
      "tree": "eed576356d64812249d1b021eff7f88e24bde25a",
      "parents": [
        "6c454c3225fd47422024af915fa28d5210d1e82e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 22 09:04:31 2011 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 25 18:41:12 2011 -0700"
      },
      "message": "Fix issue 4604090: notification sound interrupted.\n\nThe problem is that the audio HAL fails to acquire the wake lock when playing the notification.\nThis is because of a change that removed the mediaserver process form the system group for honeycomb.\n\nThe fix consists in requesting the wake lock from PowerManagerService when AudioFlinger mixer\nwakes up.\n\nA consequence of this change is that audio HALs or pcm drivers do not have to hold wake locks\nanymore as in the past.\n\nChange-Id: I4fb3cc84816c9c408ab7fec75886baf801e1ecb5\n"
    },
    {
      "commit": "19f773bc96c141227fab3af68d9fcdf9a3c087cb",
      "tree": "dfd5e8a936eba7c270b917fcc3574ad52d38a1c3",
      "parents": [
        "c854b9c05eafdaeb7e33c8e8bbcbce3668ac7ec6",
        "b1f8c266e47554bc45632f021c9e409399e907e7"
      ],
      "author": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Mon Jul 25 15:00:16 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 25 15:00:16 2011 -0700"
      },
      "message": "Merge \"Adding Metadata mode to SurfaceMediaSource\""
    },
    {
      "commit": "234cef81299688db75edb6572e37374a67f79bbc",
      "tree": "3fa3964aa740ef9c81204f995fd780dcfe6244e6",
      "parents": [
        "fb526513056eb275a8ad7ff7998e2e56be8fd467",
        "0f7f4ece1b6b73caf608d533d833a8cdc11c8131"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 25 14:43:05 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 25 14:43:05 2011 -0700"
      },
      "message": "Merge \"Added APIs for audio preprocessing\""
    },
    {
      "commit": "0f7f4ece1b6b73caf608d533d833a8cdc11c8131",
      "tree": "0f8a57676ec5ac53b22594b5f754a6216c720651",
      "parents": [
        "84e35d995f0b804a322e9e07fd1a0341658763ef"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sun Jul 24 13:36:09 2011 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 25 14:39:00 2011 -0700"
      },
      "message": "Added APIs for audio preprocessing\n\nAdded APIs to control pre processes applied on captured audio.\nThose APIs are still hidden until reviewed by API council.\n\nThree types of standard pre processes are supported:\n- Automatic Gain Control (AGC) by AutomaticGainControl class\n- Acoustic Echo Cancellation (AEC) by AcousticEchoCanceler class\n- Noise Suppression (NS) by NoiseSuppressor class\n\nA method is added to AudioEffect class to query audio pre processings\napplied by default by the platform on a given AudioRecord session ID.\n\nChange-Id: I0b9fceeb8c704dd06319c3b52b85c96fe871d51d\n"
    },
    {
      "commit": "fb526513056eb275a8ad7ff7998e2e56be8fd467",
      "tree": "97f56fa60700a32258b9fe466403fb4dafb950c9",
      "parents": [
        "84e35d995f0b804a322e9e07fd1a0341658763ef",
        "83dd43f45aa3212239acfb35d799216e840c9e2f"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Jul 25 14:21:14 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 25 14:21:14 2011 -0700"
      },
      "message": "Merge \"Do not support still image capture mode for timelapse video recording\""
    }
  ],
  "next": "d50aef50f640723e95ca270441161dfb042115d0"
}
