)]}'
{
  "log": [
    {
      "commit": "6b53e8daa69cba1a2a5a7c95a01e37ce9c53226c",
      "tree": "db912c6cdf230ef7f2cf406c545b3bbae3f09ea2",
      "parents": [
        "a914f340ae5b267dc3ab36c1156c795b8fa18f5d"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Nov 10 16:03:06 2010 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Nov 18 09:49:03 2010 -0800"
      },
      "message": "Added support for full PC-style keyboards.\n\nBREAKING CHANGE: Redesigned the key character map format to\naccomodate full keyboards with more comprehensive suite of modifiers.\nOld key character maps will not work anymore and must be updated.\nThe new format is plain text only and it not compiled to a binary\nfile (so the \"kcm\" tool will be removed in a subsequent check-in).\n\nAdded FULL keyboard type to support full PC-style keyboards.\n\nAdded SPECIAL_FUNCTION keyboard type to support special function\nkeypads that do not have any printable keys suitable for typing\nand only have keys like HOME and POWER\n\nAdded a special VIRTUAL_KEYBOARD device id convention that maps\nto a virtual keyboard with a fixed known layout.  This is designed\nto work around issues injecting input events on devices whose\nbuilt-in keyboard does not have a useful key character map (ie.\nwhen the built-in keyboard is a special function keyboard only.)\n\nModified several places where events were being synthesized\nto use the virtual keyboard.\n\nRemoved support for the \"qwerty\" default layout.\nThe new default layout is \"Generic\".  For the most part \"qwerty\"\nwas being used as a backstop in case the built-in keyboard did\nnot have a key character map (probably because it was a special\nfunction keypad) and the framework needed to be able to inject\nkey events anyways.  The latter issue is resolved by using the\nspecial VIRTUAL_KEYBOARD device instead of BUILT_IN_KEYBOARD.\n\nAdded the concept of a key modifier behavior so that\nMetaKeyKeyListener can distinguish between keyboards that use\nchorded vs. toggled modifiers.\n\nWrote more robust key layout and key character map parsers\nto enable support for new keyboard features and user installable\nkey maps.\n\nFixed a bug in InputReader generating key ups when keys\nare released out of sequence.\n\nUpdated tons of documentation.\n\nCurrently QwertyKeyListener is being used for full keyboards\nwith autotext and capitalization disabled.  This mostly works\nbut causes some problems with character pickers, etc.\nThese issues will be resolved in subsequent changes.\n\nChange-Id: Ica48f6097a551141c215bc0d2c6f7b3fb634d354\n"
    },
    {
      "commit": "d80661c129010f89e3b305797e1712f3d3481467",
      "tree": "51ff4a5182d245020633b54c21573ecb698105a9",
      "parents": [
        "0d9b02c47b7b52b963f09a01fee9717c49d6e06e",
        "5e0690745a45f99d12d940dd4aaae814b00a429e"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Nov 17 17:36:11 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 17 17:36:11 2010 -0800"
      },
      "message": "am 5e069074: am a15e4886: Merge \"Framebuffer: Support variable number of framebuffers in the UI\"\n\n* commit \u00275e0690745a45f99d12d940dd4aaae814b00a429e\u0027:\n  Framebuffer: Support variable number of framebuffers in the UI\n"
    },
    {
      "commit": "5e0690745a45f99d12d940dd4aaae814b00a429e",
      "tree": "e3ec2e16e969670170e68c438343fbceed182491",
      "parents": [
        "1a2344b8b2c374cb32ff4af020666e6910ff2a8f",
        "a15e4886de8f75f3cb137f51743d330414c910e8"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Nov 17 17:29:48 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 17 17:29:48 2010 -0800"
      },
      "message": "am a15e4886: Merge \"Framebuffer: Support variable number of framebuffers in the UI\"\n\n* commit \u0027a15e4886de8f75f3cb137f51743d330414c910e8\u0027:\n  Framebuffer: Support variable number of framebuffers in the UI\n"
    },
    {
      "commit": "05b07fd204cc9cc340dc579db17008bf9e8161fd",
      "tree": "94cb3ddb9cae774750cf40c6d6c58f848e257272",
      "parents": [
        "1bf397ffbdaae9a5354c9bb0b5121c4a9f1c8c76",
        "8f677d66d9c3ba34c97e69b2bb9e161f129af0ee"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Nov 17 09:49:23 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 17 09:49:23 2010 -0800"
      },
      "message": "Merge \"Add new audio mode for audio communications other than telelphony.\""
    },
    {
      "commit": "c23dabfb20f1059f42b1fb80956ccc77c72e39e0",
      "tree": "f9903f4aa09e2ffb2e9723f39c6872bc76284afe",
      "parents": [
        "af376a5427424a560a0d1a5924c527715762672a"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 16 13:05:53 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 16 13:05:53 2010 -0800"
      },
      "message": "Remove all traces of legacy renderer support in stagefright.\n\nChange-Id: I17b8e0dbf53fca37c96830c41131b4bc0c24ca6d\n"
    },
    {
      "commit": "8f677d66d9c3ba34c97e69b2bb9e161f129af0ee",
      "tree": "c38d12165c0d6eead961d2fc4e8915a0bf936f93",
      "parents": [
        "75663ceec407dbab5740460b6e7ae7ae9403e5a0"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Nov 15 12:11:32 2010 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Nov 16 10:23:37 2010 -0800"
      },
      "message": "Add new audio mode for audio communications other than telelphony.\n\nThe audio mode MODE_IN_CALL signals the system the device a phone\n call is currently underway. There was no way for audio video\n chat or VoIP applications to signal a call is underway, but not\n using the telephony resources. This change introduces a new mode\n to address this. Changes in other parts of the system (java\n and native) are required to take this new mode into account.\nThe generic AudioPolicyManager is updated to not use its phone\n state variable directly, but to use two new convenience methods,\n isInCall() and isStateInCall(int) instead.\n\nChange-Id: Id744cd26520ea1d1a4795eabe6a1f0c58789af76\n"
    },
    {
      "commit": "b763fa1d7c7de7ee33ab359e3105accafe5a2fdc",
      "tree": "21734ae6662baa9e3b093ba70da6131038b375c6",
      "parents": [
        "ee4a7d86823605e98711d46adb9b7ed302f82346",
        "300ba6846949f5b21c6d93d7698dbc39716cf832"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Nov 15 11:11:22 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 15 11:11:22 2010 -0800"
      },
      "message": "Merge \"Split UTF functions from String8/16\""
    },
    {
      "commit": "8ec2d9add9f25198b9ea7023c7c772ae17f72ea4",
      "tree": "43a85c40ed38a3806ac4f7890dc9069134fa2a44",
      "parents": [
        "98d50a0be8a61fa1d093136b57bc5712be795c2b"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Nov 10 18:42:40 2010 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Nov 15 08:36:42 2010 -0800"
      },
      "message": "Remove legacy PV stuff\n\nChange-Id: I60ffea7c65592df4b3a80c590c863f1f79b371fd\n"
    },
    {
      "commit": "300ba6846949f5b21c6d93d7698dbc39716cf832",
      "tree": "f00aed47d06332a09aa6909a6605b0743661c981",
      "parents": [
        "d781089731127bd9199d47f53b170895868b8750"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Nov 09 14:37:23 2010 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Nov 12 15:53:40 2010 -0800"
      },
      "message": "Split UTF functions from String8/16\n\nSplit out all the UTF-8/16/32 handling code from String8/16 to its own\nfile to allow better reuse of code.\n\nChange-Id: If9ce63920edc75472c38da4adce0d13cda9ad2f7\n"
    },
    {
      "commit": "a9d02bf6020e195acc18b16508c62f8be20dc207",
      "tree": "9f1180028cc632ec81cc2bf9cd617e55cda19a9e",
      "parents": [
        "b0b5b17442a5f13f88b85d59314a88b26e0d5801",
        "aac193cf38ac084eea0f6367b98f6304d1ec38f2"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Nov 12 15:33:41 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 12 15:33:41 2010 -0800"
      },
      "message": "Merge \"Separate the key for audio sampling rate and video frame rate in MetaData.h\""
    },
    {
      "commit": "46e75294d540fe807d78aec2582ae02cc38c7d42",
      "tree": "260678b7532242c8dd31e3aba47710e9516a3c12",
      "parents": [
        "1a22bdb01ac4068c2876fe2d02f3c4c729669a1c"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Nov 10 16:53:45 2010 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Nov 12 14:53:43 2010 -0800"
      },
      "message": "Enable touch splitting for all windows by default.\n\nNew default only applies to applications with targetSdkVersion \u003e\u003d\nHONEYCOMB.  Old applications default to no touch splitting for\ntheir windows.\n\nIn addition, enabled split touch for various system windows.\n\nBug: 3049580\nChange-Id: Idc8da9baa2cd8e1e4e76af8967d7b6a5ccb94427\n"
    },
    {
      "commit": "1a22bdb01ac4068c2876fe2d02f3c4c729669a1c",
      "tree": "c1b2427e4edc1aa1e06fbc03e8c7360d4955471d",
      "parents": [
        "62e2fa24cd6ec81ce301d1f3005b6153b8ce9743"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Nov 09 14:06:52 2010 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Nov 12 14:35:52 2010 -0800"
      },
      "message": "Add support for audio recording source in generic audio policy mgr.\n\nUpdate the platform-independent audio policy manager to pass the\n nature of the audio recording source to the audio policy client\n interface through the AudioPolicyClientInterface::setParameters()\n method.\n\nChange-Id: I6b4fd0f8a3acea0d7d30bbad98edd1977dc012bf\n"
    },
    {
      "commit": "aac193cf38ac084eea0f6367b98f6304d1ec38f2",
      "tree": "bc1b46f221b79bc6e4edc3232b4a42bbdc92e7c2",
      "parents": [
        "a4e28d181942018ba8759989799a28fa88764ce3"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Nov 10 20:43:53 2010 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Nov 11 22:11:20 2010 -0800"
      },
      "message": "Separate the key for audio sampling rate and video frame rate in MetaData.h\n\nChange-Id: Ia33befaa7e6df8762703002d01aa79c04f15f040\n"
    },
    {
      "commit": "3adf490a5aaa2e87676c8985b566fcb0dfeb74b9",
      "tree": "8d851498f455a4aaee22743eb93c0d4ec4eb724a",
      "parents": [
        "e7bdbf2aa7eb4cacfd3985cba6a12c3b1caf11a0"
      ],
      "author": {
        "name": "Jason Bayer",
        "email": "bayer@google.com",
        "time": "Tue Nov 09 14:54:55 2010 -0800"
      },
      "committer": {
        "name": "Jason Bayer",
        "email": "bayer@google.com",
        "time": "Thu Nov 11 18:36:11 2010 -0800"
      },
      "message": "Add new keycodes initially used for GoogleTV devices.\n\nChange-Id: I1b901037d6d401931dd3ec6f7d5e1e6ad165d1c9\n"
    },
    {
      "commit": "7ab17a3426d3565f72c6832bb650d1709cbf52cf",
      "tree": "90e188808e39d3447b880ca20cac6b2fad137921",
      "parents": [
        "e1ccfb7f6e63f639988d9b50f060612f96c49c3f",
        "6c925d00e131e40811897e0ddc332d6f5bc83178"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Thu Nov 11 15:26:21 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 11 15:26:21 2010 -0800"
      },
      "message": "Merge \"Implement reducing the buffer count of a Surface.\""
    },
    {
      "commit": "d781089731127bd9199d47f53b170895868b8750",
      "tree": "21dab382492824db054b2350128dd5018d19e1e8",
      "parents": [
        "798a9d2eb1d2421f904ab61f05e4b70a5095d31a"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Nov 11 00:33:05 2010 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Nov 11 14:08:52 2010 -0800"
      },
      "message": "Add color format query support to QueryCodecs()\n\nChange-Id: Ic8589649cd09392a1b969a30082b4c9c4e6cc6a7\n"
    },
    {
      "commit": "6c925d00e131e40811897e0ddc332d6f5bc83178",
      "tree": "813fca5b0cff6cdc7e2a6c15a12b3ae777b12d3d",
      "parents": [
        "0b440fc34da7f53fcec24cc8c907b959218b957d"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Nov 02 11:51:32 2010 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Thu Nov 11 14:06:38 2010 -0800"
      },
      "message": "Implement reducing the buffer count of a Surface.\n\nChange-Id: I7f979c60c06d654aa8265002836277434bc1a64f\nBug: 3095167\n"
    },
    {
      "commit": "31b9375f45e19c1408f45af497286b795604c9ec",
      "tree": "b7f1d516ad7098080cde9392fb606b3909ac3179",
      "parents": [
        "a6689ddbba5d7d5e9ad7a07ae84a187497f18121"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Nov 10 21:11:41 2010 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Nov 11 11:26:16 2010 -0800"
      },
      "message": "Fix memory leak when 0-memcpy quirk is used\n\no minor change to the original patch by Andreas:\n  call restorePatchedDataPointer() method only if kAvoidMemcopyInputRecordingFrames is turned on\n\nChange-Id: Idf3710e6f759d37d28e866613f98d39215722cb9\n"
    },
    {
      "commit": "820b9e0d3b6f94fe0b524aebf756ce25df273e6a",
      "tree": "01b706b917c8396834d10222483d671b5ba7a625",
      "parents": [
        "2b425d3c9b39603054febe0c2135b05764748158"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Nov 08 18:38:14 2010 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Nov 09 14:32:43 2010 -0800"
      },
      "message": "Add recording source for voice communication\n\nAdd a recording source used to designate a recording stream for\nvoice communications such as VoIP.\n\nChange-Id: I4091d67069b1a0170c1a5ca5e6acd51eb0aa08f9\n"
    },
    {
      "commit": "b9d7e01eb8f2024ed2051e18644401d43fdb9311",
      "tree": "827a2af4c2cef218c79050b5da3803bd71377e37",
      "parents": [
        "dfa448f759e0e91b788e2620a4cf7187b893d24e"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Nov 09 11:15:47 2010 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Nov 09 11:48:29 2010 -0800"
      },
      "message": "Rotation support\n\n- We only support 0, 90, 180, and 270 degree clockwise rotation\n\n- Some players are known to ignore composition matrix in the MP4 file,\n  although this is part of the MP4 file standard.\n  Both QT and YT are supporting the rotation\n\nThe original patch (65a73f4e8c79d05c0d9001b660325748d4ecf37b) was not merged.\nThe only change I made is to reuse the same kKeyRotation in MetaData.h;\nand thus do not neeed to use kKeyRotationDegree.\n\nChange-Id: Ib328716d4842201c4adf57e4ddfe1f1ac1ae4d8a\n"
    },
    {
      "commit": "2bff83930d9575f0bd08da72385fdbfd97b9a1b8",
      "tree": "8557c1134dc22cdc0f2f96f8b7c5be00398146d5",
      "parents": [
        "e3cfa1b8b22c07a58add42b27913c7d49913a166"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Nov 08 20:01:12 2010 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Nov 08 20:09:22 2010 -0800"
      },
      "message": "Fix a build break due to the missing kKeyRotation\n\nChange-Id: I6bf030c946abe7a95f8f7bc464e6507fb02cf39c\n"
    },
    {
      "commit": "d1959717c28766d4a7fecedd703a79e17c532da8",
      "tree": "e25564af0c90925d3e84a54e386336f93d060f2b",
      "parents": [
        "76526a1f55edb2ac77dfb810b001ba3687efa7ef",
        "c4a2ead2aa5ab4403553e4956ba71b44782f0c84"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Nov 08 19:25:41 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 08 19:25:41 2010 -0800"
      },
      "message": "am c4a2ead2: am d2d62d04: Merge \"Support extracting thumbnail from rotated video tracks\" into gingerbread\n\n* commit \u0027c4a2ead2aa5ab4403553e4956ba71b44782f0c84\u0027:\n  Support extracting thumbnail from rotated video tracks\n"
    },
    {
      "commit": "c4a2ead2aa5ab4403553e4956ba71b44782f0c84",
      "tree": "76125bcc8afc160abdb4748dfd66686f58b0fb53",
      "parents": [
        "d962bca66fb99d437f065e9a7c66e7fe9abac20e",
        "d2d62d04fc387e2f51d414e101a3e8e3c45f415e"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Nov 08 18:19:40 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 08 18:19:40 2010 -0800"
      },
      "message": "am d2d62d04: Merge \"Support extracting thumbnail from rotated video tracks\" into gingerbread\n\n* commit \u0027d2d62d04fc387e2f51d414e101a3e8e3c45f415e\u0027:\n  Support extracting thumbnail from rotated video tracks\n"
    },
    {
      "commit": "53ebc72fd83f83bb5536d5917390aae03b7f5cad",
      "tree": "1fe4af89aa72abfd2c969789cd0b98fe0b4737fd",
      "parents": [
        "17ae359721ba74399e785369346509b776999d1f"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Nov 08 16:04:27 2010 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Nov 08 16:52:59 2010 -0800"
      },
      "message": "Support extracting thumbnail from rotated video tracks\n\nChange-Id: Ife0a2536aaac5ff1efdf1035b9d2c892773ee16c\n"
    },
    {
      "commit": "1a542c7b8ed0be049869a12d1e01e2604d052ac2",
      "tree": "ed1b5acbe31240e259689a6496ed1cf2dfa5dd1b",
      "parents": [
        "3915bb845b032dc184dba5e60970b803390ca3ed"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Mon Nov 08 09:48:20 2010 -0800"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Mon Nov 08 13:02:58 2010 -0800"
      },
      "message": "The CHEEK_TOUCH stuff never worked.  Remove it.\n\nBug: 3104906\nChange-Id: Ia37236ba1775fc3ec8c111e2e0b85b105e0dea6a\n"
    },
    {
      "commit": "3915bb845b032dc184dba5e60970b803390ca3ed",
      "tree": "198a47c1d4ada990ef04d563b5e0caaec35abc18",
      "parents": [
        "60029771d26ca3c51288c3d92cab1d3537147acd"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Nov 05 15:02:16 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Nov 08 12:49:43 2010 -0800"
      },
      "message": "Tell system server whether the app handled input events.\n\nRefactored ViewRoot, NativeActivity and related classes to tell the\ndispatcher whether an input event was actually handled by the application.\n\nThis will be used to move more of the global default key processing\ninto the system server instead of the application.\n\nChange-Id: If06b98b6f45c543e5ac5b1eae2b3baf9371fba28\n"
    },
    {
      "commit": "2e1a8967243a88d73f3b3485b07a02aa4f8d16d9",
      "tree": "51d2379d88e270d6c401e505521237ff3ce96c7a",
      "parents": [
        "d8166a719e192a026bf25a82b8eb6212823950a3",
        "31dc911aee2b50752c0eb7785176075cdaed139c"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Nov 08 11:50:14 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Nov 08 11:56:08 2010 -0800"
      },
      "message": "resolved conflicts for merge of 31dc911a to gingerbread-plus-aosp\n\nChange-Id: I2f51b2120b3c552566d91a7dc498a5e8b130205f\n"
    },
    {
      "commit": "d8166a719e192a026bf25a82b8eb6212823950a3",
      "tree": "3f6f516a25016b93365922631c05818ccd7ebc9d",
      "parents": [
        "bb97d7bbf33393af842de1d8fd8512a24c73b6b3",
        "1653e261e84922facfe27d3d8acc455ed2b6b6da"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Sat Nov 06 14:22:05 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Nov 06 14:22:05 2010 -0700"
      },
      "message": "am 1653e261: Merge \"Rotation support\" into gingerbread\n\n* commit \u00271653e261e84922facfe27d3d8acc455ed2b6b6da\u0027:\n  Rotation support\n"
    },
    {
      "commit": "31dc911aee2b50752c0eb7785176075cdaed139c",
      "tree": "11c30987b79659d1c25d867a473b8997c61ea7d4",
      "parents": [
        "1653e261e84922facfe27d3d8acc455ed2b6b6da"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Nov 04 11:50:27 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Nov 05 17:03:17 2010 -0700"
      },
      "message": "Support post-decode video rotation.\n\nChange-Id: Ia371316e73a57e44610de86adce3eaa560afbf84\n"
    },
    {
      "commit": "65a73f4e8c79d05c0d9001b660325748d4ecf37b",
      "tree": "84b658d31134be344fc440355196b7932373471d",
      "parents": [
        "ce22d608733953e367a590efd9c7656a68ffc24d"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Aug 16 18:39:28 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Nov 05 15:47:52 2010 -0700"
      },
      "message": "Rotation support\n\n- We only support 0, 90, 180, and 270 degree clockwise rotation\n\n- Some players are known to ignore composition matrix in the MP4 file,\n  although this is part of the MP4 file standard.\n  Both QT and YT are supporting the rotation\n\nChange-Id: I1b7f66a801e9d9c49d889c9b06dd6173fa7e76c4\n"
    },
    {
      "commit": "32af3a2f56203acc66c8051e20c99a3914d1cec9",
      "tree": "ed9c47d4d696988ca5b4e68a0d00ffc192378c13",
      "parents": [
        "d145ca7669e1945745c69663ed2a7778f1319b4b",
        "05c2fd50d2030e20d6a4cacc6931e453cd2de5c4"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Nov 05 18:18:30 2010 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 05 18:18:30 2010 +0000"
      },
      "message": "Merge \"Use meta data in the media recording framework\""
    },
    {
      "commit": "91460d7f49e92e13e2acccdf8be10934e9e770fe",
      "tree": "e549aff4d8cda5d1d42fc980a992ac22c0d565d8",
      "parents": [
        "aac9e0df287bac2fa15394edf25a6d121aba9886",
        "c2c22e7e20a3b10c180c2fed2bf24aedef8ed269"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Fri Nov 05 17:45:26 2010 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 05 17:45:26 2010 +0000"
      },
      "message": "Merge \"Add support for WV DRM\""
    },
    {
      "commit": "c2c22e7e20a3b10c180c2fed2bf24aedef8ed269",
      "tree": "ac1ed8b7a2841e75fe6b012016bcf1ac93919ffb",
      "parents": [
        "a25c0305bca20c09e71f65036b81601f360507af"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Nov 01 15:53:16 2010 -0700"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Fri Nov 05 10:33:58 2010 -0700"
      },
      "message": "Add support for WV DRM\n\nChange-Id: I0408c5e0a488f112a84337b21b0cd4613a4da461\n"
    },
    {
      "commit": "05c2fd50d2030e20d6a4cacc6931e453cd2de5c4",
      "tree": "7e6e9eecbdfc75d3b81335b72f731a70dfe90fff",
      "parents": [
        "0ed714a95d1c9c11c3ef8aebd5be4276d1be8740"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Nov 02 13:20:11 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Nov 04 17:40:02 2010 -0700"
      },
      "message": "Use meta data in the media recording framework\n\no This patch allows us to do 720p video recording\n\nChange-Id: I2ea37e80a59630145396b08ebcdc6ee71df53333\n"
    },
    {
      "commit": "f0c5c1e8ce765c66d24bc9d00904fd350b99d16a",
      "tree": "b820acdc100c17af51177694d45eee3a578f3390",
      "parents": [
        "de04e5242ad7d95c392070e1a4f7acdf3809b91a"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Nov 01 16:04:31 2010 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Nov 03 16:15:10 2010 -0700"
      },
      "message": "Fix a MediaBuffer leak in Stagefright.\n\nChange-Id: I548e60b07cf1676476874b156cfbc4ffefdfa2b9\n"
    },
    {
      "commit": "84043438cfa7f0f934cb8884315e9db2fd3c7e2c",
      "tree": "ef0a53f647c528e949a30ad2a5f79882029be0fa",
      "parents": [
        "db2403ff3251bebb5dd6bdb98f826a8e04dc6ed1"
      ],
      "author": {
        "name": "Rodrigo Obregon",
        "email": "robregon@ti.com",
        "time": "Wed Nov 03 15:16:18 2010 -0500"
      },
      "committer": {
        "name": "Rodrigo Obregon",
        "email": "robregon@ti.com",
        "time": "Wed Nov 03 15:16:18 2010 -0500"
      },
      "message": "Framebuffer: Support variable number of framebuffers in the UI\n\nThis change defines a macro NUM_FRAME_BUFFERS to set\nthe desired number of framebuffers to be used by the UI,\ninstead of hard-coding 2 framebuffers.\n\nAditional logic has been  added to handle the initialization\nand destruction of NUM_FRAME_BUFFERS buffers.\n\nChange-Id: I3a4bfec3e0f453432f2ffebf084c00f574d3be46\nSigned-off-by: Rodrigo Obregon \u003crobregon@ti.com\u003e\n"
    },
    {
      "commit": "e3afc288ddddeda4e771be71f15b166f8aaa01e1",
      "tree": "9cfd8dce0f49fc1f89049847fddec28746e7c9b0",
      "parents": [
        "cc82f3ae3cef7e5dac7992a10aeb8e147e12eb27",
        "a8d7b7477d99dd2671e6232e157da9954bf4699f"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Wed Nov 03 11:39:04 2010 -0700"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Wed Nov 03 11:39:04 2010 -0700"
      },
      "message": "resolved conflicts for merge of a8d7b747 to master\n\nChange-Id: I8a4b72c9f9a10de8bbc285e00e2dd5cb9f498349\n"
    },
    {
      "commit": "a3f5b615d7adc5a644cbedd55100deba562ec0ac",
      "tree": "2f3cce676494fbdb8eb56e561881873f8f9ce4b9",
      "parents": [
        "0ce0f72c1eb92cf654667c15477f19b4a7e84cd1",
        "f3847e875eb1c58094a2d159a2a6f3f0b381d77a"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Nov 03 09:25:08 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 03 09:25:08 2010 -0700"
      },
      "message": "am f3847e87: Merge \"DO NOT MERGE\" into gingerbread\n\n* commit \u0027f3847e875eb1c58094a2d159a2a6f3f0b381d77a\u0027:\n  DO NOT MERGE\n"
    },
    {
      "commit": "6786fccf5a7979ca1b6fe4360ef47a9c9bbec9bb",
      "tree": "ee2d525a2d3a52fb98250755f946edee9104b40c",
      "parents": [
        "a87ea46cb023763e0a9b0222da20b0a354f79d8d"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Nov 02 18:43:03 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Nov 02 19:30:01 2010 -0700"
      },
      "message": "DO NOT MERGE\n\nFix premature release of recording frames when physical address or metadata is stored in input video buffers\n\n- bug 3158459\n\nChange-Id: If297189d2a87fc3abfda68c29ac75b490b30a902\n"
    },
    {
      "commit": "b0418da0e7594a8c2164a46985c5f1993632e010",
      "tree": "f73f81b31796d4f75ef6530d1fb883fccc74031f",
      "parents": [
        "c68134b74016b82e0c49c47b89d93b2d0921cbe5"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Nov 01 15:24:01 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Nov 02 17:31:39 2010 -0700"
      },
      "message": "Add plumbing for volume mute key.\n\nFull support for the volume mute key will be implemented in a\nlater change.\n\nBug: 2912307\nChange-Id: I98c27d6360f159c8b7447e04b45f442eff87b38a\n"
    },
    {
      "commit": "a8d7b7477d99dd2671e6232e157da9954bf4699f",
      "tree": "1d7dc40888d00b25724c1b82e63ea26521737fab",
      "parents": [
        "6fb9316f6bd72b406bbfc61bd210281744eea9c1",
        "ef8a810b3b11d177a64111125eaa44bb76624414"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Tue Nov 02 14:59:51 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Nov 02 14:59:51 2010 -0700"
      },
      "message": "am ef8a810b: Merge \"Update of DRM framework\"\n\n* commit \u0027ef8a810b3b11d177a64111125eaa44bb76624414\u0027:\n  Update of DRM framework\n"
    },
    {
      "commit": "21e941bf43362ddc6639a9f2d0828053360f53d7",
      "tree": "686b10bd26b899198a744c6e38d4ffa6585714b7",
      "parents": [
        "879ed85598800bd2d87b7fe96d0a763d9b954a6e"
      ],
      "author": {
        "name": "Praveen Bharathi",
        "email": "pbharathi@motorola.com",
        "time": "Wed Oct 06 15:23:14 2010 -0500"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Nov 01 18:41:19 2010 -0700"
      },
      "message": "Added support for dock headset observer\n\nChange-Id: I06b2e65e3bfa10735e6c7fd3349afa9ae7d45292\nSigned-off-by: Praveen Bharathi \u003cpbharathi@motorola.com\u003e\n"
    },
    {
      "commit": "044ace6bde97eb71ca5a5cae12a93c5b101c55f3",
      "tree": "53993cc2a5d93df92d6ef1580bf1a9349b4d8d65",
      "parents": [
        "3521e2202d76141c1c5b6db75bcc4d3cf32b4217"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Fri Oct 29 15:19:29 2010 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Nov 01 16:54:01 2010 -0700"
      },
      "message": "Stop using OMX_COLOR_FormatAndroidPrivateStart.\n\nThis removes the use (and definition) of the Android-private range of\nOMX color formats from Stagefright.  Instead we will just be\ninterpreting the video color format of an OMX port as an Android pixel\nformat if the port is in native buffer mode.\n\nChange-Id: I3ea50703336a88249e7563bc7022dfedbeac506e\n"
    },
    {
      "commit": "c7b3ccc564448cb4b918728421f9402bc18278c5",
      "tree": "7d97c647cef5ae086048f62636bad3343f193459",
      "parents": [
        "5b4d0e84d314bd58efb9dcf4e7f23f0d0e3fc630"
      ],
      "author": {
        "name": "Takeshi Aimi",
        "email": "aimitakeshi@gmail.com",
        "time": "Fri Oct 08 23:05:49 2010 +0900"
      },
      "committer": {
        "name": "Takeshi Aimi",
        "email": "aimitakeshi@gmail.com",
        "time": "Tue Nov 02 08:06:06 2010 +0900"
      },
      "message": "Update of DRM framework\n\n - Overload openDecryptSession() with uri parameter\n   in order to accept URI of DRM content,\n   Following API is added,\n       DecryptHandle*openDecryptSession(const char* uri);.\n - Unify texisting three event types of processDrmInfo()\n   so that caller of DRM framework does not have to handle many event types.\n - Let DrmManagerService call load/unload plugins API so that\n   client of DRM framework does not have to manage plug-in load/unload.\n - Trivial fix in DrmManagerClient.java is also incorporated.\n\nChanges are made by Sony Corporation.\n\nChange-Id: If62b47fa0360718fdc943e6e6143671d7db26adc\n"
    },
    {
      "commit": "b417115a7271673035d89bd3fbc7121a0d86895e",
      "tree": "ad46d456a5eb9b4e050712fc147e6af1203e28cb",
      "parents": [
        "e2160a049ff4930b59fd67a85c8e2c98ceefc7ed",
        "6793a04d620b3181ce78703dd26033fe8bfa344c"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Fri Oct 29 16:58:15 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 29 16:58:15 2010 -0700"
      },
      "message": "Merge \"Add support for WV plugin\""
    },
    {
      "commit": "6793a04d620b3181ce78703dd26033fe8bfa344c",
      "tree": "47f7481a33df636a8501a5e417c0f44aaeb15ab6",
      "parents": [
        "b0cc50de14dc9e2d0d224803bb523aa7f48904ac"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Fri Oct 29 16:44:37 2010 -0700"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Fri Oct 29 16:44:37 2010 -0700"
      },
      "message": "Add support for WV plugin\n\nChange-Id: I0b9d0488f123c05ad2d94315236458f479e00b78\n"
    },
    {
      "commit": "03034739eb90a41c930201253f5d709c232ce5a9",
      "tree": "5e4de6e1968ce4f32b170aaf5108c6335f2f30a3",
      "parents": [
        "0aa211db16c1d1f86206c534619571cc36ab4a19",
        "55fc850cf992cdcb0993cb109d2f716613c0dbdd"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Oct 29 14:20:04 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 29 14:20:04 2010 -0700"
      },
      "message": "Merge \"Add path to get different DPI drawables\""
    },
    {
      "commit": "69b8d69aadbf0e795f1a1e1adc82c78cf0b9959f",
      "tree": "6b48f22c3e0bd47427e97b13502e5f8cadcb0b90",
      "parents": [
        "7b9652b66b76b90fd95952c42a4f82965ed80d72"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 29 12:00:20 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 29 13:20:06 2010 -0700"
      },
      "message": "Squashed commit of the following:\n\ncommit 0d5694ba2d399dd0869532a4d6256448185a1be0\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Oct 29 11:59:23 2010 -0700\n\n    suspend() and resume() methods on VideoView are back but don\u0027t do anything.\n\n    They need to be back because they were public before.\n\n    Change-Id: Iddfd1021ffcf341f26e8d55ba761fd33701e2425\n\ncommit 16192891ed7d349ee97e47d1729d20a2d0d247b8\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Oct 29 11:47:05 2010 -0700\n\n    Revert \"New API on VideoView widget to suspend/resume a session. Do not release the MediaPlayer client for video suspending/resuming.\"\n\n    This reverts commit 2e1818a4d16c3309660f27286c77d8d1eee95a25.\n\n    Conflicts:\n\n    \tapi/current.xml\n\n    Change-Id: I68dd1d05871044faf3f832d0838aa40bc7f890e5\n\ncommit 8f934dc1a3ae4e60f0790fcf97671e063fa20fad\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Oct 29 11:44:16 2010 -0700\n\n    Revert \"Release mediaplayer if the current state is not suspending. Fix for bug 2480093.\"\n\n    This reverts commit efb882cf75eef39ecaf9f8920ed302a019fa629f.\n\ncommit f2ed03550887986f39d36b5dabcd9e919949c7cf\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Oct 29 11:44:08 2010 -0700\n\n    Revert \"Release MediaPlayer if suspend() returns false.\"\n\n    This reverts commit 047212fd4ea360675e94d3ce83c7f5544f65b268.\n\ncommit 441ecce678bd24e9660a72c8627b5bd94433ff8b\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Oct 29 11:40:46 2010 -0700\n\n    manually.\n\n    Change-Id: I4fdd43c9f7c8b3eedddb31a196da4984e1c58e87\n\nChange-Id: I60d4b10e7a9e4ed8d9a796f1711618f557eb6e89\n"
    },
    {
      "commit": "55fc850cf992cdcb0993cb109d2f716613c0dbdd",
      "tree": "2277f806e14fb8a6b422dde687ac9779176ae83b",
      "parents": [
        "490d7c5deda8d602f916942d7002757082274b9b"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Oct 28 14:47:01 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Oct 29 12:47:07 2010 -0700"
      },
      "message": "Add path to get different DPI drawables\n\nAllow a caller to request a different density than their current display\nallows. This can mean a device displaying mdpi can get a resource that\u0027s\nin hdpi and have it pretend to be in mdpi resolution. If a drawable\nthat\u0027s returned is not in the requested density, it will set it at the\nappropriate density to be scaled up later on.\n\nThe API for this is hidden currently.\n\nBug: 3134688\nChange-Id: I6c3908cbdef4907b8d3f1576df9e3b0e7af1755a\n"
    },
    {
      "commit": "88e7b31ba1447e98f65e4d2939dbf66268c75e35",
      "tree": "3a0a704cb26ccd2cc397506a54e637637b718107",
      "parents": [
        "a80d256d04146cfc0a56a0e08666c53728df596a",
        "df3cccf3dc6b59ec4a45d80fb483022360e13830"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Oct 27 22:18:43 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Oct 27 22:18:43 2010 -0700"
      },
      "message": "resolved conflicts for merge of df3cccf3 to master\n\nChange-Id: I425496a9fc4e9cbc50ad6938e9dccb14827d9558\n"
    },
    {
      "commit": "df3cccf3dc6b59ec4a45d80fb483022360e13830",
      "tree": "ad6c69291a1bb02fbf694b0e5ce03258d419bb49",
      "parents": [
        "96abb48dff22a54de4ddcdd427d8e5a261d0facc",
        "120a4594855951ed5eb185fdfc19bf98efef3ba2"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Oct 27 19:31:24 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 27 19:31:24 2010 -0700"
      },
      "message": "am 120a4594: Drop all dispatcher state when dispatcher is disabled.\n"
    },
    {
      "commit": "120a4594855951ed5eb185fdfc19bf98efef3ba2",
      "tree": "74fc123ad9fd79bc8d077dc019f5f669e4596e89",
      "parents": [
        "aa93bcd62482719c146a411008e1eac94135b6a4"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Oct 27 18:43:51 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Oct 27 18:43:51 2010 -0700"
      },
      "message": "Drop all dispatcher state when dispatcher is disabled.\n\nThis patch makes the dispatcher drop all of its state when it is\ndisabled (when the screen turns off).  This ensures that the dispatcher\ndoes not get stuck thinking a pointer is still down if the screen\nturned off while the user was touching the display (such as a fat touch\nwhile hitting the power button).\n\nBug: 3098344\nChange-Id: If50ef5804870aa1acd3179fd4b40e3cda58dd39d\n"
    },
    {
      "commit": "170a929648b9f5c6efbf6dcbec4f1bc73593cbde",
      "tree": "59a0780c0c0ac6dbbdb1cf0ce03be8d6dc40c33b",
      "parents": [
        "fc6d54ea074aa1f6a177b031e6b2814368ac7583"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Oct 22 17:28:15 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Oct 25 18:21:55 2010 -0700"
      },
      "message": "Add two creation flags to OMXCodec::Create()\n\no This allows to force to use software codecs or hardware codecs\no If request cannot be fullfilled, Create() returns NULL.\n\nChange-Id: I02b56a9229abb56d49703fe80ac18571d33f3748\n"
    },
    {
      "commit": "cbb053c3c97677c4795ca814dcc749e3d8513ed9",
      "tree": "5a1d5492c661ddb1c4eb4744b8f4a95fa40644ab",
      "parents": [
        "657dbfaedb288a6bf8900961a0a64f0bc20165df",
        "965f960ecacfa7528854d8371ecf309b46fc6ebb"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Oct 25 16:56:49 2010 -0700"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Oct 25 16:56:49 2010 -0700"
      },
      "message": "resolved conflicts for merge of 965f960e to master\n\nChange-Id: I63cec8ffb3593216da1de03428134d89e75b9338\n"
    },
    {
      "commit": "b8791479af814d530a3810d0516ef5628958a8d0",
      "tree": "512aa5507bf60631597c06e77ff58a2e2d99b76b",
      "parents": [
        "67bb6741965c0b9f3bf6b4caf2647efc564e287e",
        "9084631dba8938942ddd8d4cb1e0f9149965ae8e"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Oct 25 15:23:04 2010 -0700"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Oct 25 16:11:18 2010 -0700"
      },
      "message": "resolved conflicts for merge of 9084631d to gingerbread-plus-aosp\n\nChange-Id: Ie2b675d50bfca3f33aee80f1a67c9f03d1f97472\n"
    },
    {
      "commit": "d5770917a50a828cb4337c2a392b3e4a375624b9",
      "tree": "0ba25dd389bab286b27c178e9598cea45cd1cbe6",
      "parents": [
        "c5371fadf2753d074ef117685fed05b0140d6864"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Tue Jun 22 13:55:38 2010 -0700"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Oct 25 12:16:56 2010 -0700"
      },
      "message": "DRM framework support:\n- add a sniffer for DRM files\n- add DRMSource and DRMExtractor for es_based DRM\n- add pread in FileSource.cpp for container_based DRM\n- add native DRM framework API calls in the player for\n  DRM audio/video playback\n\nChange-Id: I4b9ef19165c9b4f44ff40eeededb9a665e78a90f\n"
    },
    {
      "commit": "d55f7e56b9761227f0a310b34d9016fde91613d6",
      "tree": "8b20f666b14e4e01ec0b208fe8e75e5881db03e7",
      "parents": [
        "197eee425c813e35144b2e52f7282b17a57289a5"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu Oct 14 20:17:44 2010 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Mon Oct 25 15:02:44 2010 +0800"
      },
      "message": "Mirror the camera preview if the camera is front-facing.\n\nbug:3095272\nChange-Id: Ib1c1d1edc06a33e9d4d2dcb42bc1dd2c25b1310c\n"
    },
    {
      "commit": "3ae4ac8538765d6cf5b8aceea8c81b21854321bd",
      "tree": "d0e8ae9e1117ce1aeebf375a2807de5ed95c0655",
      "parents": [
        "4761b176ed241a88394968b983f06c5ae1aad26a",
        "2ef36763700eff5679d6012e7f078c57f1a4c465"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Oct 24 14:36:23 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sun Oct 24 14:36:23 2010 -0700"
      },
      "message": "am 2ef36763: am 860c2df4: Merge \"Add unit tests for native input and fix bugs identified.\" into gingerbread\n\nMerge commit \u00272ef36763700eff5679d6012e7f078c57f1a4c465\u0027\n\n* commit \u00272ef36763700eff5679d6012e7f078c57f1a4c465\u0027:\n  Add unit tests for native input and fix bugs identified.\n"
    },
    {
      "commit": "2ef36763700eff5679d6012e7f078c57f1a4c465",
      "tree": "3b36010de56350d0b88914c4fbd729afa38acd00",
      "parents": [
        "b34fe2f0258eb1ed512b682206b7fe65116f1dbd",
        "860c2df4132a2a0be9bcb0e91bfb7e79588c000f"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Oct 24 14:31:41 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sun Oct 24 14:31:41 2010 -0700"
      },
      "message": "am 860c2df4: Merge \"Add unit tests for native input and fix bugs identified.\" into gingerbread\n\nMerge commit \u0027860c2df4132a2a0be9bcb0e91bfb7e79588c000f\u0027 into gingerbread-plus-aosp\n\n* commit \u0027860c2df4132a2a0be9bcb0e91bfb7e79588c000f\u0027:\n  Add unit tests for native input and fix bugs identified.\n"
    },
    {
      "commit": "c3db858de9fa152480b9cf53c8c0cb793a280722",
      "tree": "ba337dd2df79d211a940727c5c93c112cf0de77d",
      "parents": [
        "b6a2256e5461160a89d077b761d3253d95ce869f"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Oct 20 15:33:38 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sat Oct 23 03:52:57 2010 -0700"
      },
      "message": "Add unit tests for native input and fix bugs identified.\n\nFixed a bug where we would lose the first touch point when swiping out of\nthe virtual key area.\n\nFixed a bug where we would not send an ACTION_MOVE event in cases where\nindividual pointers went down/up and the remaining pointers actually moved.\nThis is important since many applications do not handle pointer movements\nduring ACTION_POINTER_DOWN or ACTION_POINTER_UP.  In the case of\nACTION_POINTER_UP the movement was completely lost since all pointers were\ndispatched using their old location rather than the new location.\n\nImproved motion event validation to check for duplicate pointer ids.\n\nAdded an input source constant that was missing from the NDK api but\ndefined in the framework api.\n\nAdded a timestamp when reporting added/removed devices in EventHub.\n\nBug: 3070082\nChange-Id: I3206a030f43b7616e2f48006e5a9d522c4d92e56\n"
    },
    {
      "commit": "2351e69a13e8b9372cc4a33d28c1fd230f51faa3",
      "tree": "22d0d65011668acd4383e4eae09e0ba032a6d0c2",
      "parents": [
        "2191b4b22f4bb497ec08f503c37d112428968afe",
        "387e38dd87ae9c04ef79ebe06ea798762916ff5c"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Oct 22 14:07:41 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 22 14:07:41 2010 -0700"
      },
      "message": "Merge \"OMX extension to support storing meta data in video input buffers during recording\""
    },
    {
      "commit": "bff26d156d23e55e2428e19b3fb7f52acf03f79f",
      "tree": "b0993306b63215d4db6559a86f02bcdb5ff22c55",
      "parents": [
        "4924aee9cb1c5988359f3162b6e89689c5b101e1",
        "86f1b643d10e0b5b17ae01db3b81020db87b3295"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Oct 21 20:27:15 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 21 20:27:15 2010 -0700"
      },
      "message": "am 86f1b643: am bf5efba2: Merge \"Fix issue #3117918: No way to finish a native activity\" into gingerbread\n\nMerge commit \u002786f1b643d10e0b5b17ae01db3b81020db87b3295\u0027\n\n* commit \u002786f1b643d10e0b5b17ae01db3b81020db87b3295\u0027:\n  Fix issue #3117918: No way to finish a native activity\n"
    },
    {
      "commit": "86f1b643d10e0b5b17ae01db3b81020db87b3295",
      "tree": "2d7deecbacb72c2cb8277711e36653343b222175",
      "parents": [
        "482284ad0e3226b49c27bf41442c1cb150853226",
        "bf5efba238f81330f4b473e92b6931b85baa1cbc"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Oct 21 20:17:50 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 21 20:17:50 2010 -0700"
      },
      "message": "am bf5efba2: Merge \"Fix issue #3117918: No way to finish a native activity\" into gingerbread\n\nMerge commit \u0027bf5efba238f81330f4b473e92b6931b85baa1cbc\u0027 into gingerbread-plus-aosp\n\n* commit \u0027bf5efba238f81330f4b473e92b6931b85baa1cbc\u0027:\n  Fix issue #3117918: No way to finish a native activity\n"
    },
    {
      "commit": "bf5efba238f81330f4b473e92b6931b85baa1cbc",
      "tree": "0c44e38500f37c552c74f4d288ae7afa8b4b8413",
      "parents": [
        "6b3178a6323e015644590ebaee86523e4bb81773",
        "db28a94d499f995b467b07cee5c9b9119f538b1c"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Oct 21 19:09:44 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 21 19:09:44 2010 -0700"
      },
      "message": "Merge \"Fix issue #3117918: No way to finish a native activity\" into gingerbread"
    },
    {
      "commit": "db28a94d499f995b467b07cee5c9b9119f538b1c",
      "tree": "f720143b3b6a9813d26fdbc210bec10a0780f0b0",
      "parents": [
        "7dc08fb070ff7455e794fc81645ccb4349cd152f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Oct 21 17:22:30 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Oct 21 19:07:37 2010 -0700"
      },
      "message": "Fix issue #3117918: No way to finish a native activity\n\nChange-Id: Ic53e712f7ab5412d72a31b96ecba252344b91644\n"
    },
    {
      "commit": "46beb43357e32507189203db4626d0df954abe62",
      "tree": "9bf3e750957be3bfafe8b5bda50fe57c08093233",
      "parents": [
        "d7cd560af506f75d07034c136bea09b409b4d408",
        "0c636055351f2e1d26138cf7b3bf3c82553e68c4"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Oct 21 16:26:02 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 21 16:26:02 2010 -0700"
      },
      "message": "am 0c636055: Merge \"Mirror the preview for front-facing cameras. do not merge\" into gingerbread\n\nMerge commit \u00270c636055351f2e1d26138cf7b3bf3c82553e68c4\u0027 into gingerbread-plus-aosp\n\n* commit \u00270c636055351f2e1d26138cf7b3bf3c82553e68c4\u0027:\n  Mirror the preview for front-facing cameras. do not merge\n"
    },
    {
      "commit": "0c636055351f2e1d26138cf7b3bf3c82553e68c4",
      "tree": "c2a759cd036b39dd430c0d9a8d2c9878ce877df5",
      "parents": [
        "1d79a9d9f85f932a1fd6dcddba335450b65ba4e6",
        "b982fb4fd36a3cd24a0bb17c964139fe4c9cbb47"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Oct 21 16:20:07 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 21 16:20:07 2010 -0700"
      },
      "message": "Merge \"Mirror the preview for front-facing cameras. do not merge\" into gingerbread"
    },
    {
      "commit": "387e38dd87ae9c04ef79ebe06ea798762916ff5c",
      "tree": "225fb403082a511eb43ad1d4c799bc2689ffbbe3",
      "parents": [
        "cf8918874dc446f34bbc2a93a6b20235c30a7645"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Oct 20 17:38:41 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Oct 21 14:06:17 2010 -0700"
      },
      "message": "OMX extension to support storing meta data in video input buffers during recording\n\nbug - 3042125\n\nChange-Id: I7543809fa4ff61d48da35eec6c2bd5eaa7e8cead\n"
    },
    {
      "commit": "9165145342de3e62145da89cfa832a695f74a0be",
      "tree": "8b352e561ab1c8f2dc21b96d6853ae9646a94065",
      "parents": [
        "55d7bca71ce62248d4d41ba3e1680b9c627971f4",
        "8ad6335d2c22900de5b46460473495b5bcea9f99"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Oct 21 13:49:00 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 21 13:49:00 2010 -0700"
      },
      "message": "am 8ad6335d: am fa7a87fb: Merge \"File writer size estimation improvement\" into gingerbread\n\nMerge commit \u00278ad6335d2c22900de5b46460473495b5bcea9f99\u0027\n\n* commit \u00278ad6335d2c22900de5b46460473495b5bcea9f99\u0027:\n  File writer size estimation improvement\n"
    },
    {
      "commit": "8ad6335d2c22900de5b46460473495b5bcea9f99",
      "tree": "8d76c7c9abfbaac48d7ae8538d02ed6adbd334d5",
      "parents": [
        "63ac8f5377833303a7f8c4d60f0d74daf903e6ea",
        "fa7a87fb4b3d25b0b6b0985d65848a144d28df26"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Oct 20 21:28:38 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 20 21:28:38 2010 -0700"
      },
      "message": "am fa7a87fb: Merge \"File writer size estimation improvement\" into gingerbread\n\nMerge commit \u0027fa7a87fb4b3d25b0b6b0985d65848a144d28df26\u0027 into gingerbread-plus-aosp\n\n* commit \u0027fa7a87fb4b3d25b0b6b0985d65848a144d28df26\u0027:\n  File writer size estimation improvement\n"
    },
    {
      "commit": "cf8918874dc446f34bbc2a93a6b20235c30a7645",
      "tree": "6267c828bc01149954e37b827a75ae2c8f0f99e6",
      "parents": [
        "6913c6176b6d239f833ea21120b93547aa5f93f7"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Wed Oct 20 17:06:28 2010 -0700"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Wed Oct 20 17:06:28 2010 -0700"
      },
      "message": "Revert \"Add length-equality test in String operator\u003d\u003d checks.\"\n\nThis reverts commit e28210d401ae4ed1258b84c9b17a172a757190e8.\n"
    },
    {
      "commit": "e28210d401ae4ed1258b84c9b17a172a757190e8",
      "tree": "33fbac2552b71234b6872bd067e256555d4acae7",
      "parents": [
        "4f5f7c968339a83b6af98ac8893a1ac33c7aa7bc"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Wed Oct 20 13:24:58 2010 -0700"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Wed Oct 20 15:03:49 2010 -0700"
      },
      "message": "Add length-equality test in String operator\u003d\u003d checks.\n\nChange-Id: I6ebc6ef85aac4539269f137c1f29f95b9828d4f9\n"
    },
    {
      "commit": "58a36adac1bb3294cd9f2d516d52c6358987687a",
      "tree": "3fcc1ee79198a96785c07394dd6833a3dc31275c",
      "parents": [
        "9532677ad89df530248f8b0debe2afdb442187ba"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Thu Oct 07 14:08:38 2010 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Oct 20 11:03:30 2010 -0700"
      },
      "message": "Add decode-to-ANativeWindow support to Stagefright.\n\nThis change adds support to Stagefright for doing OMX video decoding directly\ninto buffers dequeued from an ANativeWindow.  It does this by registering the\ndequeued buffers with the OMX component using an Android-specific OMX\nextension, and then exchanging buffers between the OMX component and the\nANativeWindow.\n\nChange-Id: Ida66f836503255a68d378c6903d96dfe9747ce87\n"
    },
    {
      "commit": "b982fb4fd36a3cd24a0bb17c964139fe4c9cbb47",
      "tree": "1fe2daa156fed3a3d92f4a552397befda8438f18",
      "parents": [
        "f4cd9be0390135269e22e42fd2e1fe61fdcf9863"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Tue Oct 19 17:19:09 2010 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Wed Oct 20 18:29:18 2010 +0800"
      },
      "message": "Mirror the preview for front-facing cameras. do not merge\n\nNow overlay does ROT_90 before FLIP_V or FLIP_H. It should be FLIP_V\nor FLIP_H first. The formula should be changed after overlay is fixed.\n\nbug:3059865\nChange-Id: Ie4366bf7f1fcac7383e8dfc74b1b865997bbbcc6\n"
    },
    {
      "commit": "5ff9980ac510a996927398a803f2bab3b71c7ebf",
      "tree": "c6f964c9ce2a6fbc0dc8c8c6f2d26b5d12265f2d",
      "parents": [
        "820b2bb66e8ee707b0a39c27a9b6afc3a6b761e5",
        "ab79d1febcb6d0bfaaf5e8bfb75f4c641c00a2fb"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Oct 19 23:54:57 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 19 23:54:57 2010 -0700"
      },
      "message": "Merge \"Make camera source ready for handling meta-data video buffers.\""
    },
    {
      "commit": "ab79d1febcb6d0bfaaf5e8bfb75f4c641c00a2fb",
      "tree": "8a5a5009232345d0ada22cc70f9a055e6d40f97c",
      "parents": [
        "382f7a140ea25d892831de9d467952db0f68064f"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Oct 18 21:42:27 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Oct 19 23:11:29 2010 -0700"
      },
      "message": "Make camera source ready for handling meta-data video buffers.\n\nbug - 3042125\n\nChange-Id: I877b265c6bf8e0593121c8d5a95ae5599cdc6fb9\n"
    },
    {
      "commit": "38311859e809118f2cba3597d056abffe4eb80c0",
      "tree": "0debf077cf395ecb9e5c28979e6bce7325aef34f",
      "parents": [
        "067222d11f95e2547b638b6daf5d4c06c6dc49ef"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Oct 18 20:42:51 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Oct 19 23:07:08 2010 -0700"
      },
      "message": "Camera framework change required for 0-memcpy recording\n\nbug - 3042125\n\nChange-Id: I46eb7a10b5394086b353fd73e4503beceeed76f1\n"
    },
    {
      "commit": "22b37fa6e0d7abbfa373e5fdf057fc6dcb2474ff",
      "tree": "06082fbe3f4c1c8f08aedbb01ad538d206e3f918",
      "parents": [
        "f4cd9be0390135269e22e42fd2e1fe61fdcf9863"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Oct 19 21:28:47 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Oct 19 22:59:22 2010 -0700"
      },
      "message": "File writer size estimation improvement\n\no Do not count the reserved space for moov if the meta data size is small\no Do not count the extra 1KB disturbing small file estimation.\no Reduce the default minimum reserved space from 4 KB to 3 KB.\no Estimate the moov size based on both duration AND file size limit is set\n  and set it to the smaller estimated value.\n\nlow risk change\n\nbug - 3111983\n\nChange-Id: I6ac2adb979d8cc12d6b4f1813d000c989add0199\n"
    },
    {
      "commit": "d793f14fc9225d889c827957c388bb4557a609d7",
      "tree": "70a681cfd97df180e3839a23e4646ecbb8ee3ecf",
      "parents": [
        "e01645137e919ddeb786175e5b25ac11c87962e3",
        "b0a6db20bb2b6431720cbda9ed0ac5d2b8a6feee"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Oct 19 11:25:19 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 19 11:25:19 2010 -0700"
      },
      "message": "Merge \"Camera hal change for 0-memcpy in media recording framework\""
    },
    {
      "commit": "b0a6db20bb2b6431720cbda9ed0ac5d2b8a6feee",
      "tree": "2fb6869043a63239ed51a2e55d3dae0848c9c9b6",
      "parents": [
        "8e5992ad66c601b5d528c4d0259bee881d7a35a8"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Oct 18 20:38:29 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Oct 19 11:21:03 2010 -0700"
      },
      "message": "Camera hal change for 0-memcpy in media recording framework\n\no document the camera hal to clarify the reviewer\u0027s questions.\n\nbug - 3042125\n\nChange-Id: I3edf701d084933ee8d1e3b054d222e8c9dfc42a5\n"
    },
    {
      "commit": "b8b200d10847dd91bcff7a576e401d7d21fff696",
      "tree": "806a3243d1b13066c76910927fd5674104957812",
      "parents": [
        "9cb1898052c42a82dfd86b54f6328d8fcd29dd57",
        "f2c406030874b355ca9e4e67cc0e3aff6103c23e"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Oct 19 09:55:39 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Oct 19 09:55:39 2010 -0700"
      },
      "message": "am f2c40603: am 7689dd49: Merge \"Fix bug where home presses were not poking user activity.\" into gingerbread\n\nMerge commit \u0027f2c406030874b355ca9e4e67cc0e3aff6103c23e\u0027\n\n* commit \u0027f2c406030874b355ca9e4e67cc0e3aff6103c23e\u0027:\n  Fix bug where home presses were not poking user activity.\n"
    },
    {
      "commit": "c46b2a7b591a02bb6beeb2f62c7e571588ca6aa9",
      "tree": "06da129c6dc614d7a3fd9d8b2e52c9a1a35bb7f8",
      "parents": [
        "3222df8d835c23ceaefc7e4782bb2d5146bb4112",
        "9b2f18df2436b6c2d9735e65119b92f320bb57e2"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Oct 19 09:52:25 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Oct 19 09:52:25 2010 -0700"
      },
      "message": "am 9b2f18df: am bc96c284: Merge \"For thumbnail extraction make sure we instantiate a decoder that allows access to the framebuffer. Implement the samsung workaround to support this by reconfiguring the decoder.\" into gingerbread\n\nMerge commit \u00279b2f18df2436b6c2d9735e65119b92f320bb57e2\u0027\n\n* commit \u00279b2f18df2436b6c2d9735e65119b92f320bb57e2\u0027:\n  For thumbnail extraction make sure we instantiate a decoder that allows access to the framebuffer. Implement the samsung workaround to support this by reconfiguring the decoder.\n"
    },
    {
      "commit": "511ee5f89fad45bd0456b1335b745f2b8d87641b",
      "tree": "047740e6909b164a3efbd34578c658dcec846afd",
      "parents": [
        "1b04ed793a64ff1bf3cd2b71bee1fdfb228b44fe"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Oct 18 13:32:20 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Oct 18 17:24:49 2010 -0700"
      },
      "message": "Add support for calibrating touch position.\n\nUseful for tweaking touch screen alignment without having to modify the\nkernel device driver x/y axis bounds.\n\nChange-Id: I6ca43d3c138548f9dfb76aa33150a0c853698fb6\n"
    },
    {
      "commit": "f2c406030874b355ca9e4e67cc0e3aff6103c23e",
      "tree": "cef3bae978fb412cb4d905dab3f989544aedc71e",
      "parents": [
        "8b5161c2aed8637de9bffb1d81298d60ea237caf",
        "7689dd4928d1cc4080e43f83a523521b5ecf44e5"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Oct 18 15:17:12 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Oct 18 15:17:12 2010 -0700"
      },
      "message": "am 7689dd49: Merge \"Fix bug where home presses were not poking user activity.\" into gingerbread\n\nMerge commit \u00277689dd4928d1cc4080e43f83a523521b5ecf44e5\u0027 into gingerbread-plus-aosp\n\n* commit \u00277689dd4928d1cc4080e43f83a523521b5ecf44e5\u0027:\n  Fix bug where home presses were not poking user activity.\n"
    },
    {
      "commit": "e2fe69edc009a0e0348e5351cf83062224e011ac",
      "tree": "beb5873a0c09f8b6f5569ff158cadec5d5c69895",
      "parents": [
        "45bd8303fe20f20843f5a76ddf42a5ace54add58"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Oct 18 13:21:23 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Oct 18 14:50:13 2010 -0700"
      },
      "message": "Fix bug where home presses were not poking user activity.\n\nWe now poke user activity twice: once upon dequeueing an event\nfor dispatch and then again just before we dispatch it.  The second\npoke is to compensate for the fact that it can take a few seconds to\nidentify the dispatch target (if the application is responding slowly)\nbut we want to keep the display from going to sleep for X amount of time\nafter the app gets a chance to actually receive the event.  This mirrors\npre-Gingerbread behavior.\n\nRemoved some unnecessary code that filters user activity pokes when sending\nevents to KeyGuard.  We don\u0027t need this because KeyGuard already tells the\npower manager to disable user activity.\n\nBug: 3101397\nChange-Id: I8c3a77601fdef8f584e84cfdd11aa79da0ff51db\n"
    },
    {
      "commit": "9b2f18df2436b6c2d9735e65119b92f320bb57e2",
      "tree": "9cdb635b45b1f29b81ae5d517cf07f36b75a04bb",
      "parents": [
        "ec62719c8396997b436c44906c2760e3914698b8",
        "bc96c2848dadaa844f95e89708d9941f73bbf400"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Oct 18 11:50:19 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Oct 18 11:50:19 2010 -0700"
      },
      "message": "am bc96c284: Merge \"For thumbnail extraction make sure we instantiate a decoder that allows access to the framebuffer. Implement the samsung workaround to support this by reconfiguring the decoder.\" into gingerbread\n\nMerge commit \u0027bc96c2848dadaa844f95e89708d9941f73bbf400\u0027 into gingerbread-plus-aosp\n\n* commit \u0027bc96c2848dadaa844f95e89708d9941f73bbf400\u0027:\n  For thumbnail extraction make sure we instantiate a decoder that allows access to the framebuffer. Implement the samsung workaround to support this by reconfiguring the decoder.\n"
    },
    {
      "commit": "5a40e394f1e6b0511542e171eaf4c3e5927efc13",
      "tree": "d83620f903022c1bc2b0087d71c2b257dd5a0719",
      "parents": [
        "d1f7f4a68375f879671d300510f23d3ee78a500e"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Oct 18 09:57:42 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Oct 18 10:16:08 2010 -0700"
      },
      "message": "For thumbnail extraction make sure we instantiate a decoder that allows access to the framebuffer. Implement the samsung workaround to support this by reconfiguring the decoder.\n\nrelated-to-bug: 3106534\nChange-Id: Ie28d72af2f9e93818d1840ac83aa7bc11fa57b3b\n"
    },
    {
      "commit": "5b9fd116f9b63e06fa431a57a1c2e4e5bc03f3fc",
      "tree": "8dc337794ab727e50fbd3842ecb1f058e73c2804",
      "parents": [
        "875ecaa511ce36c8044ccdf48ee2a3e69dd633fe",
        "746c6a1c6d70769ee4b08b9a7b87d0c5aa65c2e4"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Oct 18 08:05:09 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Oct 18 08:05:09 2010 -0700"
      },
      "message": "am 746c6a1c: am ff7a7a45: Merge \"Check-in of a copy of the Khronos OpenMAX headers formerly included from external/opencore.\" into gingerbread\n\nMerge commit \u0027746c6a1c6d70769ee4b08b9a7b87d0c5aa65c2e4\u0027\n\n* commit \u0027746c6a1c6d70769ee4b08b9a7b87d0c5aa65c2e4\u0027:\n  Check-in of a copy of the Khronos OpenMAX headers formerly included from external/opencore.\n"
    },
    {
      "commit": "c52862edcfbf4ead5f63929111e84993c2ab8c4a",
      "tree": "863d3a0dfed122ea69b56cafaececa52e65e63a9",
      "parents": [
        "3ee1e7b5ab852a246b45ed903a72409a19645a1b",
        "5f0cbfcecc4db20f897507c826296b3aac70c592"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sat Oct 16 09:13:13 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Oct 16 09:13:13 2010 -0700"
      },
      "message": "am 5f0cbfce: am c1e7b218: Merge \"Improve input device calibration format.\" into gingerbread\n\nMerge commit \u00275f0cbfcecc4db20f897507c826296b3aac70c592\u0027\n\n* commit \u00275f0cbfcecc4db20f897507c826296b3aac70c592\u0027:\n  Improve input device calibration format.\n"
    },
    {
      "commit": "3ee1e7b5ab852a246b45ed903a72409a19645a1b",
      "tree": "be04fd9c88a81ee73bfd1da2188957e29e68ebe4",
      "parents": [
        "e1baa9c79ffd9240a20bab88c865afae5ce53e59",
        "dc3ad87c04348c925aa86863ed6d25f18a8c6c36"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sat Oct 16 09:12:43 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Oct 16 09:12:43 2010 -0700"
      },
      "message": "am dc3ad87c: am 78a76fea: Merge \"Revert to using epoll_wait().\" into gingerbread\n\nMerge commit \u0027dc3ad87c04348c925aa86863ed6d25f18a8c6c36\u0027\n\n* commit \u0027dc3ad87c04348c925aa86863ed6d25f18a8c6c36\u0027:\n  Revert to using epoll_wait().\n"
    },
    {
      "commit": "596e590b472dc33a522f32a74e1f3bacb57534ab",
      "tree": "b302dc1b4c366aef6900082860eca6416a87f3c5",
      "parents": [
        "1cf3e2d0029e3f93d0c22a1b7a37025464c6c660",
        "7e9a54d460030a871a4f05e61e943c6a694e9ef8"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sat Oct 16 08:52:30 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Oct 16 08:52:30 2010 -0700"
      },
      "message": "am 7e9a54d4: am d4e03f37: addresses parts of 3096779 and 3097475\n\nMerge commit \u00277e9a54d460030a871a4f05e61e943c6a694e9ef8\u0027\n\n* commit \u00277e9a54d460030a871a4f05e61e943c6a694e9ef8\u0027:\n  addresses parts of 3096779 and 3097475\n"
    },
    {
      "commit": "6ba052b4847d85831c38c9b8e2942cef4987e55b",
      "tree": "aa693582c047451f74ad1e45943684cde1f314ed",
      "parents": [
        "bce520e6460e712c0985f12cf212e2d72fd1b9e4",
        "c1a564b108c511c0bdd699567c245b031930e718"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Oct 15 18:40:39 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 15 18:40:39 2010 -0700"
      },
      "message": "am c1a564b1: Merge \"Add support for secure system overlays.  (DO NOT MERGE)\" into gingerbread\n\nMerge commit \u0027c1a564b108c511c0bdd699567c245b031930e718\u0027 into gingerbread-plus-aosp\n\n* commit \u0027c1a564b108c511c0bdd699567c245b031930e718\u0027:\n  Add support for secure system overlays.  (DO NOT MERGE)\n"
    },
    {
      "commit": "746c6a1c6d70769ee4b08b9a7b87d0c5aa65c2e4",
      "tree": "3512a5af553e8791f0f46f3142d7dabc3ffb449e",
      "parents": [
        "13e46665ff69c1a37880762d7d611aacdf02dac7",
        "ff7a7a455c15077e2b691efa370619f06058f697"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 15 18:24:56 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 15 18:24:56 2010 -0700"
      },
      "message": "am ff7a7a45: Merge \"Check-in of a copy of the Khronos OpenMAX headers formerly included from external/opencore.\" into gingerbread\n\nMerge commit \u0027ff7a7a455c15077e2b691efa370619f06058f697\u0027 into gingerbread-plus-aosp\n\n* commit \u0027ff7a7a455c15077e2b691efa370619f06058f697\u0027:\n  Check-in of a copy of the Khronos OpenMAX headers formerly included from external/opencore.\n"
    },
    {
      "commit": "3b2b354ec1ba070eae13391d004d97a3e1403050",
      "tree": "e2647c9a8797a4b3542deab7d1cb766967b35879",
      "parents": [
        "1edb2bda37726ba6bc6feeafad25ea51b1cacaee"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Oct 15 00:54:27 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Oct 15 17:10:55 2010 -0700"
      },
      "message": "Add support for secure system overlays.\n\nManual merge from Gingerbread.\n\nThis change adds a new window type for secure system overlays\ncreated by the system itself from non-secure system overlays that\nmight be created by applications that have the system alert permission.\nSecure views ignore the presence of secure system overlays.\n\nBug: 3098519\nChange-Id: Id876736fd8bf332ff9a5428bde59f5268aa49c3a\n"
    },
    {
      "commit": "2d3f159aa9622e05a18e7f93cecd57ad673955ae",
      "tree": "8df18f80f44133f19ce9e669a36bdd785b31460a",
      "parents": [
        "c9f7890a203a013646650a695157277df81b6a17"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Oct 15 00:54:27 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Oct 15 16:03:35 2010 -0700"
      },
      "message": "Add support for secure system overlays.  (DO NOT MERGE)\n\nThis change adds a new window type for secure system overlays\ncreated by the system itself from non-secure system overlays that\nmight be created by applications that have the system alert permission.\nSecure views ignore the presence of secure system overlays.\n\nBug: 3098519\nChange-Id: I8f8398f4fdeb0469e5d71124c21bedf121bd8c07\n"
    },
    {
      "commit": "497a92cc5ba2176b8a8484b0a7da040eac0e887b",
      "tree": "2d9bd7a2ef24754fa83a36f440ee45fd8a32b9fb",
      "parents": [
        "cd9afc3722a1edebf0e6f7172627930052c81ce4"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Sep 12 17:55:08 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Oct 15 16:00:07 2010 -0700"
      },
      "message": "Add keycodes and meta-key modifiers to support external keyboards.\n\nAdded new key maps for external keyboards.  These maps are intended to\nbe shared across devices by inheriting the \"keyboards.mk\" product\nmakefile as part of the device\u0027s product definition.\n\nOne of the trickier changes here was to unwind some code in\nMetaKeyKeyListener that assumed that only the low 8 bits of the meta key\nstate were actually used.  The new code abandons bitshifts in favor\nof simple conditionals that are probably easier to read anyways.\nThe special meta key state constants used by MetaKeyKeyListener\nare now (@hide) defined in KeyEvent now so as to make it clearer that they\nshare the same code space even if those codes are not valid for KeyEvents.\n\nThe EventHub now takes care of detecting the appropriate key layout\nmap and key character map when the device is added and sets system\nproperties accordingly.  This avoids having duplicate code in\nKeyCharacterMap to probe for the appropriate key character map\nalthough the current probing mechanism has been preserved for legacy\nreasons just in case.\n\nAdded support for tracking caps lock, num lock and scroll lock and\nturning their corresponding LEDs on and off as needed.\n\nThe key character map format will need to be updated to correctly support\nPC style external keyboard semantics related to modifier keys.\nThat will come in a later change so caps lock doesn\u0027t actually do\nanything right now except turn the shiny LEDs on and off...\n\nAdded a list of symbolic key names to KeyEvent and improved the toString()\noutput for debug diagnosis.  Having this list in a central place in the\nframework also allows us to remove it from Monkey so there is one less\nthing to maintain when we add new keycodes.\n\nBug: 2912307\nChange-Id: If8c25e8d50a7c29bbf5d663c94284f5f86de5da4\n"
    },
    {
      "commit": "fcab0f5502410b975afe045354bbae31ccba68a5",
      "tree": "184b37e57a998580c15fdaa98d7d8bf0c9155a90",
      "parents": [
        "10aca41e51934822dc492cb69b69cef37f42ad42",
        "8fda1636e3e35f060b9046294efd3c062a1fdb84"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Oct 15 14:00:58 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 15 14:00:58 2010 -0700"
      },
      "message": "am 8fda1636: am bdf8034c: Merge \"OBB: use PBKDF2 for key generation.\" into gingerbread\n\nMerge commit \u00278fda1636e3e35f060b9046294efd3c062a1fdb84\u0027\n\n* commit \u00278fda1636e3e35f060b9046294efd3c062a1fdb84\u0027:\n  OBB: use PBKDF2 for key generation.\n"
    },
    {
      "commit": "6ac35f059726cf60a364c1efd783a99c901f2d9d",
      "tree": "99b503aaf16306f2860d51037c014bfb5050e380",
      "parents": [
        "e1f3976bb4eab0d7c46bc8596679d4d00695148c"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 15 13:30:27 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 15 13:30:27 2010 -0700"
      },
      "message": "Check-in of a copy of the Khronos OpenMAX headers formerly included from external/opencore.\n\nChange-Id: Ie2ecf9558d4ee80cb5a2bbe66ad49f2165a7b09c\nrelated-to-bug: 3101573\n"
    },
    {
      "commit": "99e3fab534d3a489726665cb8c71edecd5798b04",
      "tree": "86bb8ed74070ebc7bf2f92b0908a2c2959e25217",
      "parents": [
        "a4a2a3aaef730dbab020f7ece09149b05a399000",
        "5bfa3a34eaef759c3ec4def76f646eb1c0bf997f"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Oct 15 08:33:43 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 15 08:33:43 2010 -0700"
      },
      "message": "am 5bfa3a34: am 011b5bcc: Merge \"implement part of [3094280] New animation for screen on and screen off add support for screen on animation\" into gingerbread\n\nMerge commit \u00275bfa3a34eaef759c3ec4def76f646eb1c0bf997f\u0027\n\n* commit \u00275bfa3a34eaef759c3ec4def76f646eb1c0bf997f\u0027:\n  implement part of [3094280] New animation for screen on and screen off\n"
    },
    {
      "commit": "5f0cbfcecc4db20f897507c826296b3aac70c592",
      "tree": "896363b3d748ce378f9b73909b01c9c63cbe1d14",
      "parents": [
        "dc3ad87c04348c925aa86863ed6d25f18a8c6c36",
        "c1e7b2182594aa0463c4a738cc8e7eea6777ef50"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Oct 15 01:31:14 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 15 01:31:14 2010 -0700"
      },
      "message": "am c1e7b218: Merge \"Improve input device calibration format.\" into gingerbread\n\nMerge commit \u0027c1e7b2182594aa0463c4a738cc8e7eea6777ef50\u0027 into gingerbread-plus-aosp\n\n* commit \u0027c1e7b2182594aa0463c4a738cc8e7eea6777ef50\u0027:\n  Improve input device calibration format.\n"
    }
  ],
  "next": "c1e7b2182594aa0463c4a738cc8e7eea6777ef50"
}
