)]}'
{
  "log": [
    {
      "commit": "6bdbcd748ee64c7d66547c89673b415197a3001f",
      "tree": "76261b3f8b4fe6af167e91b97dd749f5d4747df1",
      "parents": [
        "a111187a5b4dc5d287e29ced7d65e8d20edca140",
        "52b52cdfb7502d5a0fd7bba21d1daa3e36a54e42"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Nov 24 10:58:46 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 24 10:58:46 2010 -0800"
      },
      "message": "Merge \"Support streaming data across binder boundaries.\""
    },
    {
      "commit": "29fc2c9705e1bb8ae098fca016032d2325031587",
      "tree": "2b7e7ed7a40e3d31fa843094f31ecfb4fb257a19",
      "parents": [
        "93fbae34ce8b6a1907b6f1daf42f17e3f0025346"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Wed Nov 24 10:26:50 2010 -0800"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Wed Nov 24 10:26:50 2010 -0800"
      },
      "message": "Allow status bar panels to be on top of the status bar.\n\nChange-Id: I3c74ece5f7042e6302717f4263746d59d5447ec9\n"
    },
    {
      "commit": "52b52cdfb7502d5a0fd7bba21d1daa3e36a54e42",
      "tree": "040a33d75806c53592501343999f16c4c3cf114c",
      "parents": [
        "57914381a80c9f19cf5227b4af9e822fa0c74ea9"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 23 11:41:34 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 23 14:46:13 2010 -0800"
      },
      "message": "Support streaming data across binder boundaries.\n\nChange-Id: Ifbac61406dcb81343765f99ccba08bd90f9274cc\n"
    },
    {
      "commit": "35f2d3997efe62ce7660ac558578ac5ca834f357",
      "tree": "9f6031e2e4bb9665e619bc881839477c14898a21",
      "parents": [
        "c0ec802e96788c3002b737b02707875049758f98",
        "24a90c2674270fee0783bafa54fd5d845bdf0c18"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Nov 22 21:29:08 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 22 21:29:08 2010 -0800"
      },
      "message": "am 24a90c26: am d9334934: Merge \"Update of DRM Framework.\"\n\n* commit \u002724a90c2674270fee0783bafa54fd5d845bdf0c18\u0027:\n  Update of DRM Framework.\n"
    },
    {
      "commit": "24a90c2674270fee0783bafa54fd5d845bdf0c18",
      "tree": "e666edcc7ed926f5eb2f6c4c23974095f7514c8a",
      "parents": [
        "8484e57f3006dd3aa925792e6414387c233c1a8d",
        "d93349342a89a25c7a884e8543c6adc048c5f86d"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Nov 22 21:25:56 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 22 21:25:56 2010 -0800"
      },
      "message": "am d9334934: Merge \"Update of DRM Framework.\"\n\n* commit \u0027d93349342a89a25c7a884e8543c6adc048c5f86d\u0027:\n  Update of DRM Framework.\n"
    },
    {
      "commit": "4a0ff4de7954295ef7a1fd595c999240523860f8",
      "tree": "a0b4ff19bc46a7e3d7860bcfb1c8c9d4bf2518bd",
      "parents": [
        "747698664d52691c9f2604f1d52dda4a02735616",
        "1bb0ffd0981bec26f906bc62d449e136111af4f8"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Nov 22 15:40:29 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 22 15:40:29 2010 -0800"
      },
      "message": "Merge \"Squashed commit of the following:\""
    },
    {
      "commit": "1bb0ffd0981bec26f906bc62d449e136111af4f8",
      "tree": "91c6a21c85bd5dc4b74663fa4c665f81d0d67a09",
      "parents": [
        "1ca562635117e10fae0888689909e6c39d66b0a4"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Nov 22 13:06:35 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Nov 22 14:05:21 2010 -0800"
      },
      "message": "Squashed commit of the following:\n\ncommit 0870f7bdd10a7cd36087d723d1957d8e1b967ca7\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Nov 22 12:57:04 2010 -0800\n\n    set_surface_crop doesn\u0027t seem to work right yet, stop using it in the SoftwareRenderer.\n\n    Change-Id: If0a24f78b7810a6cecaa82eb4f23d0f90c22cc42\n\ncommit 4767b52bee3a54ae117a8708d6832276a44e6a6a\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Nov 22 11:14:57 2010 -0800\n\n    info-\u003emMediaBuffer may still be NULL at this point...\n\n    Change-Id: I25a71569015b1bb87f1ea7efff7588958774426f\n\ncommit 0cef79874e1f1ddb10b7402177a87d3cffc7de92\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Nov 22 10:55:12 2010 -0800\n\n    QCOM\u0027s YVU420 color format conversion has now been tested.\n\n    Change-Id: I7fef4b642a928af15d42f006f7cdc107d5ff1d67\n\ncommit 84fe05a6c969ede0ce8a85a530e110afca07c7a7\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Nov 22 09:59:50 2010 -0800\n\n    Removed remaining traces of suspend/resume. Proper reporting of video dimensions based on cropping rectangle.\n\n    Change-Id: Ib238b80cbc1f19e7d312f2422eb5e9ab6b06b1bc\n\ncommit 50970cdc837c5c498bcf0cb61b436196ca9e2ef7\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Nov 19 16:11:06 2010 -0800\n\n    Revamped Software Renderer respects the crop rectangle.\n\n    Removed obsolete ADRENO support code.\n\n    Change-Id: I984cbc8a99c4d97e09e7d1b1292099c88b9ae535\n\ncommit 8abbc6a5608bff650f968540f24a2eab75f254ed\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Nov 19 16:10:41 2010 -0800\n\n    The metadata retriever now respects the crop rectangle while capturing a video frame.\n\n    Change-Id: Id3377176060086d16717f62c77ce26fabe899050\n\ncommit 2d42e4466609d304e88bd2cdd6eb7b297340cc21\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Nov 19 16:09:50 2010 -0800\n\n    Changed ColorConverter APIs to be more general.\n\n    Clients can now refer to crop rectangles in both source and destination.\n\n    Change-Id: Ief151d736818396d0389ec04e7df5650e3ad7c04\n\ncommit 273184303d54a54febd3e9c3dd4df30507ea78b5\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Nov 19 15:04:06 2010 -0800\n\n    The stagefright commandline tool now writes the extracted video frame to /sdcard/out.jpg\n\n    Change-Id: Ieb2ab3fda7a7cd9294beccb8db0eed75096eeef4\n\ncommit 2d43390328cadf4ba94c1c3c02e4fb30baa29690\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Nov 19 14:36:55 2010 -0800\n\n    The AVC software decoder now properly advertises the cropping rectangle.\n\n    Change-Id: Idb7a8a7e2fde5740f0fc34b7e8c92eca2577104b\n\ncommit 9a7ed23c2fac8ce19dce7a34a603acee945a89f6\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Nov 19 13:40:39 2010 -0800\n\n    OMXCodec now signals a format change if the cropping rectangle changes.\n\n    ...and puts the cropping info into its output format.\n\n    Change-Id: I3ffbd8e877ba286fe06a82c536ef20d92548d2e2\n\ncommit efe0323947029df1c502599ccc288c8d676dfd31\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Nov 19 11:29:39 2010 -0800\n\n    Stagefright\u0027s MetaData object now supports rectangle items.\n\n    Change-Id: I5667bb5ee6622c76104b99fb57f60abb802a8504\n\nChange-Id: I27cb78f2c5e0353f95fdfc5cb53991949ed75b70\n"
    },
    {
      "commit": "83d97c8c7ddff9374f876bef48758414a7775cb1",
      "tree": "8c34611cbbd6c2e84c886ed86d8bed154f39fc33",
      "parents": [
        "18439bee6f8b525abe3f1fac69bc4cea184e1565",
        "5fc3edb13edb058f14e6550d295ce3e50e5ebf8c"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Nov 22 10:48:30 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 22 10:48:30 2010 -0800"
      },
      "message": "Merge \"64-bit file size/offset support for DRM framework\""
    },
    {
      "commit": "4e911849caa9a4c3fe7ba9d820930465ba54de29",
      "tree": "6dffb14c59691a50d926b6433c3fcbc3365a6663",
      "parents": [
        "482a1b16cb805920b427f0b1adca300571fda92d",
        "fb6f4505ba5c227cebb73f1269b0af5d92e6e5e6"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Fri Nov 19 19:20:59 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Nov 19 19:20:59 2010 -0800"
      },
      "message": "am fb6f4505: am 589e8381: Merge \"Improve camera documentation.\" into gingerbread\n\n* commit \u0027fb6f4505ba5c227cebb73f1269b0af5d92e6e5e6\u0027:\n  Improve camera documentation.\n"
    },
    {
      "commit": "fb6f4505ba5c227cebb73f1269b0af5d92e6e5e6",
      "tree": "dcfccf0790d94f47758de9c0bc6b06a94fe7444f",
      "parents": [
        "d3b5510b8505c6c653469193a40f6431272085f3",
        "589e838116b0dffa696fa39336d0588124877f98"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Fri Nov 19 18:17:24 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Nov 19 18:17:24 2010 -0800"
      },
      "message": "am 589e8381: Merge \"Improve camera documentation.\" into gingerbread\n\n* commit \u0027589e838116b0dffa696fa39336d0588124877f98\u0027:\n  Improve camera documentation.\n"
    },
    {
      "commit": "04d070f2937ae4dd72d9d87407b9abf7f664660e",
      "tree": "2a955761a7f7bfbb2e267dfce2ef48b237c98112",
      "parents": [
        "8c62c1d6b9738cf55411f155a061814bd886ac76",
        "2747e0e07ff7ec2ba808298e8d96536d72d211cb"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Nov 19 16:49:10 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 19 16:49:10 2010 -0800"
      },
      "message": "Merge \"Removed uncessary FILE structure pointer for I/O\""
    },
    {
      "commit": "d48124e0fe511265024a61abee67d8ed6ac61592",
      "tree": "911d23e19005be9476454a576f2601e3ddb1013d",
      "parents": [
        "855e4c98846a4264b7a27ad68cfa66c12ac0591c",
        "f3d6dd0782e3135885efdc26cb86cf0bf811749f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Nov 19 15:58:24 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 19 15:58:24 2010 -0800"
      },
      "message": "Merge \"Fix issue 3157123.\""
    },
    {
      "commit": "5fc3edb13edb058f14e6550d295ce3e50e5ebf8c",
      "tree": "e6f75eb8cbed46e3368ec25e684ca0429f520260",
      "parents": [
        "a3326781352888ff80fcf920cf93fd738bb69e66"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Fri Nov 19 15:19:36 2010 -0800"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Fri Nov 19 15:52:32 2010 -0800"
      },
      "message": "64-bit file size/offset support for DRM framework\n\nChange-Id: I0ba7147607825234df9fa28732e1bba344e82e79\n"
    },
    {
      "commit": "f3d6dd0782e3135885efdc26cb86cf0bf811749f",
      "tree": "bff3e49ad215f9573b7b89990e974a944d4c4a98",
      "parents": [
        "9c950b41c5531e6735f3d13f5b46ae89d59b3b8c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 18 08:40:16 2010 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Nov 19 15:49:42 2010 -0800"
      },
      "message": "Fix issue 3157123.\n\nUse a Mutex wherever atomic operations were used in AudioTrack,\nAudioRecord, AudioFlinger and AudioEffect classes.\n\nChange-Id: I6f55b2cabdcd93d64ef19446735b8f33720f8dbc\n"
    },
    {
      "commit": "a6210d061bb79e5c10ed88c99111df51e52e4472",
      "tree": "c789bd306c908846fcfa1e8b6b74435daddc9974",
      "parents": [
        "7ffd0871e6b8d7ab9443bef6e8b2a31674d1f623"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Nov 19 13:13:07 2010 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Nov 19 13:52:19 2010 -0800"
      },
      "message": "Fix SDK build on Windows due to use of mmap.\n\nChange-Id: Id4bd9a6f932285c93c5853e540efc20b99876564\n"
    },
    {
      "commit": "2747e0e07ff7ec2ba808298e8d96536d72d211cb",
      "tree": "fa83a99a342b7633027ac349a1d592c098545c08",
      "parents": [
        "9803d7f87054ad67b62011e5b84e8963c5930e51"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Nov 18 20:59:13 2010 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Nov 19 10:48:22 2010 -0800"
      },
      "message": "Removed uncessary FILE structure pointer for I/O\n\no also move the fd owner from caller to callee in the Writers\n\nChange-Id: I510ccfdd0fcc58f1777fea4ed1349fd251852c65\n"
    },
    {
      "commit": "dc91865622e3cc9ff0bb33b83f1d3b38cd7a6d7a",
      "tree": "910ec95f6e2716cf6911da7247eaee49dc149933",
      "parents": [
        "14ac9546367d4df37eead55f6762b944b49f33b2"
      ],
      "author": {
        "name": "Takeshi Aimi",
        "email": "aimitakeshi@gmail.com",
        "time": "Tue Nov 16 13:56:11 2010 +0900"
      },
      "committer": {
        "name": "Takeshi Aimi",
        "email": "aimitakeshi@gmail.com",
        "time": "Fri Nov 19 22:02:51 2010 +0900"
      },
      "message": "Update of DRM Framework.\n\n-Access permission handling\n  Introduce an internal function which allows the desired process to\n  access decryption flow. This new function is just for reference and\n  each OEM manufacturer should implement/replace with their solutions.\n-New API, getMetadata()\n  This API is for retrieving media metadata from container-based DRM,\n  such as OMA forward-lock content. This API asks DRM agent to retrieve\n  media metadata hiddein inside of DRM special container.\n-New API, acquireRights()\n  This API wraps acquireDrmInfo() and processDrmInfo().\n  If DRM agent has valid implementation of both APIs,\n  Application can acquire DrmRights only by calling this API.\n-Bug fix in event loop of OnInfoListener.\n  Separate OnInfo event loop from mail thread loop so as to avoid\n  the issue that message is not dispatched when mail thread is busy.\n\nChanges are made by SEMC and Sony.\n\nChange-Id: I04ee3e0988152a71e221f2256d83253749a29da0\n"
    },
    {
      "commit": "99a3f3e4e06b4370101ca97cc11dbe81d772fefa",
      "tree": "3e16b0910ff4ee8bcc53941fcc851f396e4bd628",
      "parents": [
        "671a6ff4be11b3e2d8eb017e0c7a78e6133fb2b8"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Fri Nov 19 15:56:16 2010 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Fri Nov 19 16:20:04 2010 +0800"
      },
      "message": "Improve camera documentation.\n\nbug:3212606\nChange-Id: Iee7106e4665c08a4c75471114010b75d63ac74ce\n"
    },
    {
      "commit": "71d4ecb185bbe9e699aa85c65c98427a67a3fb12",
      "tree": "b2c144abbc4a880c51f07b6c2b304176f0d9f93c",
      "parents": [
        "9db9a29109c48eac201b6f0011b5dc7596071cb5",
        "b1262a8b1dd23abad64465f9ffd25c44facdf4d2"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Nov 18 18:19:30 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 18 18:19:30 2010 -0800"
      },
      "message": "Merge \"64-bit file size/offset support for media framework\""
    },
    {
      "commit": "dd4e4603efef2c3df0e26835935f74e1e0e7deb2",
      "tree": "2ba66f799846ce2707dad9e4c5bb98e50c1291c7",
      "parents": [
        "2a26037ddd2d4c3150e3d8ca5d7caf23deae35d5",
        "6b53e8daa69cba1a2a5a7c95a01e37ce9c53226c"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Nov 18 14:20:30 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 18 14:20:30 2010 -0800"
      },
      "message": "Merge \"Added support for full PC-style keyboards.\""
    },
    {
      "commit": "b1262a8b1dd23abad64465f9ffd25c44facdf4d2",
      "tree": "cd19da06f0cc2c92ec35e1086d126c3546cc5584",
      "parents": [
        "83ed1ae073556f4971bf8f3a5cbcd2d37e1dd2bb"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Nov 16 14:04:54 2010 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Nov 18 14:12:24 2010 -0800"
      },
      "message": "64-bit file size/offset support for media framework\n\nChange-Id: I3452bc2c0f1d990cc67285df2fce1f9f86ff8e10\n"
    },
    {
      "commit": "3d1c5a27884ef01772b187ff250daadb7678572e",
      "tree": "c1edb7f2e597b1bda9ee1b44eeae8f69b47678c0",
      "parents": [
        "0c400f0a68d4b48516fbe0dbae05e500598317f1",
        "43cd12dae2bbfd128e58a836f2627907d5a92381"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Thu Nov 18 11:18:35 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 18 11:18:35 2010 -0800"
      },
      "message": "Merge \"Add getUri() for streaming\""
    },
    {
      "commit": "43cd12dae2bbfd128e58a836f2627907d5a92381",
      "tree": "d5d25277ee3265ed047fb264a0418bd519b6c673",
      "parents": [
        "4e74e181d1f06b31ebe98589dbe2ee9ddb722173"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Tue Nov 09 15:06:51 2010 -0800"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Thu Nov 18 09:55:35 2010 -0800"
      },
      "message": "Add getUri() for streaming\n\nChange-Id: I56e15e67cc5f4d0f41c9e2985404a4d89d757e7e\n"
    },
    {
      "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"
    }
  ],
  "next": "22b37fa6e0d7abbfa373e5fdf057fc6dcb2474ff"
}
