)]}'
{
  "log": [
    {
      "commit": "3f14891fc9e764d97de07b109f066aedfff90c2e",
      "tree": "7d026487ee719489cea2c1237901ef6cf325efe2",
      "parents": [
        "05d30b14843bf7cf252873f4d0d39706878b28c2",
        "2352b978a3c94cd88f41d0d908f961333fdac1e9"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 19 15:37:32 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 19 15:37:32 2011 -0700"
      },
      "message": "Merge \"Initial checkin of spot presentation for touchpad gestures.\""
    },
    {
      "commit": "2352b978a3c94cd88f41d0d908f961333fdac1e9",
      "tree": "24f8f19e9b2895cc2c3489bf2dd7a09aaf5834db",
      "parents": [
        "f76dc56c33ba66138af70d72803cf55f881c3717"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 12 22:39:53 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 19 15:35:51 2011 -0700"
      },
      "message": "Initial checkin of spot presentation for touchpad gestures.\n\nAdded a new PointerIcon API (hidden for now) for loading\npointer icons.\n\nFixed a starvation problem in the native Looper\u0027s sendMessage\nimplementation which caused new messages to be posted ahead\nof old messages sent with sendMessageDelayed.\n\nRedesigned the touch pad gestures to be defined in terms of\nmore fluid finger / spot movements.  The objective is to reinforce\nthe natural mapping between fingers and spots which means there\nmust not be any discontinuities in spot motion relative to\nthe fingers.\n\nRemoved the SpotController stub and folded its responsibilities\ninto PointerController.\n\nChange-Id: I5126b1e69d95252fda7f2a684c9287e239a57163\n"
    },
    {
      "commit": "578492e999b3919cfc587024c5f86d6837c3aa7c",
      "tree": "362cb7ad4c104098f8994e6aa03917b95281e1fe",
      "parents": [
        "4af51a14febf0c6caf844f4620c423c6dd46bfab",
        "27cd07ca8006fd80d85379ada416874bfa78aa88"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Apr 18 19:51:26 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 18 19:51:26 2011 -0700"
      },
      "message": "Merge \"changes to SurfaceTexture needed for unification with SF\""
    },
    {
      "commit": "b0dfade955f2e2e19a827ca2119f3c5d319a824a",
      "tree": "bbbda0f558c45cecb2bff60498b9b77592882faf",
      "parents": [
        "2ecebd6f69db9a127f78ae32916d1e0066939b29",
        "0a47f4f711514ceb3e5f6d3ecdbc4c74f7b3bbef"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 18 08:12:36 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 18 08:12:36 2011 -0700"
      },
      "message": "Merge \"Parcel::appendFrom({const } Parcel *parcel, size_t, size_t)\""
    },
    {
      "commit": "644c4f186259cd26a2fb1e5be3ce32d891adc7af",
      "tree": "465571d42648f723fb1d857c8d8b0c249a1d6650",
      "parents": [
        "19e4be42616c7a337229a9a17dc982374dec8980",
        "5f05f99aaedaba18c426fac287bcb18d56dbe881"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Apr 15 18:15:13 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 15 18:15:13 2011 -0700"
      },
      "message": "Merge \"Fix a GraphicBuffer leak in SurfaceTexture\""
    },
    {
      "commit": "50e657bb2d005568f5dd8bc1d904d07b0d94018f",
      "tree": "bcf319e64984c80f4793602aeb366e7f6b33afdd",
      "parents": [
        "720dd9a89857512d14adabea4efbb542d25fbb02"
      ],
      "author": {
        "name": "Bjorn Bringert",
        "email": "bringert@android.com",
        "time": "Tue Mar 08 16:00:40 2011 +0000"
      },
      "committer": {
        "name": "Bjorn Bringert",
        "email": "bringert@android.com",
        "time": "Fri Apr 15 10:04:31 2011 +0100"
      },
      "message": "Add Java API for writing TTS engines\n\nThis removes the old non-public C++ API for TTS\nengines and replaces it with a Java API.\n\nThe new API is still @hidden, until it has been approved.\n\nBug: 4148636\nChange-Id: I7614ff788e11f897e87052f684f1b4938d539fb7\n"
    },
    {
      "commit": "d195e5ab401432ddac659791640a2927fc668699",
      "tree": "61169b923b4d530a097ac8ff9e3029dfe468b7cd",
      "parents": [
        "966f9e558d714d9d41189e989b21e6d5fec35047"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 13 15:39:37 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 13 16:43:15 2011 -0700"
      },
      "message": "Replace a custom AndroidRuntime::findClass with a more targeted fix.\n\nThis seems simpler and more contained, and I think the comment explaining\nwhy hoop-jumping is necessary is a bit clearer now.\n\nChange-Id: Ief4afd7cbb42188ed835fce23e497520bdb753a8\n"
    },
    {
      "commit": "966f9e558d714d9d41189e989b21e6d5fec35047",
      "tree": "91a441b9bd37150759458b5ef908271de2c18a84",
      "parents": [
        "3220d0a1dec028ae648cb4d89d7a6aa824b34225",
        "162ee49e1ce8800de80697fdd0e0e42ad7e9374e"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Wed Apr 13 15:36:14 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 13 15:36:14 2011 -0700"
      },
      "message": "Merge \"- Add another parameter in notify() to be able to send timed text sample through listener during video playback. - Add OnTimedTextListener in the MediaPlayer For feature request 800939.\""
    },
    {
      "commit": "162ee49e1ce8800de80697fdd0e0e42ad7e9374e",
      "tree": "fb729edc49c75aa905daa34211810bd92c959f8c",
      "parents": [
        "a58ee55f490953247882298d56003cbf94285344"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Apr 11 17:23:27 2011 -0700"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Wed Apr 13 11:11:34 2011 -0700"
      },
      "message": "- Add another parameter in notify() to be able to send timed text sample\nthrough listener during video playback.\n- Add OnTimedTextListener in the MediaPlayer\nFor feature request 800939.\n\nChange-Id: I65072c27acb4c0037109a72be38c73e9f667420f\n"
    },
    {
      "commit": "0a47f4f711514ceb3e5f6d3ecdbc4c74f7b3bbef",
      "tree": "0e46ec1bb8cb044f590dc57cc813d7cf87ce3475",
      "parents": [
        "fda06c0cd9bf1db78adcddf11d374785c6737b61"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Apr 13 10:21:56 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Apr 13 10:21:56 2011 -0700"
      },
      "message": "Parcel::appendFrom({const } Parcel *parcel, size_t, size_t)\n\nAs far as I can tell \"parcel\" isn\u0027t actually modified by the implementation.\n\nChange-Id: Ib806eefdc13c97b932773e1dc9ca3a4aad4422b2\n"
    },
    {
      "commit": "fda06c0cd9bf1db78adcddf11d374785c6737b61",
      "tree": "b544b475103adec40eea25fcb90b0cecc59082eb",
      "parents": [
        "2432d1bd4828d10d97cf72f974d8312a168bb2ca",
        "e98e4c806320ccb3078805ac019cca3ed9796123"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Wed Apr 13 01:14:42 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 13 01:14:42 2011 -0700"
      },
      "message": "Merge \"Add camera metering area API.\""
    },
    {
      "commit": "e98e4c806320ccb3078805ac019cca3ed9796123",
      "tree": "e0e45cc84870df03d44185ac6fc9658e6edfc271",
      "parents": [
        "a58ee55f490953247882298d56003cbf94285344"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Tue Apr 12 19:34:29 2011 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Wed Apr 13 16:06:47 2011 +0800"
      },
      "message": "Add camera metering area API.\n\nThe API are still hidden.\n\nbug:3475893\nChange-Id: Id4147528def5e0fe067e1a3ed315fa34c14a0640\n"
    },
    {
      "commit": "461fa8b05dfb4fd334980365e27002a7520e866e",
      "tree": "19238dece6998ee2121503d18b4548163e9e2704",
      "parents": [
        "d3a6956a6d69d7399931c403cd31cb0236278fc6",
        "18490fb93e206fd899c3258096cc32f293373c92"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Apr 12 12:51:08 2011 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Apr 12 12:51:08 2011 -0700"
      },
      "message": "resolved conflicts for merge of 18490fb9 to master\n\nChange-Id: I6c68e6fb0f9c1182a955689bbffc161a8f30bd37\n"
    },
    {
      "commit": "18490fb93e206fd899c3258096cc32f293373c92",
      "tree": "e45db3abacf59a0cba4604cde390c310e38e4153",
      "parents": [
        "0b9b8711a1a2107dc913cc751b7d981fce4f3082",
        "87b3c0dcc45223ff9d5ab2e39d7b9a6953e03f50"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Apr 12 10:27:15 2011 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Apr 12 10:27:15 2011 -0700"
      },
      "message": "resolved conflicts for merge of 87b3c0dc to honeycomb-plus-aosp\n\nChange-Id: Ia1a0024aabf531438203eb9fea3a10dd15eabe53\n"
    },
    {
      "commit": "27cd07ca8006fd80d85379ada416874bfa78aa88",
      "tree": "b84ecf49433b440242072cc186ba6944c7b372b7",
      "parents": [
        "7797e647fc8fcd5091b9449c0044f5cb70db5b47"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Apr 11 21:19:55 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Apr 11 21:19:55 2011 -0700"
      },
      "message": "changes to SurfaceTexture needed for unification with SF\n\n- implement connect/disconnect\n- implement missing query\n- handle texture_2d in addition to texture_external_oes\n\nChange-Id: I971a70821f00f22b01f5337de4a7d451177fec4d\n"
    },
    {
      "commit": "a3804cf77f0edd93f6247a055cdafb856b117eec",
      "tree": "795814e56ceddf3773f7f2b47bb7a6b632daa5d5",
      "parents": [
        "4123211637dcc0155091016f0c0987b80e56ab7b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 11 16:50:19 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 11 17:04:01 2011 -0700"
      },
      "message": "You don\u0027t need to poke around inside FileDescriptor manually.\n\nWe can help you with that.\n\nNote also that getParcelFileDescriptorFD did no such thing. All its callers\nwere passing in a regular java.io.FileDescriptor and expecting the int. No\nParcelFileDescriptors involved.\n\nChange-Id: Idc233626f20c092e719f152562601f406cc1b64a\n"
    },
    {
      "commit": "87b3c0dcc45223ff9d5ab2e39d7b9a6953e03f50",
      "tree": "8c64414e6f079c9511163657f200d2ee132309f4",
      "parents": [
        "4430670f48f75661293371dab8db55865f5f56e0",
        "08d9d9a46250c4fad66e9b637e8898a3524c4286"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@android.com",
        "time": "Mon Apr 11 15:33:19 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Apr 11 15:33:19 2011 -0700"
      },
      "message": "am 08d9d9a4: Merge \"Runtime resource overlay, iteration 1.\"\n\n* commit \u002708d9d9a46250c4fad66e9b637e8898a3524c4286\u0027:\n  Runtime resource overlay, iteration 1.\n"
    },
    {
      "commit": "5f05f99aaedaba18c426fac287bcb18d56dbe881",
      "tree": "791dab7fb51fb0e49663e9af9f8ac9f44f9242ec",
      "parents": [
        "7797e647fc8fcd5091b9449c0044f5cb70db5b47"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Apr 08 19:10:43 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Apr 08 19:28:04 2011 -0700"
      },
      "message": "Fix a GraphicBuffer leak in SurfaceTexture\n\nThis leak was intentional, it was there to deal with the fact that\nsome gralloc implementations don\u0027t track buffer handles with\nfile-descriptors so buffers needed to stay alive until there were\nregistered, which is not guaranteed by binder transactions.\n\nIn this new implementation, we use a small BBinder holding a\nreference to the buffer, which with tuck into the parcel. This forces\nthe reference to stay alive until the parcel is destroyed, which\nis guaranteed (by construction) to happen after the buffer is\nregistered.\n\nthis allows the public facing API to not expose the previous hack.\n\nChange-Id: I1dd6cd83679a2b7457ad628169e2851acc027143\n"
    },
    {
      "commit": "30771b773393596812b6cfd2a4ddf490c43437aa",
      "tree": "99c0fb52730bf00be95a0259363e86ef2c0e7304",
      "parents": [
        "43a17654cf4bfe7f1ec22bd8b7b32daccdf27c09"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Sat Apr 02 06:19:46 2011 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Fri Apr 08 17:45:15 2011 +0800"
      },
      "message": "Add camera focus area API.\n\nThe API are still hidden.\n\nbug:3475893\n\nChange-Id: I92405c9e332b7fb141788cda7ebc9705dd666c67\n"
    },
    {
      "commit": "85b65f2008e7eb8ef492a63cba80555f58915769",
      "tree": "54a9c8a8d30449bc6fbebbac3da25a6518c4873f",
      "parents": [
        "59ad81e19bf8312d4abb5f1b754502a750568be5",
        "ed0079ddddd4070f3369b13b274222da2e69f4b9"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Apr 06 13:03:11 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 06 13:03:11 2011 -0700"
      },
      "message": "Merge \"Miscellaneous code cleanup in audio framework\""
    },
    {
      "commit": "59ad81e19bf8312d4abb5f1b754502a750568be5",
      "tree": "becf5105fe408407552f78d4396b8547f7ef494e",
      "parents": [
        "5a4fb5c735f82b26eb9a9da589856dc877e208c8",
        "c8a04b536bb8ad12a87e6dd68d66cff1e7fcd7e7"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Apr 06 12:22:29 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 06 12:22:29 2011 -0700"
      },
      "message": "Merge \"remove more unused references to ISurface\""
    },
    {
      "commit": "5a4fb5c735f82b26eb9a9da589856dc877e208c8",
      "tree": "363cb2eda9a714d6010f6c42eec077ddbb63091f",
      "parents": [
        "e4e551e0ffb1113984ed0ae0264a54e9c8289f8d",
        "fb96b5ece35ed3c0f3e682d1f9864d7700fe63fc"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Apr 06 12:22:01 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 06 12:22:01 2011 -0700"
      },
      "message": "Merge \"Remove unused references to ISurface\""
    },
    {
      "commit": "3fc982f41fda1f254bfbc35490d81cd82a0ed90a",
      "tree": "6f9ba92dc2c9001a156f298c37dcdef9c9552600",
      "parents": [
        "fb84ce0df6b2db84981e4efa4530397a85240d4a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Mar 30 16:20:26 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Apr 06 11:00:37 2011 -0700"
      },
      "message": "Add new resource configurations for screen width/height in \"dp\".\n\nYou can now specify resource configuration variants \"wNNNdp\"\nand \"hNNNdp\".  These are the minimum screen width/height in \"dp\"\nunits.  This allows you to do things like have your app adjust\nits layout based only on the about of horizontal space available.\n\nThis introduces a new configuration change flag for screen size.\nNote that this configuration change happens each time the orientation\nchanges.  Applications often say they handle the orientation change\nto avoid being restarted at a screen rotation, and this will now\ncause them to be restarted.  To address this, we assume the app can\nhandle this new config change if its target SDK version is \u003c ICS.\n\nChange-Id: I22f8afa136b4f274423978c570fa7c9855040496\n"
    },
    {
      "commit": "ed0079ddddd4070f3369b13b274222da2e69f4b9",
      "tree": "ead156e5b8cbc905126d3e805d813088cdd3a5ff",
      "parents": [
        "9f4ef02aef8f3cc1969f83f59a9be40f1ff71625"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Apr 04 10:50:50 2011 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Apr 06 10:24:18 2011 -0700"
      },
      "message": "Miscellaneous code cleanup in audio framework\n\nChanges:\n - Move declaration of kClassPathName to top of file so it can be used\n   in more than one place, instead of \"android/media/AudioSystem\".\n - Make private methods static.\n - Add comment to stream_type, audio_mode, force_use types that they must match\n   values in AudioSystem.java.\n - Add comment about unused types mp3_sub_format and vorbis_sub_format.\n - Fix typos.\n - Use @ in javadoc comments.\n - Delete dead APIs setMode, getMode, setRouting, getRouting in AudioSystem.java\n   (they are all hidden, deprecated, and unused by rest of framework)\n - Delete unused private log method.\n - Fix pathname for android_media_AudioSystem.cpp.\n - Improve code formatting for space after \u003d\u003d and !\u003d.\n - Add logging of delta for changing audio policy manager ref count.\n\nChange-Id: I18037c7beb8ab76d1fda08c11e589f6e591d36e1\n"
    },
    {
      "commit": "c8a04b536bb8ad12a87e6dd68d66cff1e7fcd7e7",
      "tree": "8e8018a9898f9785eeef5e8484c93d51cee4f052",
      "parents": [
        "fb96b5ece35ed3c0f3e682d1f9864d7700fe63fc"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Apr 05 15:44:20 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Apr 05 20:11:55 2011 -0700"
      },
      "message": "remove more unused references to ISurface\n\nChange-Id: I2201f1ca2bb8f203a081d94a0134f798778dfbef\n"
    },
    {
      "commit": "ae29b7632ecf2068698c0d121cff284dcc82f4ec",
      "tree": "c8193b55997aa1f605a8c80acc76b0b21d101e4e",
      "parents": [
        "42bc0e946f8b986fb3aaada9980b496172e2b511"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 28 18:37:07 2011 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 05 12:05:41 2011 -0700"
      },
      "message": "New fix for issue 4111672: control block flags\n\nThe first fix (commit 913af0b4) is problematic because it makes threads\nin mediaserver process block on the cblk mutex. This is not permitted\nas it can cause audio to skip or worse have a malicious application\nprevent all audio playback by keeping the mutex locked.\n\nThe fix consists in using atomic operations when modifying the control\nblock flags.\n\nAlso fixed audio_track_cblk_t::framesReady() so that it doesn\u0027t block\nwhen called from AudioFlinger (only applies when a loop is active).\n\nChange-Id: Ibf0abb562ced3e9f64118afdd5036854bb959428\n"
    },
    {
      "commit": "fb96b5ece35ed3c0f3e682d1f9864d7700fe63fc",
      "tree": "5609397f8d47537df2d8a852b1390ad13fd02476",
      "parents": [
        "756484c2bb110c7c2155e41b6f51672ecc638a23"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Apr 04 21:09:55 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Apr 04 21:09:55 2011 -0700"
      },
      "message": "Remove unused references to ISurface\n\nChange-Id: I542806b5c91c525ed7cde821f6963f1e020ddf1a\n"
    },
    {
      "commit": "756484c2bb110c7c2155e41b6f51672ecc638a23",
      "tree": "a89dabf3f14bc93f1727b8c2dea76499039ab9ba",
      "parents": [
        "9aa26ee3bc47170e0bebef8df48c6199ca147c3c",
        "e5a1bffd9106b1d82259de1a202e1f2f28742392"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Apr 01 14:58:43 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 01 14:58:43 2011 -0700"
      },
      "message": "Merge \"SurfaceTexture can now force the client to request a buffer\""
    },
    {
      "commit": "e5a1bffd9106b1d82259de1a202e1f2f28742392",
      "tree": "5db6b7eb4b1b32395aae1950e2bcec1c6a80fd4d",
      "parents": [
        "616fb9a38a5b558b1245b0e7f6dc0c4e5ef1a985"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Mar 31 19:10:24 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Apr 01 14:43:35 2011 -0700"
      },
      "message": "SurfaceTexture can now force the client to request a buffer\n\nSurfaceTexture now has the concept of default size a new method,\nsetDefaultBufferSize() to set it. When the default size is\nchanged, dequeueBuffer() will return a value telling the\nclient that it must ask for a new buffer.\n\nThe above only applies if the client has not\noverriden the buffer size with setGeometry.\n\nChange-Id: I520dc40363054b7e37fdb67d6a2e7bce70326e81\n"
    },
    {
      "commit": "bc2278b95f4012d81918b0faedea36011f122a33",
      "tree": "8836705e54192c71efac8c72a36efa36692b13c6",
      "parents": [
        "165121f64acb8ebd0f1b955684360477c71660d3",
        "21bc5c917d4ee2a9b2b8173091e6bba85eaff899"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Apr 01 12:56:35 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 01 12:56:35 2011 -0700"
      },
      "message": "Merge \"Add a little input event consistency verifier.\""
    },
    {
      "commit": "57f4b77c89bafedf9468f9a636561c0c193405c9",
      "tree": "9e73065411411858c9c6ae350c5ee8ffe14598c3",
      "parents": [
        "c6b22e2727bd3730edd5ad72831a9bb4670d00f3"
      ],
      "author": {
        "name": "Mårten Kongstad",
        "email": "marten.kongstad@sonyericsson.com",
        "time": "Thu Mar 17 14:13:41 2011 +0100"
      },
      "committer": {
        "name": "Kenneth Andersson",
        "email": "kenneth.andersson@sonyericsson.com",
        "time": "Fri Apr 01 14:12:10 2011 +0200"
      },
      "message": "Runtime resource overlay, iteration 1.\n\nRuntime resource overlay allows unmodified applications to appear\nas if they had been compiled with additional resources defined. See\nlibs/utils/README for more information.\n\nThis commit is the first iteration of runtime resource overlay. It\nprovides the actual overlay modifications and loading of trusted overlay\npackages (ie residing in /vendor) targeting framework-res.apk.\n\nThis commit loads exactly one overlay package. The overlay,\nif present, must target framework-res.apk and be located at\n/vendor/overlay/framework/framework-res.apk.\n\nChange-Id: If26ee7754813004a96c043dba37fbe99fa3919db\n"
    },
    {
      "commit": "21bc5c917d4ee2a9b2b8173091e6bba85eaff899",
      "tree": "f62d92d00808b53244fd6ae31f5efd58e3f08a02",
      "parents": [
        "0029c66203ab9ded4342976bf7a17bb63af8c44a"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Feb 28 18:27:14 2011 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Mar 31 19:57:00 2011 -0700"
      },
      "message": "Add a little input event consistency verifier.\n\nThe idea is to assist with debugging by identifying cases in which\nthe input event stream is corrupted.\n\nChange-Id: I0a00e52bbe2716be1b3dfc7c02a754492d8e7f1f\n"
    },
    {
      "commit": "64802ca780563e2bd715a300e0bb81eec643baf0",
      "tree": "61462a8c74f56deeab509fcb4ea441a35dc18044",
      "parents": [
        "7b445dd7c0814a39eaf912fa1a871f00d5190550",
        "c6b22e2727bd3730edd5ad72831a9bb4670d00f3"
      ],
      "author": {
        "name": "Russell Brenner",
        "email": "russellbrenner@google.com",
        "time": "Thu Mar 31 18:55:26 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 31 18:55:26 2011 -0700"
      },
      "message": "am c6b22e27: Updated JBQ\\\u0027s original SurfaceTexture stubs to make webkit MR1 buildable\n\n* commit \u0027c6b22e2727bd3730edd5ad72831a9bb4670d00f3\u0027:\n  Updated JBQ\u0027s original SurfaceTexture stubs to make webkit MR1 buildable\n"
    },
    {
      "commit": "7b445dd7c0814a39eaf912fa1a871f00d5190550",
      "tree": "36c558dbd3b40c2c97a6d3a8c0e6b77ed81e48c4",
      "parents": [
        "b98967942e9a764b80abc8ff1c6f6f2d620c0f7a",
        "49b49f8fb6d094768d4e093353b34271f2da1bfc"
      ],
      "author": {
        "name": "Russell Brenner",
        "email": "russellbrenner@google.com",
        "time": "Thu Mar 31 18:55:20 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 31 18:55:20 2011 -0700"
      },
      "message": "am 49b49f8f: Added include/private/hwui/DrawGlInfo.h\n\n* commit \u002749b49f8fb6d094768d4e093353b34271f2da1bfc\u0027:\n  Added include/private/hwui/DrawGlInfo.h\n"
    },
    {
      "commit": "c6b22e2727bd3730edd5ad72831a9bb4670d00f3",
      "tree": "b89a7011504b3c751cfbcbeefb923bb753e19295",
      "parents": [
        "49b49f8fb6d094768d4e093353b34271f2da1bfc"
      ],
      "author": {
        "name": "Russell Brenner",
        "email": "russellbrenner@google.com",
        "time": "Thu Mar 31 17:32:20 2011 -0700"
      },
      "committer": {
        "name": "Russell Brenner",
        "email": "russellbrenner@google.com",
        "time": "Thu Mar 31 17:40:08 2011 -0700"
      },
      "message": "Updated JBQ\u0027s original SurfaceTexture stubs to make webkit MR1 buildable\n\nChange-Id: If1c1610efcc0e0bc6de88c75712baed91624b1a7\n"
    },
    {
      "commit": "49b49f8fb6d094768d4e093353b34271f2da1bfc",
      "tree": "8c5b36f17c5d902f6d913fd3ad07bd2fd4872eda",
      "parents": [
        "ad663d8040ddd4f3e537117847f20d42797b429e"
      ],
      "author": {
        "name": "Russell Brenner",
        "email": "russellbrenner@google.com",
        "time": "Thu Mar 31 13:20:52 2011 -0700"
      },
      "committer": {
        "name": "Russell Brenner",
        "email": "russellbrenner@google.com",
        "time": "Thu Mar 31 13:20:52 2011 -0700"
      },
      "message": "Added include/private/hwui/DrawGlInfo.h\n\nChange-Id: If50ccabb8761a994fa1f7aef4fbdb668c6160b0c\n"
    },
    {
      "commit": "e028290d01b730b30df0dd4653f8e1c5d987b6f4",
      "tree": "ae997b32318265dd832e81ade72f44f0e0b9eec1",
      "parents": [
        "a3869525289b9490a24e72673d3b3168ce6424d1",
        "0029c66203ab9ded4342976bf7a17bb63af8c44a"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Mar 30 17:20:56 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 30 17:20:56 2011 -0700"
      },
      "message": "Merge \"Add input filter mechanism for accessibility.\""
    },
    {
      "commit": "0029c66203ab9ded4342976bf7a17bb63af8c44a",
      "tree": "a0d5f54ff6f88dae18179d1621dd2c87f1fa8d27",
      "parents": [
        "6e6cd7a5660af1a4b5a9ad091c41ef1c72ad2000"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Mar 30 02:25:18 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Mar 30 16:55:15 2011 -0700"
      },
      "message": "Add input filter mechanism for accessibility.\n\nThis patch adds a mechanism for capturing, filtering, transforming\nand injecting input events at a very low level before the input\ndispatcher attempts to deliver them to applications.  At this time,\nthe mechanism is only intended to be used by the accessibility\nsystem to implement built-in system-level accessibility affordances.\n\nThe accessibility input filter is currently just a stub.\nIt logs the input events receives and reinjects them unchanged,\nexcept that it transforms KEYCODE_Q into KEYCODE_Z.\n\nCurrently, the accessibility input filter is installed whenever\naccessibility is enabled.  We\u0027ll probably want to change that\nso it only enables the input filter when a screen reader is\ninstalled and we want touch exploration.\n\nChange-Id: I35764fdf75522b69d09ebd78c9766eb7593c1afe\n"
    },
    {
      "commit": "a51e9fd53da8aee399e592a4e0f79332e6bf8239",
      "tree": "2b31bcf5e3774cb97359c93feded3a919ee6ae37",
      "parents": [
        "790ac975d2dec3340f2e564b7ed356a1ec4a6412",
        "2c341907027dd2cd55f09b0b90a224b159233477"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Mar 30 15:30:39 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 30 15:30:39 2011 -0700"
      },
      "message": "Merge \"Revert \"retire android_native_window_t\"\""
    },
    {
      "commit": "2c341907027dd2cd55f09b0b90a224b159233477",
      "tree": "8a4c8318f7b3f516fbdab72de452966238cb380d",
      "parents": [
        "a3cbe69ae693004b2fa459d95578b4b3189c86fb"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Mar 30 15:28:21 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Mar 30 15:28:21 2011 -0700"
      },
      "message": "Revert \"retire android_native_window_t\"\n\nthis type is still used by partner\u0027s source trees.\nwe will get rid of it in next release\u0027s timeframe.\n\nThis reverts commit 7b49b976277cb3538242151e7dbd24681ddec73e.\n"
    },
    {
      "commit": "cabb7da7125a80c55233bd23959327424e9646cc",
      "tree": "adf7a349a8145ccfbb92006201129a2a0884e7a3",
      "parents": [
        "4111bec3b68a200932817f4b8924fea08f4d5905"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Mar 24 14:18:02 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Mar 30 13:13:25 2011 -0700"
      },
      "message": "Support for divx files, i.e. mpeg 4 video + mpeg audio layer III in .avi files\n\nChange-Id: I6e1e989c43300ddb0d341e3e9183cdccd69eeae6\nrelated-to-bug: 4192562\n"
    },
    {
      "commit": "a2e57ca6504adfb3045c1d349d3abad796d8001f",
      "tree": "17b774dcedb0fd1e8898ca68b5bc80e012022c2e",
      "parents": [
        "163ac289ae9952fb79c47121d65e40ed3cc75b0d"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Mar 30 11:15:27 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Mar 30 11:15:27 2011 -0700"
      },
      "message": "Stagefright DataSources now expose the underlying content mime type.\n\nUse that mime type to determine if we should do upfront buffering at the start of\nplayback and don\u0027t for audio streams to ensure playback starts fairly instantly.\n\nChange-Id: If21e36d1b024f0e5c723911bceadaa2e0307ab42\nrelated-to-bug: 4090916\n"
    },
    {
      "commit": "40c364136f09e82602692f359bcf8aa9b0df18d3",
      "tree": "0f4c13679a5dca5199c38285c5e85455e794e9b5",
      "parents": [
        "45538666db67a3fd528765b22bd4da30280128ef"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Mon Mar 28 16:10:12 2011 -0700"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Mon Mar 28 16:28:57 2011 -0700"
      },
      "message": "frameworks/base: some camera-interface cleanup\n\nMethods getNumberOfVideoBuffers() and getVideoBuffer() as well as struct\nimage_rect_struct are no longer used (instead, the necessary information is\npassed through ANativeWindow.)\n\nChange-Id: If4b11446fc9ccbde1f6b45bc70c0d0b8e54376eb\nSigned-off-by: Iliyan Malchev \u003cmalchev@google.com\u003e\n"
    },
    {
      "commit": "503b111b2421673796500627a1f6d74d81bf9548",
      "tree": "a802eff6d9b3d6403d1d87f63be04fb93fef581c",
      "parents": [
        "1e0efd157b0b182ea7ba84cc21e89bb23f5d6ddf",
        "ed7b688c015dbd064b81dfaed5dd6c7ed6728ac3"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Fri Mar 25 10:11:49 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Mar 25 10:11:49 2011 -0700"
      },
      "message": "am ed7b688c: am aac43ea1: am b8b85ea2: Merge \"Fix for bug 4126624. Change the mDrmManagerClientImpl to sp to avoid double delete the pointer.\" into honeycomb-mr1\n\n* commit \u0027ed7b688c015dbd064b81dfaed5dd6c7ed6728ac3\u0027:\n  Fix for bug 4126624. Change the mDrmManagerClientImpl to sp to avoid double delete the pointer.\n"
    },
    {
      "commit": "4c87a75073987e30b36f6be781cd10f696876ba4",
      "tree": "95c4dea897b44c84389c8ce531ea54949eadc4b8",
      "parents": [
        "e2cd33531182b31e0ace2c3acb0e960fbf1ba273"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Thu Mar 24 13:14:02 2011 -0700"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Thu Mar 24 13:14:02 2011 -0700"
      },
      "message": "Fix for bug 4126624.\nChange the mDrmManagerClientImpl to sp to avoid double delete the pointer.\n\nChange-Id: I7aacea1bc58ab6425ef6f6f09472c6f2970ebb4d\n"
    },
    {
      "commit": "7b49b976277cb3538242151e7dbd24681ddec73e",
      "tree": "53ed3dc7016109545ef9417c62cfe9949c3e8a2c",
      "parents": [
        "d6f8f798f256fc1f0401d1619d1485497ad5306c"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Wed Mar 23 16:27:03 2011 -0700"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Wed Mar 23 16:43:20 2011 -0700"
      },
      "message": "retire android_native_window_t\n\nChange-Id: I232c526168e1a93977d1c2d0fa74c8937cdeb23b\nSigned-off-by: Iliyan Malchev \u003cmalchev@google.com\u003e\n"
    },
    {
      "commit": "4dc482daac5d484f338865cdddd57528276a7ca0",
      "tree": "13734babce328f13040ac4c74ed4550b4bdca62b",
      "parents": [
        "66044c17924f56ee838e1b4262e1f64f7723aac2"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Mar 22 10:31:21 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Mar 22 13:18:09 2011 -0700"
      },
      "message": "Delay signaling the end of audio playback until all frames have actually played.\n\nChange-Id: I1fa07358a885a818fd0a5d7da425740f86095e10\nrelated-to-bug: 3404000\n"
    },
    {
      "commit": "66044c17924f56ee838e1b4262e1f64f7723aac2",
      "tree": "91d3d558c7e92e8d47e4d1aa8bdf8bec3883de79",
      "parents": [
        "e50b799dc28c523c43d066d2f2a01747a52563c2",
        "fc4c13be8ce8c2d05432d855c2c61548abef3385"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Tue Mar 22 11:43:09 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Mar 22 11:43:09 2011 -0700"
      },
      "message": "am fc4c13be: am 01240177: am 3cc797b9: Merge \"Add one more field in DecryptHandle to support bug 4126624\" into honeycomb-mr1\n\n* commit \u0027fc4c13be8ce8c2d05432d855c2c61548abef3385\u0027:\n  Add one more field in DecryptHandle to support bug 4126624\n"
    },
    {
      "commit": "c430394ed7dcb458b0850bb1ce28abeb49252d77",
      "tree": "4dc0be8cc75f8430e71931b4d1de4f6b3426cc32",
      "parents": [
        "ee4084bf063249b3506cdc0a454dd19fa8f7549f"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Mar 21 17:22:13 2011 -0700"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Mar 21 19:08:18 2011 -0700"
      },
      "message": "Add one more field in DecryptHandle to support bug 4126624\n\nChange-Id: Ic7ea5fd211c4f8283de8fdf722f89b6a94e5750b\n"
    },
    {
      "commit": "ee4084bf063249b3506cdc0a454dd19fa8f7549f",
      "tree": "3a01ae3b6f71ba8b5d0c088351cf708140cf6781",
      "parents": [
        "e2c32e9f966cf9f2c9ed94bf0703344a2cca284b"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Mar 21 16:53:14 2011 -0700"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Mar 21 16:53:14 2011 -0700"
      },
      "message": "do not merge: Cherry pick change I6529695c from master to partially fix bug 4126624.\n\nChange-Id: If724de60bd6da1becdffc815d5358ffe78629469\n"
    },
    {
      "commit": "3bbeaacfc0348a951c4bac56f2311fa9c3fe4f38",
      "tree": "1dce519ff8b1cadf4057dd759a35bd0d3a969aad",
      "parents": [
        "43e7aeb37e1d4d86eb89a0a5f620d148289d1986"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Sun Mar 20 10:25:16 2011 -0700"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Mar 21 13:50:04 2011 -0700"
      },
      "message": "Fix for 4084554.\nDRM framework support for enabling/disabling copy control settings from a DRM plugin\n\nChange-Id: I6529695cc4adbab2b9a63708bb459e3b77e07564\n"
    },
    {
      "commit": "5b7ced6a4ebcec34a36d0779773bc9e671732dbf",
      "tree": "0489d59487f225e900896f1f5fd152dc2c498666",
      "parents": [
        "affb58e727863fdc8d2c0ea444054b581eb41be5"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Mar 21 10:25:44 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Mar 21 11:13:59 2011 -0700"
      },
      "message": "Support passing headers to MediaMetadataRetriever\u0027s setDataSource API\n\nChange-Id: Ib1a5c08fc5034cac05034db27007a35c9b660b26\nrelated-to-bug: 3506316\n"
    },
    {
      "commit": "64929b490977ba681a697cadefd2c49f6ff69aba",
      "tree": "a5b22f1058644c8841b32514700d0a869f749973",
      "parents": [
        "5dbd0978cd7f2d3ff1e28bbfdef2f757de28e1bc"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Mar 17 11:06:57 2011 -0700"
      },
      "committer": {
        "name": "Russell Brenner",
        "email": "russellbrenner@google.com",
        "time": "Fri Mar 18 14:39:20 2011 -0700"
      },
      "message": "DO NOT MERGE Send WebView the current transform and whether we\u0027re drawing a layer.\nBug #3275491\n\nThese can be used by WebView to correctly apply alpha and geometric\ntransforms.\n\nChange-Id: I61057997f5fda1e803d247fc77500a038d5f3aab\n"
    },
    {
      "commit": "7fc8b4f5ff88da7011f2d04c8f019008cc23bd0f",
      "tree": "f0848300e2c7e579814226972ea4d9a30c5e34b0",
      "parents": [
        "6ed6f6d82d7b9f8d82f3ab3a9f718a0e59ffa476"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Mar 18 11:25:41 2011 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Mar 18 13:27:39 2011 -0700"
      },
      "message": "Better organize media recorder error and information event and types\n\nChange-Id: I45f1f953596985494725525c1fabf57eccc19175\n"
    },
    {
      "commit": "6ed6f6d82d7b9f8d82f3ab3a9f718a0e59ffa476",
      "tree": "4376f402d02d4fea5371ccebb11d78e44171af2b",
      "parents": [
        "315f19be8ef26fee77db2455f8c2997680755f6d",
        "aa3855d5836d2a2d83baafdf6e40caf90d3dad1c"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Mar 17 20:16:42 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 17 20:16:42 2011 -0700"
      },
      "message": "Merge \"Refactor how timeouts are calculated.\""
    },
    {
      "commit": "aa3855d5836d2a2d83baafdf6e40caf90d3dad1c",
      "tree": "5f19b7bd1c42abf7e145637ed3459cf377fa94b9",
      "parents": [
        "843e29d3751017267b96565c543df0301c31a9f7"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Mar 17 01:34:19 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Mar 17 17:29:09 2011 -0700"
      },
      "message": "Refactor how timeouts are calculated.\n\nAdded a timeout mechanism to EventHub and InputReader so that\nInputMappers can request timeouts to perform delayed processing of\ninput when needed.\n\nChange-Id: Iec2045baaf4e67690b15eef3c09a58d5cac76897\n"
    },
    {
      "commit": "ce06ebfda4bd7c511cef3d98aacf7291a743ea46",
      "tree": "6d302b8230f6d9b97166fd1b6edc92878f6eb949",
      "parents": [
        "6764ba4482129e70d33fe0a7ff2579654b5da87a",
        "c5f94d8a4779050125145396ca83fbc862c7ed6b"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Mar 17 15:52:34 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 17 15:52:34 2011 -0700"
      },
      "message": "Merge \"Add support for timestamps into SurfaceTexture.\""
    },
    {
      "commit": "cfbe4369b3cd493af3943aae7e0b1590f8e5f20d",
      "tree": "368f173d1d3b6d83473fd42a5de5191fcdb752d3",
      "parents": [
        "be3c82f25d45ccd1600ec23bab80c2e8a35a0474"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Thu Mar 17 15:02:34 2011 -0700"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Thu Mar 17 15:02:34 2011 -0700"
      },
      "message": "Fix for bug 4126103.\nmMessage in DrmInfoEvent is a reference to the message string, so the\ntemporary message created in the plugin was going out of scope and\nbeing destructed while the message was being sent. Changed DrmInfoEvent\u0027s\nmMessage to be const String8 instead of const String8\u0026\n\nChange-Id: I174197ad24f3df997d3bc1f897658cfc53862636\n"
    },
    {
      "commit": "c5f94d8a4779050125145396ca83fbc862c7ed6b",
      "tree": "83d016c9670032683faa39fda755b236a9010954",
      "parents": [
        "262564df9613e8950fb3828ecc6dfffe79cc1b31"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Feb 18 11:02:42 2011 -0800"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Mar 17 13:10:03 2011 -0700"
      },
      "message": "Add support for timestamps into SurfaceTexture.\n\nAPI addition: The timestamps are represented as nanoseconds from some\narbitrary time point. Like the SurfaceTexture transform matrix, the\ntimestamp retrieved by getTimestamp is for the last frame sent to the\nGL texture using updateTexImage().\n\nCamera HAL change: Expect vendors to set these timestamps using\nnative_window_set_buffers_timestamp().  For now, they are\nautogenerated by SurfaceTextureClient if set_buffers_timestamp() is\nnever called, but such timing is likely not accurate enough to pass a\nCTS test.\n\nbug:3300707\n\nChange-Id: Ife131a0c2a826ac27342e11b8a6c42ff49e1bea7\n"
    },
    {
      "commit": "be3c82f25d45ccd1600ec23bab80c2e8a35a0474",
      "tree": "239a5bf48c535f9580278a1b3126492100a2162c",
      "parents": [
        "454b2d1c34238ba33d8f6861971a74c80c3e302a",
        "782ffe91da665c6b1fb9e297faa6e0dc6035f40c"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Mar 17 12:38:58 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 17 12:38:58 2011 -0700"
      },
      "message": "am 782ffe91: am 9c0c5b56: am 2f1f2248: Fix missing AOSP copyright headers for a bunch of media framework files\n\n* commit \u0027782ffe91da665c6b1fb9e297faa6e0dc6035f40c\u0027:\n  Fix missing AOSP copyright headers for a bunch of media framework files\n"
    },
    {
      "commit": "08aa2cbd5e62e7ca140f78f8bea0477a19880fd9",
      "tree": "12e37d2b0cba0d0913f71374b1e5298fe41d4daf",
      "parents": [
        "4d733f520707a3b52410297b5e16bb289c40e73b"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Mar 17 11:06:57 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Thu Mar 17 12:04:04 2011 -0700"
      },
      "message": "Send WebView the current transform and whether we\u0027re drawing a layer.\nBug #3275491\n\nThese can be used by WebView to correctly apply alpha and geometric\ntransforms.\n\nChange-Id: I2ecd4376d68df886dead3c9240317de33f56828f\n"
    },
    {
      "commit": "2f1f2248c8439adbd686810e306c55f9e6a5abc3",
      "tree": "31f200e1da6121444a9b3680efdccc35627afc25",
      "parents": [
        "def35f7a47cde8bf66d4cba4570b289e0e9d625a"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Mar 17 11:02:04 2011 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Mar 17 11:10:40 2011 -0700"
      },
      "message": "Fix missing AOSP copyright headers for a bunch of media framework files\n\nbug - 4119349\n\nChange-Id: If5924e16a5f596d5d73d9beb66eaf5ac9a6f0e50\n"
    },
    {
      "commit": "48e122891afec8bfadaa9d7fdf731b8f711b5b91",
      "tree": "0c103210fc83805f971426337a4adbdfcb59aa1d",
      "parents": [
        "607a10c5c94e1f7a657a54c9ee8a9a9f31b50e25",
        "e22aa62362a3007ee59ac62d4b5969e216987995"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Mar 17 00:13:49 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 17 00:13:49 2011 -0700"
      },
      "message": "am e22aa623: am 25594e19: am f40e638e: fix [4093196] Device lock up - log spam with SharedBufferStack: waitForCondition(LockCondition) timed out\n\n* commit \u0027e22aa62362a3007ee59ac62d4b5969e216987995\u0027:\n  fix [4093196] Device lock up - log spam with SharedBufferStack: waitForCondition(LockCondition) timed out\n"
    },
    {
      "commit": "f40e638ec62cd9e1a1851809b7c8bf5e4187fad2",
      "tree": "fce830323935d7c7171c501278fb6c7ea9fdf9c8",
      "parents": [
        "7af7e00b9112f15d1683ae93975a6fcd9dd34da8"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Mar 16 23:18:07 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Mar 17 00:04:42 2011 -0700"
      },
      "message": "fix [4093196] Device lock up - log spam with SharedBufferStack: waitForCondition(LockCondition) timed out\n\na memory corruption happned when the buffer pool was resized\n(like when playing a video or using camera) and there was\nno current active buffer. In this case, the faulty code\nwould index into an array at position -1 which corrupted\n24 bytes of data.\n\nalso improved region validation code (ifdef\u0027ed out by default)\n\nBug: 4093196\nChange-Id: I915c581d131148959d720e00e3892e9186ab733d\n"
    },
    {
      "commit": "a30f43624f76a7d49fcb48944c310cb4dbfc6522",
      "tree": "33802c8360cead9e9dd88ecfe8e8d8e167dc5b3d",
      "parents": [
        "d50349de17784f924f8cca6ef2fb2708b9fd2ecd",
        "72064c66e20b9cc86900a9d833c228c345a2b2a4"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Mar 16 17:31:30 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Mar 16 17:31:30 2011 -0700"
      },
      "message": "am 72064c66: am b0204d0a: am c2b91a61: Merge \"Modify the GL renderer\\\u0027s functor to pass the clip to WebView\" into honeycomb-mr1\n\n* commit \u002772064c66e20b9cc86900a9d833c228c345a2b2a4\u0027:\n  Modify the GL renderer\u0027s functor to pass the clip to WebView\n"
    },
    {
      "commit": "80911b851764b073310fd0bffdf4a7db0d8fdd0b",
      "tree": "854e09626693907162ed479408abd619e280ddc4",
      "parents": [
        "fc59176241f498ad4eeb4237800c2eb5edd9efcd"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Mar 16 15:30:12 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Mar 16 15:31:33 2011 -0700"
      },
      "message": "Modify the GL renderer\u0027s functor to pass the clip to WebView\n\nChange-Id: If5efe399ca58f3000b2883e24e9f3736a2025184\n"
    },
    {
      "commit": "9812aed2765c671e6c3f5255ac1b8a2fe0e72ef6",
      "tree": "a622b446f9ef3484d51245a7817777a5487a496e",
      "parents": [
        "843e29d3751017267b96565c543df0301c31a9f7"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Mar 07 17:09:51 2011 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Mar 16 11:31:42 2011 -0700"
      },
      "message": "Add 3D mode key and others.\n\nRelated to an AOSP change request.\n\nChange-Id: I3f4f84b56a1af626a8783f5ecbb823eb12ba9fbe\n"
    },
    {
      "commit": "843e29d3751017267b96565c543df0301c31a9f7",
      "tree": "80277ab21b62650bb613dc6b7df062c4c7cc9963",
      "parents": [
        "437c2c1620d0a485a4f81fdb0aaf706d89b865e7",
        "2ed2462aa29c564f5231f317c27b3188da875e52"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Mar 15 20:01:16 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 15 20:01:16 2011 -0700"
      },
      "message": "Merge \"Improve VelocityTracker numerical stability.\""
    },
    {
      "commit": "2ed2462aa29c564f5231f317c27b3188da875e52",
      "tree": "63209b0ae028c1353e79d79b5e4000e7c4402ecc",
      "parents": [
        "ace13b17866dc9136aeecf6dfaf7077f37434469"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Mar 14 19:39:54 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Mar 15 19:59:47 2011 -0700"
      },
      "message": "Improve VelocityTracker numerical stability.\n\nReplaced VelocityTracker with a faster and more accurate\nnative implementation.  This avoids the duplicate maintenance\noverhead of having two implementations.\n\nThe new algorithm requires that the sample duration be at least\n10ms in order to contribute to the velocity calculation.  This\nensures that the velocity is not severely overestimated when\nsamples arrive in bursts.\n\nThe new algorithm computes the exponentially weighted moving\naverage using weights based on the relative duration of successive\nsample periods.\n\nThe new algorithm is also more careful about how it handles\nindividual pointers going down or up and their effects on the\ncollected movement traces.  The intent is to preserve the last\nknown velocity of pointers as they go up while also ensuring\nthat other motion samples do not count twice in that case.\n\nBug: 4086785\nChange-Id: I2632321232c64d6b8faacdb929e33f60e64dcdd3\n"
    },
    {
      "commit": "e5eb43b5d9dfd02890dc7f729a4892b518c30570",
      "tree": "599c6804f1d32844c6241354f8f36e450151d2f7",
      "parents": [
        "7896f1bd551a466168144f58b6b5a9932cafa749",
        "7d7dcb5ea891ad4c3252ed832ebd06accc96153d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 15 13:51:17 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Mar 15 13:51:17 2011 -0700"
      },
      "message": "am 7d7dcb5e: am 4528a7db: Merge \"Bug 4016329 do full string comparisons\" into honeycomb-mr1\n\n* commit \u00277d7dcb5ea891ad4c3252ed832ebd06accc96153d\u0027:\n  Bug 4016329 do full string comparisons\n"
    },
    {
      "commit": "4528a7db389b4da73207d00ca15b306a111650cc",
      "tree": "62d5d4ec9b4a12eba0a0cf753c55cb8ce6f94fa1",
      "parents": [
        "3b7871c242bea5834c657c25fbb89c382566f66f",
        "f8a1842e07d5c018b33762a72a1b1b5117947579"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 15 13:44:58 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 15 13:44:58 2011 -0700"
      },
      "message": "Merge \"Bug 4016329 do full string comparisons\" into honeycomb-mr1"
    },
    {
      "commit": "4a1f8a4e87635e8acbe381e4739e89c2b5135f9d",
      "tree": "478fe7c6a4329be647c68cf4fc08c0e20fa2a3e9",
      "parents": [
        "032c5c57d7b31fdb435aeebeff2d4ab572fd642f",
        "c570ee21e2c2b9802c9d1f58dba024e884b225e6"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Mar 15 10:45:01 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Mar 15 10:45:01 2011 -0700"
      },
      "message": "am c570ee21: am 41a894ad: am 75597105: Merge \"SurfaceTextureClient: Add ISurfaceTexture getter.\" into honeycomb-mr1\n\n* commit \u0027c570ee21e2c2b9802c9d1f58dba024e884b225e6\u0027:\n  SurfaceTextureClient: Add ISurfaceTexture getter.\n"
    },
    {
      "commit": "f38d253ccd79e645baf3c12eed35fc98a4ffa858",
      "tree": "0b73dd88c2f1869d0464c257d10e762b4b6e2467",
      "parents": [
        "005de48cfbce35d1f2914ed7d975fa1ed6e702ba",
        "ceb7cb1460484eda1a3cb9cd271d7caf3a3dcbd1"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Mar 15 10:42:06 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Mar 15 10:42:06 2011 -0700"
      },
      "message": "am ceb7cb14: am 02805a40: Merge \"ANativeWindow: add query for the concrete type.\" into honeycomb-mr1\n\n* commit \u0027ceb7cb1460484eda1a3cb9cd271d7caf3a3dcbd1\u0027:\n  ANativeWindow: add query for the concrete type.\n"
    },
    {
      "commit": "ed73246b32a725d00b0b7d7e171e5817d9f27a80",
      "tree": "fbece72e18da95325bc6022714633f242474724b",
      "parents": [
        "75a1ef8d14de25850a171ee80fc7f9a5b70611b5"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Mar 14 17:01:38 2011 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Mar 14 18:48:19 2011 -0700"
      },
      "message": "Add memory leak tracking/debugging code to drm server\n\nbug - 4099038\n\nChange-Id: I6c048eaf3d7f34bc144b8daaa5fdef1ed474af66\n"
    },
    {
      "commit": "f8a1842e07d5c018b33762a72a1b1b5117947579",
      "tree": "38a13589cc1a40364e8a8b3bcc3ccd0c797ef47d",
      "parents": [
        "e21110f8b1e4aa884f7a4e2164ae90dab8d5f3fa"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 14 11:32:29 2011 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 14 17:59:51 2011 -0700"
      },
      "message": "Bug 4016329 do full string comparisons\n\nUse full string comparisons instead of partial for\n  file extension and MIME type.\nDo case-insensitive comparison of MIME type and file extensions.\nFix error in comment for String8::getPathExtension.\nRemove dead code -- StringTokenizer is unused.\n\nChange-Id: I322be6235abbdaab5f7eafa48926dbb2cf46dc29\n"
    },
    {
      "commit": "f95a9f019daa0631e6d6ddc826ad9cfe787c42ce",
      "tree": "8e2998c5efebb67a007cfcbe7f2e110d97abbf92",
      "parents": [
        "c4ca7c511499693f13622b135637f600ec913e57"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Mar 14 15:08:53 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Mar 14 17:47:11 2011 -0700"
      },
      "message": "SurfaceTextureClient: Add ISurfaceTexture getter.\n\nThis change adds a getter method to SurfaceTextureClient to get the\nISurfaceTexture object with which the SurfaceTextureClient is\ncommunicating.\n\nBug: 4086509\nChange-Id: Ifec621e0fe5392a5be56b2348fdc54067cbebcdd\n"
    },
    {
      "commit": "c4ca7c511499693f13622b135637f600ec913e57",
      "tree": "10256c7257fc9c93ee4d53f8cdba2386d7b9a9e6",
      "parents": [
        "122dd0999f09eedbe42e619b64276633bea60e6a"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Mar 14 15:00:06 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Mar 14 17:47:11 2011 -0700"
      },
      "message": "ANativeWindow: add query for the concrete type.\n\nThis change adds a query to the ANativeWindow interface for getting the\nconcrete type of the ANativeWindow.\n\nBug: 4086509\nChange-Id: I64aa86d72fbca3b52a98e1fc35608737781a3178\n"
    },
    {
      "commit": "5c4421f73fe9ce7d9587add4dfa6fdac3b19ca4e",
      "tree": "2b4b1c2db6412974c7c9c1f588cbfdc937bf93d6",
      "parents": [
        "5579bb75965eb72682cc4c12d26018e8c67b8133",
        "67718e076422f8f28f4e30a39df9e462ef32d19b"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Mar 14 17:41:42 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Mar 14 17:41:42 2011 -0700"
      },
      "message": "am 67718e07: am 132bb659: Merge \"For issue 4082089 Add more info and error events into the DRM framework\" into honeycomb-mr1\n\n* commit \u002767718e076422f8f28f4e30a39df9e462ef32d19b\u0027:\n  For issue 4082089 Add more info and error events into the DRM framework\n"
    },
    {
      "commit": "27b277779c89251f2aafcc7a56db95d264900c9d",
      "tree": "9bec6bf81a5b201b570c8d1a3255c50905679d47",
      "parents": [
        "3ec9d06f070db3a8899ad235736abd0ffaf6f578"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Mar 14 12:04:15 2011 -0700"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Mar 14 15:29:08 2011 -0700"
      },
      "message": "For issue 4082089\nAdd more info and error events into the DRM framework\n\nChange-Id: I0bb3251c5947fc8e977d478e1ba46b242cb97e9d\n"
    },
    {
      "commit": "ace13b17866dc9136aeecf6dfaf7077f37434469",
      "tree": "0ec5d01ef83b4d5148525f5befa28ca026b294c7",
      "parents": [
        "fd10d5cf56e5b1ba7692400e4fe4ae26b61f3285"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Mar 09 17:39:48 2011 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Mar 14 14:12:03 2011 -0700"
      },
      "message": "Use touch pad gestures to manipulate the pointer.\n\n1. Single finger tap performs a click.\n2. Single finger movement moves the pointer (hovers).\n3. Button press plus movement performs click or drag.\n   While dragging, the pointer follows the finger that is moving\n   fastest.  This is important if there are additional fingers\n   down on the touch pad for the purpose of applying force\n   to an integrated button underneath.\n4. Two fingers near each other moving in the same direction\n   are coalesced as a swipe gesture under the pointer.\n5. Two or more fingers moving in arbitrary directions are\n   transformed into touches in the vicinity of the pointer.\n   This makes scale/zoom and rotate gestures possible.\n\nAdded a native VelocityTracker implementation to enable intelligent\nswitching of the active pointer during drags.\n\nChange-Id: I5ada57e7f2bdb9b0a791843eb354a8c706b365dc\n"
    },
    {
      "commit": "09ba5cebb2cbfbc1f5705b22796ebdf895d91db4",
      "tree": "a5e84f720d5e51c7c3f5901261620b412a54d635",
      "parents": [
        "6f3a75e13b86a3f40fe34e3ebd17b118791a73a4",
        "c761a80df372a7f7e70ceeb2902089c53ff980f2"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Mar 14 11:56:39 2011 -0700"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Mar 14 11:56:39 2011 -0700"
      },
      "message": "resolved conflicts for merge of c761a80d to master\n\nChange-Id: I0c0474b95d66c23310d04b7a7f4c9571a211582c\n"
    },
    {
      "commit": "7ea3c7f5a31dcc40d3b5042e3eb724916b66384e",
      "tree": "db8c317dd1f4d64dcf591658b33d978e0cd6800b",
      "parents": [
        "e976ff4a2203e5a01c9a1c1a018ba9e5ab7777f7",
        "192b591cdca78f258dd3260e41d7217f6fc6e36c"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Mar 14 09:32:58 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 14 09:32:58 2011 -0700"
      },
      "message": "Merge \"- Some change on the DrmManager in order to support feature request 4082089.     In DrmManager, we currently lock both processDrmInfo() and onInfo() which is     ok for now since processDrmInfo() is async call, and it will return without     waiting for onInfo() call. However, if we send an event in processDrmInfo(),     we will got deadlock here because we need to invoke onInf() which will wait     for processDrmInfo() to release the lock. Use different lock for onInfo(). - Remove some redundent mutex lock.\" into honeycomb-mr1"
    },
    {
      "commit": "977d1fbf47be1a95c1f39ec559ba60b32d0bf749",
      "tree": "12e78f1002bb0adde6b54fcf0e1b49750bc8d8c2",
      "parents": [
        "9a3595c2c8895c1b158c91bf58ed2389dde8c66b",
        "dd264f21e6e9952b3d2ef53ea8a8a9e918e5ce96"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 11 16:36:42 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Mar 11 16:36:42 2011 -0800"
      },
      "message": "am dd264f21: am 76470914: Merge \"Bug 3515073 Add ANativeWindow_fromSurfaceTexture\" into honeycomb-mr1\n\n* commit \u0027dd264f21e6e9952b3d2ef53ea8a8a9e918e5ce96\u0027:\n  Bug 3515073 Add ANativeWindow_fromSurfaceTexture\n"
    },
    {
      "commit": "7647091436c45af2d82f12c9ea9ec77fa309b49b",
      "tree": "a18e2556ba41a194b754d60c6929bc467cffbdc8",
      "parents": [
        "f0230cca194c840684bab959856c56725fc40b87",
        "846db33313aa0899fa7928256c6734964bd92520"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 11 16:31:55 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 11 16:31:55 2011 -0800"
      },
      "message": "Merge \"Bug 3515073 Add ANativeWindow_fromSurfaceTexture\" into honeycomb-mr1"
    },
    {
      "commit": "192b591cdca78f258dd3260e41d7217f6fc6e36c",
      "tree": "f3aa953280c335f8122080dc112b0dadcee78781",
      "parents": [
        "0eb7b697b7c180660647b5cd0cd7dd067f6b6abb"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Fri Mar 11 14:07:21 2011 -0800"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Fri Mar 11 14:54:23 2011 -0800"
      },
      "message": "- Some change on the DrmManager in order to support feature request 4082089.\n    In DrmManager, we currently lock both processDrmInfo() and onInfo() which is\n    ok for now since processDrmInfo() is async call, and it will return without\n    waiting for onInfo() call. However, if we send an event in processDrmInfo(),\n    we will got deadlock here because we need to invoke onInf() which will wait\n    for processDrmInfo() to release the lock. Use different lock for onInfo().\n- Remove some redundent mutex lock.\n\nChange-Id: I59c794f95ba1693425723224114fa975cf9b235f\n"
    },
    {
      "commit": "6dd429efe2f5f4aee1f3b934bb5404e24d65ac93",
      "tree": "6e96bbb982209f0e71386d422917e8b07f9b1e65",
      "parents": [
        "dd0f9af1161e491cb16d9705a3983650d3dc087b",
        "055066e1e77d944383360d50057f5b8187f23c0b"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 11 08:46:40 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Mar 11 08:46:40 2011 -0800"
      },
      "message": "am 055066e1: am 92f2f3ff: Merge \"Bug 3012968 DRM output control\" into honeycomb-mr1\n\n* commit \u0027055066e1e77d944383360d50057f5b8187f23c0b\u0027:\n  Bug 3012968 DRM output control\n"
    },
    {
      "commit": "b8763f60b488ea4e233c9ebed8208599edb36da3",
      "tree": "10f7cb25a26cf6491dffbf8dff212ebc1fd2170a",
      "parents": [
        "b2e606f5f175906ab8c578cb9ba03c728154c50c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 28 12:37:51 2011 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 10 19:16:40 2011 -0800"
      },
      "message": "Bug 3012968 DRM output control\n\nModifies Stagefright to verify that there is a hardware-protected path\nto video sink for DRM content.\n\nChange-Id: I18b8741390e803a05a88c7f180b860a24ba88a10\n"
    },
    {
      "commit": "ae7752798a98fc81ff5e6ae69dde2137692106be",
      "tree": "ef629db3ccd8104811cb9b7c4b837d3d5b7fdb18",
      "parents": [
        "7a9794e402ee961abbc149858f34848dd653ac7e"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Thu Feb 24 16:40:57 2011 -0800"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Thu Mar 10 16:20:48 2011 -0800"
      },
      "message": "Fix for bug 3477330\nThis patch fixs a crash bug caused by using a NULL DecryptHandle pointer.\nFix by using sp\u003cDecryptHandle\u003e instead.\n\nChange-Id: Icbd59858385e8256125a615a3c82656b25319d44\n"
    },
    {
      "commit": "5a3d6cc188bd38a9475c801a13f7752b24fb1072",
      "tree": "1aa00bfc4cb118831d39d4dc2aaaabf6bd3bafaa",
      "parents": [
        "614ef8df70b417276de28e94d4c624cc1bb5a42e",
        "e6f0ae12b18819424dd8395b433a8fc9caefa77b"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Mar 09 18:39:46 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Mar 09 18:39:46 2011 -0800"
      },
      "message": "am e6f0ae12: am efd3266b: Input improvements and bug fixes.\n\n* commit \u0027e6f0ae12b18819424dd8395b433a8fc9caefa77b\u0027:\n  Input improvements and bug fixes.\n"
    },
    {
      "commit": "efd3266b719eed5f1b217021c0a9e76e4b274b06",
      "tree": "f76032f2a0bdfdc9910860063455116a9c792687",
      "parents": [
        "9e8e40cb5f8aeb0702002eee60d1ce394bf699ee"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Mar 08 15:13:06 2011 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Mar 09 18:30:28 2011 -0800"
      },
      "message": "Input improvements and bug fixes.\n\nAssociate each motion axis with the source from which it comes.\nIt is possible for multiple sources of the same device to define\nthe same axis.  This fixes new API that was introduced in MR1.\n(Bug: 4066146)\n\nFixed a bug that might cause a segfault when using a trackball.\n\nOnly fade out the mouse pointer when touching the touch screen,\nignore other touch pads.\n\nChanged the plural \"sources\" to \"source\" in several places in\nthe InputReader where we intend to refer to a particular source\nrather than to a combination of sources.\n\nImproved the batching code to support batching events from different\nsources of the same device in parallel.  (Bug: 3391564)\n\nChange-Id: I0189e18e464338f126f7bf94370b928e1b1695f2\n"
    },
    {
      "commit": "25ea3eeb09ea38a6c68ca7d381ca1e2727a548d9",
      "tree": "3c4bab7da68219d61bb788d9f5f1896060f2b72e",
      "parents": [
        "37bad9e7ac8f1294c8d4952aac1b0d25d3d8a555",
        "7b13e27ee4a42c205b4a20d145610e8c912e7b0c"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Mar 09 15:03:04 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Mar 09 15:03:04 2011 -0800"
      },
      "message": "am 7b13e27e: am 6167a390: Merge \"ANativeWindow: add queues-to-window-composer check.\" into honeycomb-mr1\n\n* commit \u00277b13e27ee4a42c205b4a20d145610e8c912e7b0c\u0027:\n  ANativeWindow: add queues-to-window-composer check.\n"
    },
    {
      "commit": "6167a390e34981ea92fc6d5458add2da04ee15bc",
      "tree": "23be2cff8bade94fb8206d7b686de72fc44af436",
      "parents": [
        "5c9248f668201a751500f67cc60bd45ff905751a",
        "d2acedf18c9a3527f6e3dc5d578a85fdc0ad4338"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Mar 09 14:47:56 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 09 14:47:56 2011 -0800"
      },
      "message": "Merge \"ANativeWindow: add queues-to-window-composer check.\" into honeycomb-mr1"
    },
    {
      "commit": "18632db49a938ca1ec12fbb2e4377e3d776d3ac2",
      "tree": "9e622277062e860e032ba852d926715b1dd96d62",
      "parents": [
        "2598bf600c3d5cedc8fd10acdeb97d5a414b256c",
        "2dc78477364bd4accb9a603baaafca9a5523dcec"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 09 11:00:22 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Mar 09 11:00:22 2011 -0800"
      },
      "message": "am 2dc78477: am cc34967f: Merge \"Fix issue 3439872: video chat and bluetooth SCO\" into honeycomb-mr1\n\n* commit \u00272dc78477364bd4accb9a603baaafca9a5523dcec\u0027:\n  Fix issue 3439872: video chat and bluetooth SCO\n"
    },
    {
      "commit": "d2acedf18c9a3527f6e3dc5d578a85fdc0ad4338",
      "tree": "06a23415d1486f5d7fb3e6d64640a1977f65dd86",
      "parents": [
        "6cc2bbe5cf8c959239d35972c0acac494e5c1559"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Mar 08 12:18:54 2011 -0800"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Mar 08 16:49:51 2011 -0800"
      },
      "message": "ANativeWindow: add queues-to-window-composer check.\n\nThis change adds a new \u0027method\u0027 to the ANativeWindow interface to check\nwhether buffers queued to the window will be sent directly to the system\nwindow compositor.\n\nChange-Id: I4d4b199e328c110b68b250029aea650f03c8724d\nBug: 3495535\n"
    },
    {
      "commit": "421ddc014b31478ba0ef115e098d8780a35af331",
      "tree": "43575a2309d53bb4712db81ff5898721c7578b8c",
      "parents": [
        "949d0c8c384437d92fc1432b750da6da59df1fa7"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 07 14:52:59 2011 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 08 16:33:15 2011 -0800"
      },
      "message": "Fix issue 3439872: video chat and bluetooth SCO\n\nThis change fixes the stability problems experienced when using\na bluetooth headset supporting both A2DP and SCO. Problems occur\nwhen starting the video chat at which time the A2DP output is being\nstopped to start SCO. At that time, active AudioTracks are invalidated\nby AudioFlinger so that a new AudioTrack binder interface can be\nrecreated by the client process on the new mixer thread with correct parameters.\nThe problem was that the process to restore the binder interface was not\nprotected against concurrent requests which caused 2 binder interfaces\nto be created sometimes. This could lead to permanent client deadlock\nif one of the client threads was waiting for a condition of the first\ncreated binder interface while the second one was created (as the AudioFlinger\nwould only signal conditions on the last one created).\nThis concurrent request situation is more likely to happen when a client\nuses the JAVA AudioTrack as the JNI implementation uses simultaneously the\nnative AudioTrack callback and write push mechanisms. By doing so, the code\nthat checks if the binder interface should be restored (in obtainBuffer()) is\nmuch more likely to be called concurrently from two different threads.\n\nThe fix consists in protecting the critical binder interface restore phase\nwith a flag in the AudioTrack control block. The first thread acting upon the binder\ninterface restore request will raise the flag and the second thread will just wait for\na condition to be signaled when the restore process is complete.\n\nAlso protected all accesses to the AudioTrack control block by a mutex to prevent\naccess while the track is being destroyed and restored. If a mutex cannot be held\n(e.g because we call a callback function), acquire a strong reference on the IAudioTrack\nto prevent its destruction while the cblk is being accessed.\n\nModified AudioTrack JNI to use GetByteArrayElements() instead of\nGetPrimitiveArrayCritical() when writing audio buffers. Entering a critical section would\ncause the JNI to abort if a mediaserver crash occurs during a write due to the AudioSystem\ncallback being called during the critical section when media server process restarts.\nAnyway with current JNI implementation, either versions do not copy data most of the times\nand the criticial version does not guaranty no data copy.\n\nThe same modifications have been made to AudioRecord.\n\nChange-Id: Idc5aa711a04c3eee180cdd03f44fe17f3c4dcb52\n"
    },
    {
      "commit": "f7098ce95dde39a33ca280bd1ef9a13259e7b7e5",
      "tree": "d65b1a845662999e02de568916d65af1eacfd0a1",
      "parents": [
        "8b4a4207f6683ee3d9aaf9510a64c2f3589a5d69",
        "d00353fe3191571a6773ef2d11921cfcff260bc4"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Mar 07 22:45:52 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Mar 07 22:45:52 2011 -0800"
      },
      "message": "am d00353fe: am bc8a8e8c: Merge \"Add support for partial invalidates in WebView Bug #3461349\" into honeycomb-mr1\n\n* commit \u0027d00353fe3191571a6773ef2d11921cfcff260bc4\u0027:\n  Add support for partial invalidates in WebView Bug #3461349\n"
    },
    {
      "commit": "bc8a8e8c926115cb7b3910d016e5cff12b0f7b0a",
      "tree": "8eab6b8aea4182516ce4319b474d94f3d07e2cf5",
      "parents": [
        "823f5bf3db8b2f588ae917aaff5d27a65c87f132",
        "cabfcc1364eb7e4de0b15b3574fba45027b45cfc"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Mar 07 22:40:27 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 07 22:40:27 2011 -0800"
      },
      "message": "Merge \"Add support for partial invalidates in WebView Bug #3461349\" into honeycomb-mr1"
    },
    {
      "commit": "cabfcc1364eb7e4de0b15b3574fba45027b45cfc",
      "tree": "f38e237ba2009dcacb5082a99928aad379a7adc0",
      "parents": [
        "9b7146db6d9c0586b98b062fbcdb3fac6cc54d19"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Mar 07 18:06:46 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Mar 07 18:09:03 2011 -0800"
      },
      "message": "Add support for partial invalidates in WebView\nBug #3461349\n\nThis change also fixes two bugs that prevented partial invalidates\nfrom working with other views. Both bugs were in our EGL implementation:\nthey were preventing the caller from comparing the current context/surface\nwith another context/surface. This was causing HardwareRenderer to always\nredraw the entire screen.\n\nChange-Id: I33e096b304d4a0b7e6c8f92930f71d2ece9bebf5\n"
    },
    {
      "commit": "de6a47a3e9d1a8cb5722b9785f5ffb9046c23918",
      "tree": "65d534f3ed68fc9110ea4bb3910fcf865ffb984b",
      "parents": [
        "10993b2d1e3614073970aad119ffb2cc9bc8f73f",
        "df6410dce3dae0bdb7e13118b3878079a1dcce03"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Mar 07 18:04:06 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Mar 07 18:04:06 2011 -0800"
      },
      "message": "am df6410dc: Merge \"Fix [3513017] in lockscreen but showing empty launcher (live wallpaper) only\" into gingerbread\n\n* commit \u0027df6410dce3dae0bdb7e13118b3878079a1dcce03\u0027:\n  Fix [3513017] in lockscreen but showing empty launcher (live wallpaper) only\n"
    },
    {
      "commit": "951d3fec41c8c77f5ce86a5394573e8180d93927",
      "tree": "49a8ec1a8241ba35781627b7562252e27efc2505",
      "parents": [
        "ff5a09904fb05f2776f1bbf1dd3915f38031190c"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Feb 09 18:38:55 2011 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Mar 07 16:56:16 2011 -0800"
      },
      "message": "Fix [3513017] in lockscreen but showing empty launcher (live wallpaper) only\n\n37c2a37 fix [3408713] Dialog window invisible sometimes\nd35c666 fix [3385504] Surface flinger hang when adding dim surface\n1723b04 fix [3389263] OMX.Nvidia.h264.decode fails to shutdown\n1b0114f fix a surface leak in SurfaceFlinger\n\nBug: 3513017\n\nChange-Id: Ia13ed8c9cdcb1f484e177cdcaff687e7c88a10c3\n"
    }
  ],
  "next": "bfa40efc9b9105aaa3a2ea52b1d37de411d81e3b"
}
