)]}'
{
  "log": [
    {
      "commit": "1b5cf329eaecdcbf734feec3336ff029b2b8a264",
      "tree": "6569185128f882ffbf97ec3ba79aa5110405d393",
      "parents": [
        "fa289ea7af2e9f56aecd23015a12c925c694aacd"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Tue Jan 26 10:27:15 2010 -0800"
      },
      "committer": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Tue Jan 26 10:28:52 2010 -0800"
      },
      "message": "Revert \"Fix failure to open AVRCP input device due to EPERM.\"\n\nThis reverts commit e6b1bbd8acca3f6e174c24cf4eb23a66db2d08a2.\n"
    },
    {
      "commit": "2b2c2e3a35287fdd9a292ab981d5708e2bbfe07c",
      "tree": "69d36b0ffbfcc97ea7702c0a47e985d347caefc2",
      "parents": [
        "80370aa83bce8287a761d090d37349112ee3e79f",
        "7c360aaf6cd95ec8cce8f97c4a314114951c1cbb"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Mon Jan 25 18:12:47 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jan 25 18:12:47 2010 -0800"
      },
      "message": "am 425324e9: am e834722f: Merge \"Fix failure to open AVRCP input device due to EPERM.\" into eclair\n\nMerge commit \u0027425324e97bba75cd69bb6c81de6248529540e6fe\u0027\n\n* commit \u0027425324e97bba75cd69bb6c81de6248529540e6fe\u0027:\n  Fix failure to open AVRCP input device due to EPERM.\n"
    },
    {
      "commit": "43c0b0a1f6b025ae84013cdaa663ee892ac8e4da",
      "tree": "f09028a08d14f78b959934f1fed99c8ff3f0d900",
      "parents": [
        "5e4b03124898d84a16f4ef46c01f25f61a1af238"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jan 25 08:49:09 2010 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jan 25 14:00:10 2010 -0800"
      },
      "message": "Fix issue 2378022: AudioService should direct volume control to STREAM_VOICE_CALL stream when STREAM_VOICE_CALL stream is active.\n\nModified AudioService.getActiveStreamType() so that STREAM_VOICE_CALL is selected when a track using this stream\ntype is playing.\n\nChanded isMusicActive() for a more generic isStreamActive(stream) method in AudioSystem, IAudioFlinger and AudioFlinger.\n"
    },
    {
      "commit": "88eeff5270991df178ee09ffda7ce5076c9a1e59",
      "tree": "00b0f5754d265cd28d73a02e0da7eec83aebfd1b",
      "parents": [
        "703111327eac2f3228de1f165d23fa3bf86120ba"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Mon Jan 25 15:18:18 2010 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Mon Jan 25 15:20:23 2010 +0800"
      },
      "message": "Change key to KEY_SUPPORTED_JPEG_THUMBNAIL_SIZES for consistency.\n\nbug:2375986\n"
    },
    {
      "commit": "703111327eac2f3228de1f165d23fa3bf86120ba",
      "tree": "19b9bca89dc6aa5a4ed43b73a9d5ba35335d3e91",
      "parents": [
        "18b0997a7b743b57bbd22045ecc2ffb8d4a95db7",
        "5994a330ac949e7706540f22cd73d76d9f2a96cb"
      ],
      "author": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Fri Jan 22 18:08:23 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 22 18:08:23 2010 -0800"
      },
      "message": "Merge \"Add support for 180/270 degrees rotation.\""
    },
    {
      "commit": "5994a330ac949e7706540f22cd73d76d9f2a96cb",
      "tree": "46250601cda14ac8a44572be4566a8ac0869701d",
      "parents": [
        "32f6863e218e19f8a3daab7e345bb4ae6587865a"
      ],
      "author": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Fri Jan 22 16:30:39 2010 -0800"
      },
      "committer": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Fri Jan 22 16:30:39 2010 -0800"
      },
      "message": "Add support for 180/270 degrees rotation.\n"
    },
    {
      "commit": "519f29f5d8e097b3a35a650d92ed0ad07773c9e2",
      "tree": "5d9c75dd3ea3c752e99c2c52c73d946d2c8570f1",
      "parents": [
        "3983e26292173fb08de57b8617de9193e8f0d2f9",
        "9014726d8954a003323d65ba639b2544f8ecea2e"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jan 22 11:52:08 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 22 11:52:08 2010 -0800"
      },
      "message": "Merge \"return an error when Surface::lock() is called while the surface is already locked.\""
    },
    {
      "commit": "9014726d8954a003323d65ba639b2544f8ecea2e",
      "tree": "490f2e83220785fb5cfa2d5ee8161d4c43e85cf8",
      "parents": [
        "edfd97c0f2e679e86699a0f6c4df65ea21ecff15"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jan 22 11:47:55 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jan 22 11:47:55 2010 -0800"
      },
      "message": "return an error when Surface::lock() is called while the surface is already locked.\n"
    },
    {
      "commit": "52e7200b6e020bba978c36e3a928493a3f2c8a92",
      "tree": "9c752d7d277ba2dfb9789763369a7373888557a2",
      "parents": [
        "d28d5be75b41fe48f486f9b83ae8685496983f5a"
      ],
      "author": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Thu Jan 21 17:31:06 2010 -0800"
      },
      "committer": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Thu Jan 21 20:20:08 2010 -0800"
      },
      "message": "Add an orientation parameter for overlay, so we can do camera preview in portrait mode.\n"
    },
    {
      "commit": "edfd97c0f2e679e86699a0f6c4df65ea21ecff15",
      "tree": "45a7fb9ad27b7031e2ca5cfd26552aa10e4853a3",
      "parents": [
        "8c3b597aa7a627ab6979e58a173502cc505cb0df"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jan 21 16:04:56 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jan 21 16:29:34 2010 -0800"
      },
      "message": "fix [2324665] texture leak in surfaceflinger when using camera\n"
    },
    {
      "commit": "8c3b597aa7a627ab6979e58a173502cc505cb0df",
      "tree": "8bcb212e089d8641060c242710ef7fbc581fe46b",
      "parents": [
        "aa774c3e81d9ab685461ca0ab368086f669e4d1f"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jan 21 16:27:30 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jan 21 16:27:30 2010 -0800"
      },
      "message": "fix a texture leak introduced recently.\n\ncreate the texture name once and for all for a given BufferSource\nand make sure to recreate it when we\u0027re forced to delete the texture.\n"
    },
    {
      "commit": "c81bb207c67e82f25c8ec15a533dbdc2435d83f7",
      "tree": "dafff205e6a48beb2dcdc2fc28577a31c99bf8e5",
      "parents": [
        "9110cdd7b75ea732afe1e6898a00bb162d791f58"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Wed Jan 20 19:36:49 2010 -0800"
      },
      "committer": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Wed Jan 20 19:56:24 2010 -0800"
      },
      "message": "Fix failure to open AVRCP input device due to EPERM.\n\nSleep for 100us and try to open the input device again if it fails, with a\nmaximum of 10 attempts.\n\nWe need the retry logic because setting permissions on a new input device is\nracy. The init process watches for new input device (via uevent) and sets the\npermission on them in devices.c:make_device(). However at the same time\nEventHub.cpp watches for new input devices from the system_server process, and\nimmediately tries to open them. I can\u0027t see a simple way to avoid this race\ncondition.\n\nAs best as I can tell this race condition has always exisited.\nThere must have been some timing change that happened recently that causes us\nto hit this race condition much more often. See repro notes in referenced bug.\n\nBug: 2375632\n"
    },
    {
      "commit": "5fdea8d5b0a015433e01849a6c862c147e16346c",
      "tree": "aa64093317df178cde7b8252e600039826e7f7bd",
      "parents": [
        "ecc99c003b4aca7d7d2f268f927558db4cbddfe1"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jan 20 14:31:53 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jan 20 14:31:53 2010 -0800"
      },
      "message": "fix [2363362] [Sapphire] Corrupted raw picture displayed during snapshot\n\nhandled all cases where the scale factor of a video is out of bounds of\nsupported scale factors in copybit.\n"
    },
    {
      "commit": "ecc99c003b4aca7d7d2f268f927558db4cbddfe1",
      "tree": "ce0d4257ccfca6dad1867d7e7e83ca85475cd51e",
      "parents": [
        "42d095aaa54a762ef74d219854aca8e1a7c6f5f6"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jan 20 13:56:07 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jan 20 14:07:44 2010 -0800"
      },
      "message": "part of fix for [2363362] [Sapphire] Corrupted raw picture displayed during snapshot\n\nmake sure to fallback properly to software when copybit operation fails.\nwith this change, the preview image will at least be displayed in b\u0026w\n(since GL doesn\u0027t support the yuv format). This would also fix\n2363506, but that one is now handled more cleanly.\n"
    },
    {
      "commit": "42d095aaa54a762ef74d219854aca8e1a7c6f5f6",
      "tree": "7a6fb58d690b4ac586406a259fcd5a19d5469b3b",
      "parents": [
        "f221217a67ade328fba844f9c2c0a3b83d013cac",
        "1faed6608655409cdd9c703cdbceedc03cb40bde"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jan 20 13:44:53 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 20 13:44:53 2010 -0800"
      },
      "message": "Merge \"fix [2363506] [Sapphire] Video playback broken\""
    },
    {
      "commit": "1faed6608655409cdd9c703cdbceedc03cb40bde",
      "tree": "d1322035bc57f859960ccefd2a4075a96ff32986",
      "parents": [
        "084e7c4ee8d4c6d54561347e2fe76bcdbd9f19da"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jan 20 13:24:14 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jan 20 13:24:14 2010 -0800"
      },
      "message": "fix [2363506] [Sapphire] Video playback broken\n\ndon\u0027t try to use copybit for incompatible buffers\n"
    },
    {
      "commit": "da3529b468404e160c1b98a94d5d31f8234d0ad1",
      "tree": "eca7919c6b84925a0195532834cb9a1c058104d2",
      "parents": [
        "6c3067a055072909219e9eadbe4b146bc2451130"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 10 01:03:50 2009 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 13 09:25:13 2010 -0800"
      },
      "message": "Create base class for audio policy manager.\n\nFirst implementations of audio policy manager in Eclair branch have shown that most code is common to all platforms.\nCreating AudioPolicyManagerBase base class will improve code maintainability and readability.\n\nAudio policy manager code for platforms using generic audio previously in AudioPolicyManagerGeneric is replaced by AudioPolicyManagerBase.\nAudio policy manager test code previously in AudioPolicyManagerGeneric is moved to AudioPolicyManagerBase.\n\nAlso added a wake lock for delayed commands in AudioPolicyService.\n"
    },
    {
      "commit": "8a468f2fd6183d5a6e512aafbdaaad4d1b495390",
      "tree": "6774d0fca90c9e8012832484506d33e5f736248e",
      "parents": [
        "2671d4eb6530166ea04064e43167281ecd53e88a",
        "bf41fc2be70c37d4ec31fc904e76621f664957bb"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 22 10:01:39 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Dec 22 10:01:39 2009 -0800"
      },
      "message": "am 0c5cc224: am d20a55af: Merge change Iccfa50fe into eclair\n\nMerge commit \u00270c5cc224b052654ee38d39effce427a47697481b\u0027\n\n* commit \u00270c5cc224b052654ee38d39effce427a47697481b\u0027:\n  Fix issue 2323920: Notification \u0026 A2DP audio stutter.\n"
    },
    {
      "commit": "7e2aad1e27fd52292d5b4dade6f411b3fc5a5e8a",
      "tree": "9d4864f4a6ca7ba7f575a0e3db96319bb52fa7ff",
      "parents": [
        "c717b34fa141a4fe8c6af1ad8aa367576cf85c6d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 18 05:47:48 2009 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 22 09:06:46 2009 -0800"
      },
      "message": "Fix issue 2323920: Notification \u0026 A2DP audio stutter.\n\nModified AudioFlinger duplicating output thread so that audio tracks are not mixed until both outputs (A2DP and hardware) have exited standby mode. This avoids to have one output far ahead of the other and audio frames dropped because the compensation mechanism cannot keep up.\nAlso calculate the maximum wait time in OutputTrack::write() based the on smallest frame count of all output threads instead of the frame count of the thread the OutputTrack is connected to. This avoids starving the thread with the smallest frame count by waiting too long on the other thread.\nSince the frame count was reduced on hardware output to reduce latency the difference between A2DP and hardware outputs frame counts had become problematic.\nAlso increased the number of overflow buffers to cope with bigger timing differences among outputs.\n"
    },
    {
      "commit": "839604c7694127cde6b5af226aa4c44c3dddc177",
      "tree": "62768835ee4ccba96b8dc23f365d8d6201081fec",
      "parents": [
        "eb301e0ace03f69e79c9be204fd52182f774f85e",
        "f5430db059be3e771c004d0ada594bf8820d0517"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Dec 11 01:16:08 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Dec 11 01:16:08 2009 -0800"
      },
      "message": "am f9b0e826: fix [2269582] [TOP-10][Passion_1506][APT:Camera]Sometimes camera preview screen is truncated after launching and back to home screen by home key repeatedly\n\nMerge commit \u0027f9b0e826689cca5ecbd40aa49f3ea7f7c73ad2a2\u0027 into eclair-mr2\n\n* commit \u0027f9b0e826689cca5ecbd40aa49f3ea7f7c73ad2a2\u0027:\n  fix [2269582] [TOP-10][Passion_1506][APT:Camera]Sometimes camera preview screen is truncated after launching and back to home screen by home key repeatedly\n"
    },
    {
      "commit": "f5430db059be3e771c004d0ada594bf8820d0517",
      "tree": "e291c558ae63d711f9570038ce2dd78ccdef3874",
      "parents": [
        "f414887b3c7af00a66c7f8b105dfd9fd2cb3ec2f"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Dec 11 00:56:10 2009 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Dec 11 00:56:10 2009 -0800"
      },
      "message": "fix [2269582] [TOP-10][Passion_1506][APT:Camera]Sometimes camera preview screen is truncated after launching and back to home screen by home key repeatedly\n\nWhen a surface is removed from the screen while it holds a \"freeze lock\", the\nrelease of that lock happens in the destructor as a \"safety net\". However, it\ndoesn\u0027t trigger an update at that point.\n\nMake sure that \"freeze locks\" are released from the transaction at the point\na surface is removed from the screen (if it\u0027s not on screen, it shouldn\u0027t\nprevent the screen to redraw, and therefore cannot hold a freeze lock).\nThe refresh corresponding to that transaction will pick it up as soon as possible.\n"
    },
    {
      "commit": "3fb6f499f828efd1f696912202c726a2c6f04c42",
      "tree": "8dd322bffef48a0cad5a7965b7b14d30af521afc",
      "parents": [
        "2c05ff5518f07889af1446c99d97198dc92e82cc",
        "8f03b47432f007b1fb3438608361ebf4e3a1310b"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Dec 10 19:48:05 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Dec 10 19:48:05 2009 -0800"
      },
      "message": "am 083a557c: fix [2319255] crash in openGL : from the media recorder stress test.\n\nMerge commit \u0027083a557c25e0032bc4900f335b6643d0badd09ce\u0027 into eclair-mr2\n\n* commit \u0027083a557c25e0032bc4900f335b6643d0badd09ce\u0027:\n  fix [2319255] crash in openGL : from the media recorder stress test.\n"
    },
    {
      "commit": "2c05ff5518f07889af1446c99d97198dc92e82cc",
      "tree": "f00cf8b8506854939deac5e1390fd2a398ae215c",
      "parents": [
        "f4f3a4680744a90a0835d6594093dfef6bfcfc97",
        "ccb5b89029ca3f653fbfa32a7b6ed82bf227541c"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 10 18:05:19 2009 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 10 18:05:19 2009 -0800"
      },
      "message": "Merge change I6478884a into eclair-mr2\n\n* changes:\n  Add string resource type inspection\n"
    },
    {
      "commit": "b2bf11e3894b6da45a63025f21c9fa51f7aad98b",
      "tree": "104ff11f3a4d220f6da0d61b5e06246e5a29acf2",
      "parents": [
        "1aa171322a1818e4655944ac1a0e75f1348f1453",
        "c5e181f8b347ad89874e0c6c7d2eea8d0465a478"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Dec 10 17:40:41 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Dec 10 17:40:41 2009 -0800"
      },
      "message": "am 76169da0: fix [2315900] Monochrome camera preview screen after launching camera\n\nMerge commit \u002776169da0e84b0fcf621aeac6141af3ee85bc7c1e\u0027 into eclair-mr2\n\n* commit \u002776169da0e84b0fcf621aeac6141af3ee85bc7c1e\u0027:\n  fix [2315900] Monochrome camera preview screen after launching camera\n"
    },
    {
      "commit": "495c1be36368ea70b2ce9541531273dd29fcac0d",
      "tree": "651e59f069e8d9aab8b1bf89ecd3c26ef2d1a9fd",
      "parents": [
        "39dd1631831d5aa2974c1161c3f8782f3e9c2f0b",
        "8d96b7af4bb94aa1e554389c9bd3ab18106396f6"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Dec 10 16:43:09 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Dec 10 16:43:09 2009 -0800"
      },
      "message": "am d8c752ef: Merge change Ib548dbb2 into eclair\n\nMerge commit \u0027d8c752ef74bc6d8b412defe35caf1a19be15eb8b\u0027 into eclair-mr2\n\n* commit \u0027d8c752ef74bc6d8b412defe35caf1a19be15eb8b\u0027:\n  improve video performance to minimize the tearing effect seen in 720p movies\n"
    },
    {
      "commit": "8f03b47432f007b1fb3438608361ebf4e3a1310b",
      "tree": "c2971689ed314285bc32d7b226e51cf364e9373f",
      "parents": [
        "c0012deacc14f871062ebc1756d5290d8a8b5ad3"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Dec 10 15:52:29 2009 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Dec 10 15:59:08 2009 -0800"
      },
      "message": "fix [2319255] crash in openGL : from the media recorder stress test.\n\nnever call eglCreateImageKHR() with a NULL native buffer, which can\nhappen in OOM conditions.\n"
    },
    {
      "commit": "ccb5b89029ca3f653fbfa32a7b6ed82bf227541c",
      "tree": "e9309127a1fd7077222e8068817bf94829dd2736",
      "parents": [
        "07b4185c7494744d0886115c7d8a6a389210bea3"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Dec 10 14:20:15 2009 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Dec 10 14:22:08 2009 -0800"
      },
      "message": "Add string resource type inspection\n\nAllows \"aapt dump --values resource\" to print out whether a string in a\nResStringPool is in UTF-8 or UTF-16 encoding.\n\nChange-Id: I6478884a70a3b46fee862dece6cb33454fc34843\n"
    },
    {
      "commit": "c5e181f8b347ad89874e0c6c7d2eea8d0465a478",
      "tree": "b637cb7ac5eabf5897345fbf7c39ce68ff9e6edb",
      "parents": [
        "cb94f70d5cfecf69f4f470497703befb270f6565"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Dec 09 14:32:56 2009 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Dec 09 15:26:29 2009 -0800"
      },
      "message": "fix [2315900] Monochrome camera preview screen after launching camera\n\nthis was introduced by a recent change. when we try to figure out the size of\nthe yuv-\u003ergb temporary buffer, the output resolution has not been computed yet\nand an invalid buffer size is used. most of the time the allocation fails\nand the system reverts to \"standard\" GL will uses onle the Y plane.\n\nthe allocation of the temporary buffer is moved to onDraw(), the first\ntime it is called, by that time, the window is positioned properly.\n"
    },
    {
      "commit": "d0aeccebe2d1539a9f0b5f19beb6c272a60d3cc6",
      "tree": "350426e8aee428f9637dfca0f5954a9136f56723",
      "parents": [
        "80240139e39795c1176cf0ab7ab32986aa681422"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Dec 08 19:45:59 2009 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Dec 08 19:45:59 2009 -0800"
      },
      "message": "Maybe really fix windows build.\n"
    },
    {
      "commit": "69ff5de1b7bdc763a77093f829d2aa2c6da99545",
      "tree": "fc65df9687a88093b1416557ebeeb25f83f80889",
      "parents": [
        "ac16968db1d225d0c019bb4e782d18c1ea8936f0"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Dec 08 19:29:38 2009 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Dec 08 19:29:38 2009 -0800"
      },
      "message": "improve video performance to minimize the tearing effect seen in 720p movies\n\nalways rescale videos to their target size using copybit during yuv-\u003ergb\nconversion. this improves performance of the GPU pass and doesn\u0027t require\nlinear filtering to be enabled. Also always use 16-bits buffers.\n\nthe average processing time for 720p dropped from ~50ms to ~30ms\n"
    },
    {
      "commit": "c5b138995e68910cfa95f88f12a1c69a102aa997",
      "tree": "d42c2de87872fde784af4f919e40d673b4208a0e",
      "parents": [
        "426ab667cacdf319789e1b85f04b2bc6729ae86b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Dec 08 16:38:01 2009 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Dec 08 16:38:01 2009 -0800"
      },
      "message": "Hopefully fix Windows build\n"
    },
    {
      "commit": "eb318fd88d16053010da554ba565eaaf3355a58e",
      "tree": "d7c8601e2d6b708be77335c0a1b151893008b2c0",
      "parents": [
        "ea3ec40a5da415c07569f4c35c516da5e1e8d23e",
        "92f5984d2c2cd73b6b9f68c02c147877d1e2fc46"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 08 13:41:38 2009 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 08 13:41:38 2009 -0800"
      },
      "message": "Merge change I129483f8 into eclair-mr2\n\n* changes:\n  Optional use of UTF-8 strings in resource bundles\n"
    },
    {
      "commit": "8c6cedc9bc9a4b69616a79a95449f6f6b08c7bf1",
      "tree": "b1bbc3748af558bc7a56d7ac4fb96ca059cc845b",
      "parents": [
        "d56352bddd717d2e45f1f3ee7fb52ef7f593f950"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Dec 07 17:59:37 2009 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Dec 07 19:11:14 2009 -0800"
      },
      "message": "Propagate background scheduling class across processes.\n\nThis is a very simply implementation: upon receiving an IPC, if the handling\nthread is at a background priority (the driver will have taken care of\npropagating this from the calling thread), then stick it in to the background\nscheduling group.  Plus an API to turn this off for the process, which is\nused by the system process.\n\nThis also pulls some of the code for managing scheduling classes out of\nthe Process JNI wrappers and in to some convenience methods in thread.h.\n"
    },
    {
      "commit": "92f5984d2c2cd73b6b9f68c02c147877d1e2fc46",
      "tree": "fa3930192e29c22b91af41ba4b20adf4286b2217",
      "parents": [
        "bd3b0114893ed5fc24fd92955f59354b838041e1"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Dec 04 09:38:48 2009 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Dec 07 15:14:15 2009 -0800"
      },
      "message": "Optional use of UTF-8 strings in resource bundles\n\nAllows the use of UTF-8 for packing resources instead of the\ndefault of UTF-16 for Java. When strings are extracted from the\nResStringPool, they are converted to UTF-16 and the result is\ncached for subsequent calls.\n\nWhen using aapt to package, add in the \"-8\" switch to pack the\nresources using UTF-8. This will result in the value, key, and\ntype strings as well as the compiled XML string values taking\nsignificantly less space in the final application package in\nmost scenarios.\n\nChange-Id: I129483f8b3d3b1c5869dced05cb525e494a6c83a\n"
    },
    {
      "commit": "7749a90e1ed35bd5766051a46e9493c21b47feed",
      "tree": "69d1f4e49e6fb37758cdb49356705c1b7218bbd6",
      "parents": [
        "5ddf521e81de350216d23a13f577df75c8369fec",
        "fed9382a6a5a1d81c513b028da11bb6ca372a00c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Dec 07 12:36:30 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Dec 07 12:36:30 2009 -0800"
      },
      "message": "am 0a08029f: Fix issue  2306779: Runtime restart - Init failed at android.media.ToneGenerator.\n\nMerge commit \u00270a08029fc9a370c6ef2a2a6fd1d800d9159b61f8\u0027 into eclair-mr2\n\n* commit \u00270a08029fc9a370c6ef2a2a6fd1d800d9159b61f8\u0027:\n  Fix issue  2306779: Runtime restart - Init failed at android.media.ToneGenerator.\n"
    },
    {
      "commit": "fed9382a6a5a1d81c513b028da11bb6ca372a00c",
      "tree": "b4ce2b236ca408f9f1ac1701912b1e686a2d6796",
      "parents": [
        "0aa2563bb75fe16926575d08f16a49951bd018ef"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Dec 07 10:53:10 2009 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Dec 07 12:30:22 2009 -0800"
      },
      "message": "Fix issue  2306779: Runtime restart - Init failed at android.media.ToneGenerator.\n\nThe ToneGenerator failed to initialize because no more tracks were available in AudioFlinger mixer.\n\nAll tracks were used because the duplicating output was failing to free the tracks on audio hardware output mixer when exiting due to a misplaced test on output activity: output tracks where only freed if the duplicating output was active when exiting.\n\nThe fix consists in freeing the output tracks when the duplicating thread is destroyed without condition.\n"
    },
    {
      "commit": "8aaf9a21bce5c275686252556f575f9559d39d88",
      "tree": "24008b1df7041b9635e7930c499f48b78aed8922",
      "parents": [
        "6412cf7ae089463761154c5a212313db9bbd2978",
        "0aa2563bb75fe16926575d08f16a49951bd018ef"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Dec 07 11:03:17 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Dec 07 11:03:17 2009 -0800"
      },
      "message": "am 6d42d806: Merge change I9cc489a2 into eclair\n\nMerge commit \u00276d42d80653f2c41f3e72a878a1d9a6f9693b89f7\u0027 into eclair-mr2\n\n* commit \u00276d42d80653f2c41f3e72a878a1d9a6f9693b89f7\u0027:\n  Fix issue 2304669: VoiceIME: starting and canceling voice IME yields persistent \"error 8\" state on future attempts and breaks voice search.\n"
    },
    {
      "commit": "0aa2563bb75fe16926575d08f16a49951bd018ef",
      "tree": "1a6fb855405bbea51a33034081cf4bf3b63c010f",
      "parents": [
        "f5009537a48b80aa904fdadb5e89c32c9918c537",
        "5291095089264734307ae7456e0f5183e4690463"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Dec 07 11:00:54 2009 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Dec 07 11:00:54 2009 -0800"
      },
      "message": "Merge change I9cc489a2 into eclair\n\n* changes:\n  Fix issue 2304669: VoiceIME: starting and canceling voice IME yields persistent \"error 8\" state on future attempts and breaks voice search.\n"
    },
    {
      "commit": "5291095089264734307ae7456e0f5183e4690463",
      "tree": "ad1b1bbe8acc01e3a6accb1c102db7364199db7e",
      "parents": [
        "d313000d3a79e1de0f9e66a9dc1b62e7dcd88785"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Dec 05 05:20:01 2009 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Dec 07 05:37:47 2009 -0800"
      },
      "message": "Fix issue 2304669: VoiceIME: starting and canceling voice IME yields persistent \"error 8\" state on future attempts and breaks voice search.\n\nFixed AudioFlinger::openInput() broken in change ddb78e7753be03937ad57ce7c3c842c52bdad65e\nso that an invalid IO handle (0) is returned in case of failure.\nApplied the same correction to openOutput().\nModified RecordThread start procedure so that a failure occuring during the first read from audio input stream is detected and causes\nthe record start to fail.\nModified RecordThread stop procedure to make sure that audio input stream fd is closed before we exit the stop function.\n\nFixed AudioRecord JAVA and JNI implementation to take status of native AudioRecord::start() into account\nand not change mRecordingState to RECORDSTATE_RECORDING if start fails.\n"
    },
    {
      "commit": "0fe8a9bc4b24013ee3fcb112fe4dd6e1ad46b26b",
      "tree": "5ac1a5f972fd73b7852dc17a5f91c8ec82576923",
      "parents": [
        "65deb8dbecd583dddc6b6f670e7ced0d9e7fed09",
        "a9ec9be1952f8c70cc4227b0dd51aad0b863745c"
      ],
      "author": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Mon Dec 07 01:36:26 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Dec 07 01:36:26 2009 -0800"
      },
      "message": "am 0019215f: Revert \"When using MDP, we needed to use a texture for diming.\"\n\nMerge commit \u00270019215fc395ef12c191049b1903eeabf70859cf\u0027 into eclair-mr2\n\n* commit \u00270019215fc395ef12c191049b1903eeabf70859cf\u0027:\n  Revert \"When using MDP, we needed to use a texture for diming.\"\n"
    },
    {
      "commit": "a9ec9be1952f8c70cc4227b0dd51aad0b863745c",
      "tree": "91cad94696de46d4ffc893c332c486d71f34ffba",
      "parents": [
        "d313000d3a79e1de0f9e66a9dc1b62e7dcd88785"
      ],
      "author": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Mon Dec 07 00:17:06 2009 -0800"
      },
      "committer": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Mon Dec 07 00:17:06 2009 -0800"
      },
      "message": "Revert \"When using MDP, we needed to use a texture for diming.\"\n\nThis reverts commit bf0c320afbf6bf2441916755ecb443b64afbe73f.\n"
    },
    {
      "commit": "19b18d75fefc0c762be6b75d32a367e2ec9d9689",
      "tree": "fa9d11aeace2bd62c163d2920f5cc2d1c8d6cee8",
      "parents": [
        "8c7289f8648c64e80731ba4e56ce17b793ef7870",
        "aa3255a32d406a5eeab7ba5d84cfa18bfed54f45"
      ],
      "author": {
        "name": "Erik Gilling",
        "email": "konkers@android.com",
        "time": "Thu Dec 03 15:35:55 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Dec 03 15:35:55 2009 -0800"
      },
      "message": "am cef8d031: Merge change I00d0b54a into eclair\n\nMerge commit \u0027cef8d031e842b773bbd6481b517996a185391e92\u0027 into eclair-mr2\n\n* commit \u0027cef8d031e842b773bbd6481b517996a185391e92\u0027:\n  surfaceflinger: remove un-cached buffer hack for SGX\n"
    },
    {
      "commit": "1bd48776eb41e1e9810a1a1915028cc4c9ce4882",
      "tree": "2a59a45361d517ba1ab93e7641d4e53a4c629157",
      "parents": [
        "417fe604e9684f1997a1183aac8dfad61af3733b"
      ],
      "author": {
        "name": "Erik Gilling",
        "email": "konkers@android.com",
        "time": "Thu Dec 03 14:08:19 2009 -0800"
      },
      "committer": {
        "name": "Erik Gilling",
        "email": "konkers@android.com",
        "time": "Thu Dec 03 14:09:31 2009 -0800"
      },
      "message": "surfaceflinger: remove un-cached buffer hack for SGX\n\nSigned-off-by: Erik Gilling \u003ckonkers@android.com\u003e\n"
    },
    {
      "commit": "fd70b7f335de31e6aaa5711d38584ebb8a07be1d",
      "tree": "cbe1d9215e97c165c17903c43e93d49ad9327e79",
      "parents": [
        "a59a9d25e2b4eb33c56a228f929c0aa13c351b63",
        "91e41527607bd866e273a963496bb4e14edb3c03"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Dec 02 17:50:45 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Dec 02 17:50:45 2009 -0800"
      },
      "message": "am 121a31ac: Merge change Id86beb99 into eclair\n\nMerge commit \u0027121a31ac3901fcb81c808da2b4a9a7cf66c12b7c\u0027 into eclair-mr2\n\n* commit \u0027121a31ac3901fcb81c808da2b4a9a7cf66c12b7c\u0027:\n  fix [2291418] Camera preview cannot work in Emulator\n"
    },
    {
      "commit": "3e8a81e3546f4c065c49a08bbe7e04662db73577",
      "tree": "ccd05f7a81d5fcff15e83fec2eff3661fdc1c390",
      "parents": [
        "7b1451d360b72ab494af8d00302868e7208200ef"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Dec 02 16:23:11 2009 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Dec 02 16:23:11 2009 -0800"
      },
      "message": "fix [2291418] Camera preview cannot work in Emulator\n\nThe image buffer used by glTexImage2d() would be uninitialized when no copybit engine\ncan be found.\nWe now always initialize images, since the abscence of copybit is not necessarily fatal.\n"
    },
    {
      "commit": "b598e9f38d5086a7f057f06871fc68c654537dac",
      "tree": "4d7d68831a8df8111c1ee1253192077083bc1c2c",
      "parents": [
        "ca8fa5a7bfda037f4b691d4de4d9a26594917647",
        "9e50912d687436f7234bcd37a093864e6e076f27"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 02 09:48:52 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Dec 02 09:48:52 2009 -0800"
      },
      "message": "am 1ac56b60: Merge change Iac196e17 into eclair\n\nMerge commit \u00271ac56b602aa6a1ac54c608e5a8b76f44638db23b\u0027 into eclair-mr2\n\n* commit \u00271ac56b602aa6a1ac54c608e5a8b76f44638db23b\u0027:\n  Fix issue 2292062: Audio freezes for three seconds when choosing ringtones with a headset connected and music playing.\n"
    },
    {
      "commit": "ca8fa5a7bfda037f4b691d4de4d9a26594917647",
      "tree": "8044e48a62df8b48e58d50d001307e01c9f01f27",
      "parents": [
        "99d4d53cda6eab864b37aeac4250aee136f8f5b6",
        "516369e34fe4a3e3fa6f5949feef645e25064f1e"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Dec 02 09:47:48 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Dec 02 09:47:48 2009 -0800"
      },
      "message": "am 33ad0f9e: Merge change I0e44976a into eclair\n\nMerge commit \u002733ad0f9ec8d47660b16ced45242a45f369fe2547\u0027 into eclair-mr2\n\n* commit \u002733ad0f9ec8d47660b16ced45242a45f369fe2547\u0027:\n  fix [2297155] SurfaceFlinger\u0027s freeze-timeout doesn\u0027t work\n"
    },
    {
      "commit": "9e50912d687436f7234bcd37a093864e6e076f27",
      "tree": "190325d98138873f63a63a258b3766e970339998",
      "parents": [
        "516369e34fe4a3e3fa6f5949feef645e25064f1e",
        "d3fc8ac6c52c20a6dc2de15d7cf306da8442e414"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 01 22:39:33 2009 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 01 22:39:33 2009 -0800"
      },
      "message": "Merge change Iac196e17 into eclair\n\n* changes:\n  Fix issue 2292062: Audio freezes for three seconds when choosing ringtones with a headset connected and music playing.\n"
    },
    {
      "commit": "0408772e34931351d062f2088b611325ddaa6cdb",
      "tree": "20216060dace5fea9d84f39eae9d649091116745",
      "parents": [
        "18facb7c4d471e7a2d1e44f5ac1fcff056f96dcf"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Dec 01 17:23:28 2009 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Dec 01 17:23:28 2009 -0800"
      },
      "message": "fix [2297155] SurfaceFlinger\u0027s freeze-timeout doesn\u0027t work\n\nThere was bug in the logic that calculated the relative timeout, the start time was\nreset each time an event was received, which caused the timeout to never occur if\nan application was constantly redrawing.\n\nNow we always check for a timeout when we come back from the waitEvent() and\nprocess the \"anti-freeze\" if needed, regardless of whether an event was received.\n"
    },
    {
      "commit": "5f1cc4826c48ed024f8db524eebabea4c063701e",
      "tree": "bd3d01b68575b90765f31f2bfe3871c0ade06e6d",
      "parents": [
        "95023f0409488ad16dfb4af70c781fbdc1cbdf0b",
        "2688bf49c474f381b8441c0004dd9bdd0363e0b6"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Dec 01 17:10:08 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Dec 01 17:10:08 2009 -0800"
      },
      "message": "am 8e4a110b: Merge change I5469a4ac into eclair\n\nMerge commit \u00278e4a110b3e146b30b804d7e2cd0825bf56bd7d0f\u0027 into eclair-mr2\n\n* commit \u00278e4a110b3e146b30b804d7e2cd0825bf56bd7d0f\u0027:\n  fixed [2260070] display stopped updating\n"
    },
    {
      "commit": "d3fc8ac6c52c20a6dc2de15d7cf306da8442e414",
      "tree": "b9c1b545313b136bf2acf4892223c7f64f6ee376",
      "parents": [
        "87029dbc462479fd46ea3150567fdbdfbca94a85"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 01 02:17:41 2009 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 01 02:17:41 2009 -0800"
      },
      "message": "Fix issue 2292062: Audio freezes for three seconds when choosing ringtones with a headset connected and music playing.\n\nThe problem comes from a deadlock with AudioPolicyService mutex: When the second ringtone starts,\nthis mutex is locked by AudioPolicyService::startOutput() which in turn calls setParameters() to change the output device.\nAudioflinger::ThreadBase::setParameters() signals the parameter change to the AudioFlinger mixer thread and waits for a condition\nindicating that the parameter change has been processed.\nAt the same time, the mixer thread detects that the audio track corresponding to the first ring tone has been killed and calls its destructor.\nThis calls AudioPolicyService::releaseOutput() which tries to lock the AudioPolicyService mutex.\nIf this happens before the mixer thread can process the setParameters() command we are deadlocked.\nThe deadlock ends because setParameters() uses a timeout when waiting for the condition.\n\nThis regression was introduced by change 33736 fixing issue 2265163.\n\nThe fix consists in calling AudioPolicyService::releaseOutput() from Track::destroy() instead of from Track destructor: as detroy() is never called from the mixer thread loop (as opposed to the destructor) the deadlock described above cannot occur.\n"
    },
    {
      "commit": "c61de17f143b5f806c5bab9cc58910a322302b70",
      "tree": "f667e56ee0bce443f84bfcb6d40e781fb1ec167d",
      "parents": [
        "def563c45163fea9b53fc4627672fd43d4894b2f"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Nov 30 11:15:41 2009 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Nov 30 11:15:41 2009 -0800"
      },
      "message": "fixed [2260070] display stopped updating\n\nalways check that the visible region isn\u0027t empty after all visible regions are recomputed\nclear he freeze-lock if it is.\n"
    },
    {
      "commit": "760971d0976e6a6cccb87e06b55e98ed9b50719c",
      "tree": "383cd4e518ea63bd57f18a1efc7063353caad510",
      "parents": [
        "22396577407a02549d215aa979edcf10510248e3"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Nov 25 06:08:44 2009 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Nov 25 06:08:44 2009 -0800"
      },
      "message": "Fix A2dpAudioInterface getParameters.\n\nA2dpAudioInterface::getParameters() was prepending a \u0027;\u0027 to the key value pair returned from underlying AudioHardwareInterface.\n"
    },
    {
      "commit": "2f0a0a58f6dd03708d3f187816ce849d95354ea0",
      "tree": "4d9d9b61725aabefb94ef9fb2322c6856118283b",
      "parents": [
        "3b70ddd2f648b44c4883a607352de1444ac9e112"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Nov 23 22:40:42 2009 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Nov 23 22:41:36 2009 -0800"
      },
      "message": "When using MDP, we needed to use a texture for diming.\n"
    },
    {
      "commit": "151f4f60276f79065fc70edf7ee218e0226e57ba",
      "tree": "352385d48bbaa2e87dd141f978a2270887260345",
      "parents": [
        "4933a90e0c03105549e4b5b46256b4ae25177e50",
        "09b4ba82d7b6eb5e701fe4127ca93e3dcb93d4b1"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Nov 21 00:18:24 2009 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Nov 21 00:18:24 2009 -0800"
      },
      "message": "Merge change I49f02be9 into eclair\n\n* changes:\n  Issue 2265163: Audio still reported routed through earpiece on sholes\n"
    },
    {
      "commit": "7b92d7ec36a01c3f95eab000581db3360596f61d",
      "tree": "94abd3782281591f48e93c5f8a27db8128b5f132",
      "parents": [
        "2840dde56ba9650577385ef2890b241f3d87c17d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Nov 20 14:26:42 2009 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Nov 20 14:26:42 2009 -0800"
      },
      "message": "Debugging for issue #2228381 android.view.InflateException\n\nBinary XML file line #37: Error inflating class \u003cunknown\u003e after adding a secondary account\n\nNow that I have these debug logs, I want to keep them since they will make\ndebugging these kinds of issues a lot easier in the future.  (Note in this\ncase there was no problem in the framework.)\n\nChange-Id: If2b0bbeda4706b7c5dc1ba4a5db04b74f40e1543\n"
    },
    {
      "commit": "09b4ba82d7b6eb5e701fe4127ca93e3dcb93d4b1",
      "tree": "86622c2a2da9ac0f658fde6b84ecbc5171a5a655",
      "parents": [
        "574917c87f039edffa3873acc485ad775ce7a750"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 19 09:00:56 2009 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 19 23:57:45 2009 -0800"
      },
      "message": "Issue 2265163: Audio still reported routed through earpiece on sholes\n\nThis is a second attempt to fix the audio routed to earpiece syndrom.\nThe root cause identified this time is the crash of an application having an active AudioTrack playing on the VOICE_CALL stream type.\nWhen this happens, the AudioTrack destructor is not called and the audio policy manager is not notified of the track stop.\nResults a situation where the VOICE_CALL stream is considered as always in use by audio policy manager which makes that audio is routed to earpiece.\n\nThe fix consists in moving the track start/stop/close notification to audio policiy manager from AudioTrack to AudioFlinger Track objet.\nThe net result is that in the case of a client application crash, the AudioFlinger TrackHandle object (which implements the remote side of the IAudioTrack binder interface) destructor is called which in turn destroys the Track object and we can notify the audio policy manager of the track stop and removal.\n\nThe same modification is made for AudioRecord although no bug related to record has been reported yet.\nAlso fixed a potential problem if record stop is called while the record thread is exiting.\n"
    },
    {
      "commit": "60f5d3694b4422ac306320ea39678354cb534630",
      "tree": "085930a879bfcfe4c998ae2e76d139fa53864e18",
      "parents": [
        "48d2c6051e7906e86511f72fe938fc66180472fa"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Nov 19 15:52:28 2009 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Nov 19 15:52:28 2009 -0800"
      },
      "message": "backout a workaround that is not needed anymore\n\nwe had to add a call to glFinish() before glReadPixels() because of a bug in the GL ES\ndriver of a certain device. This is not needed anymore.\n"
    },
    {
      "commit": "713795a2e0d594618f45d3b83ac78a2dcbeb12e5",
      "tree": "9ac9e2e4c8150b4775a7549a43ca0d296a258b1f",
      "parents": [
        "574917c87f039edffa3873acc485ad775ce7a750"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Nov 19 14:46:26 2009 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Nov 19 14:46:26 2009 -0800"
      },
      "message": "fix [2269022] The raw picture displayed post shutter seems to have low-resolution\n\nMake sure to always enable linear filtering in LayerBuffer. This change doesn\u0027t affect\ndevices using overlays.\n"
    },
    {
      "commit": "9e911efc10071b7916362370615f8d10dacace62",
      "tree": "5cf1b88e84f34deaad703bc7c8bc80cf8acf1414",
      "parents": [
        "13f82e0909647c62187e0dc84a6560329f81b930"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Nov 16 14:55:36 2009 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Nov 16 14:55:36 2009 -0800"
      },
      "message": "fix [2262591] Junk on screen in ERD46\n\nsince we\u0027re using the GPU for composition, don\u0027t use a texture for dimming,\ninstead simply use an alpha-blended quad.\n\nalso workaround what looks like a GL driver bug by calling glFinish() before\nglReadPixels().\n"
    },
    {
      "commit": "dcaf29af10a3f100f2b8f7a08e9d4b2c656dd1a4",
      "tree": "4040c48baba616d610e8899f05ab2592a432b3b1",
      "parents": [
        "9875c79ba96d324c5acb699038eedfaad399c62a"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Nov 13 18:54:14 2009 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Nov 13 18:54:14 2009 -0800"
      },
      "message": "addresses several bugs: 2206097, 2166583, 2261119, 2216759\n\n2206097: Broken suggestions while composing message\n2166583: Color artifacts with MDP dithering\n2261119: Passion transition animations are rough\n2216759: Screen flicker when dropdown list in background window shows or hides\n\nThis is part of enabling GPU composition instead of using the MDP. This change\nis dependent on another change in the vendor project.\n\nSpecifically this change disables the use of EGLImageKHR for s/w buffers\nfor cache coherency reasons. memcpy is used instead.\n"
    },
    {
      "commit": "963abad79ae64dae9bf4c32bfb110d9e6314c857",
      "tree": "f017c89f91c07d4bc06c8c74efbc03aa73463572",
      "parents": [
        "8b1b9f4e9ca3816777d7228bec2182e16f38a093"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Nov 13 15:26:29 2009 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Nov 13 15:26:29 2009 -0800"
      },
      "message": "fix some aspects of [2258746] native crash in launcher2\n\nSurface::validate() could sometimes dereference a null pointer before checking it wasn\u0027t null.\nThis will prevent the application to crash when given bad parameters or used incorrectly.\nHowever, the bug above probably has another cause.\n"
    },
    {
      "commit": "0b9285e707488e0bb403e857a0d227b3ac2a8cf4",
      "tree": "22f92248e9be2141e93e38f657a5aa9ffd2b10a8",
      "parents": [
        "d8f49f082b6f167aaf69a0ec896c21a0aa0fa629",
        "0e49d35fa4cdd4fde41829a9d6ed0f841febe06d"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 12 22:53:28 2009 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 12 22:53:28 2009 -0800"
      },
      "message": "Merge change Iad79689a into eclair\n\n* changes:\n  Improvements for issue 2197683:\tEnglish IME key-press latency is noticeably higher on passion than sholes\n"
    },
    {
      "commit": "c0c1092183ceb38dd4d70d2732dd3a743fefd567",
      "tree": "103ea3734dae9b26cbfd872cb65cdabf833e8dc0",
      "parents": [
        "ad55651fe7a0525bbf38efe47000a56685b6e81a"
      ],
      "author": {
        "name": "Rebecca Schultz Zavin",
        "email": "rebecca@android.com",
        "time": "Fri Oct 30 18:39:55 2009 -0700"
      },
      "committer": {
        "name": "Rebecca Schultz Zavin",
        "email": "rebecca@android.com",
        "time": "Thu Nov 12 16:31:12 2009 -0800"
      },
      "message": "Modify the binder to request 1M - 2 pages instead of 1M.  The backing store\nin the kernel requires a guard page, so 1M allocations fragment memory very\nbadly.  Subtracting a couple of pages so that they fit in a power of\ntwo allows the kernel to make more efficient use of its virtual address space.\n\nSigned-off-by: Rebecca Schultz Zavin \u003crebecca@android.com\u003e\n"
    },
    {
      "commit": "ad55651fe7a0525bbf38efe47000a56685b6e81a",
      "tree": "4c94083e5904ed9f975489c29f0a9aa14e6551a2",
      "parents": [
        "e9ba5eec8c2072d71ee2e20643499c5646e75a56",
        "092fa4beaf6ca214d88f657a8b233ad0f3fd6a10"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 12 13:37:30 2009 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 12 13:37:30 2009 -0800"
      },
      "message": "Merge change I31c52bef into eclair\n\n* changes:\n  Revert change incorrectly submitted as part of change #32153.\n"
    },
    {
      "commit": "bbc21b01cf43f9b4815fcd8f7c1bbae06a1dd1a7",
      "tree": "76a4fd8e699994050a36aa17709d14a812018ad1",
      "parents": [
        "295fb83735cf70ef157d9280e53651821df067f3"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Nov 05 23:08:00 2009 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Nov 11 16:44:43 2009 -0800"
      },
      "message": "fix [2143798] Need to figure out how to do video on Passion w/ GPU\n\nThis builds on the EGLImage solution. We simply use copybit to convert from the\nYUV frame into an EGLImage created for that purpose and proceed with the\nregular EGLImage code.\nWe need to do this because \"regular\" GL doesn\u0027t support YUV textures.\n\nWe could improve upon this by detecting exacly what the GL supports and bypass\nthis extra step if not required, but we\u0027ll do this later if needed.\n"
    },
    {
      "commit": "0e49d35fa4cdd4fde41829a9d6ed0f841febe06d",
      "tree": "0398db81f741e36f5109eac77180e0a75ed8d8f1",
      "parents": [
        "d7c1513bda6367c76d4b2cdf8875bc518bc860ee"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Nov 09 23:32:22 2009 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Nov 11 12:13:27 2009 -0800"
      },
      "message": "Improvements for issue 2197683:\tEnglish IME key-press latency is noticeably higher on passion than sholes\n\nThis change goes with a kernel driver change that reduces the audio buffer size from 4800 bytes (~27ms) to 3072 bytes (~17ms).\n- The AudioFlinger modifcations in change 0bca68cfff161abbc992fec82dc7c88079dd1a36 have been removed: the short sleep period was counter productive when the AudioTrack is using the call back thread as it causes to many preemptions.\n- AudioFlinger mixer thread now detects long standby exit time and in this case anticipates start by writing 0s as soon as a track is enabled even if not ready for mixing.\n- AudioTrack::start() is modified to start call back thread before starting the IAudioTrack so that thread startup time is masked by IAudioTrack start and mixer thread wakeup time.\n"
    },
    {
      "commit": "7b57085a7353f368e8797ca5e4684a05fb55f26f",
      "tree": "8fb118fcec8ae2e9328f62720bf3794711b7b9b7",
      "parents": [
        "5dc4fb08493aa9cf34dc81283c850b9b6a998ce8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Nov 09 04:45:39 2009 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Nov 09 04:45:39 2009 -0800"
      },
      "message": "AudioFlinger: delete Track object when createTrack() fails due to lack of tracks in AudioMixer.\n\nThis problem was encountered as a side effect of issue 2245298.\n"
    },
    {
      "commit": "5dc4fb08493aa9cf34dc81283c850b9b6a998ce8",
      "tree": "83ee3abe1180108994e9fef87075699d9d45f247",
      "parents": [
        "f50a4a38369d0a438d0a8af1472e805ef3de890f",
        "ee47d43ed3692c8af682689b415c65dc1e45c866"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Nov 08 22:58:34 2009 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Nov 08 22:58:34 2009 -0800"
      },
      "message": "Merge change Ifb9d6df3 into eclair\n\n* changes:\n  More log for issue 2242381.\n"
    },
    {
      "commit": "07d69893e1677bd59a3461a0c4fcd3541563144d",
      "tree": "204e09917226ac8ad93f1552749697f5b525ecb5",
      "parents": [
        "f84570e7afdfebb00546e87cbd54539a69aee675"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@android.com",
        "time": "Sun Nov 08 14:29:02 2009 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@android.com",
        "time": "Sun Nov 08 14:29:02 2009 -0800"
      },
      "message": "Reset binder service threads\u0027 cgroup/priority after command completion\n\nTo prevent buggy command implementations from poisoning binder threads\u0027\nscheduling class \u0026 priority for future command execution, we now reset the\ncgroup and thread priority to foreground/normal when a binder service thread\nfinishes executing the designated command.\n\nChange-Id: Ibc0ab2485751453f6dc96fdb4eb877fd02796e3f\n"
    },
    {
      "commit": "ee47d43ed3692c8af682689b415c65dc1e45c866",
      "tree": "abc0cf1aec71bde8152cfd558ab0d60fc202036a",
      "parents": [
        "982b02c44243591ea3e1cfa3cc417882f1407fc1"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Nov 07 00:01:32 2009 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Nov 07 01:18:20 2009 -0800"
      },
      "message": "More log for issue 2242381.\n\nAdded more log in system dump for AudioFlinger and AudioPolicyService to help debug issue 2242381 and other issues where the audio driver hangs.\n"
    },
    {
      "commit": "6dfe8f1ffad455363fff4fe69ced6da386970fbc",
      "tree": "f86255f2a58669ee9924e8dba8e0ecdc4745eef7",
      "parents": [
        "1ef5d4730b354843abcc1a5ebe8b53bc09ff28f9"
      ],
      "author": {
        "name": "Evan Millar",
        "email": "emillar@google.com",
        "time": "Fri Nov 06 11:25:23 2009 -0800"
      },
      "committer": {
        "name": "Evan Millar",
        "email": "emillar@google.com",
        "time": "Fri Nov 06 11:25:23 2009 -0800"
      },
      "message": "Revert jparks code from IPCThreadState.\n"
    },
    {
      "commit": "092fa4beaf6ca214d88f657a8b233ad0f3fd6a10",
      "tree": "8665017de55657f88b8d51265c056934aadb89bf",
      "parents": [
        "653e129a82a954990867fd6d51eebd5370ac7988"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Thu Nov 05 15:49:22 2009 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Thu Nov 05 15:49:22 2009 -0800"
      },
      "message": "Revert change incorrectly submitted as part of change #32153.\n\nChange-Id: I31c52beff03c0d038a257fc151eff3b8da60eddc\n"
    },
    {
      "commit": "471afca7fce7db8dfb4b59d10f9e699a6b951cb5",
      "tree": "1d47eb0d2b8e8a791eb76bfe7f434a671204627c",
      "parents": [
        "cfe0ef242770a2b4186b4501421365dc667e1c5d"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Thu Nov 05 13:36:15 2009 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Thu Nov 05 15:40:35 2009 -0800"
      },
      "message": "Prevent crash in Home when using widgets whose ids collide with Home\u0027s\nresources.\n\nBug #2228943.\n\nApproved by mcleron, triaged by ryanpc.\n\nChange-Id: Idf40f3b09502ae5d0d3b9a6a72c265a2de2ffca2\n"
    },
    {
      "commit": "b5c41353337b3db2dc0ca0df163d5294af8281bc",
      "tree": "7ffd7d27c1a8f695b9c1f25dfa9aff4baf0ad404",
      "parents": [
        "a6052978975fbc77db923cc34622dc24467b2534"
      ],
      "author": {
        "name": "Jason Parks",
        "email": "jparks@google.com",
        "time": "Wed Nov 04 14:25:26 2009 -0800"
      },
      "committer": {
        "name": "Jason Parks",
        "email": "jparks@google.com",
        "time": "Wed Nov 04 14:25:26 2009 -0800"
      },
      "message": "When a thread is about to be put back onto the thread pool ensure that it is in the foreground cgroup.\n"
    },
    {
      "commit": "f19995856d2baebd1fe60cc190843acb6b6fe417",
      "tree": "2563de9a2c6a79c1c36be1f18e5cccfa44ebfa2a",
      "parents": [
        "767d73d9f24ce392441822f83613ec78004d0c4b",
        "dcd3958c5086f757dc09472700ae7384efea7fc8"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 03 16:29:22 2009 -0500"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 03 16:29:22 2009 -0500"
      },
      "message": "Merge change If2fdad3b into eclair\n\n* changes:\n  Add a warning when we leave threads in the binder thread pool in the background scheduling group.\n"
    },
    {
      "commit": "dcd3958c5086f757dc09472700ae7384efea7fc8",
      "tree": "425e5932fd6373a663caebf468b113d553f11d5a",
      "parents": [
        "f29a0aa698ba61d4a9de886c6077233d594ad78c"
      ],
      "author": {
        "name": "Jason Parks",
        "email": "jparks@google.com",
        "time": "Tue Nov 03 12:14:38 2009 -0800"
      },
      "committer": {
        "name": "Jason Parks",
        "email": "jparks@google.com",
        "time": "Tue Nov 03 13:10:15 2009 -0800"
      },
      "message": "Add a warning when we leave threads in the binder thread pool in the background scheduling group.\n"
    },
    {
      "commit": "7f698b4c5cadcaf78a69a668285be8ce16b72b44",
      "tree": "ffa4a1ace92627351f499cf9b4a9e760276883fe",
      "parents": [
        "368ad53c549cd105e725d0290da68be2e7717b4c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Nov 02 10:29:02 2009 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Nov 03 09:33:35 2009 -0800"
      },
      "message": "Log for issue 2203561.\n\nImplemented AudioPolicyService dump().\nAdded detailed dump for AudioPolicyManageriGeneric when AudioPolicyService is dumped.\n"
    },
    {
      "commit": "368ad53c549cd105e725d0290da68be2e7717b4c",
      "tree": "e7808080b7393dff50b8a54a968f0a312ee13c67",
      "parents": [
        "5a23afee77981fb2812d69e5eedfcbb442e691c0",
        "6fee064809068fe1a7da63d55678d9a222b0be15"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 02 21:26:54 2009 -0500"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 02 21:26:54 2009 -0500"
      },
      "message": "Merge change I36d0184e into eclair\n\n* changes:\n  fix[2228133] pixelflinger ignores the \"vertical stride\" leading to artifacts when playing back video\n"
    },
    {
      "commit": "6fee064809068fe1a7da63d55678d9a222b0be15",
      "tree": "119f2ce4dc9362a7e389eac87abe1a7d7c691c5c",
      "parents": [
        "aa628c911a6ec727f4cff0d664a9af5d91770828"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Nov 02 17:48:33 2009 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Nov 02 17:48:33 2009 -0800"
      },
      "message": "fix[2228133] pixelflinger ignores the \"vertical stride\" leading to artifacts when playing back video\n\nwe lost the concept of vertical stride when moving video playback to EGLImage.\nHere we bring it back in a somewhat hacky-way that will work only for the\nsoftgl/mdp backend.\n"
    },
    {
      "commit": "d7f53e1945be8db145a5f1be038ed223d25a8edf",
      "tree": "45e96379b248e75f7a0d0251530ccbe6bf41b04b",
      "parents": [
        "dbeb4d37d7154f30b11254a4fa1a801e894f8e98"
      ],
      "author": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Mon Nov 02 16:02:43 2009 -0800"
      },
      "committer": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Mon Nov 02 16:36:45 2009 -0800"
      },
      "message": "libbinder: MemoryHeapPmem: honor the NO_CACHING flag when creating a client heap\n\nChange-Id: Ia7beb800f5a24beaa4b7f3032b486d4ed1991b23\nSigned-off-by: Dima Zavin \u003cdima@android.com\u003e\n"
    },
    {
      "commit": "1bd16a1511d43fc5b109f500d67b916776e8cce3",
      "tree": "1226b851c99fd9e2ba193ae29992f403c92d6403",
      "parents": [
        "a9888b50aa9fc7056c9d69273cd900919b70f7bc",
        "0db1a8931bb24b4f240c19210e70844af8c1e9ff"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 02 17:55:43 2009 -0500"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 02 17:55:43 2009 -0500"
      },
      "message": "Merge change Ibaef6141 into eclair\n\n* changes:\n  libbinder: add a NO_CACHING flag to MemoryHeapBase\n"
    },
    {
      "commit": "134aa9c94240283c8b89f67146d8c7301274a192",
      "tree": "aa681486dcaad1825b4e2cc22d6345f9e4a8bc64",
      "parents": [
        "db95a9e824f51c39a40833ee3c80daf6b6af3247"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Oct 30 11:09:39 2009 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Nov 02 00:13:56 2009 -0800"
      },
      "message": "Fix issue 197683: English IME key-press latency is noticeably higher on passion than sholes. Part 2.\n\nReduce sleep time in AudioFlinger mixer thread when no data has been written to output to speed up startup time when  exiting standby.\n\nThe rest of the modifications for this issues is in kernel driver:\n commit 0dbb0ee136ed8de757df1ae26d84556c1751deae for buffer size modification from 8192 to 4800 bytes.\nAnother kernel improvement that is not submitted yes will reduce delay when audio output is exiting standby.\n"
    },
    {
      "commit": "0db1a8931bb24b4f240c19210e70844af8c1e9ff",
      "tree": "b45e2140c8dd6ebde5b6173f4f71b2da1e2daea1",
      "parents": [
        "db95a9e824f51c39a40833ee3c80daf6b6af3247"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Thu Oct 29 22:55:00 2009 -0700"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Fri Oct 30 18:35:47 2009 -0700"
      },
      "message": "libbinder: add a NO_CACHING flag to MemoryHeapBase\n\nThe NO_CACHING flag translates to opening a memory region with O_SYNC.\n\nSigned-off-by: Iliyan Malchev \u003cmalchev@google.com\u003e\n"
    },
    {
      "commit": "fa4c9b8af858ce0da30cafd1ecbb30b99bdfd078",
      "tree": "0f98dcd291287c0f427d79510b3c233da00adf4f",
      "parents": [
        "bd5a0027f4fbffc8cada0d22e8ccebf680cdc749",
        "8889a8183c0a8ed2394c05c7d742554f8d0fa49d"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 30 17:54:16 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 30 17:54:16 2009 -0400"
      },
      "message": "Merge change Id8b28e4f into eclair\n\n* changes:\n  fix [2225964] Android runtime restarted in surfaceflinger/BlurFilter.cpp\n"
    },
    {
      "commit": "bd5a0027f4fbffc8cada0d22e8ccebf680cdc749",
      "tree": "2eeb661d91e958efb770d8a6d0749a31e2ea44c5",
      "parents": [
        "b4d8fbb1a72f77408db2bd2d89d987af504b0141",
        "863e5fdde858d732ac76320369b6304599f23b4c"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 30 17:54:10 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 30 17:54:10 2009 -0400"
      },
      "message": "Merge change I56779290 into eclair\n\n* changes:\n  fix[2222341] Soft reset while going back from camcorder settings\n"
    },
    {
      "commit": "b4d8fbb1a72f77408db2bd2d89d987af504b0141",
      "tree": "7259720dd05b72dd48f07374e0912c0816e70914",
      "parents": [
        "b4d306fb4936cc7da0aad9cc20491d57f9c10a66",
        "df2d92940550bc68c3c237937bce7ac16d9fa91b"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 30 17:54:03 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 30 17:54:03 2009 -0400"
      },
      "message": "Merge change If007a2fa into eclair\n\n* changes:\n  return proper error code from eglCreateImageKHR\n"
    },
    {
      "commit": "863e5fdde858d732ac76320369b6304599f23b4c",
      "tree": "b8d374db3d255ee24a6884167238ad8955bd722b",
      "parents": [
        "df2d92940550bc68c3c237937bce7ac16d9fa91b"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Oct 29 18:29:30 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Oct 30 14:48:50 2009 -0700"
      },
      "message": "fix[2222341] Soft reset while going back from camcorder settings\n\nadd a way to convert a mapped \"pushbuffer\" buffer to a gralloc handle\nwhich then can be safely used by surfaceflinger, without including\ngralloc_priv.h\n"
    },
    {
      "commit": "550a11455a5155b078085fd5f464d7f3e5dfb7fc",
      "tree": "cc2aae8a08b6e1429c456596bcbfcba6485b1618",
      "parents": [
        "a248b0f5b8b6153b9cf9e09b39f72bc20a5c6908"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Thu Oct 29 10:19:34 2009 -0700"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Fri Oct 30 10:24:06 2009 -0700"
      },
      "message": "DO NOT MERGE: Another gcc 4.0.3 workaround.\n\nTemporarily make a function public that doesn\u0027t need to be.  When\nhost gcc-4.0.3 is gone from the build servers we can undo this.\n\n(Cherry-picked from eclair-mr2.)\n"
    },
    {
      "commit": "8889a8183c0a8ed2394c05c7d742554f8d0fa49d",
      "tree": "5536f0a133ee902d2386a4aa3f37609e322d49c8",
      "parents": [
        "b0d0de329d73a70e8825ab9a7069b4c56645dc48"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Oct 29 20:24:44 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Oct 29 20:24:44 2009 -0700"
      },
      "message": "fix [2225964] Android runtime restarted in surfaceflinger/BlurFilter.cpp\n\ncrash was due to an unintialized variable, which caused the wrong bluring\nformat to be used and caused a memory overrrun.\n"
    },
    {
      "commit": "df2d92940550bc68c3c237937bce7ac16d9fa91b",
      "tree": "a21e5e8b9975cc71a6451739c5cc0e3a025e2c43",
      "parents": [
        "b0d0de329d73a70e8825ab9a7069b4c56645dc48"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Oct 28 21:00:29 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Oct 29 16:45:41 2009 -0700"
      },
      "message": "return proper error code from eglCreateImageKHR\n"
    },
    {
      "commit": "54ba51dff21de666c5ae3bf3abd4f0634ebb0676",
      "tree": "58a69dccdbfd227b9de3c58a416de45d2a8d3513",
      "parents": [
        "36bc94173c957f33f70bcd16c369951f5b2dc3f6"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Oct 26 20:12:37 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Oct 27 13:13:29 2009 -0700"
      },
      "message": "    fix [2143798] Need to figure out how to do video\n\n    Use EGLImageKHR instead of copybit directly.\n    We now have the basis to use streaming YUV textures (well, in fact\n    we already are). When/if we use the GPU instead of the MDP we\u0027ll\n    need to make sure it supports the appropriate YUV format.\n\n    Also make sure we compile if EGL_ANDROID_image_native_buffer is not supported\n"
    },
    {
      "commit": "730ab0bc3bebe040cc82436743bc50cbea8ae7f3",
      "tree": "d32a65f376d6ca31c575b673061f1d518e8fbfb3",
      "parents": [
        "0483686638357ca0953059de0516ba48d8f42c62",
        "63da2b65f9cedf2d629bd5b35c51921bbb899a79"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Oct 24 04:32:28 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Oct 24 04:32:28 2009 -0400"
      },
      "message": "Merge change Icf10db28 into eclair\n\n* changes:\n  Fix issue 2192181: AudioFlinger must provide separated methods to set VOICE_CALL stream volume and down link audio volume.\n"
    },
    {
      "commit": "57720c384af81327d327ef8b88078f11a750fd05",
      "tree": "4125091c671e9fd56bb292f54b04b3668a8fadab",
      "parents": [
        "9521fc0f17c227fa79dd4d830d4607557d060f00"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Oct 21 16:27:21 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Oct 23 15:37:28 2009 -0700"
      },
      "message": "fix [2211532] improves sholes graphics performance\n\nInstead of using glTex{Sub}Image2D() to refresh the textures, we\u0027re using an EGLImageKHR object\nbacked up by a gralloc buffer. The data is updated using memcpy(). This is faster than\nglTex{Sub}Image2D() because the texture is not swizzled. It also uses less memory because\nEGLImageKHW is not limited to power-of-two dimensions.\n"
    },
    {
      "commit": "63da2b65f9cedf2d629bd5b35c51921bbb899a79",
      "tree": "3ef1f764fafbb2ea46cb525d0deda13ab77133db",
      "parents": [
        "47bd9427f9e725e462f30edf55c4ed37463b194c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Oct 21 08:14:22 2009 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Oct 21 12:29:37 2009 -0700"
      },
      "message": "Fix issue 2192181: AudioFlinger must provide separated methods to set VOICE_CALL stream volume and down link audio volume.\n\nAdded setVoiceVolume() method to AudioSystem, AudioFlinger, IAudioFlinger, AudioPolicyService.\nRemoved call to AudioHardwareInterface::setVoiceVolume() from AudioFlinger::setStreamVolume().\n"
    },
    {
      "commit": "38a7fa2ae37236952e5fb0186fddb4f6da5990d8",
      "tree": "75fba8e01e6dfc6ac4afab2992de185b91edbf1c",
      "parents": [
        "f7f46955f70db4fa032d6ee0bf6bef1d10a7a181"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Oct 15 18:08:15 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Oct 15 18:08:15 2009 -0700"
      },
      "message": "fix [2182249] [MR1] valgrind error in surface flinger\n"
    },
    {
      "commit": "21154125643ab0baba3c4b074e196ac0d43d77f4",
      "tree": "6a6f4c2c3ec652b0555678bf204468227211b312",
      "parents": [
        "b55acf4902bb8437febfbed9fd183d4202a9cd79"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 08 10:58:19 2009 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 08 12:03:51 2009 -0700"
      },
      "message": "Fix issue 2174002: After rejecting Call when device ringtone is mute and playing music, audio is not transfered to BT device.\n\nAdded a workarouond to request the A2DP output standby directly to audio hardware when the sink is suspended as it seems that the suspend request often fails.\n\nAlso take into account resume requests received while a suspend request is pending.\n"
    },
    {
      "commit": "c3f90813a15d8ff97e04e5ae0873c2261214224d",
      "tree": "34f06f869976fb6da874ffd36e75058f15e2db02",
      "parents": [
        "11590bbe1c12af8ba7bf6bc0d3883efcf15dbac1",
        "8f2d50521653f24c2a5e77b627dc015c7fbd656a"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 07 21:09:49 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 07 21:09:49 2009 -0400"
      },
      "message": "Merge change I46b2df15 into eclair\n\n* changes:\n  fix [2164183] sometimes device just wants to stay asleep\n"
    },
    {
      "commit": "d3144beec6acb37702629799a2adbeccc72ca222",
      "tree": "48feaca0f7fab325bf60d0c2a6de3a425de82926",
      "parents": [
        "28541629e163399fd1cac126e06868ecf1b4811e"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Oct 06 15:58:44 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Oct 07 18:03:35 2009 -0700"
      },
      "message": "fix [2170283] SurfaceFlinger crashes on OOM.\n\nwhen running out of memory, a null handle is returned but the error code may not be set.\nIn that case we need to return NO_MEMORY instead of NO_ERROR, so that the calling code\nwon\u0027t try to dereference the null pointer.\n"
    },
    {
      "commit": "8f2d50521653f24c2a5e77b627dc015c7fbd656a",
      "tree": "49f7ced9cddff8187f64d4a28ecd5d8ddbd860c7",
      "parents": [
        "28541629e163399fd1cac126e06868ecf1b4811e"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Oct 07 17:58:29 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Oct 07 17:58:29 2009 -0700"
      },
      "message": "fix [2164183] sometimes device just wants to stay asleep\n\nWhen switching rapidily orientation back and forth, surfaces end-up\nacquiring the freeze-lock when the first orientation change happens,\nbut never release it because by the time the 2nd orientation change\ncomes in, the surface size is back to its original size and\ndoesn\u0027t appear to have resized.\n\nwe now always release the freeze-lock when we receive a buffer of the\nexpected size.\n"
    }
  ],
  "next": "e700501d0e888ead9ac6456c0a6fd74d634aa5fb"
}
