)]}'
{
  "log": [
    {
      "commit": "7755cdd69690ccbb42c6fd47b3e9c4594d4ade82",
      "tree": "1f0415e8cc750bd9f3ce33ae6efb25c5d40a43fe",
      "parents": [
        "46e63b346770efa14451b8e67b7f7636c4e5a76c"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Sep 02 10:49:55 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Sep 03 10:13:19 2010 -0700"
      },
      "message": "Remove unused/debugging code from MP4 file writer\n\no also makes nal length in the recorded file modifiable at runtime\n\nChange-Id: I731b4dde7070d8d9628b36b523a5b2c011c7c2cf\n"
    },
    {
      "commit": "cb7e65c6cbe75c3fe55af95eba73431394669692",
      "tree": "97a7f34225e4448211df9471b430ed3bc660096a",
      "parents": [
        "7ed7668b30e70ca8e3f0f183364433326ed29f39"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Sep 02 11:19:11 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Sep 02 20:10:00 2010 -0700"
      },
      "message": "Better file size estimate\n\nWhen the recorded file becomes large, the metadata size can\nno longer be ignored. This makes it possible to save the\nrecorded file when the storage becomes almost full at the\nend of the recording session.\n\nChange-Id: Ief038080f825c9946ce550949c03e914aec1e31a\n"
    },
    {
      "commit": "4c23815c3986e50f0cfad3976d748e600f1befa2",
      "tree": "839a922dfe31849499ed1989ad6723a7700d4ae2",
      "parents": [
        "3424c02e6b931a8bbd651ae75217bebd008b2605"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Sep 01 18:48:35 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Sep 01 20:45:39 2010 -0700"
      },
      "message": "Calculate audio media drift time from AudioSource\n\nThe problem was that the time to receive an output buffer\nfrom an audio encoder is different because the encoder does not\nneed to read from the source for all output buffers. This leads\nto large fluctuation in terms of wall clock duration between two\nneighboring audio sample outputs from the audio encoder. As a\nresult, the media time for the video track after adjustment using\nthe drifting changes wildly sometimes.\n\nThis patch addresses this issue by only updating the media drift\ntime when an audio source input buffer is read. the wall clock\nfor the audio track is also calculated at the same time when\nthe input audio buffer is read at AudioSource.\n\nbug - 2959800\n\nChange-Id: I3174aa182f744784b540f0a7198524d4eee8bd7b\n"
    },
    {
      "commit": "5fad2675e8deee60aa91d7a96c9ac4826357f2c5",
      "tree": "a6bd559cdfc301df21693357650c3b58b95e0763",
      "parents": [
        "47471175c9d19a00d06a77aa316dcda08be97deb"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Aug 31 15:20:28 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Aug 31 15:24:55 2010 -0700"
      },
      "message": "Remove incomplete input device enumeration NDK API.\n\nChange-Id: I32de74ff5fcf0e29179a2aee03ddabd22fa485bb\n"
    },
    {
      "commit": "0234376503ce421c4b871d5d811c541f5094301a",
      "tree": "6f4686cb9bdc0d19f8c4b541c57ad5b10496588a",
      "parents": [
        "6aacad66eba2b51251f7e2dfb8c005b5242326ca"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Mon Aug 30 16:01:16 2010 -0700"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Tue Aug 31 13:16:49 2010 -0700"
      },
      "message": "Don\u0027t propagate StrictMode over one-way Binder calls.\n\nThis was causing stack stitching problems where a one-way call with\nviolations followed by a two-way call without violations was getting\nthe previous one-way call\u0027s violation stack stitched on to the second\ncaller\u0027s stack.\n\nThe solution is a little more indirect than I would\u0027ve liked\n(preserving the binder\u0027s onTransact flags until enforceInterface) but\nwas seemingly necessary to work without changing the AIDL compiler.\nIt should also be sufficiently cheap, since no new calls to\nthread-local IPCThreadState lookups were required.  The additional\nwork is just same-thread getter/setters on the existing\nIPCThreadState.\n\nChange-Id: I4b6db1d445c56e868e6d0d7be3ba6849f4ef23ae\n"
    },
    {
      "commit": "8d60866e2100db70ecf0502c14768a384514d7e9",
      "tree": "514e46b4e4d58fd68cd52de93b93e7782fdf4e9f",
      "parents": [
        "bb660d7e1bed3a07a1804bd9641d9634bfaa4972"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Aug 30 03:02:23 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Aug 30 18:16:43 2010 -0700"
      },
      "message": "Input device calibration and capabilities.\n\nFinished the input device capability API.\nAdded a mechanism for calibrating touch devices to obtain more\naccurate information about the touch contact area.\nImproved pointer location to show new coordinates and capabilities.\nOptimized pointer location display and formatting to avoid allocating large\nnumbers of temporary objects.  The GC churn was causing the application to\nstutter very badly when more than a couple of fingers were down).\nAdded more diagnostics.\n\nChange-Id: Ie25380278ed6f16c5b04cd9df848015850383498\n"
    },
    {
      "commit": "7ec7b9970cc3a6311bf043e228991adf24c43523",
      "tree": "4aea84acb9fe2677227e5522b31de779c505a713",
      "parents": [
        "681c5ff2085a08835c08b97641ebdc1b37489943"
      ],
      "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": "df992ac9cc54cedb3e384617ed683a2d1a24d38b",
      "tree": "a4583c810f9d5464816365acaee51d891cc5b2f7",
      "parents": [
        "6726d6bb1a30167786864c445cbe0370ee0dd58c",
        "c4e0b70a21fadb47d70955c71fc31ce1473da925"
      ],
      "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": "c4e0b70a21fadb47d70955c71fc31ce1473da925",
      "tree": "138af40209a99a4dc3d34ad49855cba1aa9ed132",
      "parents": [
        "577615c98e390f8417e07844d04304eac5b0e911"
      ],
      "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": "90862e2a8b3ea522cf1dace5e93dcec109a1aa85",
      "tree": "95b2c116c4b3ae3b5d196ee16ff3f013ee970eab",
      "parents": [
        "b86365ad74a197f2af6d70eedeb19083e31a9686"
      ],
      "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": "b86365ad74a197f2af6d70eedeb19083e31a9686",
      "tree": "ced9f978d403df1e7353aec85bc71b7b7485c2da",
      "parents": [
        "577615c98e390f8417e07844d04304eac5b0e911",
        "d7f1c3d69274fef8772a663ce1c792fd0466fcc5"
      ],
      "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": "c9289fa1c4d3aeba5122863cdae7d0a9806d8833",
      "tree": "85f164c24002d615746a906b8862e222593ebb8f",
      "parents": [
        "ed101933ab7506d841d6eaa7bebda4b674c38088"
      ],
      "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": "d7f1c3d69274fef8772a663ce1c792fd0466fcc5",
      "tree": "0e6ea38c4933894e5058b0cbe05514a3b389f44c",
      "parents": [
        "a90b7f0125389b9e1040d2be82aad4ef74ea6071"
      ],
      "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": "c14f9ca6e5e795b641e7809786b4e51e13493907",
      "tree": "85bcd6c2690ac3be3c0c1ab855390a07ed28a7e0",
      "parents": [
        "235840228b0692b66d854ff499b5c4060f883e03",
        "a7e5648d611e6e8bdd4cafe051b5fadf3a20735c"
      ],
      "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": "efdd088a71ddd0a96cf9ca2f58e8703fe8c5c494",
      "tree": "f4bbf913a51ded55645293b85f4b5af5e8d8f7ff",
      "parents": [
        "231a0005654d23284ab58a2d9ea892b995988c34"
      ],
      "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": "a7e5648d611e6e8bdd4cafe051b5fadf3a20735c",
      "tree": "8aac4d3fc42cca5067f16ceb468b3d66c3ca8296",
      "parents": [
        "b6d71351c074d5c0bc13a91544d776f1524eaabd"
      ],
      "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": "e96aa3e859cb747e241dfa2999fcd142a688ed57",
      "tree": "8b725f12dd84b37345eebaa40951bc401b2e0a3f",
      "parents": [
        "0c76c7c5eedf90b5fa1a95b6a9944b4e58747007"
      ],
      "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": "3f51fa78ada0e064d23db5961337280c267cc2c0",
      "tree": "c85bc097a7db110f9fcb9269a100090e3f60e88c",
      "parents": [
        "b80e610b070c2cec98a228a8aec450dc24a5f90a"
      ],
      "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": "b80e610b070c2cec98a228a8aec450dc24a5f90a",
      "tree": "24a68ee70207dc82d47629a47341f64b47228e66",
      "parents": [
        "72ecb00a89b7a49eadb9c3bb880102eef97c8eb6",
        "58d3bd08107f44cba79938dd8430e69c0fda4202"
      ],
      "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": "be857d42849eaaa554d4772dbba7755f8a0f3547",
      "tree": "e6fa28c1620c2908a00b035db8d7a5da68095eae",
      "parents": [
        "6be237120e9673e3cfc5243da5bbca287effcf09"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Aug 18 15:59:25 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Aug 20 13:17:12 2010 -0700"
      },
      "message": "Reorganize MountService IPC\n\nRemove auto-generated AIDL files and replace them with manually edited\n.java and .cpp/.h files so that binder calls can be made from either\nJava or C++.\n\nUpdate the makefiles to not attempt to generate the AIDL files and also\nremove the old auto-generated .java files.\n\nPut all the storage-related C++ things in libstorage so that we don\u0027t\npollute other libraries.\n\nChange-Id: I82d1631295452709f12ff1270f36c3100e652806\n"
    },
    {
      "commit": "97a56269d06770712f9da7a2a29385012ec9714e",
      "tree": "e7f5e038f6613623eecb95fbdc20b7b6caf737ec",
      "parents": [
        "581f78615a9dc65ee264b3619ef6cdd0b0e8355c",
        "454630f23784afcf3dd6fc58becbb9fb6aa878a9"
      ],
      "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": "454630f23784afcf3dd6fc58becbb9fb6aa878a9",
      "tree": "d5ee24d80d56a0532e23c9bf92a65103161390e9",
      "parents": [
        "eba1274978911ea188eead128645299669d02f60"
      ],
      "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": "271c1bfd60eaa20c3f37e685864d992e0770ac00",
      "tree": "1b6ca1cfce57d3af44fd1dc21a72127aeefb210b",
      "parents": [
        "2f6d975b93bbc5b55c35a00d913ee38ad9b76401",
        "e7044384b24051c9ac1ceef951beb97bbf8cf0f3"
      ],
      "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": "e7044384b24051c9ac1ceef951beb97bbf8cf0f3",
      "tree": "b91aefc34bc41e167480c6f9cb2c1de3743fafd0",
      "parents": [
        "eba1274978911ea188eead128645299669d02f60"
      ],
      "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": "cbd038fe207f183bc7e0a610973473f7c2e9d118",
      "tree": "ad296b093ef6f0ba129be08686553f0e1f5cb979",
      "parents": [
        "545eab8ae80b070177cc442931eadc8cd980de26",
        "d036662470ceb6b20b0591b7d4123f2db911536d"
      ],
      "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": "d036662470ceb6b20b0591b7d4123f2db911536d",
      "tree": "6b751779eb0cc241a42034bf4e3ef74ec1691371",
      "parents": [
        "54d41379357d1d800d0a7bd7c5dc56111710482a"
      ],
      "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": "eba1274978911ea188eead128645299669d02f60",
      "tree": "9432cde7f646ecbddae7678bf39b4e5dd96f7d2e",
      "parents": [
        "ccb915963e70c9b4e8fc47b5af97ab37b979195a",
        "6c008b86409202b00fcfc2ca9db3a026c20ccaf7"
      ],
      "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": "ccb915963e70c9b4e8fc47b5af97ab37b979195a",
      "tree": "d03b17d7575b712bad18795e7ec50891655b6668",
      "parents": [
        "f0ad54846168f07fc1fd7f18cde93deea1559f86",
        "0de0c4960da1ec2f6aeada9718755c37cfee45e0"
      ],
      "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": "eef3c33e5604ae6304364b7aa6337616e2d4c61e",
      "tree": "7b957473d745cf960a6d861cab1c0180b3be100e",
      "parents": [
        "54d41379357d1d800d0a7bd7c5dc56111710482a"
      ],
      "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": "6c008b86409202b00fcfc2ca9db3a026c20ccaf7",
      "tree": "8cab8ec20dcb12f3a6bd4c81d2a5e368ef53d595",
      "parents": [
        "0de0c4960da1ec2f6aeada9718755c37cfee45e0"
      ],
      "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": "0de0c4960da1ec2f6aeada9718755c37cfee45e0",
      "tree": "d4b118c21a562585034b91b08a375476d9c1710e",
      "parents": [
        "c4554b9a0885ac3713575e91d8d33c5670b52322"
      ],
      "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": "54d41379357d1d800d0a7bd7c5dc56111710482a",
      "tree": "d755ffce6dcf08e25e081b61ec43817f8fdc9a58",
      "parents": [
        "8c192fe990d7bc7149d2ec1a7c9f4ada3f32e52a",
        "02ca31fbae9f35dd30f79de6927fae11b549391a"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Aug 19 09:09:32 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 19 09:09:32 2010 -0700"
      },
      "message": "Merge \"Add OBB flags to support overlays\" into gingerbread"
    },
    {
      "commit": "58d3bd08107f44cba79938dd8430e69c0fda4202",
      "tree": "ecf860ee17509b33fa0ca55050b16d82c7f287ba",
      "parents": [
        "b72081966da3842e27f88045cfa5a67cef3d4220"
      ],
      "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": "ae9fc03bdccda709101291bbcd3beaa5b6daebfc",
      "tree": "69367f760a943f9eda3edabcb1130302ea6cb0d8",
      "parents": [
        "6b2c56a299eb05deef2b887549e29e9e9f0f2cf6"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Aug 18 15:51:08 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Aug 18 16:58:27 2010 -0700"
      },
      "message": "Add support for throttling motion events.\n\nChange-Id: I24b3a17753e91ecda60a60fe5cd2e6b3260e033d\n"
    },
    {
      "commit": "72e0b2ab08dc49857955a4560de296fdddada8dc",
      "tree": "c8e77150d327edf1249f89faf998a6eacdd27508",
      "parents": [
        "f2af87b39b294a197b9a7aaa611a14cfcd669a16",
        "2dfd7a7cbfa565e3aca584a9e5b6f681692b5781"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Aug 18 13:38:32 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 18 13:38:32 2010 -0700"
      },
      "message": "Merge \"Fix some input device mapping bugs with certain drivers.\" into gingerbread"
    },
    {
      "commit": "2dfd7a7cbfa565e3aca584a9e5b6f681692b5781",
      "tree": "13d01c0fda0f5a5e3b6c298b5b3607f8c0e0147a",
      "parents": [
        "3922484d7458a4ab72fc1ca8952a0776dd1c7d20"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Aug 17 20:38:35 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Aug 18 13:37:45 2010 -0700"
      },
      "message": "Fix some input device mapping bugs with certain drivers.\n\nOn single-touch devices, pointer up/down is signalled by a BTN_TOUCH\nkey event.  Previously we handled BTN_TOUCH immediately but some drivers\nmay produce the sequence BTN_TOUCH, ABS_X, ABS_Y, SYN_REPORT on pointer down\nwhich caused us to emit a bad initial pointer down location.\nNow we wait for SYN_REPORT before reporting the up or down.\n\nOn multi-touch devices, pointer up can be signalled by as little as\nthe sequence SYN_MT_REPORT, SYN_REPORT.  This change ensures that we\nhandle this case.\n\nAdded support for reading ABS_MT_PRESSURE when available.\nCorrected mapping of touchMajor/touchMinor on single touch devices.\nMinor code cleanup.\n\nChange-Id: Ic7ec4811241ed85a06e59b8a839ca05180d491d4\n"
    },
    {
      "commit": "c4554b9a0885ac3713575e91d8d33c5670b52322",
      "tree": "2d2b2a6dbc6ea600ac269e753773e9a8a42967ee",
      "parents": [
        "d313cab46e07c40f4cd1a94304a553e7eb809190"
      ],
      "author": {
        "name": "Jens Gulin",
        "email": "jens.gulin@sonyericsson.com",
        "time": "Tue Jun 22 22:21:57 2010 +0200"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Aug 18 10:54:03 2010 -0700"
      },
      "message": "Keep track of remaining fd when devices are removed\n\nSometimes the wrong fd was accessed when the device was addressed\nby device id.\n\nThe earlier implementation assumed that two arrays were in sync\nbut one of them was compacted when devices were removed. Instead\nof that dependency the device now keeps track of it\u0027s file descriptor.\n\nChange-Id: Ib0f320603aafb07ded354bc3687de9759c9068f2\n"
    },
    {
      "commit": "c86960236d5b2095c87bf46de2400a905acabee2",
      "tree": "3eb3e1cf5abf4179bc503f09a66c7a17afc23bae",
      "parents": [
        "4dda6ddb25e904c17dcb3012dd229df6ae4692cd",
        "f008f3ea82a0518375ee4ea41b32451badffbd95"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Wed Aug 18 10:19:45 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 18 10:19:45 2010 -0700"
      },
      "message": "Merge \"Document that autoFocus must be called in auto and macro mode.\" into gingerbread"
    },
    {
      "commit": "02ca31fbae9f35dd30f79de6927fae11b549391a",
      "tree": "dc037f02f42db20ba1f086e707fd53a71ea4c4c5",
      "parents": [
        "baf3869b88ab4e31f792dbe08f61725bc3619ea8"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Aug 12 07:36:02 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Aug 18 09:34:58 2010 -0700"
      },
      "message": "Add OBB flags to support overlays\n\n* Add flags field in OBB footer to support overlays.\n\n* Remove unused \u0027crypto\u0027 and \u0027filesystem\u0027 fields in obbtool (could\n  later be supported in the \"flags\" field of the OBB footer).\n\n* Add notes to document OBB classes before shipping.\n\nChange-Id: I386b43c32c5edef55210acb5d3322639c08010ba\n"
    },
    {
      "commit": "cc2e717f1d43a836d1abdee06bcb946416d06fd6",
      "tree": "d55b14467e2c1f0d1b0ec9f5a212513af4bc17b6",
      "parents": [
        "72ce42352c1c229e05d910b4176f3cddb608e814"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Aug 17 16:48:25 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Aug 17 19:40:26 2010 -0700"
      },
      "message": "Optimize EventHub reads.\n\nChange-Id: Id7d09c0a6e5c741c1e29becd2b6560772c5ff372\n"
    },
    {
      "commit": "2cbecea4c9627d95377fc3e3b8a319116cee7feb",
      "tree": "da379443f3e609953e9e1aa1f8d8325ad42d2a68",
      "parents": [
        "90291577a08f582e0978651f55dd950f40eb111d"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Aug 17 15:59:26 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Aug 17 17:03:42 2010 -0700"
      },
      "message": "Fix possible race conditions during channel unregistration.\n\nPreviously, the input dispatcher assumed that the input channel\u0027s\nreceive pipe file descriptor was a sufficiently unique identifier for\nlooking up input channels in its various tables.  However, it can happen\nthat an input channel is disposed and then a new input channel is\nimmediately created that reuses the same file descriptor.  Ordinarily\nthis is not a problem, however there is a small opportunity for a race\nto arise in InputQueue.\n\nWhen InputQueue receives an input event from the dispatcher, it\ngenerates a finishedToken that encodes the channel\u0027s receive pipe fd,\nand a sequence number.  The finishedToken is used by the ViewRoot\nas a handle for the event so that it can tell the InputQueue when\nthe event has finished being processed.\n\nHere is the race:\n\n1. InputQueue receives an input event, assigns a new finishedToken.\n2. ViewRoot begins processing the input event.\n3. During processing, ViewRoot unregisters the InputChannel.\n4. A new InputChannel is created and is registered with the Input Queue.\n   This InputChannel happens to have the same receive pipe fd as\n   the one previously registered.\n5. ViewRoot tells the InputQueue that it has finished processing the\n   input event, passing along the original finishedToken.\n6. InputQueue throws an exception because the finishedToken\u0027s receive\n   pipe fd is registered but the sequence number is incorrect so it\n   assumes that the client has called finish spuriously.\n\nThe fix is to include a unique connection id within the finishedToken so\nthat the InputQueue can accurately confirm that the token belongs to\nthe currently registered InputChannel rather than to an old one that\nhappened to have the same receive pipe fd.  When it notices this, it\nignores the spurious finish.\n\nI\u0027ve also made a couple of other small changes to avoid similar races\nelsewhere.\n\nThis patch set also includes a fix to synthesize a finished signal\nwhen the input channel is unregistered on the client side to\nhelp keep the server and client in sync.\n\nBug: 2834068\nChange-Id: I1de34a36249ab74c359c2c67a57e333543400f7b\n"
    },
    {
      "commit": "f008f3ea82a0518375ee4ea41b32451badffbd95",
      "tree": "f712158639c0b60566f7077a94ac3cde6bcb7fb8",
      "parents": [
        "e6bfceeb10a01c8e89f712c0ffddc9e5e3ad1842"
      ],
      "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": "b72081966da3842e27f88045cfa5a67cef3d4220",
      "tree": "1469bf4633371ea89bbad0a20a2067b6ea1a882e",
      "parents": [
        "6a73368be44f45a80cc4b65dc57b9ff529cb2d89"
      ],
      "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": "699fe9397974685e6b2c73f9a3a0eb9e5a5a2ccf",
      "tree": "bab0306a9a6004c8e4c5ca952ef99f5c91583be4",
      "parents": [
        "ae3a1f45951aeb716e1f6b9a99a09838eb55dab4"
      ],
      "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": "45cb3cfacf3b07ae3c5f15eba9bbbcd060cee261",
      "tree": "773d6f747e55868f205f5ce82257d5bf85fdd61c",
      "parents": [
        "b6541f0af89b1fe85cb53e5dac461587eb040fb0",
        "afe5305855e2f3d830337f768028615a44d4aa16"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Aug 12 10:07:51 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 12 10:07:51 2010 -0700"
      },
      "message": "Merge \"Handle large audio lost\" into gingerbread"
    },
    {
      "commit": "95af0c14a64ef264d2b362ded4ca2b5a169d1066",
      "tree": "fba4bb178de08e99f4c71f882809bab315cec33a",
      "parents": [
        "bd1c082cf90d07e3ccb017b72e59b5ccad81dd07",
        "a41ca77fabe1c7ad12ebb9b69b9e786c07d49fa0"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Aug 11 16:15:48 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 11 16:15:48 2010 -0700"
      },
      "message": "Merge \"Add support for the PointerLocation overlay.\" into gingerbread"
    },
    {
      "commit": "a41ca77fabe1c7ad12ebb9b69b9e786c07d49fa0",
      "tree": "65d87a9c55c869843540884f0fbced6a69841895",
      "parents": [
        "c3fc2d03d58a258c53c9265a70143d4af076b764"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Aug 11 14:46:32 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Aug 11 14:46:32 2010 -0700"
      },
      "message": "Add support for the PointerLocation overlay.\n\nThis change involves adding a new method to IWindowManager,\nmonitorInput() that returns an InputChannel to receive a copy of all\ninput that is dispatched to applications.  The caller must have\nthe READ_INPUT_STATE permission to make this request (similar to\nother window manager methods such as getKeycodeState).\n\nChange-Id: Icd14d810174a5b2928671ef16de73af88302aea0\n"
    },
    {
      "commit": "6e7ac5f0bceddf51947fbf3b376e278df0735603",
      "tree": "36772b5b1e134baddbc24b73bb59ee701c3acc58",
      "parents": [
        "a02b8b05dd1e8b8cf169e1f89542ef835b11fc13"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Jul 19 10:31:34 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Aug 11 11:24:41 2010 -0700"
      },
      "message": "Initial tool for OBB manipulation\n\nAdd \"obbtool\" host command for adding, removing, and querying Opaque\nBinary Blob (OBB) information from a file.\n\nChange-Id: Id2ac41e687ad2a500c362616d6738a8ae7e8f5c3\n"
    },
    {
      "commit": "08d5b8fad8d46ccb64db2fdcb4d66972ec87bf48",
      "tree": "7e2e67603ec8a2ca164548301b65a2b733df76a0",
      "parents": [
        "091c5238a00ca51dc69b8b09459e6ac88e1eb077"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 04 11:12:40 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 11 00:29:59 2010 -0700"
      },
      "message": "More native work.\n\nImplement save/restore of state, and add native APIs for\nconfiguration information.\n\nChange-Id: I2a3ddc2ba605db58d7c8b2b31b9215fb323f90b5\n"
    },
    {
      "commit": "afe5305855e2f3d830337f768028615a44d4aa16",
      "tree": "edc28f3a5851a1526ffa32684afa9914636cd044",
      "parents": [
        "224ab9a5c6f7ae70fe55bf3d5604cbdf883baee7"
      ],
      "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": "c3fc2d03d58a258c53c9265a70143d4af076b764",
      "tree": "762de411088b9854a766fbe382235bd6fa913df1",
      "parents": [
        "d98d0fc6e9172d3f130794e499462c911920adf6"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Aug 10 15:47:53 2010 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Aug 10 16:28:03 2010 -0700"
      },
      "message": "Fix safe mode and KeyEvent.getMaxKeyCode().\n\nBug: 2901731\nChange-Id: I78617c1b9dee3790fc590e5af4b5083368873184\n"
    },
    {
      "commit": "520b2a7039792f03da11a8d54344f10175cebfbc",
      "tree": "40837571e5af61b61629048ef65a964137cd8b07",
      "parents": [
        "8fb2e6e4720385961083a150a3e848ccaef544ae"
      ],
      "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": "818490ab2abe36dfc6c13d01fea5220bd64cca8c",
      "tree": "6d4cb2b5e7c04d620b3c5d52b349a600129c3e44",
      "parents": [
        "5723dfe8c87d0887b8926f43637ed300466890d2"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Aug 05 16:21:23 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Aug 06 09:00:10 2010 -0700"
      },
      "message": "Fix String8::operator+\n\nThe LHS was ignored when using:\n  String8 + String8\n  String8 + (const char*)\n\nAdd unit tests for above.\n\nBug: 2898473\nChange-Id: Ic8fe7be668b665c36aaaa3fc3c3ffdfff0fbba25\n"
    },
    {
      "commit": "1441bdfc19d6998607adf1347ed8dafc102908c9",
      "tree": "7bcf096e71467d8a059a8957f191292f63b921aa",
      "parents": [
        "3aad8c38520956708e51882f3fad63a7a217e8e4",
        "afd97e82cf28d72048c44f78c211a3e9ac6e11e5"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Aug 05 15:10:03 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 05 15:10:03 2010 -0700"
      },
      "message": "Merge \"Use the target color format from the camera source if possible\" into gingerbread"
    },
    {
      "commit": "afd97e82cf28d72048c44f78c211a3e9ac6e11e5",
      "tree": "a93d77e520ffb6b6e3cb799f33c02b683adfa978",
      "parents": [
        "2c37f3d3a09188f3dc66e177547709e4828918be"
      ],
      "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": "3c7c351a6217ac48b741740167c201a679a0ca65",
      "tree": "f539d70e0a46249f01dd6fb45563f1ebc4bed706",
      "parents": [
        "cde66df44240cfe5a7bec12ac52464c3bf26c14f"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Aug 04 15:44:39 2010 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Aug 04 23:47:38 2010 -0700"
      },
      "message": "Tracking merge of dalvik-dev to gingerbread\n\ngit cherry-pick --no-commit f77cf7f0\ngit cherry-pick --no-commit c8f503b5285e30c1a881d0ba860ba9021f57d113\ngit cherry-pick --no-commit 570bb561\ngit cherry-pick --no-commit e2417541\ngit cherry-pick --no-commit e4d81f25bd4dc1a5c909b56ab56a56406290da30\ngit cherry-pick --no-commit 5e8a587d\n\nChange-Id: I101a385d43f3e0f4ce5352217f92ef67a3908c88\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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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"
    }
  ],
  "next": "2c6081ce3593712f30dacd990a97209c791d6ced"
}
