)]}'
{
  "log": [
    {
      "commit": "0a3858b0de236e262aa9d3906086ea8bfe554a4f",
      "tree": "8641d504c6f6cccf7baed01d45d6e9506f773f0a",
      "parents": [
        "0645f9699c2bf6b636e87711b7beebdc0eb955e6",
        "1f513d8821670a33d6361ea521b6756163a3f9bf"
      ],
      "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": "b70c1db70fc0481863ee57ab87e311ff11cc2c9d",
      "tree": "53b5e5a76af00ea2ff746ca0fe84557067f8cf95",
      "parents": [
        "bf3699a55853c4f1ccca7816945f83a1b80a4619"
      ],
      "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": "57648e4eec7dd2593af467877bc7cce4aa654759",
      "tree": "55b4d4115bb8b2a31b7cd327f110fad1c0250235",
      "parents": [
        "737998f5955aa14f1b21967f6f559bca60cb1844"
      ],
      "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": "5bac1cc0b8ddfeb1290d8324beaadd1e48f3fd14",
      "tree": "edb6cb547988aa6d48b3520a01f3b05d0ef6c514",
      "parents": [
        "5fd174c99bfe8695ce50558e217f3e1d1ea15aef",
        "9f6b16a29b62f29496bc652cfec7d6fe9f08c7f4"
      ],
      "author": {
        "name": "Chris Tate",
        "email": "ctate@android.com",
        "time": "Wed Aug 04 11:12:32 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 04 11:12:32 2010 -0700"
      },
      "message": "am 9f6b16a2: am 5d46ce24: Merge \"Enhanced VelocityTracker for \u003e 5 pointers and fixed bugs.\" into gingerbread\n\nMerge commit \u00279f6b16a29b62f29496bc652cfec7d6fe9f08c7f4\u0027\n\n* commit \u00279f6b16a29b62f29496bc652cfec7d6fe9f08c7f4\u0027:\n  Enhanced VelocityTracker for \u003e 5 pointers and fixed bugs.\n"
    },
    {
      "commit": "26d7a6df73d0c434a5a0afac20f49bdda0c48f43",
      "tree": "ba2089d2126536fe8c8b803e910fca2829104ecd",
      "parents": [
        "327c0bd9e2d7a68e163459e93db2a0bbb2c7a526",
        "246aad12cf2becda5111d03fd1dd8f39712686f2"
      ],
      "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": "6c8687cf1e52abede549908afe8d8820d24eaecd",
      "tree": "d203a3c39ee552b7c94a565248caed26faa1d20f",
      "parents": [
        "e4f6728b2de5e35ef0ae21ba68e0f1ef8bd191e7",
        "51a260d8c6e9a5c6b6c2cf808554ae013c1a7bef"
      ],
      "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": "5d46ce24cc46dc57d31f809302af916999114ced",
      "tree": "bbcb71ba972953e67545f072167cae58bb5cbdac",
      "parents": [
        "9abce39a991a6bc1cfab4284b5448a4f676bb06f",
        "9e2ad36be87f2703b3d737189944d82f93bd4f27"
      ],
      "author": {
        "name": "Chris Tate",
        "email": "ctate@android.com",
        "time": "Tue Aug 03 12:22:50 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 03 12:22:50 2010 -0700"
      },
      "message": "Merge \"Enhanced VelocityTracker for \u003e 5 pointers and fixed bugs.\" into gingerbread"
    },
    {
      "commit": "3d84280ccc31d12765e2efe03e2dd3ade1acfc33",
      "tree": "e06618f632296775dfd408b6cfea8a61a3190c06",
      "parents": [
        "a788026fd35eee2190dc7635e1fdbc781f6ef668",
        "da8073c68e63179e1d4f5fb562e5625af686c984"
      ],
      "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": "23796e3b622c6be4feb15d4d57e58645acfa431b",
      "tree": "f7809a2c5d162a296c4ce68c0e5706c6bdf6466f",
      "parents": [
        "f2d16bc595fec67e1fe08c341abb9ec2e776aafb",
        "c3ae937a95cbaf4afbe8aa006dc3db4c27f0ad44"
      ],
      "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": "da8073c68e63179e1d4f5fb562e5625af686c984",
      "tree": "1698b33512a3246334d2aa7f4eb11cc16768cff0",
      "parents": [
        "d3579580df0cea7e37334d83ef7a9aa85ad70368"
      ],
      "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": "b1fb6079ef7f005c4be8de76bef57ce10c1efe76",
      "tree": "ed428f9c6a18c9c67d76a0e5aaf8295369a6370b",
      "parents": [
        "51c2ec24116919d710e8770e253f14e15e295f2b"
      ],
      "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": "9e2ad36be87f2703b3d737189944d82f93bd4f27",
      "tree": "409280a29fa2d12b395e5f6faa0e3e375d7af1b3",
      "parents": [
        "543f250d9cb05ebca4fb4dacce37545c0bb9a8ca"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jul 30 19:20:11 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jul 30 20:08:29 2010 -0700"
      },
      "message": "Enhanced VelocityTracker for \u003e 5 pointers and fixed bugs.\n\nImproved PointerLocation tool to use VelocityTracker more efficiently\nand correctly when multiple pointers are down.\n\nFixed a bug in TouchInputMapper where it was not correctly copying\nthe id to index map in the last touch data.  This could cause strange\nbehavior on secondary pointer up events.\n\nAlso added finished callback pooling in InputQueue.\n\nChange-Id: Ia85e52ac2fb7350960ea1d7edfbe81a1b3e8267b\n"
    },
    {
      "commit": "51c2ec24116919d710e8770e253f14e15e295f2b",
      "tree": "e68be39e8c6b4c1e2cc24c1e0841767190705383",
      "parents": [
        "26fda2340ada4b88d3bd936341cb82cc1296bf26"
      ],
      "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": "bc6ed6c9f651b140939e857b0fb60eff27a6b760",
      "tree": "9eb2649d4788ef2ef41538a67c25079b33258c42",
      "parents": [
        "aea75231a5af14b6ab0ca57b910d1a2e349f068c",
        "3b724c836b13b320b2b2c492c28660617e0d503e"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jul 30 14:52:12 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jul 30 14:52:12 2010 -0700"
      },
      "message": "am 3b724c83: am 00e5c613: Merge \"Improve thread safety of input mappers.\" into gingerbread\n\nMerge commit \u00273b724c836b13b320b2b2c492c28660617e0d503e\u0027\n\n* commit \u00273b724c836b13b320b2b2c492c28660617e0d503e\u0027:\n  Improve thread safety of input mappers.\n"
    },
    {
      "commit": "00e5c61366d3d3d62c259277823ea15a14f68ad4",
      "tree": "a4550b43fbec48553d0e04e4b1eedc9bef7ccdac",
      "parents": [
        "d973a533da16a1fbf13aa1b58ddf60d7d7c9b4ec",
        "6328cdc89e099806a1893b89e4c724d596272d9e"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jul 30 14:48:25 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 30 14:48:25 2010 -0700"
      },
      "message": "Merge \"Improve thread safety of input mappers.\" into gingerbread"
    },
    {
      "commit": "6328cdc89e099806a1893b89e4c724d596272d9e",
      "tree": "691dfe8a5296cdc6c6773351b21114e7a34aec86",
      "parents": [
        "04d7e83e65e246e154b5b346e3eb0081b741ae88"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Jul 29 18:18:33 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jul 30 14:43:58 2010 -0700"
      },
      "message": "Improve thread safety of input mappers.\n\nAlso fixed bug where old touch screen size could be reported by\ngetMotionRange if an orientation change occurred but the user has not\nyet touched the screen.\n\nBug: 2877345\nChange-Id: I7878f47458f310ed6ebe6a5d1b2c9bec2c598ab9\n"
    },
    {
      "commit": "c3ae937a95cbaf4afbe8aa006dc3db4c27f0ad44",
      "tree": "eab735659ca06317aeb547acc0699711dfd8c8b6",
      "parents": [
        "31b5d5485f7336639d252da7ba979234dbd2f1e1"
      ],
      "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": "154a320069a316491c25b716f2aeea8c51a758e8",
      "tree": "a134148c3f13d24f3aca4ebc574899669d3efa63",
      "parents": [
        "4609b0a8fcfbed9b893301232dfa3b70bb30e4e2",
        "27eecb704a27c1c73ed3449eba0307d8138b9c2e"
      ],
      "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": "e4d81f25bd4dc1a5c909b56ab56a56406290da30",
      "tree": "8bb0db495a1bb2037299022e7fce2a2eae59ee09",
      "parents": [
        "01301d31a4c2e8745a3e12c9a441d2448e63d775"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Wed Jul 14 16:02:20 2010 -0700"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Fri Jul 30 10:57:47 2010 -0700"
      },
      "message": "Add support for dalvik.vm.extra-opts property.\n\nThe goal here is to avoid the dalvik.vm.* property explosion by\nhaving a single property that takes an arbitrary collection of Dalvik\ncommand-line options.  This is intended for testing of various\nconfigurations by the Dalvik team, not industrial use.\n\nOptions should be separated by spaces, e.g.\n\n  adb shell setprop dalvik.vm.extra-opts \"-showversion -Xmx4m\"\n\nwill print the version banner and set the heap max to 4MB, which won\u0027t\nget you very far.\n\nThe extra-opts options will appear last, which allows them to override\nvalues set earlier (like the heap max).\n\nBug 2838629.\n\n(cherry-pick from dalvik-dev branch)\n\nChange-Id: Ibcbb1b62367cf2152798583e8722ef7e461ad19a\n"
    },
    {
      "commit": "ce49d03aa40123a086d6017052873bed83835298",
      "tree": "2de1d2e8a3e34939c75b9b01418fe6c09b4cfca9",
      "parents": [
        "d4e60a1f8e6a92102c0ac55775c4153e31aec407",
        "02513855530b80dd554b13852db75f3adde2c9f4"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jul 29 22:06:44 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jul 29 22:06:44 2010 -0700"
      },
      "message": "resolved conflicts for merge of 02513855 to master\n\nChange-Id: Ie33d57798d3d5b800edde753dac86de062bc270c\n"
    },
    {
      "commit": "02513855530b80dd554b13852db75f3adde2c9f4",
      "tree": "3a971706986f6b5e1ad59fbd9ebfd09ca0b9e053",
      "parents": [
        "0c51c98fd9edf0bdc8f2c567470fc332b5ae3adf",
        "050b56244ff46d43e4886018d7cd20f0b1dc02b9"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jul 29 18:20:51 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 29 18:20:51 2010 -0700"
      },
      "message": "am 050b5624: Added SensorManager.getMinDelay()\n\nMerge commit \u0027050b56244ff46d43e4886018d7cd20f0b1dc02b9\u0027 into gingerbread-plus-aosp\n\n* commit \u0027050b56244ff46d43e4886018d7cd20f0b1dc02b9\u0027:\n  Added SensorManager.getMinDelay()\n"
    },
    {
      "commit": "050b56244ff46d43e4886018d7cd20f0b1dc02b9",
      "tree": "1c0cfcd08dbd18b386bebe5dd2cbeb1c945ccbda",
      "parents": [
        "3fb627525e077fa5452a99ac1e2a7e9c41995044"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jul 29 16:51:38 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jul 29 18:18:00 2010 -0700"
      },
      "message": "Added SensorManager.getMinDelay()\n\nExposed the new \"min delay\" sensor property through native and\njava sensor apis. This allows the caller to know what is the\nmaximum rate at which a sensor can return events, or, if a sensor\nworks in \"update\" mode (events returned only when the value changes).\n\nAlso augmented SensorManager.regusterSensorEvent() so that it can\naccept a value in microsecond in addition to the 4 constants already\ndefined.\n\nChange-Id: If425e9979892666df8c989d7de3c362230fa19e0\n"
    },
    {
      "commit": "8f5d160c92bb03a9156301e0577fa590f1ce0199",
      "tree": "cf7416cc5463c04ef7062dc78f55e458d3b93ae9",
      "parents": [
        "edb2fc6aa8eaa3a8423db877a9ee92123994fc75",
        "0c51c98fd9edf0bdc8f2c567470fc332b5ae3adf"
      ],
      "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": "0c51c98fd9edf0bdc8f2c567470fc332b5ae3adf",
      "tree": "f352225433516c35c4435b82be44d91c0cca9379",
      "parents": [
        "8a76a9085dbbca87b4c172577ca264d8b5f2ab32",
        "4506c62abd5767d6d42a97e8e87793a1b3bcb625"
      ],
      "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": "27eecb704a27c1c73ed3449eba0307d8138b9c2e",
      "tree": "65bfdcc360ba98d1c639f2d77cb099c1fefeab0c",
      "parents": [
        "3d8d9440d844816f065d2b10eb75bb693683cdad",
        "83407b993f79e06470100f605748aba41cbeb966"
      ],
      "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": "83407b993f79e06470100f605748aba41cbeb966",
      "tree": "3d07a0bafba647b56cfb83013c0a65786cc62e64",
      "parents": [
        "3855980b4355017fa9a4988d7b150f3222075198"
      ],
      "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": "4506c62abd5767d6d42a97e8e87793a1b3bcb625",
      "tree": "30777cb6080dde28740111ac6b69ff014cee5075",
      "parents": [
        "9150cff64abc79927ade28061ac99a1ebf812905"
      ],
      "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": "2571356e560bd44b3f0d4e466210b50d4511d24d",
      "tree": "e4e2085d24cb5bef9fc21370731c573199107e78",
      "parents": [
        "c2aa115fe640655311f125904517c52e3740e53d",
        "dce4beb17982faeb6308bd7ee86c684514a3bad3"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Thu Jul 29 14:02:23 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 29 14:02:23 2010 -0700"
      },
      "message": "Merge \"Support for video size to be different from captured picture size.\""
    },
    {
      "commit": "c2aa115fe640655311f125904517c52e3740e53d",
      "tree": "098e6a85b4d0a18a649183509c010d43be7d83ba",
      "parents": [
        "74278c7317b5fe14aadc0701be06068378fe8ca0",
        "a435c1389a149996d14c8a1efefcfb1ae7c7ea70"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Thu Jul 29 14:01:57 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 29 14:01:57 2010 -0700"
      },
      "message": "Merge \"Adding YUVImage and YUVCanvas.\""
    },
    {
      "commit": "6ec402b5ae33c8927694d8522b4cc6a5c8ba974e",
      "tree": "5d4b19eda9ade71d7e34635479426f1dd484e8c2",
      "parents": [
        "6dea6f4e71b53e421564d783c227cbe0a2469183"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Jul 28 15:48:59 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Jul 29 12:54:27 2010 -0700"
      },
      "message": "DO NOT MERGE: Fix input event injection ANRs on UI thread.\n\nAdded a new asynchronous injection mode and made the existing\nsynchronization mechanism more robust.\n\nChange-Id: Ia4aa04fd9b75ea2461a844c5b7933c831c1027e6\n"
    },
    {
      "commit": "bbda99d2086d79ac70b403cad38a47c35af84adf",
      "tree": "42c51be78a58c4c29164dcb42621e82b2fc3e81f",
      "parents": [
        "26d9b9870e5a387a5b38523387b4fb2d99542fe6"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Jul 28 15:48:59 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Jul 29 12:19:08 2010 -0700"
      },
      "message": "Fixed StatusBar ANRs due to input event injection on UI thread.\n\nAdded a new asynchronous injection mode and made the existing\nsynchronization mechanism more robust.\n\nChange-Id: I0464f70ff5cbd519dbb02686b2cb5d810fe7dbb2\n"
    },
    {
      "commit": "dce4beb17982faeb6308bd7ee86c684514a3bad3",
      "tree": "bfbb3d71ba84a677b013fee3ebb1f6245da1d570",
      "parents": [
        "a435c1389a149996d14c8a1efefcfb1ae7c7ea70"
      ],
      "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": "a435c1389a149996d14c8a1efefcfb1ae7c7ea70",
      "tree": "98e0d6018d2f27a7c283a7277b21fb519748da10",
      "parents": [
        "26d9b9870e5a387a5b38523387b4fb2d99542fe6"
      ],
      "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": "16263d9f8cc01392c2f3678b381ce897647c8c81",
      "tree": "4fc80a3142efdb1b7a34959bcc4a8068640656d4",
      "parents": [
        "3bf5c4cd30f8bd598842d8ded5f1655406b5c27a"
      ],
      "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": "fdbb58cb11ac459ca6ea83725a6314379002ec09",
      "tree": "9cb4cde566a61e1c4e389fb4feeea62df599273d",
      "parents": [
        "42c2936f3c6e048caafb17eb9fe91fa4a33c8b86",
        "9362ea760f565389f5accce7e17476d05510ed59"
      ],
      "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": "9f2a91bc2b01c2cc60f73a0bae673225fdddec09",
      "tree": "4896baaf07143ebe2be37685c49714b223e3f100",
      "parents": [
        "bae6fe242ff9a97840ff0c5d9d87c0575d261682",
        "51c70e3e41ee8bedc1d951a06a74202dafa13009"
      ],
      "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": "9835d6127280a10ae2bfab31d9ad6b8b8c74762c",
      "tree": "7f8b7b5658c0554af014dacf84759c1314fd8b07",
      "parents": [
        "16edf317cdf000fe0bd808259703e0341d55df02",
        "1de9f490b5c3f293b3748be3d4ccf3f78cdf460b"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Jul 28 15:41:30 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jul 28 15:41:30 2010 -0700"
      },
      "message": "am 1de9f490: am bae6fe24: Merge \"Support streaming of compressed assets \u003e 1 megabyte\" into gingerbread\n\nMerge commit \u00271de9f490b5c3f293b3748be3d4ccf3f78cdf460b\u0027\n\n* commit \u00271de9f490b5c3f293b3748be3d4ccf3f78cdf460b\u0027:\n  Support streaming of compressed assets \u003e 1 megabyte\n"
    },
    {
      "commit": "bae6fe242ff9a97840ff0c5d9d87c0575d261682",
      "tree": "428e2e84aef9faeaf4a89d9663a42438649fcc36",
      "parents": [
        "bc1daf016020ce022ceb971f09e862da5ee82b1d",
        "b100cbf178e91d6652ebbad3ed36684cacb9d10e"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Jul 28 15:36:48 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 28 15:36:48 2010 -0700"
      },
      "message": "Merge \"Support streaming of compressed assets \u003e 1 megabyte\" into gingerbread"
    },
    {
      "commit": "b100cbf178e91d6652ebbad3ed36684cacb9d10e",
      "tree": "acb386c8adee2d0390193fc631f841f8d76ea5d7",
      "parents": [
        "0c39b6c65bcb96ed6438c7d792a67708409d8f0f"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Jul 26 11:24:18 2010 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Jul 28 15:33:28 2010 -0700"
      },
      "message": "Support streaming of compressed assets \u003e 1 megabyte\n\nCompressed assets larger than one megabyte are now decompressed on demand\nrather than being decompressed in their entirety and held in memory.  Reading\nthe data in order is relatively efficient, as is seeking forward in the stream.\nSeeking backwards is supported, but requires reprocessing the compressed data\nfrom the beginning, so is very inefficient.\n\nIn addition, the size limit on compressed assets has been eliminated.\n\nChange-Id: I6e68247957e6c53e7e8ba70d12764695f1723bad\n"
    },
    {
      "commit": "2279971b6f66d60240b8c72a9d52644a3bcdf01b",
      "tree": "6bb439e7b3c2b8c32a10a4b71cd8220045a49a90",
      "parents": [
        "5193a5bab165a4f812b8e72d656b6a18ee04f42b",
        "9795a25da060f9a7df87da8ab43fb1086d4322a5"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Jul 28 14:27:55 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jul 28 14:27:55 2010 -0700"
      },
      "message": "am 9795a25d: am 6d0fec2d: Refactor input reader to support new device types more easily.\n\nMerge commit \u00279795a25da060f9a7df87da8ab43fb1086d4322a5\u0027\n\n* commit \u00279795a25da060f9a7df87da8ab43fb1086d4322a5\u0027:\n  Refactor input reader to support new device types more easily.\n"
    },
    {
      "commit": "6d0fec2de3601821f4f44eeb7d7deedebb2b7117",
      "tree": "9fdea32c5691a6d0bcb3085df47f42a8e6ecd565",
      "parents": [
        "b350bec514eb9fee473e4ef62680c53e992dc49b"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jul 23 21:28:06 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Jul 28 14:16:15 2010 -0700"
      },
      "message": "Refactor input reader to support new device types more easily.\n\nRefactored the input reader so that each raw input protocol is handled\nby a separate subclass of the new InputMapper type.  This way, behaviors\npertaining to keyboard, trackballs, touchscreens, switches and other\ndevices are clearly distinguished for improved maintainability.\n\nAdded partial support for describing capabilities of input devices\n(incomplete and untested for now, will be fleshed out in later commits).\n\nSimplified EventHub interface somewhat since InputReader is taking over\nmore of the work.\n\nCleaned up some of the interactions between InputManager and\nWindowManagerService related to reading input state.\n\nFixed swiping finger from screen edge into display area.\n\nAdded logging of device information to \u0027dumpsys window\u0027.\n\nChange-Id: I17faffc33e3aec3a0f33f0b37e81a70609378612\n"
    },
    {
      "commit": "ba2709583d9b759ca7b2aad05dcbeeb2a6c4083e",
      "tree": "0e85650de31c297f352bee2643435266bc64dcd7",
      "parents": [
        "d8aad91d8cdc64e00eec94a87b8dd3cc4d05c032",
        "6fa8888254deb4961dc64c6ac03dc103c9cd8bcf"
      ],
      "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": "a4c72acfbc6c06588dd26cf41e67a834fc0a54f9",
      "tree": "f837332558eb9f5bcec50e109878f7d98a644148",
      "parents": [
        "b73045935cd8ec5d1a1c5e7a7ca800448b5789ea"
      ],
      "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": "51c70e3e41ee8bedc1d951a06a74202dafa13009",
      "tree": "d917c80c3421a1312cfefc3e2ca7db25fce62a37",
      "parents": [
        "eab07e5c1d48d45f76ac2dd4a45c8a3457aa290d"
      ],
      "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": "84fabc0ce3d7c3da73903380d0d6141d60fa4448",
      "tree": "7fc1a8cf6897f7ada12afe7cca8b883c4f912be3",
      "parents": [
        "ebd19e0f48b0cb246c246274a256a9bb494b7e7a",
        "245cb7846c82f7c0840e13f0b994d356846b1678"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Tue Jul 27 14:04:14 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jul 27 14:04:14 2010 -0700"
      },
      "message": "am 245cb784: am 84c924a6: Merge \"Replace several IPCThreadState::get() lookups with one.\" into gingerbread\n\nMerge commit \u0027245cb7846c82f7c0840e13f0b994d356846b1678\u0027\n\n* commit \u0027245cb7846c82f7c0840e13f0b994d356846b1678\u0027:\n  Replace several IPCThreadState::get() lookups with one.\n"
    },
    {
      "commit": "84c924a6c53cb63ca018013c9fda0077413d0005",
      "tree": "2f9638232597a803d98924e10ddfdada6681cab1",
      "parents": [
        "499bee34c40945f898b7561ca7792ded5b974852",
        "7bcad8a315f12bd6251a998781efac7b11c2ca84"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Tue Jul 27 13:59:47 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 27 13:59:47 2010 -0700"
      },
      "message": "Merge \"Replace several IPCThreadState::get() lookups with one.\" into gingerbread"
    },
    {
      "commit": "7bcad8a315f12bd6251a998781efac7b11c2ca84",
      "tree": "44f9ded1cd1a31254607ddddc2c08cad3d4b6546",
      "parents": [
        "eb75888e6479317151c2ed44d47bd28ef567a4c7"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Tue Jul 27 09:49:11 2010 -0700"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Tue Jul 27 12:28:57 2010 -0700"
      },
      "message": "Replace several IPCThreadState::get() lookups with one.\n\nAlso, make StrictMode\u0027s ThreadLocal final.\n\nChange-Id: I08d400ed254fa67bb7a3dae1227f205a54c00df0\n"
    },
    {
      "commit": "b008e9b1281da871e970e5b4817f78afb4f12d4a",
      "tree": "d1d6f8338d470406fcfb868303aafe85dad64971",
      "parents": [
        "84aa5066855daaa944d8e0f5846bbff05ed1c748",
        "d306cc8192bf569b2e6e7d58b4d73f6607e9d509"
      ],
      "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": "ca57d1cc89d65dfbd59c749c5736574cd08c7bd3",
      "tree": "03742035e50c98735bf61034caa511b0371dc9e8",
      "parents": [
        "2b989e1f7d08efd51652b56b1cb1fef76a1e8ab1"
      ],
      "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": "d01371bf691ff04e4957e49805503dbf20b338df",
      "tree": "a9294863381c7d96723a44a62d0fced08f84ccd6",
      "parents": [
        "9c9d0684a0e8b8368e649e102063ef48179d58c7"
      ],
      "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": "9c9d0684a0e8b8368e649e102063ef48179d58c7",
      "tree": "2e9c738506a68f8eca403a8af7412505b95718cb",
      "parents": [
        "1b57b86dccf8037761d43bd87c3472ea092895a7",
        "9bc4dc114fce58606a81d65d4cb31348cc7c1bae"
      ],
      "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": "53d4e0d58e2d5c18f6e026c705af833b9bdd7aba",
      "tree": "70bafe068da199dcd0206802d0f673e5dc80d918",
      "parents": [
        "db3eb3553502d142c85d47ec4fb847b7fa3b06fa"
      ],
      "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": "8dac3bf922de433bc7d08c9968dfc5087de34b86",
      "tree": "8be3551b5d81b03ec0500f695a612d51f24997ed",
      "parents": [
        "95675137f417173dc711a2d39232a1f545799013",
        "b72d3180dc8d41d6269664bea808b04410bbe40f"
      ],
      "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": "81046c8c42ff3b630c6496deafd44f2a07a25463",
      "tree": "b3dfc5164aad0837d4b0dfb238845a5ec84cac28",
      "parents": [
        "13d08515f038db45de6028085993ae6076566867",
        "4e4173b0af52bdf2b5730a5837476e400c5b2040"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Jul 22 13:47:41 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 22 13:47:41 2010 -0700"
      },
      "message": "Merge \"Various changes to improve rtsp networking, reduce packet loss and adapt to ALooper API changes.\" into gingerbread"
    },
    {
      "commit": "4e4173b0af52bdf2b5730a5837476e400c5b2040",
      "tree": "8646f0b4c4783b9c14aac8868749856029b5b2a3",
      "parents": [
        "ff0ab64ca49c7a03835d414cd493d5dc37c2eb5e"
      ],
      "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": "5c49ec30b57a18ac022601473c9524f40554c9cf",
      "tree": "9ac6fd8c1c7315ca8d785d009ce36345eb38c429",
      "parents": [
        "409c484b6d235b52b69e87a44b1f51a1ac5ca1f9",
        "1f2ec4070aa9c999d41dc50a892a896e894c5710"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 21 18:13:39 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jul 21 18:13:39 2010 -0700"
      },
      "message": "am 1f2ec407: am 23e8de26: propagate sensor event rate properly\n\nMerge commit \u00271f2ec4070aa9c999d41dc50a892a896e894c5710\u0027\n\n* commit \u00271f2ec4070aa9c999d41dc50a892a896e894c5710\u0027:\n  propagate sensor event rate properly\n"
    },
    {
      "commit": "50558b956157dad980441bf4fb44931ce834e36b",
      "tree": "2d208a78ab3a1c77d91751b8bbe5cafd9415f0d8",
      "parents": [
        "c1b11b1b37d0692bd3c63575c9f2c0d9fa566602",
        "bc54e63c84a517f0dca88ba900ff2b56719f685b"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 21 18:10:22 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 21 18:10:22 2010 -0700"
      },
      "message": "resolved conflicts for merge of bc54e63c to master\n\nChange-Id: I4245b15b4cda6963d735442c0c6a04a0477ff5e1\n"
    },
    {
      "commit": "23e8de26b7b3d04daf08526f314c2fdd2f8fee65",
      "tree": "239037f931ad847efc861c12c94b68c855a894d6",
      "parents": [
        "5df13ef30e7dd58e4e718e6d949ac3d1f5af94e0"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 21 15:59:50 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 21 16:09:39 2010 -0700"
      },
      "message": "propagate sensor event rate properly\n\nChange-Id: I32e67d30e4295285a6827956cc8161b2025d70bc\n"
    },
    {
      "commit": "e4764521353e898554931a557460fc49209fb0a9",
      "tree": "261afe438ecda0a438afe04c8a5e1c40bf978d63",
      "parents": [
        "3685db7f5dd8a830a4e096404d4924e12697fb78",
        "1bf797857e025e8a71db86fb9e79765a767ec1eb"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 21 16:06:46 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 21 16:06:46 2010 -0700"
      },
      "message": "Merge \"new SensorService\" into gingerbread"
    },
    {
      "commit": "9511ab83d6a136a4140ddf78bd4be61b7c3a2bbe",
      "tree": "8aeb6c4b6f24f4eb72597642315c49caf0014aed",
      "parents": [
        "0119ba5bd3335fe026927eeb65de535a7bd8c838",
        "8a9a931fff2d184f7cf77fdd8a425f682f006cfd"
      ],
      "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": "8138e841a5adb3c5629e263f5a8cb2e936d234ce",
      "tree": "f4ee344bd4ee7c08ce00cbcd1c3dd48eb25ef385",
      "parents": [
        "7070b36549d511d6627538c73dfbab23fbae5b43",
        "6624c9fd0bc5e3858a22a04c05b5059445c1c367"
      ],
      "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": "0119ba5bd3335fe026927eeb65de535a7bd8c838",
      "tree": "8199a5f834701fa8cc57108876f74e7f102f8b62",
      "parents": [
        "921ec6f5542b7f1a459458b7426cb62521f2c8ce",
        "34161132030254bac7dd64c9713832e2f961a061"
      ],
      "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": "6624c9fd0bc5e3858a22a04c05b5059445c1c367",
      "tree": "009c6806cadd4a6da28f3d497043b9665a16f134",
      "parents": [
        "d7514ec6eb17d262d6f9605a2c2f245b7ad7c0b9"
      ],
      "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": "7070b36549d511d6627538c73dfbab23fbae5b43",
      "tree": "4a489b863b322e28f7047d7873b17a77056f3b41",
      "parents": [
        "d7514ec6eb17d262d6f9605a2c2f245b7ad7c0b9"
      ],
      "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": "c5eeedc93d7b9633d59fae7bc21a22a0e78fa373",
      "tree": "07753b75cb591fc3554ae834601c1a268b6191c2",
      "parents": [
        "ed38cf9089f24d28aa6e80f28c38617a6d8e9940",
        "9049fe60c20640bd606741c8f45f3f781a1684f5"
      ],
      "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"
    },
    {
      "commit": "d7514ec6eb17d262d6f9605a2c2f245b7ad7c0b9",
      "tree": "4ca13d3ccd62178a0f6b703a3ad0a8553ddac225",
      "parents": [
        "29e25bd3418b04e395119bf99abe92898830a796",
        "85edea79583eb486c8c5c51595a95ddc4ad217f0"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Jul 20 14:29:39 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 20 14:29:39 2010 -0700"
      },
      "message": "Merge \"Progress status notification\" into gingerbread"
    },
    {
      "commit": "87419a2b3d519b9667cbe7c83482939c7ff65414",
      "tree": "dd09942574679b4bd50b2d5b67a40f7a766ecd29",
      "parents": [
        "bcfdb32839d1fa4c1c793913d60574674910c042",
        "4cd8672662b0e56f6b8b5c7e3cf6ced8c1b15638"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Tue Jul 20 14:15:59 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 20 14:15:59 2010 -0700"
      },
      "message": "Merge \"Restart preview after each takePicture is done.\""
    },
    {
      "commit": "240677ec68790b9af5fd16a604c0780eb2938bd6",
      "tree": "6ab427a0f6f36a3687c2ca720130a6bc12c2739b",
      "parents": [
        "eaeffac5fc8244d8fe03de786baa3ca76f5553b8",
        "dd2060932a7472ce361faacd340b0ef05b14c6ef"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jul 20 13:37:19 2010 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jul 20 13:37:19 2010 -0700"
      },
      "message": "resolved conflicts for merge of dd206093 to master\n\nChange-Id: I21dd2321a4839d034d49092baccbf40986f17dae\n"
    },
    {
      "commit": "4cd8672662b0e56f6b8b5c7e3cf6ced8c1b15638",
      "tree": "0fce2b6a828f7588f654a36981bf28c412156d31",
      "parents": [
        "97a2566395fae3c130a8ba3ae8705405446df478"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Sun Jul 18 15:52:02 2010 -0700"
      },
      "committer": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Tue Jul 20 12:42:29 2010 -0700"
      },
      "message": "Restart preview after each takePicture is done.\n\nPreview is called when CAMERA_MSG_COMPRESSED_IMAGE is recieved by\ndataCallback(). It needs to be started as a new thread so that the\ncallback can return, and the camera can know that takePicture() is\ndone.\n\nChange-Id: I4d0febbc993aac43b37f9f4a824e9c7b8785f19e\n"
    },
    {
      "commit": "22a2d7186d015efcd648dff99500f8467463be82",
      "tree": "ce840c8535737a789c063c8115444cd0f83ad50a",
      "parents": [
        "cc14a8393b92cd1ed6cba74829396045605ab211",
        "8ed6ed0b6216a9dfcbcd6a5ba6a62d28a901baec"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jul 20 11:25:35 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 20 11:25:35 2010 -0700"
      },
      "message": "Merge \"Audio policy manager changes for audio effects\" into gingerbread"
    },
    {
      "commit": "f91f2971a8a03026664666c332abe73f70c5b437",
      "tree": "262d450bfb74e1707c30b62883b8cd9d8ed14fcc",
      "parents": [
        "aee71b4ea123d94da86759354d10fa57a04b5304",
        "f9b80182bcd32d563c23c12b4ac06517fd6da531"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Tue Jul 20 11:04:49 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 20 11:04:49 2010 -0700"
      },
      "message": "Merge \"Adding support for timelapse capture using still camera\u0027s takepicture. Also moving entire implementation into a new class CameraSourceTimeLapse which inherits from CameraSource.\""
    },
    {
      "commit": "0ef7da159d2dcb469985291aaaedcd717c1c02b8",
      "tree": "aeed8e6b22af451acbaa2ea87d5e5f76fa7529b3",
      "parents": [
        "99a518ffabacb10171621d0293bf982b85505e66",
        "ff45709fbd1f24de1cf75ce9ce9ac8694ff1abbe"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Jul 20 10:46:12 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jul 20 10:46:12 2010 -0700"
      },
      "message": "am ff45709f: am cc14a839: 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\nMerge commit \u0027ff45709fbd1f24de1cf75ce9ce9ac8694ff1abbe\u0027\n\n* commit \u0027ff45709fbd1f24de1cf75ce9ce9ac8694ff1abbe\u0027:\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"
    },
    {
      "commit": "8ed6ed0b6216a9dfcbcd6a5ba6a62d28a901baec",
      "tree": "0969f3a936ab2f1e7493146eece22edf5f2f39ec",
      "parents": [
        "ff7049ab2886acc73e145367118646f7741ce333"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jul 13 04:45:46 2010 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jul 20 10:31:57 2010 -0700"
      },
      "message": "Audio policy manager changes for audio effects\n\nAdded methods for audio effects management by audio policy manager.\n- control of total CPU load and memory used by effect engines\n- selection of output stream for global effects\n- added audio session id in parameter list for startOutput() and stopOutput().\nthis is not used in default audio policy manager implementation.\n\nModifications of audio effect framework in AudioFlinger to allow moving and reconfiguring\neffect engines from one output mixer thread to another when audio tracks in the same session\nare moved or when requested by audio policy manager.\nAlso fixed mutex deadlock problem with effect chains locks.\n\nChange-Id: Ida43484b06e9b890d6b9e53c13958d042720ebdb\n"
    },
    {
      "commit": "cc14a8393b92cd1ed6cba74829396045605ab211",
      "tree": "65d4fb9bc4ca6aa35e4ace49821ef23a18c54f9b",
      "parents": [
        "faf1d46a60518fcc3e58c91740e673e8a3f2d3cc"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Jul 20 09:21:17 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Jul 20 09:25:38 2010 -0700"
      },
      "message": "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\nChange-Id: Icc790122744745e9a88099788d4818ca1e265a82\nrelated-to-bug: 2826841\n"
    },
    {
      "commit": "85edea79583eb486c8c5c51595a95ddc4ad217f0",
      "tree": "7147bbd961d8850f2d972e5c822c845b58a508a8",
      "parents": [
        "42ef0c715da879a9878b7bf4eb9c90b21e4ab8ae"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Jul 15 19:08:20 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Jul 20 08:39:57 2010 -0700"
      },
      "message": "Progress status notification\n\n- Keep track of per-track progress\n\nChange-Id: Ibd36f0e8c78581928c8aa2f5e23c5e7e0615c2cc\n"
    },
    {
      "commit": "f9b80182bcd32d563c23c12b4ac06517fd6da531",
      "tree": "01436881b945d72bd29d18aad01713469852f913",
      "parents": [
        "2ef1cea44008d7afb5ed91cfbccc9df5288f83ca"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Mon Jul 12 09:17:14 2010 -0700"
      },
      "committer": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Mon Jul 19 18:22:56 2010 -0700"
      },
      "message": "Adding support for timelapse capture using still camera\u0027s takepicture.\nAlso moving entire implementation into a new class CameraSourceTimeLapse\nwhich inherits from CameraSource.\n\nFor timelapse capture using still camera, we start a thread which runs a\nloop in which it calls Camera::takePicture() and then sleeps until the next\nframe should be captured.\nThe function dataCallback() handles the callback from the camera with the\nraw image data. This function copies the data and creates an artificial\ntimestamp corresponding to one frame time ahead of the last encoded frame\u0027s\ntime stamp. It then calls dataCallbackTimestamp() of the base class which\nwill think that it recieved the frame from a video camera and proceed as usual.\n\nFor moving the implementation to the subclass CameraSourceTimeLapse, added a\nfew virtual functions to CameraSource, which do the current thing for the base\nclass, but specialized things for CameraSourceTimeLapse.\nE.g. startCameraRecording() in the base class just calls mCamera-\u003estartRecording(),\nwhile in CameraSourceTimeLapse it may start a thread for the still camera case.\n\nChange-Id: Ib787f24bd2e1f41681513f0257e1c4ca10a2b4de\n"
    },
    {
      "commit": "1bf797857e025e8a71db86fb9e79765a767ec1eb",
      "tree": "e8d1aabae069f2b7368be746b99667eb150363f5",
      "parents": [
        "ff7049ab2886acc73e145367118646f7741ce333"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 14 23:41:37 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jul 19 17:57:29 2010 -0700"
      },
      "message": "new SensorService\n\nremove old sensor service and implement SensorManager\non top of the new (native) SensorManger API.\n\nChange-Id: Iddb77d498755da3e11646473a44d651f12f40281\n"
    },
    {
      "commit": "691a9fcb2bc1b78f1f1048c3d7a39143be9dcdd7",
      "tree": "f1910356e96c790b093c43f14b30760343dfa9eb",
      "parents": [
        "5b45b1c274d448a304188d07cb54ac5d2668f203",
        "04b953132edb5482f0aa6d992f89e7016961528c"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Fri Jul 16 16:25:23 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jul 16 16:25:23 2010 -0700"
      },
      "message": "am 04b95313: am c8c79a65: Merge \"Re-use existing Surface objects when reading them from parcels.\" into gingerbread\n\nMerge commit \u002704b953132edb5482f0aa6d992f89e7016961528c\u0027\n\n* commit \u002704b953132edb5482f0aa6d992f89e7016961528c\u0027:\n  Re-use existing Surface objects when reading them from parcels.\n"
    },
    {
      "commit": "5b45b1c274d448a304188d07cb54ac5d2668f203",
      "tree": "3188928e1f76fb11cfe099402bf1c7052192fbae",
      "parents": [
        "955f1551b6164daa101f4a0cd04171f4884536e3",
        "7b8df313f714d6e8d536e0f8bbe5496fe9a6c26d"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jul 16 16:25:13 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jul 16 16:25:13 2010 -0700"
      },
      "message": "am 7b8df313: am 00ba8844: Fix individual pointer id up/down reporting.\n\nMerge commit \u00277b8df313f714d6e8d536e0f8bbe5496fe9a6c26d\u0027\n\n* commit \u00277b8df313f714d6e8d536e0f8bbe5496fe9a6c26d\u0027:\n  Fix individual pointer id up/down reporting.\n"
    },
    {
      "commit": "c8c79a654d4ae8e3a883854e19cc2df757f72d82",
      "tree": "c5efa0a0080a5b9860ac2cec6581593cad4ae2fe",
      "parents": [
        "00ba884436dc8b222ad850c73c936d87bf4e84de",
        "5ee65f0d441ca558bc95b60c1468f2aadfeeddbd"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Fri Jul 16 15:14:44 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 16 15:14:44 2010 -0700"
      },
      "message": "Merge \"Re-use existing Surface objects when reading them from parcels.\" into gingerbread"
    },
    {
      "commit": "00ba884436dc8b222ad850c73c936d87bf4e84de",
      "tree": "ca4d18c6f004cf59a54508fa4e99f01f81e8753e",
      "parents": [
        "e068b46408f3ff390b47dc78ccf10fab76883051"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jul 16 15:01:56 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jul 16 15:11:24 2010 -0700"
      },
      "message": "Fix individual pointer id up/down reporting.\n\nFix a minor threading bug in InputManager dump.\n\nChange-Id: Ic2eecf7df5a8dc9f40561fcb03ebe58a2c073778\n"
    },
    {
      "commit": "5ee65f0d441ca558bc95b60c1468f2aadfeeddbd",
      "tree": "fe143a0721ac44a3d2c34a46ad5240ea2d586f76",
      "parents": [
        "eec69d2923636b2aaa51df93bacc2b3bbb742736"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Thu Jul 15 17:29:15 2010 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Fri Jul 16 13:03:15 2010 -0700"
      },
      "message": "Re-use existing Surface objects when reading them from parcels.\n\nThis change adds a process-global cache of previously deserialized Surface\nobjects so that if a Surface object wrapping the same ISurface gets received\nagain the same Surface can be used.  This is important because the \u0027tail\u0027\npointer in the SharedBufferClient is stored only on the client side, and needs\nto be the same for all the Surface objects wrapping an ISurface instance.  This\nsolves the problem by making there only be one Surface object wrapping an\nISurface per process.\n\nChange-Id: I4bf0b8787885c56277622fca053022d2bb638902\n"
    },
    {
      "commit": "eb857f12d605659b385d168ef1ea7d4ba5193585",
      "tree": "fda7ab277e7ef292f58175d8ce6a4e1251e69786",
      "parents": [
        "c0eb6d6388ad4e7301a6813b4cf2edf6845bedba",
        "f7adbe10c23ca86e70a6e3a8b1a90ebe23142d29"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jul 16 10:06:33 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jul 16 10:06:33 2010 -0700"
      },
      "message": "resolved conflicts for merge of f7adbe10 to master\n\nChange-Id: I898a5e53b180adaee2337c0c0b9896c799d056e7\n"
    },
    {
      "commit": "2469e40924050797f0a4c059b01eff65539d2445",
      "tree": "c5972e7e504aad0e612d520452a261fb3be1a6db",
      "parents": [
        "94919a170fab66e7903bea0c10093234e5e6cd37",
        "f16b3f104f60738447db60bcf2c44c7610e17199"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 16 09:12:40 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jul 16 09:12:40 2010 -0700"
      },
      "message": "am f16b3f10: am b0374a0e: Merge \"Several improvements in audio effects volume control.\" into gingerbread\n\nMerge commit \u0027f16b3f104f60738447db60bcf2c44c7610e17199\u0027\n\n* commit \u0027f16b3f104f60738447db60bcf2c44c7610e17199\u0027:\n  Several improvements in audio effects volume control.\n"
    },
    {
      "commit": "781d34747941f3534b2a985ff57368ad89855d7d",
      "tree": "d7a87b96737fa8dfe18bb3d2b2985a77898123c2",
      "parents": [
        "fb4e1e24a93c7e6bc0fcdb3f5cfadfbc19503cd8",
        "9c37e5add9d7678a29b4e0d1e178fe78a13db961"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jul 16 09:12:29 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jul 16 09:12:29 2010 -0700"
      },
      "message": "am 9c37e5ad: am 75a91389: Merge \"Implement native key pre-dispatching to IMEs.\" into gingerbread\n\nMerge commit \u00279c37e5add9d7678a29b4e0d1e178fe78a13db961\u0027\n\n* commit \u00279c37e5add9d7678a29b4e0d1e178fe78a13db961\u0027:\n  Implement native key pre-dispatching to IMEs.\n"
    },
    {
      "commit": "eec69d2923636b2aaa51df93bacc2b3bbb742736",
      "tree": "d9eba8c7d89a11b94c2bb6206e014c17575fecc6",
      "parents": [
        "b0374a0e22756d956f8ebf2b19b1139e9e5e3384",
        "e33348ba54cd68d6936cffd4507037c14d4b10c2"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jul 16 00:14:38 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 16 00:14:38 2010 -0700"
      },
      "message": "Merge \"Fix bug with phantom input windows.\" into gingerbread"
    },
    {
      "commit": "b0374a0e22756d956f8ebf2b19b1139e9e5e3384",
      "tree": "d43e4cfd91056deba883fe8fa1e0237f7cccc840",
      "parents": [
        "bd623daff1f261a0e794f059d90ba5907eb5a89a",
        "76c40f74ced0b034a534ebc31ab9616425d3e711"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 16 00:08:50 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 16 00:08:50 2010 -0700"
      },
      "message": "Merge \"Several improvements in audio effects volume control.\" into gingerbread"
    },
    {
      "commit": "e33348ba54cd68d6936cffd4507037c14d4b10c2",
      "tree": "1429dd836a48b3f49ee2a27623ff47b5c272c827",
      "parents": [
        "bd623daff1f261a0e794f059d90ba5907eb5a89a"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Jul 15 23:54:05 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jul 16 00:02:48 2010 -0700"
      },
      "message": "Fix bug with phantom input windows.\n\nAdd dumpsys integration for the native input dispatcher.\nAdd some InputDevice API stubs.\nAdd an appendFormat helper method to String8 for printf style\nstring formatting mainly for debugging purposes.\nUse generic ArrayList\u003cWindowState\u003e everywhere in WindowManagerService\nto eliminate unnecessary casts all over.\n\nChange-Id: I9d1e3bd90eb7222d10620200477f11b7bfd25e44\n"
    },
    {
      "commit": "b75fa30aaf03d9e425d150b452501e5df0621351",
      "tree": "c7914253bdc9964a7bca8093341173a91341c74d",
      "parents": [
        "3fdab65f244c92aed36bc0a5ee435d5dfbe2d673",
        "aca672ba2eea19420df16906851d56077a3fd3b2"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Jul 15 23:47:29 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Jul 15 23:47:29 2010 -0700"
      },
      "message": "resolved conflicts for merge of aca672ba to master\n\nChange-Id: I7ae11fca0acdbf513a4870226d0d3e3cafbe9a08\n"
    },
    {
      "commit": "9555a1323e846aba16e6a7f2e5d9a9227523e595",
      "tree": "2f28645cc7f03ce41a4fa3d6c5a89b731e6cbc84",
      "parents": [
        "6ba776ad34a8029e4d0c784ce0092f1fcbc91bef",
        "cc52121c4f88e9feb8404937bcbfff6e73084666"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Thu Jul 15 23:05:35 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 15 23:05:35 2010 -0700"
      },
      "message": "am cc52121c: am c4b204bd: Merge \"More StrictMode work, keeping Binder \u0026 BlockGuard\\\u0027s thread-locals in-sync.\" into gingerbread\n\nMerge commit \u0027cc52121c4f88e9feb8404937bcbfff6e73084666\u0027\n\n* commit \u0027cc52121c4f88e9feb8404937bcbfff6e73084666\u0027:\n  More StrictMode work, keeping Binder \u0026 BlockGuard\u0027s thread-locals in-sync.\n"
    },
    {
      "commit": "6ba776ad34a8029e4d0c784ce0092f1fcbc91bef",
      "tree": "8df9196a58f89c0f05b49e3588bc08481a1ee198",
      "parents": [
        "085d0f55e6a2e8449961174673d43a5868874639",
        "078ccbdbb98c118aa87cab2fef61ff90dd128358"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Jul 15 23:05:27 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 15 23:05:27 2010 -0700"
      },
      "message": "am 078ccbdb: am 2c40582a: Merge \"Add native C APIs for working with the Asset Manager\" into gingerbread\n\nMerge commit \u0027078ccbdbb98c118aa87cab2fef61ff90dd128358\u0027\n\n* commit \u0027078ccbdbb98c118aa87cab2fef61ff90dd128358\u0027:\n  Add native C APIs for working with the Asset Manager\n"
    },
    {
      "commit": "2c6081ce3593712f30dacd990a97209c791d6ced",
      "tree": "4808bc521c207ea11ec0daceb98f77a6b47b00a0",
      "parents": [
        "c5ed5910c9ef066cec6a13bbb404ec57b1e92637"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jul 15 17:44:53 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jul 15 22:05:33 2010 -0700"
      },
      "message": "Implement native key pre-dispatching to IMEs.\n\nThis significantly re-works the native key dispatching code to\nallow events to be pre-dispatched to the current IME before\nbeing processed by native code.  It introduces one new public\nAPI, which must be called after retrieving an event if the app\nwishes for it to be pre-dispatched.\n\nCurrently the native code will only do pre-dispatching of\nsystem keys, to avoid significant overhead for gaming input.\nThis should be improved to be smarted, filtering for only\nkeys that the IME is interested in.  Unfortunately IMEs don\u0027t\ncurrently provide this information. :p\n\nChange-Id: Ic1c7aeec8b348164957f2cd88119eb5bd85c2a9f\n"
    },
    {
      "commit": "c5ed5910c9ef066cec6a13bbb404ec57b1e92637",
      "tree": "b06dfdac2d807dae78a2634007b6e627eefd0804",
      "parents": [
        "d9452ecd0ce6c8e0518055929ba1fd0712146405"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Jul 14 18:48:53 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Jul 15 18:32:33 2010 -0700"
      },
      "message": "Add support for new input sources.\n\nAdded several new coordinate values to MotionEvents to capture\ntouch major/minor area, tool major/minor area and orientation.\n\nRenamed NDK input constants per convention.\n\nAdded InputDevice class in Java which will eventually provide\nuseful information about available input devices.\n\nAdded APIs for manufacturing new MotionEvent objects with multiple\npointers and all necessary coordinate data.\n\nFixed a bug in the input dispatcher where it could get stuck with\na pointer down forever.\n\nFixed a bug in the WindowManager where the input window list could\nend up containing stale removed windows.\n\nFixed a bug in the WindowManager where the input channel was being\nremoved only after the final animation transition had taken place\nwhich caused spurious WINDOW DIED log messages to be printed.\n\nChange-Id: Ie55084da319b20aad29b28a0499b8dd98bb5da68\n"
    },
    {
      "commit": "c4b204bdc4ab974f1f96814c93d8eaa750c15122",
      "tree": "0749fd997f18ca34067b8704062c22cc13d6cfbb",
      "parents": [
        "2c40582a6c3a5781b39d0504d5aa8934982989d2",
        "727de40c6bc7c6521a0542ea9def5d5c7b1c5e06"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Thu Jul 15 15:42:12 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 15 15:42:12 2010 -0700"
      },
      "message": "Merge \"More StrictMode work, keeping Binder \u0026 BlockGuard\u0027s thread-locals in-sync.\" into gingerbread"
    },
    {
      "commit": "6cce32b6adbb3a9725fc730ba0e0068a74657e60",
      "tree": "659b099eb08109f3e4e51e184d929f392928e722",
      "parents": [
        "d6343c26b8580f61a257a3045bfa124049201116"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Jul 12 18:21:36 2010 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Jul 15 14:28:21 2010 -0700"
      },
      "message": "Add native C APIs for working with the Asset Manager\n\nChange-Id: I493b142c4b35e5cc1a1e85283bb5dfb306a6d261\n"
    },
    {
      "commit": "727de40c6bc7c6521a0542ea9def5d5c7b1c5e06",
      "tree": "0d2f0f400211efbaf131020d7c4d38e647f5bbe3",
      "parents": [
        "d6343c26b8580f61a257a3045bfa124049201116"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Wed Jul 07 16:06:39 2010 -0700"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Thu Jul 15 13:18:05 2010 -0700"
      },
      "message": "More StrictMode work, keeping Binder \u0026 BlockGuard\u0027s thread-locals in-sync.\n\nChange-Id: Ia67cabcc17a73a0f15907ffea683d06bc41b90e5\n"
    },
    {
      "commit": "76c40f74ced0b034a534ebc31ab9616425d3e711",
      "tree": "b33179a46bde9354636c76597b712a03d923547b",
      "parents": [
        "c98e431119867dbc4ae3da52d5c374607c0f67b9"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 15 12:50:15 2010 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 15 12:50:15 2010 -0700"
      },
      "message": "Several improvements in audio effects volume control.\n\n- Fixed crash when deleting an effect chained before an effect having volume control\n- Changed EFFECT_FLAG_VOLUME_CTRL to implicitely include EFFECT_FLAG_VOLUME_IND\n(not need to set both in effect descriptor).\n- Volume control changes from one effect to another if needed according to effect enable state\n- EFFECT_CMD_SET_VOLUME is only sent when their is an actual change in volume\n\nChange-Id: Ieebaf09157e2627366023569d95516646e03e26c\n"
    },
    {
      "commit": "892681e56ee6da6e8d4fb9ec41e75e814ae9e099",
      "tree": "ba88dfd4766ae1063d814797c7d691427651a1e3",
      "parents": [
        "dcd077179c853e54498e9127526a8f2984c0dda0",
        "b068b47c6d0214256116a0c661740bddf7acc18c"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Jul 15 11:54:10 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 15 11:54:10 2010 -0700"
      },
      "message": "am b068b47c: am d6a85a21: Merge \"Support user-supplied timescales for authoring\" into gingerbread\n\nMerge commit \u0027b068b47c6d0214256116a0c661740bddf7acc18c\u0027\n\n* commit \u0027b068b47c6d0214256116a0c661740bddf7acc18c\u0027:\n  Support user-supplied timescales for authoring\n"
    },
    {
      "commit": "d6a85a21418338a7797bff731fa7a551f62a9e86",
      "tree": "31cb24d80ec578524f77f82cd54f19fc2964e60a",
      "parents": [
        "562124e84d8ae63b614b14ba257680571091ef1f",
        "52d13f01a60f04d5a8a181ceb5400e32aee5637d"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Jul 15 11:16:08 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 15 11:16:08 2010 -0700"
      },
      "message": "Merge \"Support user-supplied timescales for authoring\" into gingerbread"
    },
    {
      "commit": "53459436ed17f46d695d061b08e952a00d679ae6",
      "tree": "8bf0e718e33156e37d5f7be95346d83336596608",
      "parents": [
        "0779682a490f12f102cd0cf1e768e3c68cfdc512",
        "c74034b6bf0940dc80c4d4efa1e677ad0d2dfd6c"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 14 20:18:50 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jul 14 20:18:50 2010 -0700"
      },
      "message": "am c74034b6: am 24651682: added BinderService\u003c\u003e template to help creating native binder services\n\nMerge commit \u0027c74034b6bf0940dc80c4d4efa1e677ad0d2dfd6c\u0027\n\n* commit \u0027c74034b6bf0940dc80c4d4efa1e677ad0d2dfd6c\u0027:\n  added BinderService\u003c\u003e template to help creating native binder services\n"
    }
  ],
  "next": "24651682edaf71e8a826f23a7ea09bc97c8072c4"
}
