)]}'
{
  "log": [
    {
      "commit": "1423f51ec5fe2c9bf5fa44866443b2c52db165be",
      "tree": "0ab080b873257293730980e9d2479045a1af2e2e",
      "parents": [
        "fdf5b0808ff6f6a3c067dab17a9533cfd66229f1",
        "ae087369c56a270c33c1c1af5be7d3c5d7f94e80"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Tue Aug 31 15:06:24 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 31 15:06:24 2010 -0700"
      },
      "message": "am ae087369: am 63070856: Merge \"Don\\\u0027t propagate StrictMode over one-way Binder calls.\" into gingerbread\n\nMerge commit \u0027ae087369c56a270c33c1c1af5be7d3c5d7f94e80\u0027\n\n* commit \u0027ae087369c56a270c33c1c1af5be7d3c5d7f94e80\u0027:\n  Don\u0027t propagate StrictMode over one-way Binder calls.\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": "06a1d619aad17be48f6636b8dd68914da9e9ee53",
      "tree": "79c421bb197da53570bb0dc11f841bdfbdf6ff7d",
      "parents": [
        "b33a5aea130b025f30966828562fcba56f25b265"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Mon Aug 30 14:55:55 2010 -0700"
      },
      "committer": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Tue Aug 31 10:38:49 2010 -0700"
      },
      "message": "Added VideoSourceDownSampler\n\nVideoSourceDownSampler takes in a real video source. The MediaSource\ninterface is then implemented by shortcircuiting calls to this real source,\nexcept for the read() function. For read we first call read of the real\nsource, then downsample the frame to the desired size and return that.\n\nChange-Id: I6e1b377e043e136a70a7b03792eb9165bbe26398\n"
    },
    {
      "commit": "b33a5aea130b025f30966828562fcba56f25b265",
      "tree": "14bf73041e696dc6b810a82366e5fb09366da114",
      "parents": [
        "d7e7a3f98ffb5da7fe070de2e2dc3db338930b57"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Thu Aug 26 17:20:53 2010 -0700"
      },
      "committer": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Tue Aug 31 10:38:49 2010 -0700"
      },
      "message": "Added setAuxiliaryOutputFile to MediaRecorder and JNI\n\nadded setAuxiliaryOutputFile to allow setting of an auxiliary output file.\nAlso added the JNI support.\n\nChange-Id: I8c3335192bd6f7fcbfdfc8552cfd0848f2ad2a5d\n"
    },
    {
      "commit": "22f5ee93746f37823265b8cb9b1e94e572607514",
      "tree": "269e105935875e8453c0bd33792fdeedd4c928ee",
      "parents": [
        "02f4f0eb4919453e8dbf40549d4ae9c05f05b8dd",
        "36f0cb26cbb4ef62995ff2e5a540cf8814e7f030"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Aug 30 18:29:12 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 30 18:29:12 2010 -0700"
      },
      "message": "am 36f0cb26: am 8d60866e: Input device calibration and capabilities.\n\nMerge commit \u002736f0cb26cbb4ef62995ff2e5a540cf8814e7f030\u0027\n\n* commit \u002736f0cb26cbb4ef62995ff2e5a540cf8814e7f030\u0027:\n  Input device calibration and capabilities.\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": "b8f7f42f70790121f954c2ae3d2e7b915808510a",
      "tree": "b1021e2ca1cc67ee9416b79b3cd2ca11bbfb38f7",
      "parents": [
        "1ace4163fa8015c58b28aaa7b0d8d49bdee654d1",
        "6e46e6f7488ad1f4e6ab762d141790798fe3f2d5"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Mon Aug 30 14:06:16 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 30 14:06:16 2010 -0700"
      },
      "message": "am 6e46e6f7: am 7ec7b997: Remove camera metering mode API.\n\nMerge commit \u00276e46e6f7488ad1f4e6ab762d141790798fe3f2d5\u0027\n\n* commit \u00276e46e6f7488ad1f4e6ab762d141790798fe3f2d5\u0027:\n  Remove camera metering mode API.\n"
    },
    {
      "commit": "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": "631025eec0a7d14efb3569f1941a8f8ead5283c4",
      "tree": "bc1476e4bad0044a10ff45ae135feda4affc5719",
      "parents": [
        "ec959a7e38d4a6551bb18e096a912ff8c75c50b3",
        "6df6d60681be9d524ce7fc07f2511008de424d27"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Aug 30 13:29:51 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 30 13:29:51 2010 -0700"
      },
      "message": "am 6df6d606: am df992ac9: Merge \"ALoopers can now be named (useful to distinguish threads).\" into gingerbread\n\nMerge commit \u00276df6d60681be9d524ce7fc07f2511008de424d27\u0027\n\n* commit \u00276df6d60681be9d524ce7fc07f2511008de424d27\u0027:\n  ALoopers can now be named (useful to distinguish threads).\n"
    },
    {
      "commit": "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": "453f2ef14a9de3415f1da818d7c42a3b5e11a62a",
      "tree": "91ca06c1260d6174a7e3b8354de36cdda4204b48",
      "parents": [
        "818c830c59fb8fb0fe7576f1e5a073ab599227c8",
        "ea434daf19c30f1a7806f1c7e01e6e2174a7ef5d"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Fri Aug 27 18:21:30 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 27 18:21:30 2010 -0700"
      },
      "message": "Merge \"client_id-\u003eclientId, bugfix for signaling of read abort on stop.\""
    },
    {
      "commit": "ea434daf19c30f1a7806f1c7e01e6e2174a7ef5d",
      "tree": "f3dfb15d0d379c65de44d5726db1472f41667f77",
      "parents": [
        "f83cba77b69b4db2d4db10fafb528196e5590110"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Fri Aug 27 14:19:01 2010 -0700"
      },
      "committer": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Fri Aug 27 18:19:22 2010 -0700"
      },
      "message": "client_id-\u003eclientId, bugfix for signaling of read abort on stop.\n\n- changed client_id-\u003eclientId, mClient_id-\u003emClientId\n- there was a bug in the condition for calling\n  signalReadComplete_lock() in stop. We should call it only when\n  !mLastReadCompleted and also if the current client has not already\n  completed its read (this second check was missing before).\n\nChange-Id: I9a57cf6b5c6f3260883a6c74d0c7b22f675c422e\n"
    },
    {
      "commit": "206bf9df4839395e52a6834f9a0a452d355bad36",
      "tree": "334b5e02cbcf2e23958de6deef6d1170cdd51744",
      "parents": [
        "7fe6d3f13ae18a85c09bf38ea1f3281280a9fd48",
        "a5fe77d004091bd9521d087c2572f587191afbfc"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Aug 27 18:10:01 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 27 18:10:01 2010 -0700"
      },
      "message": "am a5fe77d0: am df8356ff: Merge \"Workaround for a QCOM issue where the output buffer size advertised by the AVC encoder is occasionally too small.\" into gingerbread\n\nMerge commit \u0027a5fe77d004091bd9521d087c2572f587191afbfc\u0027\n\n* commit \u0027a5fe77d004091bd9521d087c2572f587191afbfc\u0027:\n  Workaround for a QCOM issue where the output buffer size advertised by the AVC encoder\n"
    },
    {
      "commit": "c6ff7a91890305877410c5ddf853bd961a7d11cc",
      "tree": "be43725eacd51e49f70556722d8dc0a11b619001",
      "parents": [
        "8abd4256f3b94d5e44583a975603894c52dc039a",
        "7d3ff3849c830f0136c692b6074f1ba5da288fe7"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Aug 27 18:09:37 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 27 18:09:37 2010 -0700"
      },
      "message": "am 7d3ff384: am b86365ad: Merge \"Suppress the video recording start signal - bug 2950297\" into gingerbread\n\nMerge commit \u00277d3ff3849c830f0136c692b6074f1ba5da288fe7\u0027\n\n* commit \u00277d3ff3849c830f0136c692b6074f1ba5da288fe7\u0027:\n  Suppress the video recording start signal\n"
    },
    {
      "commit": "54c4bf27437b8d7f8d2a494acd9de53d55696dea",
      "tree": "0045c300c5f2cbd1ddb2756a31f79b80fa7b0eb3",
      "parents": [
        "4dcea37d48cc25d5e5e5cc56f7ca3d90d4efd49d",
        "d322d16323176ddd5fef3383798176f64d0078c8"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Aug 27 16:18:12 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 27 16:18:12 2010 -0700"
      },
      "message": "am d322d163: am ae66946b: Merge \"fix a race in SF buffer management\" into gingerbread\n\nMerge commit \u0027d322d16323176ddd5fef3383798176f64d0078c8\u0027\n\n* commit \u0027d322d16323176ddd5fef3383798176f64d0078c8\u0027:\n  fix a race in SF buffer management\n"
    },
    {
      "commit": "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": "cf66e47dddee9b1e634e63ab6ed66bccbef57884",
      "tree": "77e1603884b387a6774afad8ed9b5d5e919ce349",
      "parents": [
        "3fec2bf9bfcc6a43c6284f5ab1127f10f3d0a173",
        "f83cba77b69b4db2d4db10fafb528196e5590110"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Fri Aug 27 13:48:15 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 27 13:48:15 2010 -0700"
      },
      "message": "Merge \"Added MediaSourceSplitter to split single source to multiple ones.\""
    },
    {
      "commit": "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": "f83cba77b69b4db2d4db10fafb528196e5590110",
      "tree": "99e381f74145570ff789da4422fcc00b981626a6",
      "parents": [
        "2b342f0a76f3237e97f15dc2f4e8a0b72dd7c023"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Thu Aug 26 15:59:19 2010 -0700"
      },
      "committer": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Fri Aug 27 13:46:41 2010 -0700"
      },
      "message": "Added MediaSourceSplitter to split single source to multiple ones.\n\nMediaSourceSplitter provides a way to split a single mediaSource\ninto multiple sources. It takes in the real mediaSource and multiple\nclients can then be created which serve from the same real mediaSource.\n\nChange-Id: I7254ead24b4c26c784b033e6bc7ff5a0d083a0c3\n"
    },
    {
      "commit": "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": "ec95d932546186ad7ad1d847a6e8f7529e7c7d83",
      "tree": "c9e52168e0669835e343364353466247318cda03",
      "parents": [
        "bf4c0c88087995db55699ec29b44ede04e432fe8",
        "8ca5df27df8a2b6435486f9b5a163bf222f8fed1"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Aug 25 15:16:00 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 25 15:16:00 2010 -0700"
      },
      "message": "am 8ca5df27: am c14f9ca6: Merge \"Added preset reverb.\" into gingerbread\n\nMerge commit \u00278ca5df27df8a2b6435486f9b5a163bf222f8fed1\u0027\n\n* commit \u00278ca5df27df8a2b6435486f9b5a163bf222f8fed1\u0027:\n  Added preset reverb.\n"
    },
    {
      "commit": "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": "a1644109bb68f0c6d7b29d60a06172702d64a964",
      "tree": "603181d02df503a057b87b850051c752e5e83e7e",
      "parents": [
        "cb3be1b4d9fe6667479f9d6acfd37aa8b73fae61",
        "96dc45597e53742a2c8453f9ce03f7d501a75668"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 25 13:17:44 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 25 13:17:44 2010 -0700"
      },
      "message": "am 96dc4559: am b8814dce: Merge \"Allow sniffers to return a packet of opaque data that the corresponding extractor can take advantage of to not duplicate work already done sniffing. The mp3 extractor takes advantage of this now.\" into gingerbread\n\nMerge commit \u002796dc45597e53742a2c8453f9ce03f7d501a75668\u0027\n\n* commit \u002796dc45597e53742a2c8453f9ce03f7d501a75668\u0027:\n  Allow sniffers to return a packet of opaque data that the corresponding extractor can take advantage of to not duplicate work already done sniffing. The mp3 extractor takes advantage of this now.\n"
    },
    {
      "commit": "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": "bce2e90ca9bc2277a4816b7996f84506df411cf9",
      "tree": "2a1902282acfebe7f68a202a4c43ffbeb0e9df6d",
      "parents": [
        "8d9d751a8f09a0199d1d22a3f8267eb51f919cc0",
        "bc4389edfbb5777aec1a9af7863b2ca3ade2fa64"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 24 17:56:40 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 24 17:56:40 2010 -0700"
      },
      "message": "am bc4389ed: am 8395b462: Merge \"fix [2931513] Add support for setting the orientation of an ANativeWindow\" into gingerbread\n\nMerge commit \u0027bc4389edfbb5777aec1a9af7863b2ca3ade2fa64\u0027\n\n* commit \u0027bc4389edfbb5777aec1a9af7863b2ca3ade2fa64\u0027:\n  fix [2931513] Add support for setting the orientation of an ANativeWindow\n"
    },
    {
      "commit": "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": "7741ecc907d98b07c53b6ab1c0b5a20a51d18058",
      "tree": "cc1129208f1c500d196ae35a4097602bebff6ec0",
      "parents": [
        "3f6855ba6c87a6f364daed6cb03aec5d735847ae",
        "28a92120a702289533a9c9d004bd60f83b2fd98b"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Aug 24 11:20:40 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 24 11:20:40 2010 -0700"
      },
      "message": "am 28a92120: am 3f51fa78: Runtime dump support for MediaWriter\n\nMerge commit \u002728a92120a702289533a9c9d004bd60f83b2fd98b\u0027\n\n* commit \u002728a92120a702289533a9c9d004bd60f83b2fd98b\u0027:\n  Runtime dump support for MediaWriter\n"
    },
    {
      "commit": "3f6855ba6c87a6f364daed6cb03aec5d735847ae",
      "tree": "9975a97a0d744e4e41b2d142780d79f9a7fca6aa",
      "parents": [
        "14ee4cf30537a62b6af46cef70e6644fefc381d3",
        "a102871c7cbb74ebddc53231a871145de61351b0"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Tue Aug 24 11:19:28 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 24 11:19:28 2010 -0700"
      },
      "message": "am a102871c: am b80e610b: Merge \"Visualizer: replace the FFT implementation with a faster one.\" into gingerbread\n\nMerge commit \u0027a102871c7cbb74ebddc53231a871145de61351b0\u0027\n\n* commit \u0027a102871c7cbb74ebddc53231a871145de61351b0\u0027:\n  Visualizer: replace the FFT implementation with a faster one.\n"
    },
    {
      "commit": "53e75ea847df20b29124966a4232dc0109c37e27",
      "tree": "4c545e0c93b0d50122002201d3f6836225a6b3dd",
      "parents": [
        "d820714e30a53b244d252e77c7922e2c1604adbc",
        "485de781f6bd30dfb7aa1e55c4f1efb3d3b11eba"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Aug 24 09:57:33 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Aug 24 09:57:33 2010 -0700"
      },
      "message": "resolved conflicts for merge of 485de781 to master\n\nChange-Id: I483cb81596f09b024b1aea7fc55960183f38b24f\n"
    },
    {
      "commit": "eee09313c659b1c97ef6188b6ae4066c87615159",
      "tree": "18fefae142edd6cc1ce351d3fea6008afee8f78e",
      "parents": [
        "e2d37b03f72986ad6faaf2d0f66ecf33e6bfb55a",
        "346b6126d54bda4ddc705b27f49004b5cf3a2b3e"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Tue Aug 24 09:01:27 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 24 09:01:27 2010 -0700"
      },
      "message": "am 346b6126: am 97a56269: Merge \"Add camera fps range API.\" into gingerbread\n\nMerge commit \u0027346b6126d54bda4ddc705b27f49004b5cf3a2b3e\u0027\n\n* commit \u0027346b6126d54bda4ddc705b27f49004b5cf3a2b3e\u0027:\n  Add camera fps range API.\n"
    },
    {
      "commit": "85cfdd011241a5f2fb7fabc65b5943a39af7e1de",
      "tree": "556bd6f34ae8d300d9fa05fe46bb0dc4d8aa43e0",
      "parents": [
        "7fdaa2329e755c0e5c25724a43b8c361b88e9623"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Aug 10 16:37:53 2010 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Aug 23 14:31:30 2010 -0700"
      },
      "message": "Change the framework to use the new camera preview path.\n\nThis change makes the camera HAL interface take an ANativeWindow interface from\nwhich all the camera preview buffers will be allocated.  The framework code\nrunning in application processes now passes a Surface object rather than an\nISurface to the camera server via Binder when setting the preview surface.  The\ncamera server then forwards that Surface object (which implements the\nANativeWindow interface) to the camera HAL, which uses it to communicate with\nSurfaceFlinger to allocate the camera preview buffers.\n\nChange-Id: Ie438f721559cd7de5e4f848a26d96360dda07b5f\n"
    },
    {
      "commit": "d5350764c9cbb27b91ca0503d6e318dffabe969f",
      "tree": "bb237345667138cf8776bed5a0a0d663bfa1a1da",
      "parents": [
        "27113f86461fb19005900b8d6cebf264ecf77409",
        "e3c01832fc741e9908f047d86cd40db1ea5d78c8"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Aug 23 12:31:59 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 23 12:31:59 2010 -0700"
      },
      "message": "Merge \"Squashed commit of the following:\""
    },
    {
      "commit": "e3c01832fc741e9908f047d86cd40db1ea5d78c8",
      "tree": "6765bad7dbcf95dc5ca28ba5b2de5f7a70047712",
      "parents": [
        "ed23e3b87906d367304dbf5bd49ed17448d5d684"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Aug 16 08:49:37 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Aug 23 12:30:24 2010 -0700"
      },
      "message": "Squashed commit of the following:\n\ncommit 35cc68814a9537c31fde146e171e7b0bbdfe211e\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Aug 16 08:48:42 2010 -0700\n\n    Only enable support for yuv to yuv conversion on passion, where it\u0027s available, use the slower yuv-\u003ergb565 path everywhere else.\n\ncommit d8ac5a8814103e60d11d2acf61997fc31a1dc58d\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Aug 13 13:56:44 2010 -0700\n\n    The software renderer takes over all rendering, converting from yuv to yuv if possible and rgb565 otherwise.\n\ncommit 684972074b74318bdcb826ed9b5b0864d2d2e273\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Aug 13 09:34:35 2010 -0700\n\n    A first shot at supporting the new rendering APIs.\n\nChange-Id: Iea9b32856da46950501f1a700f616b5feac710fd\n"
    },
    {
      "commit": "6c32677db33565fc2798b96b03dd19be2f81084c",
      "tree": "d42adfc0445d8c6d2824d00231ae65737c7e6922",
      "parents": [
        "a931e9a15840f9074f1803b5adb2f23b40a1ab1b",
        "caaf7fe3a407c764f643585d050c16f5fb56503c"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Mon Aug 23 12:02:21 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 23 12:02:21 2010 -0700"
      },
      "message": "am caaf7fe3: am 271c1bfd: Merge \"Handle the camera open failure better.\" into gingerbread\n\nMerge commit \u0027caaf7fe3a407c764f643585d050c16f5fb56503c\u0027\n\n* commit \u0027caaf7fe3a407c764f643585d050c16f5fb56503c\u0027:\n  Handle the camera open failure better.\n"
    },
    {
      "commit": "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": "349250f3b64421f59439355c80a4540fbb34dda5",
      "tree": "2f95cea2c082c4035e62cb766d3089a809f6e80c",
      "parents": [
        "0b6d4aed033c774f044691d163040c2e8a115f8a",
        "c8d2fa704abebdbf0bd8aac185216dc068950217"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Sat Aug 21 09:43:41 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Aug 21 09:43:41 2010 -0700"
      },
      "message": "am c8d2fa70: am cbd038fe: Merge \"Make MediaWriter stop and pause return errors if necessary\" into gingerbread\n\nMerge commit \u0027c8d2fa704abebdbf0bd8aac185216dc068950217\u0027\n\n* commit \u0027c8d2fa704abebdbf0bd8aac185216dc068950217\u0027:\n  Make MediaWriter stop and pause return errors if necessary\n"
    },
    {
      "commit": "fc5d0cf56401a56f58b12412617e4b84bea2771b",
      "tree": "07e69da39fdc565ffaf3f31fa5db6effdf1cca8e",
      "parents": [
        "08b352be43845d413086ba1dd48db54fe41a309d",
        "b29ebd397e25a7176bcc1c81980f17b0190ebe7f"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Sat Aug 21 09:41:54 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Aug 21 09:41:54 2010 -0700"
      },
      "message": "am b29ebd39: am f0ad5484: Merge \"In the absence of width/height information in the sdp, extract the dimensions from the avc codec specific data.\" into gingerbread\n\nMerge commit \u0027b29ebd397e25a7176bcc1c81980f17b0190ebe7f\u0027\n\n* commit \u0027b29ebd397e25a7176bcc1c81980f17b0190ebe7f\u0027:\n  In the absence of width/height information in the sdp, extract the dimensions from the avc codec specific data.\n"
    },
    {
      "commit": "e49564e0f710ba4a1405cfdfde068cb776ee474e",
      "tree": "e3dfafb6e37ed94f247cd87313a88174ca943bef",
      "parents": [
        "a6a0fe436b37693a57d23be99da89024cdc99c9d",
        "821afa9aec8d3a4ffd2e72ce797d8097eaf13973"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Sat Aug 21 09:41:12 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Aug 21 09:41:12 2010 -0700"
      },
      "message": "am 821afa9a: am 54d41379: Merge \"Add OBB flags to support overlays\" into gingerbread\n\nMerge commit \u0027821afa9aec8d3a4ffd2e72ce797d8097eaf13973\u0027\n\n* commit \u0027821afa9aec8d3a4ffd2e72ce797d8097eaf13973\u0027:\n  Add OBB flags to support overlays\n"
    },
    {
      "commit": "feb02e7695c99d6eab0884f2424cff5bf48f4df4",
      "tree": "ea768208836244e89363d14d13a1c88aab5274f3",
      "parents": [
        "37444f4239b26944d24f039c537d411ac7004243",
        "d25f0aea1cebe93aff55a75374e172f87115f1b3"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sat Aug 21 09:35:13 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Aug 21 09:35:13 2010 -0700"
      },
      "message": "am d25f0aea: am 99401b29: Merge \"Add support for throttling motion events.\" into gingerbread\n\nMerge commit \u0027d25f0aea1cebe93aff55a75374e172f87115f1b3\u0027\n\n* commit \u0027d25f0aea1cebe93aff55a75374e172f87115f1b3\u0027:\n  Add support for throttling motion events.\n"
    },
    {
      "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": "727f658e81acadd082d2a658ece2b0b45e62c0fc",
      "tree": "7ee4792c4fd58f9bcff04081430d9e8d1661574f",
      "parents": [
        "437e6c49f1052184e01231e6f33ad21c91fc2d36",
        "96624731c31de41968539b7c95b124d0845929e4"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Fri Aug 20 11:35:38 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 20 11:35:38 2010 -0700"
      },
      "message": "Merge \"Added downsample()\""
    },
    {
      "commit": "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": "96624731c31de41968539b7c95b124d0845929e4",
      "tree": "8de0119dda40c8e4de0893102d890c4353fafe4b",
      "parents": [
        "d1fbdf1a3f1e0609756f01e7eae5a8334777fa06"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Thu Aug 19 17:45:45 2010 -0700"
      },
      "committer": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Fri Aug 20 10:54:59 2010 -0700"
      },
      "message": "Added downsample()\n\nAdded a downsample function which downsamples the source image\nstarting at an offset and skipping every few pixels. Currently\nno low pass filtering is done, but it should be added later.\n\nChange-Id: Iec34092c536bfc661a15521e6a1ef2ef3f815c61\n"
    },
    {
      "commit": "437e6c49f1052184e01231e6f33ad21c91fc2d36",
      "tree": "256cbfc5abacc7e67e32b117cc04e0e1732b52a5",
      "parents": [
        "0dc4d15cdc1f7078d6e2ed8209aa41b5afd3d4ba",
        "d1fbdf1a3f1e0609756f01e7eae5a8334777fa06"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Fri Aug 20 10:41:08 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 20 10:41:08 2010 -0700"
      },
      "message": "Merge \"const correctness, validPixel test.\""
    },
    {
      "commit": "0ca7aae911be0a9585cafce6eb614b3d69607e10",
      "tree": "ce9abfc3be3a88736c395b78ecf76c19a452263c",
      "parents": [
        "cdea9193f2745fd46e69858a7c5570d95f8182dc",
        "33992d4195fe55f42ba6919f5a07707a51a12d5d"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Aug 19 23:43:19 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 19 23:43:19 2010 -0700"
      },
      "message": "am 33992d41: am 72e0b2ab: Merge \"Fix some input device mapping bugs with certain drivers.\" into gingerbread\n\nMerge commit \u002733992d4195fe55f42ba6919f5a07707a51a12d5d\u0027\n\n* commit \u002733992d4195fe55f42ba6919f5a07707a51a12d5d\u0027:\n  Fix some input device mapping bugs with certain drivers.\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": "d1fbdf1a3f1e0609756f01e7eae5a8334777fa06",
      "tree": "3bf54042f300206250d325c6a7193d446858d343",
      "parents": [
        "7d73206ab263e1114b4711912ac3eb786f91b6c5"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Thu Aug 19 17:34:52 2010 -0700"
      },
      "committer": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Thu Aug 19 18:26:58 2010 -0700"
      },
      "message": "const correctness, validPixel test.\n\n- made width(), height() const member functions.\n- added validPixel() which returns true if pixel is in the allowed range.\n- now testing validPixel in get/setPixelValue\n\nChange-Id: I1dee5060bd4f8dcbdcd542ec4647ea328f0185c3\n"
    },
    {
      "commit": "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": "24844c9a30cf20467cd19d28f2e74de74c9c3622",
      "tree": "6cc89bbf69f8defc015cff169efdd9b095af4a42",
      "parents": [
        "f5a36b24ace2d2e6a9bc7f369b09f3bb7bb08f5d",
        "a2527055f8e3106fe70feeee10ae0c4ddc6596e9"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Wed Aug 18 14:22:02 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 18 14:22:02 2010 -0700"
      },
      "message": "am a2527055: am c8696023: Merge \"Document that autoFocus must be called in auto and macro mode.\" into gingerbread\n\nMerge commit \u0027a2527055f8e3106fe70feeee10ae0c4ddc6596e9\u0027\n\n* commit \u0027a2527055f8e3106fe70feeee10ae0c4ddc6596e9\u0027:\n  Document that autoFocus must be called in auto and macro mode.\n"
    },
    {
      "commit": "a9abfa54d32718fb778b006b1eb94c2e64542b5b",
      "tree": "f61b89408369061fbd5b9a448ab15e47a2625271",
      "parents": [
        "1c66bfb37edd9531c97ba2851338d521be73122c",
        "29eb491a5addc78003299ecab6ab6c716201f9dc"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Aug 18 14:21:07 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 18 14:21:07 2010 -0700"
      },
      "message": "am 29eb491a: am 3922484d: Merge \"Optimize EventHub reads.\" into gingerbread\n\nMerge commit \u002729eb491a5addc78003299ecab6ab6c716201f9dc\u0027\n\n* commit \u002729eb491a5addc78003299ecab6ab6c716201f9dc\u0027:\n  Optimize EventHub reads.\n"
    },
    {
      "commit": "671cc0ec30dfd73e17c3f3bd0170341c06ac945e",
      "tree": "e9cbecb4b7aeb837ff4f2cceb4030e59cd48856d",
      "parents": [
        "f96a508d06f765aa765044312ec3fd3533886d6e",
        "8fd80e924a2f40f6a785f834914f8a6f18a3aa9d"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Aug 18 14:20:24 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 18 14:20:24 2010 -0700"
      },
      "message": "am 8fd80e92: am 72ce4235: Merge \"Fix possible race conditions during channel unregistration.\" into gingerbread\n\nMerge commit \u00278fd80e924a2f40f6a785f834914f8a6f18a3aa9d\u0027\n\n* commit \u00278fd80e924a2f40f6a785f834914f8a6f18a3aa9d\u0027:\n  Fix possible race conditions during channel unregistration.\n"
    },
    {
      "commit": "a2527055f8e3106fe70feeee10ae0c4ddc6596e9",
      "tree": "350c5275477b5d541d6491fa0d0c6bebad4fa28a",
      "parents": [
        "00557baf36ab62592ae1c424a7298a21e8588f5a",
        "c86960236d5b2095c87bf46de2400a905acabee2"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Wed Aug 18 13:39:01 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 18 13:39:01 2010 -0700"
      },
      "message": "am c8696023: Merge \"Document that autoFocus must be called in auto and macro mode.\" into gingerbread\n\nMerge commit \u0027c86960236d5b2095c87bf46de2400a905acabee2\u0027 into gingerbread-plus-aosp\n\n* commit \u0027c86960236d5b2095c87bf46de2400a905acabee2\u0027:\n  Document that autoFocus must be called in auto and macro mode.\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": "29eb491a5addc78003299ecab6ab6c716201f9dc",
      "tree": "05aa3a17a46f985a1ed357a7ed7292601a4ecba4",
      "parents": [
        "dc7d73783e0416cbfde6053a037ce32c8f35fbc4",
        "3922484d7458a4ab72fc1ca8952a0776dd1c7d20"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Aug 18 13:37:44 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 18 13:37:44 2010 -0700"
      },
      "message": "am 3922484d: Merge \"Optimize EventHub reads.\" into gingerbread\n\nMerge commit \u00273922484d7458a4ab72fc1ca8952a0776dd1c7d20\u0027 into gingerbread-plus-aosp\n\n* commit \u00273922484d7458a4ab72fc1ca8952a0776dd1c7d20\u0027:\n  Optimize EventHub reads.\n"
    },
    {
      "commit": "8fd80e924a2f40f6a785f834914f8a6f18a3aa9d",
      "tree": "ddcb4ca3a012d86eb68ce2b5f21ae7fad8bc389e",
      "parents": [
        "aea40e3c5746d754f96b76b7845bbbf7effe2677",
        "72ce42352c1c229e05d910b4176f3cddb608e814"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Aug 18 13:36:08 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 18 13:36:08 2010 -0700"
      },
      "message": "am 72ce4235: Merge \"Fix possible race conditions during channel unregistration.\" into gingerbread\n\nMerge commit \u002772ce42352c1c229e05d910b4176f3cddb608e814\u0027 into gingerbread-plus-aosp\n\n* commit \u002772ce42352c1c229e05d910b4176f3cddb608e814\u0027:\n  Fix possible race conditions during channel unregistration.\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": "0c316eeb437a0ac1d6840690be643d1a553f0b23",
      "tree": "1332be4e75217d0cee1e43875ef0977cd9234604",
      "parents": [
        "fe762e9d127988b736422915ee8bac3d9321a786",
        "ddbcce3afbb38680fb84583f7bad5209307e6459"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Aug 17 09:06:52 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 17 09:06:52 2010 -0700"
      },
      "message": "am ddbcce3a: Merge \"resolved conflicts for merge of be50507b to gingerbread-plus-aosp\" into gingerbread-plus-aosp\n\nMerge commit \u0027ddbcce3afbb38680fb84583f7bad5209307e6459\u0027\n\n* commit \u0027ddbcce3afbb38680fb84583f7bad5209307e6459\u0027:\n  Keep track of remaining fd when devices are removed\n"
    },
    {
      "commit": "6525fca692c57f9746ab65535d3b2f7ec712113c",
      "tree": "5a433ac791627f25b15b8f5c9df6665da694eb26",
      "parents": [
        "5085848ddbadaafa088ed85753156adc2e54554d",
        "be50507bae350a8dea2a1a865513c31317d4cde9"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Aug 17 09:01:26 2010 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Aug 17 09:01:26 2010 -0700"
      },
      "message": "resolved conflicts for merge of be50507b to gingerbread-plus-aosp\n\nChange-Id: Iaa5fb62f7b82b488bca192e7f374c044c7e1e6a7\n"
    },
    {
      "commit": "be50507bae350a8dea2a1a865513c31317d4cde9",
      "tree": "755eef6ef099148def0b2189925bf19ea1bfa448",
      "parents": [
        "209e651805dd40ea87df7ff67f2755605be9308c",
        "6d85ea9c556be7b49302d2f35f4ebc99b4827366"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Aug 17 07:49:54 2010 -0700"
      },
      "committer": {
        "name": "Android Code Review",
        "email": "code-review@android.com",
        "time": "Tue Aug 17 07:49:54 2010 -0700"
      },
      "message": "Merge \"Keep track of remaining fd when devices are removed\""
    },
    {
      "commit": "4ad5c707fa1501f8aba1391cb79306d49ba66272",
      "tree": "04129dd0d215e84ab7192ba5b3ebf3a4b78ebbff",
      "parents": [
        "2565c5b6ef6c9020e8c4b9454ea9ac1b92bdf390",
        "4fc2c9280c5262c835a4eb78961241de105313c1"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Aug 16 15:18:13 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 16 15:18:13 2010 -0700"
      },
      "message": "am 4fc2c928: am b7208196: Use audio clock as the reference media clock\n\nMerge commit \u00274fc2c9280c5262c835a4eb78961241de105313c1\u0027\n\n* commit \u00274fc2c9280c5262c835a4eb78961241de105313c1\u0027:\n  Use audio clock as the reference media clock\n"
    },
    {
      "commit": "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": "fd83b2f92edf3d1f95161ad3cb2b45826bad6e35",
      "tree": "2120f7e924f87a35a0c2f033082d1d6020b9de48",
      "parents": [
        "465206940acade296a1064ac5a1fbcd0419d9eb6",
        "77a473fbcea0214832255af91e0a65d853757aae"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu Aug 12 14:07:59 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 12 14:07:59 2010 -0700"
      },
      "message": "am 77a473fb: am ccaa0028: Merge \"Improve camera documentation.\" into gingerbread\n\nMerge commit \u002777a473fbcea0214832255af91e0a65d853757aae\u0027\n\n* commit \u002777a473fbcea0214832255af91e0a65d853757aae\u0027:\n  Improve camera documentation.\n"
    },
    {
      "commit": "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": "e63cccf006166c03f542349908f1c0a7b4d2d9cc",
      "tree": "0c401f99bc7ecf73deb179ecebd40e7d3cd6f7b1",
      "parents": [
        "387c9ff7047f85234050f3255ee280a86486a983",
        "8aa244eab7ba834439cc919fd1f83d1e4ef49aff"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Aug 12 10:22:58 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 12 10:22:58 2010 -0700"
      },
      "message": "am 8aa244ea: am 45cb3cfa: Merge \"Handle large audio lost\" into gingerbread\n\nMerge commit \u00278aa244eab7ba834439cc919fd1f83d1e4ef49aff\u0027\n\n* commit \u00278aa244eab7ba834439cc919fd1f83d1e4ef49aff\u0027:\n  Handle large audio lost\n"
    },
    {
      "commit": "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": "b219a83ff6278eeef981e6908abf871876a68699",
      "tree": "c333390c0e758bb23601557a3d8c1477583a866b",
      "parents": [
        "da4c35b95157ed56dbf12c166173800c4c3740e2",
        "f66f8a58cc4412bd258e1d5b11cac17a617bdc58"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Aug 11 16:22:47 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 11 16:22:47 2010 -0700"
      },
      "message": "am f66f8a58: am 95af0c14: Merge \"Add support for the PointerLocation overlay.\" into gingerbread\n\nMerge commit \u0027f66f8a58cc4412bd258e1d5b11cac17a617bdc58\u0027\n\n* commit \u0027f66f8a58cc4412bd258e1d5b11cac17a617bdc58\u0027:\n  Add support for the PointerLocation overlay.\n"
    },
    {
      "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": "1f5a8d96da2f0d095196113a2bfa901c18592206",
      "tree": "8a78eb80ac7100d044e269400ba6d9e622799cc5",
      "parents": [
        "bf0cb26a1c6305f2a7795c2498591b6189cc5b79",
        "80328ba09606bd0825d7d4c9a4f213d1de09e53a"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Aug 11 14:15:20 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 11 14:15:20 2010 -0700"
      },
      "message": "am 80328ba0: am 8ea71511: Merge \"Initial tool for OBB manipulation\" into gingerbread\n\nMerge commit \u002780328ba09606bd0825d7d4c9a4f213d1de09e53a\u0027\n\n* commit \u002780328ba09606bd0825d7d4c9a4f213d1de09e53a\u0027:\n  Initial tool for OBB manipulation\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": "7b6d0d99b6904b511996267efae215fe9cb5e98f",
      "tree": "85c1f63b5ba66ec77d5c9ecd5a2b44229ed67699",
      "parents": [
        "ea65ec23f6dc18e978ab6dcf23d3c2b27a0c2109",
        "679ac09a5c22175354f3a04b28456b323839530e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 11 00:50:56 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 11 00:50:56 2010 -0700"
      },
      "message": "am 679ac09a: am a5ae50cd: Merge \"More native work.\" into gingerbread\n\nMerge commit \u0027679ac09a5c22175354f3a04b28456b323839530e\u0027\n\n* commit \u0027679ac09a5c22175354f3a04b28456b323839530e\u0027:\n  More native work.\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": "ea48ff4ba405923a88f5f0ef22be607be6310564",
      "tree": "c9a55ac4a123231f6c9fa2af407c0b14644a5a57",
      "parents": [
        "fb8e05b154c9dd1b36696c20985a3ce70d851b94",
        "95105f3c25110f28b236cfa71e9ad74533eef854"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Aug 10 16:39:10 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 10 16:39:10 2010 -0700"
      },
      "message": "am 95105f3c: am c3fc2d03: Fix safe mode and KeyEvent.getMaxKeyCode().\n\nMerge commit \u002795105f3c25110f28b236cfa71e9ad74533eef854\u0027\n\n* commit \u002795105f3c25110f28b236cfa71e9ad74533eef854\u0027:\n  Fix safe mode and KeyEvent.getMaxKeyCode().\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": "030af3439fd3314b52ba998f89ea1c3acfb6c03e",
      "tree": "781c212fba276b74a8e3ddd17a492b4b17fecb54",
      "parents": [
        "f5c35c84fa629b8cda25f1861d91ec89d7a10f90",
        "e14923b0c80b2e73e69b7917c1f170b356592d29"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Aug 09 20:00:25 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 09 20:00:25 2010 -0700"
      },
      "message": "am e14923b0: am 4edf85ab: Merge \"Support for extracting G.711 a-law and mu-law audio from WAV files and a corresponding software decoder.\" into gingerbread\n\nMerge commit \u0027e14923b0c80b2e73e69b7917c1f170b356592d29\u0027\n\n* commit \u0027e14923b0c80b2e73e69b7917c1f170b356592d29\u0027:\n  Support for extracting G.711 a-law and mu-law audio from WAV files and a corresponding software decoder.\n"
    },
    {
      "commit": "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": "91fc6e8c89f176e157083c3fb06f05af01f61fc3",
      "tree": "7fb6533e1c6ce0139b6f59e7af16927e52412493",
      "parents": [
        "072671f0ee5bb506a2668280e18cb12c9492ed12",
        "d7ce227bcb854f048124bbc487eba844c6599142"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Aug 06 19:04:09 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 06 19:04:09 2010 -0700"
      },
      "message": "am d7ce227b: am 818490ab: Fix String8::operator+\n\nMerge commit \u0027d7ce227bcb854f048124bbc487eba844c6599142\u0027\n\n* commit \u0027d7ce227bcb854f048124bbc487eba844c6599142\u0027:\n  Fix String8::operator+\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"
    }
  ],
  "next": "84d65c725b07b3a67b35d71690627896508689b3"
}
