)]}'
{
  "log": [
    {
      "commit": "f015774f9d5a8b7af547ccad92d98b5cfd4009fb",
      "tree": "c4edb42e1fbd37cf602ba79a089cd3bbe557961d",
      "parents": [
        "dd0f7a7127fdb04863b4ad66d2b846ee94358314",
        "fabf86f788260b19ae59e472843164c3bf44e259"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Mon Aug 30 14:06:16 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 30 14:06:16 2010 -0700"
      },
      "message": "am 6e46e6f7: am 7ec7b997: Remove camera metering mode API.\n\nMerge commit \u00276e46e6f7488ad1f4e6ab762d141790798fe3f2d5\u0027\n\n* commit \u00276e46e6f7488ad1f4e6ab762d141790798fe3f2d5\u0027:\n  Remove camera metering mode API.\n"
    },
    {
      "commit": "541d7655d9dc0322eb616e17b6767365bf64e3ed",
      "tree": "d0ef214330535305569cff32621e1b0f4608cace",
      "parents": [
        "1c842b26ebbf64d15b6015b9a03d888829b946ef"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Fri Aug 27 15:39:46 2010 -0700"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Mon Aug 30 13:33:53 2010 -0700"
      },
      "message": "Remove camera metering mode API.\n\nMetering mode is not supported yet.\n\nChange-Id: Id6906d6ab0cd1a9dcbc5c303d8d5081b2cda699e\n"
    },
    {
      "commit": "c5c4286bebffa4c2a9539c8e09207c3130351531",
      "tree": "70d993e063bfb0531773c736b2ef726daf1de1ac",
      "parents": [
        "cc567f511a159867dcde8da824cab7464e687535",
        "c28160fcf5fb785106e00fa5854929be8b49a98a"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Aug 30 13:29:51 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 30 13:29:51 2010 -0700"
      },
      "message": "am 6df6d606: am df992ac9: Merge \"ALoopers can now be named (useful to distinguish threads).\" into gingerbread\n\nMerge commit \u00276df6d60681be9d524ce7fc07f2511008de424d27\u0027\n\n* commit \u00276df6d60681be9d524ce7fc07f2511008de424d27\u0027:\n  ALoopers can now be named (useful to distinguish threads).\n"
    },
    {
      "commit": "c01ec02269e3bf1fd57620149085407bf6750447",
      "tree": "38b18040d9e215c703a1688f52912e98d6f139e2",
      "parents": [
        "824c9ff4a55e86faae4f8f158977329909cbfaf6",
        "a814c1fdc2acf0ed2ee3b175110f6039be7c4873"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Aug 30 10:28:24 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 30 10:28:24 2010 -0700"
      },
      "message": "Merge \"ALoopers can now be named (useful to distinguish threads).\" into gingerbread"
    },
    {
      "commit": "cc567f511a159867dcde8da824cab7464e687535",
      "tree": "36d513b82c54e656309d7fdbf0f66181d0fba4f4",
      "parents": [
        "9bdccaca6a7a09457670138bf6cdd9b3ba5e7087",
        "4caa5782afbf07da01532f7b8744157f0e92d01e"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Fri Aug 27 18:21:30 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 27 18:21:30 2010 -0700"
      },
      "message": "Merge \"client_id-\u003eclientId, bugfix for signaling of read abort on stop.\""
    },
    {
      "commit": "4caa5782afbf07da01532f7b8744157f0e92d01e",
      "tree": "bbeaeb894cd0c588c1cf90693c9acc62f0fbe558",
      "parents": [
        "c7e5094ece8083bcaa8160564655df986126f4bd"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Fri Aug 27 14:19:01 2010 -0700"
      },
      "committer": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Fri Aug 27 18:19:22 2010 -0700"
      },
      "message": "client_id-\u003eclientId, bugfix for signaling of read abort on stop.\n\n- changed client_id-\u003eclientId, mClient_id-\u003emClientId\n- there was a bug in the condition for calling\n  signalReadComplete_lock() in stop. We should call it only when\n  !mLastReadCompleted and also if the current client has not already\n  completed its read (this second check was missing before).\n\nChange-Id: I9a57cf6b5c6f3260883a6c74d0c7b22f675c422e\n"
    },
    {
      "commit": "9bdccaca6a7a09457670138bf6cdd9b3ba5e7087",
      "tree": "f2ce07a2b7f235a3e6b895f461ebd1fb6a5de8c3",
      "parents": [
        "f00421ce0af03785a229552cb9738ac09b17a675",
        "b354e7916ee7b5fffb61c3ede30c3d3b0c26b475"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Aug 27 18:10:01 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 27 18:10:01 2010 -0700"
      },
      "message": "am a5fe77d0: am df8356ff: Merge \"Workaround for a QCOM issue where the output buffer size advertised by the AVC encoder is occasionally too small.\" into gingerbread\n\nMerge commit \u0027a5fe77d004091bd9521d087c2572f587191afbfc\u0027\n\n* commit \u0027a5fe77d004091bd9521d087c2572f587191afbfc\u0027:\n  Workaround for a QCOM issue where the output buffer size advertised by the AVC encoder\n"
    },
    {
      "commit": "f00421ce0af03785a229552cb9738ac09b17a675",
      "tree": "454c15fb3230efae56507f9b2375f9c9cbe6ecce",
      "parents": [
        "9fbd6ae6b6d9f3eb791a3385df6fed3524531bd4",
        "23f0d683c230aab3310ca244ff99e2130a770e93"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Aug 27 18:09:37 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 27 18:09:37 2010 -0700"
      },
      "message": "am 7d3ff384: am b86365ad: Merge \"Suppress the video recording start signal - bug 2950297\" into gingerbread\n\nMerge commit \u00277d3ff3849c830f0136c692b6074f1ba5da288fe7\u0027\n\n* commit \u00277d3ff3849c830f0136c692b6074f1ba5da288fe7\u0027:\n  Suppress the video recording start signal\n"
    },
    {
      "commit": "c579249e771ea8f4b57491ead4cf6f36420c4263",
      "tree": "d573a975cd72e4eba70a24115372f75ab44c93a3",
      "parents": [
        "d9a81d43fd23f10091afa4e78bd2f5db87f74e7f",
        "95fd60f5f34ef63a9dbb12707c5c9cc771367565"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Aug 27 16:18:12 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 27 16:18:12 2010 -0700"
      },
      "message": "am d322d163: am ae66946b: Merge \"fix a race in SF buffer management\" into gingerbread\n\nMerge commit \u0027d322d16323176ddd5fef3383798176f64d0078c8\u0027\n\n* commit \u0027d322d16323176ddd5fef3383798176f64d0078c8\u0027:\n  fix a race in SF buffer management\n"
    },
    {
      "commit": "a814c1fdc2acf0ed2ee3b175110f6039be7c4873",
      "tree": "bdeb2c9b722b0307041d4906961f235a3cfabcbe",
      "parents": [
        "f8860bf3592debe89916aa49b7994a7deeee0df1"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Aug 27 15:21:07 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Aug 27 15:21:07 2010 -0700"
      },
      "message": "ALoopers can now be named (useful to distinguish threads).\n\nChange-Id: Ieabaddb2e3a9e3a7a5bc36e55cd0721b60dbd50e\n"
    },
    {
      "commit": "824c9ff4a55e86faae4f8f158977329909cbfaf6",
      "tree": "945b5b767cce0533fe3bbf4f01b54de42ca1c305",
      "parents": [
        "352c4683820c31eaad63e52a47d0d442bfe2c193"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Aug 26 19:12:59 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Aug 27 13:59:26 2010 -0700"
      },
      "message": "Workaround for a QCOM issue where the output buffer size advertised by the AVC encoder\nis occasionally too small.\n\nbug - 2882917\n\nChange-Id: Id59d8529084c5689a26f272e0cd3b1e955fd8a30\n"
    },
    {
      "commit": "d9a81d43fd23f10091afa4e78bd2f5db87f74e7f",
      "tree": "ab6c2095c2664385ad10847588b70afe671d39f6",
      "parents": [
        "7cb54d6f0e6c89f45e3db0bd9246f35836d67b8f",
        "c7e5094ece8083bcaa8160564655df986126f4bd"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Fri Aug 27 13:48:15 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 27 13:48:15 2010 -0700"
      },
      "message": "Merge \"Added MediaSourceSplitter to split single source to multiple ones.\""
    },
    {
      "commit": "352c4683820c31eaad63e52a47d0d442bfe2c193",
      "tree": "4df9fbef2930ff8990a10cb47b45b29155cb0532",
      "parents": [
        "f8860bf3592debe89916aa49b7994a7deeee0df1",
        "f1ae1963f5028a670573b50a9c1cfb504fc426b4"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Aug 27 13:47:06 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 27 13:47:06 2010 -0700"
      },
      "message": "Merge \"Suppress the video recording start signal - bug 2950297\" into gingerbread"
    },
    {
      "commit": "c7e5094ece8083bcaa8160564655df986126f4bd",
      "tree": "0fc5540a224809d2b80c9c3fa0275a4a8f18635a",
      "parents": [
        "a0ced19fa96f26a25de708588a34ebfd452f250e"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Thu Aug 26 15:59:19 2010 -0700"
      },
      "committer": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Fri Aug 27 13:46:41 2010 -0700"
      },
      "message": "Added MediaSourceSplitter to split single source to multiple ones.\n\nMediaSourceSplitter provides a way to split a single mediaSource\ninto multiple sources. It takes in the real mediaSource and multiple\nclients can then be created which serve from the same real mediaSource.\n\nChange-Id: I7254ead24b4c26c784b033e6bc7ff5a0d083a0c3\n"
    },
    {
      "commit": "d7c43d3d1ec96e3e3a9ed1faf3ccb2edc949b390",
      "tree": "f9b24515784310f4055f3a9cc3e2eec071a9b778",
      "parents": [
        "640a72ecf2feb1ee5152d70234ff48d3be0e5ddf"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Aug 26 17:42:27 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Aug 26 17:42:27 2010 -0700"
      },
      "message": "fix a race in SF buffer management\n\nalso remove some unused code.\n\nChange-Id: Iae2c3309b7a08055f3e13a5b866c5c084993e352\n"
    },
    {
      "commit": "f1ae1963f5028a670573b50a9c1cfb504fc426b4",
      "tree": "2d983bc2400e9675c0cab6c06e80cfefadeded4f",
      "parents": [
        "1b07372a4004fec0ac9ab296741060ac348476ae"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Aug 26 16:28:17 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Aug 26 16:56:49 2010 -0700"
      },
      "message": "Suppress the video recording start signal\n- bug 2950297\n\nChange-Id: I0044d07178691feb904cf81e87c1b6d4b714dc1a\n"
    },
    {
      "commit": "53bfd693c45278bf71cb5e184ffd3e95d52e04d8",
      "tree": "9823fbb854a824a555d3b24464b7d3c0a14e3cc1",
      "parents": [
        "6067b47c0d2cff7d26e088d97dc8d5190c5a4d00",
        "3bfb0a0c55b1b5a93d1decbc6454ae30cc47fb63"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Aug 25 15:16:00 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 25 15:16:00 2010 -0700"
      },
      "message": "am 8ca5df27: am c14f9ca6: Merge \"Added preset reverb.\" into gingerbread\n\nMerge commit \u00278ca5df27df8a2b6435486f9b5a163bf222f8fed1\u0027\n\n* commit \u00278ca5df27df8a2b6435486f9b5a163bf222f8fed1\u0027:\n  Added preset reverb.\n"
    },
    {
      "commit": "f0bfaa8f56ddcfbebc129ecb45335218c39506f0",
      "tree": "36ea6479b63cb81bbea898fcff1272eaf45bd86b",
      "parents": [
        "81ce48911035569c934e6555c2c94c6c19aec968",
        "97344f1d8e8e95fd07d5deee2ae2492a7e4c24b0"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Aug 25 15:09:10 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 25 15:09:10 2010 -0700"
      },
      "message": "Merge \"Added preset reverb.\" into gingerbread"
    },
    {
      "commit": "d31cdebccaa64e4ce0012254aa4986fbea93a2a1",
      "tree": "aca66199da342d30c5c31afd274a333b2684dbea",
      "parents": [
        "e7c0899a7b7549ea342af67e7ab525f81672cfa5",
        "4243f1a733ceac97118b30aa93a1949fd82aeb9a"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 25 13:17:44 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 25 13:17:44 2010 -0700"
      },
      "message": "am 96dc4559: am b8814dce: Merge \"Allow sniffers to return a packet of opaque data that the corresponding extractor can take advantage of to not duplicate work already done sniffing. The mp3 extractor takes advantage of this now.\" into gingerbread\n\nMerge commit \u002796dc45597e53742a2c8453f9ce03f7d501a75668\u0027\n\n* commit \u002796dc45597e53742a2c8453f9ce03f7d501a75668\u0027:\n  Allow sniffers to return a packet of opaque data that the corresponding extractor can take advantage of to not duplicate work already done sniffing. The mp3 extractor takes advantage of this now.\n"
    },
    {
      "commit": "5a1c3529e4fa2f8a11054181294e0ce79fff8dd3",
      "tree": "06386bceb568bf27c3fff03139ac0745ec1c4eba",
      "parents": [
        "fce49325d807c278229a594c1cc866e21da0e155"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 25 11:09:41 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 25 13:08:38 2010 -0700"
      },
      "message": "Allow sniffers to return a packet of opaque data that the corresponding extractor can take advantage of to not duplicate work already done sniffing. The mp3 extractor takes advantage of this now.\n\nChange-Id: Icb77ae3ee95a69c7da25b4d3b8696c0a2d33028a\nrelated-to-bug: 2948754\n"
    },
    {
      "commit": "17c53d433cd83d6b7d77e80635d6d58e2f6f5b2e",
      "tree": "8072df615fb3e512bc2208e3413606e504faa7b5",
      "parents": [
        "5ac7b5def64625fdc9cfaf1bbdd013f5ada241f3",
        "b00a1e3f7e415c72b6ff6d2073b5b78c0d39e0ee"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 24 17:56:40 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 24 17:56:40 2010 -0700"
      },
      "message": "am bc4389ed: am 8395b462: Merge \"fix [2931513] Add support for setting the orientation of an ANativeWindow\" into gingerbread\n\nMerge commit \u0027bc4389edfbb5777aec1a9af7863b2ca3ade2fa64\u0027\n\n* commit \u0027bc4389edfbb5777aec1a9af7863b2ca3ade2fa64\u0027:\n  fix [2931513] Add support for setting the orientation of an ANativeWindow\n"
    },
    {
      "commit": "97344f1d8e8e95fd07d5deee2ae2492a7e4c24b0",
      "tree": "294d749c237f399295fd80ab5e03393c5b9cb160",
      "parents": [
        "afb68fbf65fad41fdd8da333a61278588e735846"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Aug 24 14:21:57 2010 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Aug 24 17:32:48 2010 -0700"
      },
      "message": "Added preset reverb.\n\nModified lvm reverb wrapper code to expose a preset reverb interface.\nAlso removed debug log from bundle and reverb wrapper.\n\nChange-Id: If9b95d91e25a6ff834decdfdda34b17df9b46967\n"
    },
    {
      "commit": "92235649a45e1b84f43e3c906c57eea7886a426c",
      "tree": "38e6a9b92fe3b249553964bd9fb59963b2a4cccf",
      "parents": [
        "01f0908b3e8c759a9fcd565f6bc6cc6c4033678f"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Aug 19 17:01:19 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 24 15:40:50 2010 -0700"
      },
      "message": "fix [2931513] Add support for setting the orientation of an ANativeWindow\n\nAlso implement support for cropping.\n\nChange-Id: Iba5888dd242bf2feaac9e9ce26e404c1f404c280\n"
    },
    {
      "commit": "a8c88e810ea1b8e90fd6c250d4c0a87eb628d4d8",
      "tree": "a3320ff8cc939c23b6753178b3cbc81c6c8600a7",
      "parents": [
        "ef6c8c0324be75dfac3d6a4025ec3b3a7ca23826",
        "2dbffa8c6545255553239a5d65a3b21564078c4a"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Aug 24 11:20:40 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 24 11:20:40 2010 -0700"
      },
      "message": "am 28a92120: am 3f51fa78: Runtime dump support for MediaWriter\n\nMerge commit \u002728a92120a702289533a9c9d004bd60f83b2fd98b\u0027\n\n* commit \u002728a92120a702289533a9c9d004bd60f83b2fd98b\u0027:\n  Runtime dump support for MediaWriter\n"
    },
    {
      "commit": "ef6c8c0324be75dfac3d6a4025ec3b3a7ca23826",
      "tree": "d4eeed32146739c6ca3e03c723a146e13368d0d5",
      "parents": [
        "515c0a56b6fbcca18a08f0daac7be278dede46d0",
        "7be0434ce8d4139e9ca4b1f374153de0c75ac049"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Tue Aug 24 11:19:28 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 24 11:19:28 2010 -0700"
      },
      "message": "am a102871c: am b80e610b: Merge \"Visualizer: replace the FFT implementation with a faster one.\" into gingerbread\n\nMerge commit \u0027a102871c7cbb74ebddc53231a871145de61351b0\u0027\n\n* commit \u0027a102871c7cbb74ebddc53231a871145de61351b0\u0027:\n  Visualizer: replace the FFT implementation with a faster one.\n"
    },
    {
      "commit": "10d3d28bdd0004dec5cc7963ec4a73f096fe93d2",
      "tree": "14073185f90d0c39e4c36beac8ecb7713a4a5340",
      "parents": [
        "8f3e6aa2951358c0dea593a2448171a3f97cc0eb",
        "846f79b30e249ebca7d95442907723a0d14601fa"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Tue Aug 24 09:01:27 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 24 09:01:27 2010 -0700"
      },
      "message": "am 346b6126: am 97a56269: Merge \"Add camera fps range API.\" into gingerbread\n\nMerge commit \u0027346b6126d54bda4ddc705b27f49004b5cf3a2b3e\u0027\n\n* commit \u0027346b6126d54bda4ddc705b27f49004b5cf3a2b3e\u0027:\n  Add camera fps range API.\n"
    },
    {
      "commit": "4b79168835965cf0fc41ebe2a367e22b4cb20d08",
      "tree": "d70a673d243fdc72171ecbcf51094554f947987a",
      "parents": [
        "82252a9a732c7325166c36589c1dfa9f2cb8ac04"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Aug 10 16:37:53 2010 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Aug 23 14:31:30 2010 -0700"
      },
      "message": "Change the framework to use the new camera preview path.\n\nThis change makes the camera HAL interface take an ANativeWindow interface from\nwhich all the camera preview buffers will be allocated.  The framework code\nrunning in application processes now passes a Surface object rather than an\nISurface to the camera server via Binder when setting the preview surface.  The\ncamera server then forwards that Surface object (which implements the\nANativeWindow interface) to the camera HAL, which uses it to communicate with\nSurfaceFlinger to allocate the camera preview buffers.\n\nChange-Id: Ie438f721559cd7de5e4f848a26d96360dda07b5f\n"
    },
    {
      "commit": "f143cc1866737c2ac24f4b2d7e4b2e776be10d56",
      "tree": "fc2be7d35ea17dd324aa8b90a380ae897b16578c",
      "parents": [
        "011df6ab59853b5e2f5654031d842fb1231198c0",
        "5daeb129a2c2ba3d14ccd94af283b5f561c783ea"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Aug 23 12:31:59 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 23 12:31:59 2010 -0700"
      },
      "message": "Merge \"Squashed commit of the following:\""
    },
    {
      "commit": "5daeb129a2c2ba3d14ccd94af283b5f561c783ea",
      "tree": "c3e0f59fefcdb20b92e9a2fc5da59a7cf4b1464f",
      "parents": [
        "a0ced19fa96f26a25de708588a34ebfd452f250e"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Aug 16 08:49:37 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Aug 23 12:30:24 2010 -0700"
      },
      "message": "Squashed commit of the following:\n\ncommit 35cc68814a9537c31fde146e171e7b0bbdfe211e\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Aug 16 08:48:42 2010 -0700\n\n    Only enable support for yuv to yuv conversion on passion, where it\u0027s available, use the slower yuv-\u003ergb565 path everywhere else.\n\ncommit d8ac5a8814103e60d11d2acf61997fc31a1dc58d\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Aug 13 13:56:44 2010 -0700\n\n    The software renderer takes over all rendering, converting from yuv to yuv if possible and rgb565 otherwise.\n\ncommit 684972074b74318bdcb826ed9b5b0864d2d2e273\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Aug 13 09:34:35 2010 -0700\n\n    A first shot at supporting the new rendering APIs.\n\nChange-Id: Iea9b32856da46950501f1a700f616b5feac710fd\n"
    },
    {
      "commit": "011df6ab59853b5e2f5654031d842fb1231198c0",
      "tree": "20b5ab370d15e79f25700a590d21266ee60e230f",
      "parents": [
        "deb7457f43b58ddcb6fbc425321989236cd42f5a",
        "d24afc43d340c4753f09631ad20c525cee943d3e"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Mon Aug 23 12:02:21 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 23 12:02:21 2010 -0700"
      },
      "message": "am caaf7fe3: am 271c1bfd: Merge \"Handle the camera open failure better.\" into gingerbread\n\nMerge commit \u0027caaf7fe3a407c764f643585d050c16f5fb56503c\u0027\n\n* commit \u0027caaf7fe3a407c764f643585d050c16f5fb56503c\u0027:\n  Handle the camera open failure better.\n"
    },
    {
      "commit": "dedf414d3fe2e79ee0aad0f1c82ca16ebd886ff6",
      "tree": "c9b53443c9b06bc42ad07d57c701bbf10137bcb7",
      "parents": [
        "482482401095d5fc98f89b4a3ce43d41c00fffd7"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Aug 18 03:32:26 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Aug 23 10:34:05 2010 -0700"
      },
      "message": "Runtime dump support for MediaWriter\n\nChange-Id: I10b2c474de612ee4cef4b7c9eae2ee1dd8c2e895\n"
    },
    {
      "commit": "482482401095d5fc98f89b4a3ce43d41c00fffd7",
      "tree": "3b3f4a3094e7c68517cf09c24d3f2fb31426706d",
      "parents": [
        "be6fd201b9a04fe0f8fd409f10595ddb41832591",
        "dbd2b7e4ebfe7a586b1db4459cf6aa032a7f8719"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Sun Aug 22 18:31:15 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Aug 22 18:31:15 2010 -0700"
      },
      "message": "Merge \"Visualizer: replace the FFT implementation with a faster one.\" into gingerbread"
    },
    {
      "commit": "263ebfd8a17266eedc84eb879edb6a6a3395f760",
      "tree": "581c9e9b89f9b76e86d6186310d66c3aa588e654",
      "parents": [
        "9934d0cf66861d331adcad28dc4713874e607a76",
        "aa14af4897f556276b0835407ab867c8898ed2f5"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Sat Aug 21 09:43:41 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Aug 21 09:43:41 2010 -0700"
      },
      "message": "am c8d2fa70: am cbd038fe: Merge \"Make MediaWriter stop and pause return errors if necessary\" into gingerbread\n\nMerge commit \u0027c8d2fa704abebdbf0bd8aac185216dc068950217\u0027\n\n* commit \u0027c8d2fa704abebdbf0bd8aac185216dc068950217\u0027:\n  Make MediaWriter stop and pause return errors if necessary\n"
    },
    {
      "commit": "9b92412737095ab6a06f01a0c6daaebb79dffb55",
      "tree": "fc213e4cbbbbf6266afab922d790086e845c47a6",
      "parents": [
        "1b1c377e97558076ee1d427fdd8800ebce1ff300",
        "94249cb1f914c96c3d045d7ec7c2500442f5cc5f"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Sat Aug 21 09:41:54 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Aug 21 09:41:54 2010 -0700"
      },
      "message": "am b29ebd39: am f0ad5484: Merge \"In the absence of width/height information in the sdp, extract the dimensions from the avc codec specific data.\" into gingerbread\n\nMerge commit \u0027b29ebd397e25a7176bcc1c81980f17b0190ebe7f\u0027\n\n* commit \u0027b29ebd397e25a7176bcc1c81980f17b0190ebe7f\u0027:\n  In the absence of width/height information in the sdp, extract the dimensions from the avc codec specific data.\n"
    },
    {
      "commit": "a0ced19fa96f26a25de708588a34ebfd452f250e",
      "tree": "5f05c1904e8e89fbdb8c3512cb36e86c14ba7ba3",
      "parents": [
        "47c0e2355fb18f567471c1a76f1bbe2ebcb5a419",
        "c0d936ddacc4f7d883f3bd1dd8099586836c820f"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Fri Aug 20 11:35:38 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 20 11:35:38 2010 -0700"
      },
      "message": "Merge \"Added downsample()\""
    },
    {
      "commit": "817afcfe5679ab1251576c478c137488592cf7c2",
      "tree": "b0b3c6558ad0da389cb6d4a3f74ca82d393b2584",
      "parents": [
        "225f65f50561a8cfe588c3caf0ba93a06abd27aa",
        "04379fa9a001934373bf17358978c753c7e4e8b5"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Fri Aug 20 11:19:51 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 20 11:19:51 2010 -0700"
      },
      "message": "Merge \"Add camera fps range API.\" into gingerbread"
    },
    {
      "commit": "04379fa9a001934373bf17358978c753c7e4e8b5",
      "tree": "c347afbf244a02c356751ba817fd47254ef94e26",
      "parents": [
        "f1cca5ade334859bf23cf8aa5e73bad653681c8c"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Wed Aug 11 16:48:05 2010 -0700"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Fri Aug 20 11:14:17 2010 -0700"
      },
      "message": "Add camera fps range API.\n\nOriginal preview frame rate API assumes the frame rate\nis fixed. It does not not work with auto frame rate camera.\n\nChange-Id: I38f7122ac8ec844ffd63558dc0763ffa17b0926a\n"
    },
    {
      "commit": "c0d936ddacc4f7d883f3bd1dd8099586836c820f",
      "tree": "8805e728e1aeceba1c2f2cd9e28f7173e1828242",
      "parents": [
        "4a6b74563ac0fe752fbdfd15f91772473f8a4711"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Thu Aug 19 17:45:45 2010 -0700"
      },
      "committer": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Fri Aug 20 10:54:59 2010 -0700"
      },
      "message": "Added downsample()\n\nAdded a downsample function which downsamples the source image\nstarting at an offset and skipping every few pixels. Currently\nno low pass filtering is done, but it should be added later.\n\nChange-Id: Iec34092c536bfc661a15521e6a1ef2ef3f815c61\n"
    },
    {
      "commit": "47c0e2355fb18f567471c1a76f1bbe2ebcb5a419",
      "tree": "d0c7d8ecd4573a351ff4a3c9e811e5d3482b338c",
      "parents": [
        "cfe76c8f6eff8aa770b25d18fc7aa89122e3d25d",
        "4a6b74563ac0fe752fbdfd15f91772473f8a4711"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Fri Aug 20 10:41:08 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 20 10:41:08 2010 -0700"
      },
      "message": "Merge \"const correctness, validPixel test.\""
    },
    {
      "commit": "225f65f50561a8cfe588c3caf0ba93a06abd27aa",
      "tree": "534bfabdf93191b7c5a3f4d538b35b39ac7af1d6",
      "parents": [
        "4f86a980fee1880dca61b828599fa6d76755a485",
        "b7a67942823e8339eb298238f117aaa6d7b63111"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu Aug 19 21:45:46 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 19 21:45:46 2010 -0700"
      },
      "message": "Merge \"Handle the camera open failure better.\" into gingerbread"
    },
    {
      "commit": "b7a67942823e8339eb298238f117aaa6d7b63111",
      "tree": "cd07930a4e5c17f61ae9b06f96fbfa4debde66cc",
      "parents": [
        "f1cca5ade334859bf23cf8aa5e73bad653681c8c"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Tue Aug 17 15:45:37 2010 -0700"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu Aug 19 21:44:06 2010 -0700"
      },
      "message": "Handle the camera open failure better.\n\nCheck if camera hardware is NULL to avoid mediaserver crash.\n\nChange-Id: Ibde0251f30bdb6b36a5d5380222d7be25ec9449c\n"
    },
    {
      "commit": "4a6b74563ac0fe752fbdfd15f91772473f8a4711",
      "tree": "02b56aae713d49ee6305b4445a81adb563732d1b",
      "parents": [
        "ad2df1d0776066dc7c2e203390c336451238684a"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Thu Aug 19 17:34:52 2010 -0700"
      },
      "committer": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Thu Aug 19 18:26:58 2010 -0700"
      },
      "message": "const correctness, validPixel test.\n\n- made width(), height() const member functions.\n- added validPixel() which returns true if pixel is in the allowed range.\n- now testing validPixel in get/setPixelValue\n\nChange-Id: I1dee5060bd4f8dcbdcd542ec4647ea328f0185c3\n"
    },
    {
      "commit": "e0b77ce97ef84c47ae408e92f2afb7509a5051b6",
      "tree": "eba2d88824104a7ca484dd713a6511855ea2ac6e",
      "parents": [
        "ab62ba6fb493fe35e11400ddda68450047d167df",
        "37187916a486504acaf83bea30147eb5fbf46ae5"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Aug 19 13:59:32 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 19 13:59:32 2010 -0700"
      },
      "message": "Merge \"Make MediaWriter stop and pause return errors if necessary\" into gingerbread"
    },
    {
      "commit": "37187916a486504acaf83bea30147eb5fbf46ae5",
      "tree": "b011eba352b6e60ae459f88ef590b45b2e351110",
      "parents": [
        "34c9ad88d3d827cca0c7b5f2fb1b0d4a1a20a2d1"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Aug 18 19:10:39 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Aug 19 13:33:13 2010 -0700"
      },
      "message": "Make MediaWriter stop and pause return errors if necessary\n\no Make the API consistent with SF framework, which the MediaSource\n  provides a return status for stop\n\no Also, helps to convey errors that occurred right when a\n  premature stop() is called, leading to a potentially\n  mal-formed output file.\n\nChange-Id: I52a932345f38570fdf8ea04d67d73dd94ccd30ef\n"
    },
    {
      "commit": "f1cca5ade334859bf23cf8aa5e73bad653681c8c",
      "tree": "e63499d71ba5811c0b7d28dd83d51e652ba1b16a",
      "parents": [
        "3ac620a0ab90dd5e4a8bcd93ab596c848f29bbbf",
        "e44607eacd044362d3debf5d95abc93ca36a9274"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu Aug 19 11:08:39 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 19 11:08:39 2010 -0700"
      },
      "message": "Merge \"Adding getSupportedPreviewSizes to CameraParameters.DO NOT MERGE\" into gingerbread"
    },
    {
      "commit": "3ac620a0ab90dd5e4a8bcd93ab596c848f29bbbf",
      "tree": "af1178fe966bf2655cc82f5b5045cd801af8c9d9",
      "parents": [
        "c0f7ec8134eca61752d23c10596dd211745642d9",
        "34c91a321c297c1a7518ec4f10ae5993904034dd"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu Aug 19 11:08:36 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 19 11:08:36 2010 -0700"
      },
      "message": "Merge \"Adding getSupportedPictureSizes to CameraParameters.DO NOT MERGE\" into gingerbread"
    },
    {
      "commit": "85f12e9b9062402d6110df3f7099707912040edb",
      "tree": "7336723f61d09c2a72b36cf752c717c24a2d9ff6",
      "parents": [
        "34c9ad88d3d827cca0c7b5f2fb1b0d4a1a20a2d1"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Aug 19 10:39:47 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Aug 19 10:39:47 2010 -0700"
      },
      "message": "In the absence of width/height information in the sdp, extract the dimensions from the avc codec specific data.\n\nChange-Id: I98c4194593c7e6e24f6fc339c862245111800293\n"
    },
    {
      "commit": "e44607eacd044362d3debf5d95abc93ca36a9274",
      "tree": "1222ad945154bbcadee75af52253d5c1bf60bdf3",
      "parents": [
        "34c91a321c297c1a7518ec4f10ae5993904034dd"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Wed Aug 04 14:04:07 2010 -0700"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu Aug 19 09:59:18 2010 -0700"
      },
      "message": "Adding getSupportedPreviewSizes to CameraParameters.DO NOT MERGE\n\nMoved functionality to parse string of sizes from getSupportedPictureSizes\nto parseSizesList.\nAdded getSupportedPreviewSizes which returns a list of supported preview sizes.\n\nChange-Id: I41d4f62f9f1641e9e9258aa2ebaeda13ba846c02\n"
    },
    {
      "commit": "34c91a321c297c1a7518ec4f10ae5993904034dd",
      "tree": "4ab2943804b3d534da5539037c8c8957648684b1",
      "parents": [
        "186c38766c030b15135e7e8484d2d6b83464513a"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Fri Jul 30 13:40:14 2010 -0700"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu Aug 19 09:59:11 2010 -0700"
      },
      "message": "Adding getSupportedPictureSizes to CameraParameters.DO NOT MERGE\n\nAlso added a struct \u0027Size\u0027 containing a width and a height field.\nModified parse_size to optionally set an end pointer pointing to the\ncharacter after the found size.\n\nChange-Id: I0c95ebf1ad4684721b32165f363db7d4d15a1b19\n"
    },
    {
      "commit": "dbd2b7e4ebfe7a586b1db4459cf6aa032a7f8719",
      "tree": "bc9a06e98f9142ff531a62892b0685f75040f685",
      "parents": [
        "e259531ce59ab1f31de5a23124b22536f6a5a767"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Thu Aug 19 15:34:10 2010 +0800"
      },
      "committer": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Thu Aug 19 16:05:32 2010 +0800"
      },
      "message": "Visualizer: replace the FFT implementation with a faster one.\n\nThis implementation uses fixed points instead of floating points. It\nis slightly inaccurate compared to the old one but still perfect for\nvisualization purpose. It runs 40% faster on passion, 5 times faster\non sholes, and of course 14 times faster on sapphire.\n\nChange-Id: I1e868417bcffda091becf106a7b941d02813faec\n"
    },
    {
      "commit": "cfe76c8f6eff8aa770b25d18fc7aa89122e3d25d",
      "tree": "5c10dbd441e81dc1516a6ebfaa3c691e6370ea5b",
      "parents": [
        "987b95fc9696f2e01a868455d40f0b61e38ba5bf",
        "06c7bdfe982cfc5cd937b9d0ba7306951205666d"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Wed Aug 18 14:22:02 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 18 14:22:02 2010 -0700"
      },
      "message": "am a2527055: am c8696023: Merge \"Document that autoFocus must be called in auto and macro mode.\" into gingerbread\n\nMerge commit \u0027a2527055f8e3106fe70feeee10ae0c4ddc6596e9\u0027\n\n* commit \u0027a2527055f8e3106fe70feeee10ae0c4ddc6596e9\u0027:\n  Document that autoFocus must be called in auto and macro mode.\n"
    },
    {
      "commit": "85b6e1681e32162676d81f4c762bdb19927beeac",
      "tree": "55a718a2dc022c6750afee0c03a530bf9e65e356",
      "parents": [
        "c059860c73678a202bfa33062723e8f82fb779d9"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Tue Aug 17 13:44:35 2010 -0700"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Tue Aug 17 13:44:35 2010 -0700"
      },
      "message": "Document that autoFocus must be called in auto and macro mode.\n\nChange-Id: Ia52f8bc8a75a7473edff50326a4a0467f4295e6a\n"
    },
    {
      "commit": "790f640ac3b573efd574d346d1bb338d9724ed48",
      "tree": "c515be3895f86fd75dc65982226f21473012d7a8",
      "parents": [
        "a1a6cba3664a04d214b372526658ba227e4d5366",
        "f92224efaee3397647754c3c9f40086137165099"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Aug 16 15:18:13 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 16 15:18:13 2010 -0700"
      },
      "message": "am 4fc2c928: am b7208196: Use audio clock as the reference media clock\n\nMerge commit \u00274fc2c9280c5262c835a4eb78961241de105313c1\u0027\n\n* commit \u00274fc2c9280c5262c835a4eb78961241de105313c1\u0027:\n  Use audio clock as the reference media clock\n"
    },
    {
      "commit": "e259531ce59ab1f31de5a23124b22536f6a5a767",
      "tree": "2639bd5aa4057811c3199836cb945e98feb70ac4",
      "parents": [
        "3053dd2785648c65f558d7e6d3a74a1599409059"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Aug 02 19:13:40 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Aug 13 18:12:48 2010 -0700"
      },
      "message": "Use audio clock as the reference media clock\n\no Only do this for realtime applications\no Adjust other track clock based on audio clock\no Assume other track uses wall clock as the media clock\no Use some heuristics to reduce the size of stts box by 2/3.\n\n- also\no Remove one unused key from MetaData.h\n\nChange-Id: Ib9432842627b61795b533508158c25258a527332\n"
    },
    {
      "commit": "53ed0002dee0575e6c74f7e70d5ec0ccbd51d815",
      "tree": "33c355ec6489d062744769b736cd39c4139807c0",
      "parents": [
        "cc760e477378117ef34fb2833d0b6521925b38ad",
        "15a7920c8923fef98302e654aa14aeb1ab9f035d"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu Aug 12 14:07:59 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 12 14:07:59 2010 -0700"
      },
      "message": "am 77a473fb: am ccaa0028: Merge \"Improve camera documentation.\" into gingerbread\n\nMerge commit \u002777a473fbcea0214832255af91e0a65d853757aae\u0027\n\n* commit \u002777a473fbcea0214832255af91e0a65d853757aae\u0027:\n  Improve camera documentation.\n"
    },
    {
      "commit": "c6e88fddc0c37eaa7d1b514b48ca61e4a4b615d3",
      "tree": "46e360790e900c585cd289acc0e71774497b8aa4",
      "parents": [
        "d1753e3dc21df38cb0fbe73b43ceda3ea555d102"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu Aug 05 11:50:25 2010 -0700"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu Aug 12 14:00:14 2010 -0700"
      },
      "message": "Improve camera documentation.\n\nChange-Id: I3c9e5e6de5ce64b8d7d892483930238fa9cc247c\n"
    },
    {
      "commit": "ee6d226931477dc9c2c9e49aae5f2470f7181c61",
      "tree": "cfa813988c941ddc200bf305bbeb44f8faea6375",
      "parents": [
        "586163779b241d4323e2940a53be8c4190054eba",
        "f91a97a4f5eac23495c2f008916f45bf4d71b129"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Aug 12 10:22:58 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 12 10:22:58 2010 -0700"
      },
      "message": "am 8aa244ea: am 45cb3cfa: Merge \"Handle large audio lost\" into gingerbread\n\nMerge commit \u00278aa244eab7ba834439cc919fd1f83d1e4ef49aff\u0027\n\n* commit \u00278aa244eab7ba834439cc919fd1f83d1e4ef49aff\u0027:\n  Handle large audio lost\n"
    },
    {
      "commit": "47204e1806da9f849464d0cef936851d7e561607",
      "tree": "e6e50095f13c53c283001bb78ed4ab61ec0c5d3d",
      "parents": [
        "eaf0e0786c4c21d6c63d8f1f4515cb2a5311493b"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Aug 10 18:57:43 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Aug 10 19:59:04 2010 -0700"
      },
      "message": "Handle large audio lost\n\nChange-Id: I2687ad855aac758946954d0b3fe7aff9f7b5ae7c\n"
    },
    {
      "commit": "0cde1a77ce02df9f0ab08d836b491bf8e809bf35",
      "tree": "0a338cada6f6d601f8bcbbf17209b98989f19ac3",
      "parents": [
        "bc417c0531332635df9525df4683274a08fb987f",
        "70324dce016db79767140fdd982bfddd1401da95"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Aug 09 20:00:25 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 09 20:00:25 2010 -0700"
      },
      "message": "am e14923b0: am 4edf85ab: Merge \"Support for extracting G.711 a-law and mu-law audio from WAV files and a corresponding software decoder.\" into gingerbread\n\nMerge commit \u0027e14923b0c80b2e73e69b7917c1f170b356592d29\u0027\n\n* commit \u0027e14923b0c80b2e73e69b7917c1f170b356592d29\u0027:\n  Support for extracting G.711 a-law and mu-law audio from WAV files and a corresponding software decoder.\n"
    },
    {
      "commit": "42d66f25af9cb8089a93c6796876a6bc16e36cea",
      "tree": "5db576e682def943eaf39ada08c3c10235fd4d31",
      "parents": [
        "8bf59e735760af0b6a85747fd90bf8cf1e5388d7"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Aug 09 09:54:59 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Aug 09 10:01:26 2010 -0700"
      },
      "message": "Support for extracting G.711 a-law and mu-law audio from WAV files and a corresponding software decoder.\n\nChange-Id: I92685d09456c220b8c09842defb721bd55b0b9f6\nrelated-to-bug: 2900021\n"
    },
    {
      "commit": "250a4cf8127a9ba572bae90de1e44437e0b78a94",
      "tree": "5a8c09148cc99b81feef04519c2952f0252f8198",
      "parents": [
        "00c6c1a9cc34bd6bd95a113afdda59417a392e1e",
        "22d12e77f159751d50d3548f1aef18107c9c4089"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Aug 05 15:25:18 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 05 15:25:18 2010 -0700"
      },
      "message": "am 9c09a605: am 1441bdfc: Merge \"Use the target color format from the camera source if possible\" into gingerbread\n\nMerge commit \u00279c09a60513faf39901bb8e4681d39812204b3f73\u0027\n\n* commit \u00279c09a60513faf39901bb8e4681d39812204b3f73\u0027:\n  Use the target color format from the camera source if possible\n"
    },
    {
      "commit": "299766cdbf93fba14634e364b177b7f4d5811453",
      "tree": "4cb3f2fe756d43164ce2268cbed23ed28354388b",
      "parents": [
        "cf168132b4e4ac8d9c29d02d8dfed89c33d06e9a"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Aug 03 17:19:23 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Aug 05 13:47:01 2010 -0700"
      },
      "message": "Use the target color format from the camera source if possible\n\n- If the target color format is unavailable, the default\n  platform-dependent color format will be used.\n\n- Also add some logic to prevent looping forever if the\n  omx component is buggy supporting color format enumeration.\n\nChange-Id: I119a78f0d6201b4c3621235cca2f523ec14e24e3\n"
    },
    {
      "commit": "982a93173bc84f005172152d823cbb59dfcbeb12",
      "tree": "2ef94049c4daadc6b4da5a3d6c93c04d99d08d05",
      "parents": [
        "aa68b49a53a874a1813e65752663f19d18149e2c",
        "347d3c1dabd7ae9c998a024c685de2001e0ff369"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Aug 05 11:46:04 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 05 11:46:04 2010 -0700"
      },
      "message": "am 1f513d88: am c17f35dd: Merge \"Support for Gtalk video, includes AMR/H.263 assembler and packetization support, extensions to MediaRecorder to stream via RTP over a pair of UDP sockets as well as various fixes to the RTP implementation.\" into gingerbread\n\nMerge commit \u00271f513d8821670a33d6361ea521b6756163a3f9bf\u0027\n\n* commit \u00271f513d8821670a33d6361ea521b6756163a3f9bf\u0027:\n  Support for Gtalk video, includes AMR/H.263 assembler and packetization support, extensions to MediaRecorder to stream via RTP over a pair of UDP sockets as well as various fixes to the RTP implementation.\n"
    },
    {
      "commit": "0cc18781fb331f4f90070ed5c76db068d3ce3c64",
      "tree": "4110b4fa252552d71bb1b0afc08a045f79974c15",
      "parents": [
        "e41f9ba4869a96f004c731d8d17939ae607143b9"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Wed Aug 04 14:04:07 2010 -0700"
      },
      "committer": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Wed Aug 04 14:04:07 2010 -0700"
      },
      "message": "Adding parseSizesList, getSupportedPreviewSizes to CameraParameters.\n\nMoved functionality to parse string of sizes from getSupportedPictureSizes\nto parseSizesList.\nAdded getSupportedPreviewSizes which returns a list of supported preview sizes.\n\nChange-Id: I435317427c1ee9623caef435f93e95d4476b7285\n"
    },
    {
      "commit": "39ddf8e0f18766f7ba1e3246b774aa6ebd93eea8",
      "tree": "87f5d0d68c1779f113843e939c41440ff6b00389",
      "parents": [
        "610959a52fe22a88e50d158f5f5f492fee4f1921"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 04 10:14:30 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 04 11:49:24 2010 -0700"
      },
      "message": "Support for Gtalk video, includes AMR/H.263 assembler and packetization support, extensions to MediaRecorder to stream via RTP over a pair of UDP sockets as well as various fixes to the RTP implementation.\n\nChange-Id: I95b8dd487061add9bade15749e563b01cd99d9a6\n"
    },
    {
      "commit": "216e5df78e958a3349ba4785fb79c688e1ad39a5",
      "tree": "1861f9ffec6c6d8bdf7d216c44a8e88e778c2fc8",
      "parents": [
        "a7c61b8be205ce8db81ebbd15cd42abd649cbf4d",
        "b7a661266b69bec40ec116d6890c6559b01eae42"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Aug 04 11:12:03 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 04 11:12:03 2010 -0700"
      },
      "message": "am 246aad12: am 3d84280c: Merge \"File writer has a designated writer thread now\" into gingerbread\n\nMerge commit \u0027246aad12cf2becda5111d03fd1dd8f39712686f2\u0027\n\n* commit \u0027246aad12cf2becda5111d03fd1dd8f39712686f2\u0027:\n  File writer has a designated writer thread now\n"
    },
    {
      "commit": "a7c61b8be205ce8db81ebbd15cd42abd649cbf4d",
      "tree": "233dc99d8999d7e7aa3cd95769649257ed46d100",
      "parents": [
        "f95ce6452d87316b8f5df6692537bd039377f349",
        "471bb46ae345ac0ba346ed465334d987b810d656"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Aug 03 15:52:48 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 03 15:52:48 2010 -0700"
      },
      "message": "am 51a260d8: am 23796e3b: Merge \"Add lost frame handling in AudioSource\" into gingerbread\n\nMerge commit \u002751a260d8c6e9a5c6b6c2cf808554ae013c1a7bef\u0027\n\n* commit \u002751a260d8c6e9a5c6b6c2cf808554ae013c1a7bef\u0027:\n  Add lost frame handling in AudioSource\n"
    },
    {
      "commit": "26ab7ab7f543a03b65735a41de8496c54d3e490e",
      "tree": "769f80090d1ddb44bf7873043d6b2574b7983b6c",
      "parents": [
        "a5740924c0a71871f2697139effd43b137750597",
        "1c9747a4653aec1395c2bd6896c9b87cb5447837"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Aug 03 10:35:55 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 03 10:35:55 2010 -0700"
      },
      "message": "Merge \"File writer has a designated writer thread now\" into gingerbread"
    },
    {
      "commit": "a5740924c0a71871f2697139effd43b137750597",
      "tree": "b12b930a75b06deeb67e4ee53ebc1773d7935ce0",
      "parents": [
        "901335c2f0ce73a78277d90eb77807dcd1d65c95",
        "46292fb347d72a314d985e34e5e3743d846cb9b6"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Aug 02 18:13:54 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 02 18:13:54 2010 -0700"
      },
      "message": "Merge \"Add lost frame handling in AudioSource\" into gingerbread"
    },
    {
      "commit": "1c9747a4653aec1395c2bd6896c9b87cb5447837",
      "tree": "b92985a7f54cc988d6485862088c5a440f744fb5",
      "parents": [
        "901335c2f0ce73a78277d90eb77807dcd1d65c95"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Jul 30 17:41:22 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Aug 02 18:08:02 2010 -0700"
      },
      "message": "File writer has a designated writer thread now\n\n+ This reduces the file I/O block time for audio/video track processing\n- Since the file writer is buffering some output samples, the memory\n  usage would go up, depending on how many output samples are buffered.\n\nChange-Id: I780cc5b26f4b53a5efbd643fcf9505dfc19cd4cd\n"
    },
    {
      "commit": "40e2f3f9b41f44bdb59f7708a421b87f169a6ede",
      "tree": "da4d690100f6bc6c0319f551e5833ce7c08cd760",
      "parents": [
        "99b4de92430fe42f9d1493c8a4c3d27de89d3549"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Fri Jul 30 18:30:55 2010 -0700"
      },
      "committer": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Mon Aug 02 09:49:07 2010 -0700"
      },
      "message": "Implementing getSupportedPictureSizes\n\nGo through all the supported picture sizes and choose the smallest one with\nboth dimensions higher than the passed in video width and height.\n\nChange-Id: I4e9fe7a6384a0feeb9e069239ec68c70fb5f3033\n"
    },
    {
      "commit": "99b4de92430fe42f9d1493c8a4c3d27de89d3549",
      "tree": "bb5f2173d414cddcb6f2d6c3d8868aae498c1ee5",
      "parents": [
        "484c146281e39a04e32f4f13775210ab2a248c57"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Fri Jul 30 13:40:14 2010 -0700"
      },
      "committer": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Fri Jul 30 17:51:59 2010 -0700"
      },
      "message": "Adding getSupportedPictureSizes which returns a Vector of supported Sizes.\n\nAlso added a struct \u0027Size\u0027 containing a width and a height field.\nModified parse_size to optionally set an end pointer pointing to the\ncharacter after the found size.\n\nChange-Id: I51a56bbf2cb7c91d7b80a28e6bd6a559f40a1333\n"
    },
    {
      "commit": "46292fb347d72a314d985e34e5e3743d846cb9b6",
      "tree": "a949b30281f740309113e150132aa4eae6bd10e4",
      "parents": [
        "5caff27f4683d5e444f327a5beec15d9b8c7f252"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Jul 29 18:06:08 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Jul 30 14:35:37 2010 -0700"
      },
      "message": "Add lost frame handling in AudioSource\n\n- Also collect stats on lost audio frames instead of time spent on reading\n\nChange-Id: I6380b143e4fbdcd894491aaae523331e90d0f04f\n"
    },
    {
      "commit": "9da2070b6d6d20550de7da61478c325f0928d020",
      "tree": "f1548891fab33ca03923f70cf25a2ffeab50be82",
      "parents": [
        "3be9523784cc4038f601e510faee595117cdacb3",
        "efe6039f71e9bac2138003b3287e94a7ab7e5c55"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Jul 30 12:08:31 2010 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Jul 30 12:08:31 2010 -0700"
      },
      "message": "resolved conflicts for merge of 27eecb70 to gingerbread\n\nChange-Id: If064f2f4950fc1a4ff38e6927fe2120af76b26f1\n"
    },
    {
      "commit": "bc286dce1af6670824fba4167e0750b631168d72",
      "tree": "f6d30ddc5cee2a6562bb510d7bacf20806b9f9bb",
      "parents": [
        "c4e47d1e81c4e4403663cb911e98dbf3ada9942c",
        "0319aaecb03aa83924ab4e3d9c9bc657c2e8bc06"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Jul 29 17:54:42 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 29 17:54:42 2010 -0700"
      },
      "message": "am 0c51c98f: am 4506c62a: fix inaccurate copyrights\n\nMerge commit \u00270c51c98fd9edf0bdc8f2c567470fc332b5ae3adf\u0027\n\n* commit \u00270c51c98fd9edf0bdc8f2c567470fc332b5ae3adf\u0027:\n  fix inaccurate copyrights\n"
    },
    {
      "commit": "0319aaecb03aa83924ab4e3d9c9bc657c2e8bc06",
      "tree": "7c3ae3eecc16c50c794aff141a89b14942117364",
      "parents": [
        "0895d83cb62d269468e64a00e9e89fa7697f2f84",
        "01cff464978aa0f749f42650180b45ea56cb17de"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Jul 29 17:52:09 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 29 17:52:09 2010 -0700"
      },
      "message": "am 4506c62a: fix inaccurate copyrights\n\nMerge commit \u00274506c62abd5767d6d42a97e8e87793a1b3bcb625\u0027 into gingerbread-plus-aosp\n\n* commit \u00274506c62abd5767d6d42a97e8e87793a1b3bcb625\u0027:\n  fix inaccurate copyrights\n"
    },
    {
      "commit": "efe6039f71e9bac2138003b3287e94a7ab7e5c55",
      "tree": "7c7545aef44e4ee356f61b0379210f61b2a83691",
      "parents": [
        "3cc219dfc67b866e10828f0c17641668d47c1cd8",
        "68335fdd6e9c1d622384612605d6952503cb7fd0"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jul 29 17:45:56 2010 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jul 29 17:45:56 2010 -0700"
      },
      "message": "Merge branch \u0027froyo\u0027 of git://android.git.kernel.org/platform/frameworks/base into HEAD\n"
    },
    {
      "commit": "68335fdd6e9c1d622384612605d6952503cb7fd0",
      "tree": "94e9982f93be7339bde4d8b9336f9968f5509efd",
      "parents": [
        "e32283b15bbd60179424bdc740a4e4932da4c61e"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Jul 29 17:35:37 2010 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Jul 29 17:41:35 2010 -0700"
      },
      "message": "fix inaccurate copyrights\n\nChange-Id: I33b0f68f2da34ca4728211d83159cf32a127f6dd\n"
    },
    {
      "commit": "01cff464978aa0f749f42650180b45ea56cb17de",
      "tree": "a31c8e61281d0bbcbec93d0ab05368f73ab85994",
      "parents": [
        "ccaa41429d2afc47f0fb828a0146a1b1936188fe"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Jul 29 17:35:37 2010 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Jul 29 17:35:37 2010 -0700"
      },
      "message": "fix inaccurate copyrights\n\nChange-Id: I33b0f68f2da34ca4728211d83159cf32a127f6dd\n"
    },
    {
      "commit": "c4e47d1e81c4e4403663cb911e98dbf3ada9942c",
      "tree": "137b5991ba9f4ebaf4e64a6f44479414f61ee207",
      "parents": [
        "db205a1d75c1e9a7d0dbd8fa011335249ad6f4ac"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Tue Jul 27 22:21:44 2010 -0700"
      },
      "committer": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Thu Jul 29 12:18:58 2010 -0700"
      },
      "message": "Support for video size to be different from captured picture size.\n\nAdding support to allow video size to be different than the supported\npicture sizes. A picture size larger than the demanded video size is\nchosen. Captured pictures are then cropped to the size of the desired\nvideo size. Cropping is done from the the center portion of the picture.\n\nChange-Id: I6bcbe16f94b6ecbcf28b7f46826a81b4b6b8cbc3\n"
    },
    {
      "commit": "db205a1d75c1e9a7d0dbd8fa011335249ad6f4ac",
      "tree": "f9f88a1c59d5028e9b5fd5fa3a3c8fb959334c30",
      "parents": [
        "ac36fde15b7bc14ba27cdb21a0aeb5d7356c47f4"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Tue Jul 27 22:13:04 2010 -0700"
      },
      "committer": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Thu Jul 29 12:15:57 2010 -0700"
      },
      "message": "Adding YUVImage and YUVCanvas.\n\nYUVImage is a container class to hold YUV data and provide\nvarious utilities, e.g. to set/get pixel values for different\nYUV formats, fast copying routines, etc.\nCurrently supported YUV420 Planar and YUV420 Semi Planar.\n\nYUVCanvas holds a reference to a YUVImage on which it can do various\ndrawing operations.\n\nChange-Id: I052a57b7fbc834efe1626914f76c04c091996cac\n"
    },
    {
      "commit": "3cc219dfc67b866e10828f0c17641668d47c1cd8",
      "tree": "991c1defd88ebf571e0e9e7ede4753bc19ed143d",
      "parents": [
        "e32283b15bbd60179424bdc740a4e4932da4c61e"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Jul 20 09:44:34 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Jul 29 09:45:06 2010 -0700"
      },
      "message": "Squashed commit of the following:\n\ncommit 4abf16bb04dc9695fedf4007a84f903074312ccd\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Jul 20 09:21:17 2010 -0700\n\n    Support a single format change at the beginning of audio playback. This way the AAC+ decoder may change its output format from what is originally encoded in the audio stream and we\u0027ll still play it back correctly.\n\n    Change-Id: Icc790122744745e9a88099788d4818ca1e265a82\n    related-to-bug: 2826841\n\ncommit 09c74da63e6ad5cb5dafb70f62696d75d2978967\nAuthor: James Dong \u003cjdong@google.com\u003e\nDate:   Sun Jul 18 17:57:01 2010 -0700\n\n    Fix MPEG4Extractor to extract sampling frequency correctly when SBR is enabled.\n\n    Change-Id: I883c81dad3ea465e71cb5590e89d763671a90ff8\n\ncommit f672bf2a782dc7d5fb6325d611a7fe17045dfe9a\nAuthor: James Dong \u003cjdong@google.com\u003e\nDate:   Thu Jul 8 20:56:13 2010 -0700\n\n    Enable the support for decoding audio with AAC+ and eAAC+ features\n\n    bug - 282684\n\n    Change-Id: I73c8377af3cc4edd3ee7cea86dc3b1c369fbd78b\n\nChange-Id: I012f1179e933b6d1345d2368f357576c722485f7\n"
    },
    {
      "commit": "6fd53c964e4d5cbcdc71bbac612b6bef7695298b",
      "tree": "e0600d6ff19c7cb92870334dbae6d26852acadb8",
      "parents": [
        "2c59bd383b4665fce878940c472af48f2597866d",
        "dedadf414873a5ddff87ba5da447e4169a0cfb3b"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 28 16:36:08 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jul 28 16:36:08 2010 -0700"
      },
      "message": "am 9362ea76: am 9f2a91bc: Merge \"fix [2873058] Surface::dequeueBuffer blocks on last buffer, i.e. cannot dequeue all allocated buffers at once.\" into gingerbread\n\nMerge commit \u00279362ea760f565389f5accce7e17476d05510ed59\u0027\n\n* commit \u00279362ea760f565389f5accce7e17476d05510ed59\u0027:\n  fix [2873058] Surface::dequeueBuffer blocks on last buffer, i.e. cannot dequeue all allocated buffers at once.\n"
    },
    {
      "commit": "1b58c743e6748272e98cd04d3c0f63e371a44329",
      "tree": "a5e8e6c7832300ea64389fa66a251f6ef39a1bcf",
      "parents": [
        "ff4a7fa411401910e6e5ac88aeb6e0080a8cc8b1",
        "be1ad8d186d0db6e0a3c8885c95a354cbbfc52af"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 28 16:30:56 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 28 16:30:56 2010 -0700"
      },
      "message": "Merge \"fix [2873058] Surface::dequeueBuffer blocks on last buffer, i.e. cannot dequeue all allocated buffers at once.\" into gingerbread"
    },
    {
      "commit": "ed0de3c123aaa86147993721d4794648a65aab75",
      "tree": "c60dc3ffbc36f10adfe01d864e22f1d5b87443d4",
      "parents": [
        "da90dff17b6ce79d0a7d8ab2dbe2aa69cd1c11aa",
        "e99819aa8cc397d02255b59b91c6e6850afee3a7"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jul 28 07:53:24 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jul 28 07:53:24 2010 -0700"
      },
      "message": "am 6fa88882: am 62d83a0c: Merge \"Audio effects: modified command() parameter types.\" into gingerbread\n\nMerge commit \u00276fa8888254deb4961dc64c6ac03dc103c9cd8bcf\u0027\n\n* commit \u00276fa8888254deb4961dc64c6ac03dc103c9cd8bcf\u0027:\n  Audio effects: modified command() parameter types.\n"
    },
    {
      "commit": "25f4395b932fa9859a6e91ba77c5d20d009da64a",
      "tree": "01098a211d6c782708b840c28ebd396a6eb72a7b",
      "parents": [
        "23e1de74359f4bb1763aef0adfebe073122b032c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jul 28 05:40:18 2010 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jul 28 05:49:21 2010 -0700"
      },
      "message": "Audio effects: modified command() parameter types.\n\nThe type of the cmd, cmdSize and *pReplySize parameters of the effect control interface command()\nfunction have been modified from int to uint32_t. This is more consistent with their role.\n\nChange-Id: I84d289fc262d6753747910f06f485597dfee6591\n"
    },
    {
      "commit": "be1ad8d186d0db6e0a3c8885c95a354cbbfc52af",
      "tree": "e1f9f9723f7c2d3027efb665482a4530f383adcf",
      "parents": [
        "163fbcf84010b98e0374110454d85b804bc8d13b"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jul 27 20:11:35 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jul 27 20:11:35 2010 -0700"
      },
      "message": "fix [2873058] Surface::dequeueBuffer blocks on last buffer, i.e. cannot dequeue all allocated buffers at once.\n\nthis situation happened when the last buffer needed to be resized\n(or allocated, the first time). the assumption was that the buffer\nwas in use by SF itself as the current buffer (obviously, this\nassumption made no sense when the buffer had never been allocated, btw).\n\nthe system would wait until some other buffer became the \"front\" buffer.\n\nwe fix this problem by entirely removing the requirement that the\nbuffer being resized cannot be the front buffer. instead, we just\nallocate a new buffer and replace the front buffer by the new one.\n\nthe downside is that this uses more memory (an extra buffer) for a\nbrief amount of time while the old buffer is being reallocated and\nbefore it has actually been replaced.\n\nChange-Id: I022e4621209474ceb1c671b23deb4188eaaa7285\n"
    },
    {
      "commit": "9e77e155b05e419a34e0fd116ee50f0fc092e67a",
      "tree": "2e1a99949a5076641ba453bf75cc5e458d2225fd",
      "parents": [
        "a9d01c6de17ca72d67a88673d5c9ee22047c862a",
        "184f8deb44ab3b21ddaaf845f39721ba1d18ab5d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jul 27 02:41:41 2010 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jul 27 02:41:41 2010 -0700"
      },
      "message": "resolved conflicts for merge of d306cc81 to master\n\nChange-Id: Ib593b7719a837de12605e8c75904634843298ba1\n"
    },
    {
      "commit": "23e1de74359f4bb1763aef0adfebe073122b032c",
      "tree": "f7c8a84104ae81d565a867208d606fd3887d47fe",
      "parents": [
        "8b4179f44917ec4845ade406a49a713cd568fe8a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 23 00:19:11 2010 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jul 27 00:41:31 2010 -0700"
      },
      "message": "Audio Effects: added methods to effects java classes to store and load current effect settings in\na single call.\n\nAddional changes:\n- Fixed simulator build\n- Use effect interface UUIDs from OpenSL ES includes when available\n- Added cleanspec rules to remove now obsolete test effect libraries\n- Fixed bug in AudioEffect JNI setParameter function.\n\nChange-Id: Ic25ddb135e2cec5a68c181d727321f5ac7a1ab6b\n"
    },
    {
      "commit": "e4e0a6994d39c4a7cba09c5fff442b2dca1df8f8",
      "tree": "545e3cbc6bbd5c6b78a5adb2d00eeb5b16abb6a4",
      "parents": [
        "55cb2b8319e6b36e88658de121c534e95cd240b4"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Tue Jul 20 21:33:31 2010 -0700"
      },
      "committer": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Thu Jul 22 17:02:12 2010 -0700"
      },
      "message": "Allowing setting of time lapse parameters through MediaRecorder.java\n\nadded setTimeLapseParameters() to MediaRecorder.java and SetParameter support\nin StagefrightRecorder to allow enabling time lapse and setting the corresponding\nparameters.\n\nChange-Id: I509040aa71f8d3fc37337b0894a81d9c0fd7a40a\n"
    },
    {
      "commit": "55cb2b8319e6b36e88658de121c534e95cd240b4",
      "tree": "c6d266f434dacf09eeb964d05090088f78f4d3d2",
      "parents": [
        "f661058d77d1484e5911d1962f8e1e8466240687",
        "00fba4994e33d1b8384ff8bc2221c2de933f387e"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Jul 22 16:28:26 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 22 16:28:26 2010 -0700"
      },
      "message": "am 9bc4dc11: am 53d4e0d5: Allows the authoring engine to skip frame.\n\nMerge commit \u00279bc4dc114fce58606a81d65d4cb31348cc7c1bae\u0027\n\n* commit \u00279bc4dc114fce58606a81d65d4cb31348cc7c1bae\u0027:\n  Allows the authoring engine to skip frame.\n"
    },
    {
      "commit": "542db5d438988360d491a5add1040a2df9aa90c9",
      "tree": "2780e2456a9b540e245fa3e3c8e62d60c284b8dc",
      "parents": [
        "348a8eab84f4bba76c04ca83b2f5418467aa1a48"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Jul 21 14:51:35 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Jul 22 14:51:53 2010 -0700"
      },
      "message": "Allows the authoring engine to skip frame.\n\nThis is 1st part of the work to allow audio and video resync if\nwe found out that audio and video are out of sync during authoring\n\n- also fixed a problem in AACEncoder::read() where the buffer acquired\n  from the buffer group does not release when error out at\n  reading from source.\n\nChange-Id: I8a2740097fcfdf85e6178869afeb9f3687a99118\n"
    },
    {
      "commit": "f661058d77d1484e5911d1962f8e1e8466240687",
      "tree": "68a15b2e05afde966fad297d8c95f36951e4d24f",
      "parents": [
        "2c81e430f8fb1493084a3b32cd649a368b4201e5",
        "3922fe0860f1662f9066f553314b6955702d4956"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Jul 22 13:57:39 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 22 13:57:39 2010 -0700"
      },
      "message": "am b72d3180: am 81046c8c: Merge \"Various changes to improve rtsp networking, reduce packet loss and adapt to ALooper API changes.\" into gingerbread\n\nMerge commit \u0027b72d3180dc8d41d6269664bea808b04410bbe40f\u0027\n\n* commit \u0027b72d3180dc8d41d6269664bea808b04410bbe40f\u0027:\n  Various changes to improve rtsp networking, reduce packet loss and adapt to ALooper API changes.\n"
    },
    {
      "commit": "348a8eab84f4bba76c04ca83b2f5418467aa1a48",
      "tree": "b75461fcab7782b8029426e9976b8d805a3b1fd3",
      "parents": [
        "66d6f1fcd9cb80a603b833e93779eb0dfb5e67ee"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Jul 22 09:20:13 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Jul 22 09:21:05 2010 -0700"
      },
      "message": "Various changes to improve rtsp networking, reduce packet loss and adapt to ALooper API changes.\n\nChange-Id: I110e19d5ce33e597add3ffbd3e3ff3815862396d\n"
    },
    {
      "commit": "d3bc2528fca033f3d34969a095beec0bc3f79ffd",
      "tree": "8af023451b660563c83b4e3f5d9da281e1eb7fa3",
      "parents": [
        "71ff94cb52874e42dede3c6bc4b86757b72cf0b1",
        "4f2074980eefeabe2a37ea5d6dc5904a87107fc4"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jul 21 10:41:45 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jul 21 10:41:45 2010 -0700"
      },
      "message": "am 8a9a931f: am 8138e841: Merge \"Support finer seek control on MediaSources.\" into gingerbread\n\nMerge commit \u00278a9a931fff2d184f7cf77fdd8a425f682f006cfd\u0027\n\n* commit \u00278a9a931fff2d184f7cf77fdd8a425f682f006cfd\u0027:\n  Support finer seek control on MediaSources.\n"
    },
    {
      "commit": "ef3f986ebeee48af0e8cbfa651260974bbd1ed4d",
      "tree": "fd724e069bae865cd2f21eb877772f71586084f3",
      "parents": [
        "2beeb50b1bba9e92f6cacfeca37fe9fa9d36ead1",
        "abd1f4f870925d6776dbe4b930b759a1ab6595ca"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jul 21 10:36:08 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 21 10:36:08 2010 -0700"
      },
      "message": "Merge \"Support finer seek control on MediaSources.\" into gingerbread"
    },
    {
      "commit": "71ff94cb52874e42dede3c6bc4b86757b72cf0b1",
      "tree": "dc47a5d309669d92854762df8fdc948668228ebf",
      "parents": [
        "932e0a11d74d5e236ccef9ee314442385c3d4e9d",
        "552f4053c194770a5c9b37825f222031548dc5a8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jul 21 09:52:17 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jul 21 09:52:17 2010 -0700"
      },
      "message": "am 34161132: am 7070b365: Added support for auxiliary audio effects to AudioTrack and MediaPlayer.\n\nMerge commit \u002734161132030254bac7dd64c9713832e2f961a061\u0027\n\n* commit \u002734161132030254bac7dd64c9713832e2f961a061\u0027:\n  Added support for auxiliary audio effects to AudioTrack and MediaPlayer.\n"
    },
    {
      "commit": "abd1f4f870925d6776dbe4b930b759a1ab6595ca",
      "tree": "1b86ec19a16a2a340afecfd6207b1fd8236228b9",
      "parents": [
        "3108231d90e8aa324923fd8864ca2477948c5d25"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Jul 20 15:04:28 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jul 21 08:51:29 2010 -0700"
      },
      "message": "Support finer seek control on MediaSources.\n\nrelated-to-bug: 2858448\n\nChange-Id: Ifb4b13b990fd5889113e47e2c62249ac43391fa1\n"
    },
    {
      "commit": "2beeb50b1bba9e92f6cacfeca37fe9fa9d36ead1",
      "tree": "ce966d62f6fbb94178763ec53760f6961ffffd58",
      "parents": [
        "3108231d90e8aa324923fd8864ca2477948c5d25"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 16 07:43:46 2010 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jul 21 06:28:01 2010 -0700"
      },
      "message": "Added support for auxiliary audio effects to AudioTrack and MediaPlayer.\n\nAdded methods to AudioTrack and MediaPlayer java classes to enable use of\nauxiliary audio effects. The effect can be attached and detached by specifying its\nID and the send level controlled.\n\nChange-Id: Ie74ff54a453096a742688476f612ce355543b6f3\n"
    },
    {
      "commit": "932e0a11d74d5e236ccef9ee314442385c3d4e9d",
      "tree": "5e9ed9f7bb7138c3ac78c52bc3c07336e5427412",
      "parents": [
        "d403f73c6db493a067d529e932d699ce461ae1d8",
        "65e334b9448689e12400bae6a739f0513f72d428"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Jul 20 16:55:12 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jul 20 16:55:12 2010 -0700"
      },
      "message": "am 9049fe60: am d7514ec6: Merge \"Progress status notification\" into gingerbread\n\nMerge commit \u00279049fe60c20640bd606741c8f45f3f781a1684f5\u0027\n\n* commit \u00279049fe60c20640bd606741c8f45f3f781a1684f5\u0027:\n  Progress status notification\n"
    }
  ],
  "next": "3108231d90e8aa324923fd8864ca2477948c5d25"
}
