)]}'
{
  "log": [
    {
      "commit": "4cc86e1ae80eb1938500fe5fa06bbdf8b4b7b50d",
      "tree": "29e86fea79bb021db76dda017ec3d4c72d437349",
      "parents": [
        "bb339eadcb4a3ffd2dc861ffb0f268a49238fd03"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@android.com",
        "time": "Mon Sep 21 19:36:51 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@android.com",
        "time": "Thu Sep 24 11:19:04 2009 -0700"
      },
      "message": "Clear the device\u0027s data from the transport when backup is disabled\n\nTurning off backup in the Settings UI constitutes an opt-out of the whole\nmechanism.  For privacy reasons we instruct the backend to wipe all of the data\nbelonging to this device when the user does this.  If the attempt fails it is\nrescheduled in the future based on the transport\u0027s requestBackupTime()\nsuggestion.  If network connectivity changes prompt the transport to indicate a\nbackup pass is appropriate \"now,\" any pending init operation is processed before\nthe backup schedule is resumed.\n\nThe broadcasts used internally to the backup manager are now fully protected;\nthird party apps can neither send nor receive them.\n\n(Also a minor logging change; don\u0027t log \u0027appropriate\u0027 EOF encountered during\nparsing of a backup data stream.)\n"
    },
    {
      "commit": "cc934763c3fc789f53edb64de16fc36d43c3705d",
      "tree": "5e9f508326cbaa27bd1fd255324dfcd4026badbf",
      "parents": [
        "44cac134655d5c3b2eeab2e42792c70a7aa8b92f"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Sep 23 19:16:27 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Sep 23 19:16:27 2009 -0700"
      },
      "message": "turn dithering off if it\u0027s not needed\n"
    },
    {
      "commit": "44cac134655d5c3b2eeab2e42792c70a7aa8b92f",
      "tree": "517d1519e56a14c4ebec42037af458c09b0c2b28",
      "parents": [
        "8434c5369304e639efe8eab368ca410c589d87c2"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Sep 23 18:34:53 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Sep 23 18:55:02 2009 -0700"
      },
      "message": "fix [2142193] disable GL_LINEAR when not needed\n"
    },
    {
      "commit": "a30071273a8ee59b300eebe515db86f9070ab4a4",
      "tree": "908b3063306631ab46e179b8e36864771730f81a",
      "parents": [
        "b5501d0e5ce69a1c06d9f9a871b48db4b4274791",
        "9ac2c66f0171593113238635c6a7921c41215e77"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 23 20:27:52 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 23 20:27:52 2009 -0400"
      },
      "message": "Merge change 26728 into eclair\n\n* changes:\n  Make the renderscript timing logging available by setting debug.rs.profile\u003d1\n"
    },
    {
      "commit": "9ac2c66f0171593113238635c6a7921c41215e77",
      "tree": "77b1468329a63d5bf1e98e7c6dce739a313afce9",
      "parents": [
        "8799b96ea09d5fdd9904dd9de3002c0a9cd28fdc"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Sep 23 16:37:36 2009 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Sep 23 17:26:07 2009 -0700"
      },
      "message": "Make the renderscript timing logging available by setting debug.rs.profile\u003d1\n"
    },
    {
      "commit": "2e4b68d57bb64d7e93139238c5a8be91ff956c2a",
      "tree": "7604a70e3ed76b71cd472c8f1320719cd5bbc835",
      "parents": [
        "bc7261130a51dc9f3461d3970eee1b923bcbf193"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Sep 23 16:44:00 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Sep 23 16:59:57 2009 -0700"
      },
      "message": "fix [2133214] STOPSHIP: revert I4a06bb4f: workaround for [2113743] Sholes: frozen then runtime restart going to list view\n\nRevert \"workaround for [2113743] Sholes: frozen then runtime restart going to list view\"\n\nThis reverts commit 4a06bb4f3355b0ef2b76aa883704da9d154c44ae.\n"
    },
    {
      "commit": "bc7261130a51dc9f3461d3970eee1b923bcbf193",
      "tree": "8f74c3943a2582418addd8c91e0c1307fe95f733",
      "parents": [
        "de0dfb7b65a02d4dd74c271b558adee0973fc267"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Sep 23 15:44:05 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Sep 23 15:49:32 2009 -0700"
      },
      "message": "fix [2132563] stuck in boot animation (framebuffer_device_open: Failed to create flip chain)\n"
    },
    {
      "commit": "5dd7c726f45fd7b7ab473471dc504c00012a6856",
      "tree": "e06c31e1f13d2de6ad2000e261e900f8e7d8b615",
      "parents": [
        "f017167f52e2459cf16fabde8afb5a6c51bd780f",
        "ebfb436a49673693b98469683451bd9ede797557"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 23 17:00:22 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 23 17:00:22 2009 -0400"
      },
      "message": "Merge change 26667 into eclair\n\n* changes:\n  Add raster object to control point and line params. Add flag to force SW rendering.\n"
    },
    {
      "commit": "ebfb436a49673693b98469683451bd9ede797557",
      "tree": "62300ba279079ae34c56dc883430afe4b336f7c6",
      "parents": [
        "59038ca98b5f258784687523ee3be11b5dfa995d"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "rjsams@android.com",
        "time": "Wed Sep 23 13:57:02 2009 -0700"
      },
      "committer": {
        "name": "Jason Sams",
        "email": "rjsams@android.com",
        "time": "Wed Sep 23 13:57:02 2009 -0700"
      },
      "message": "Add raster object to control point and line params. Add flag to force SW rendering.\n"
    },
    {
      "commit": "bdeccbba6f6ed49da4e8e668d62754bc7263e9ce",
      "tree": "bcf306256e729c148c0f27aff4aa2c69d84cf0d1",
      "parents": [
        "3f2c70fb9e2dd503f96958db501729a20bb33c31",
        "e613468402544b3dff735ac1311a2864a6660f4a"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 23 15:02:49 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 23 15:02:49 2009 -0400"
      },
      "message": "Merge change 26623 into eclair\n\n* changes:\n  fbDev wasn\u0027t initialized of hw_get_module failed, but was then used anyway.\n"
    },
    {
      "commit": "e613468402544b3dff735ac1311a2864a6660f4a",
      "tree": "4b2b634a7bf1cdc6e00e4adb4b56d8eaee983cf3",
      "parents": [
        "585c67f70f18b8879ced854c5865141d6c650cd8"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Sep 23 10:54:36 2009 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Sep 23 10:56:51 2009 -0700"
      },
      "message": "fbDev wasn\u0027t initialized of hw_get_module failed, but was then used anyway.\n"
    },
    {
      "commit": "59038ca98b5f258784687523ee3be11b5dfa995d",
      "tree": "c729e93a9e660c8e36d9eb9b1d65bca6e517eabc",
      "parents": [
        "008fc5d142b58688a3827a544c524dff11204c62"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "rjsams@android.com",
        "time": "Tue Sep 22 12:26:53 2009 -0700"
      },
      "committer": {
        "name": "Jason Sams",
        "email": "rjsams@android.com",
        "time": "Tue Sep 22 12:26:53 2009 -0700"
      },
      "message": "Update viewport when height or width change.\n"
    },
    {
      "commit": "f69a3f8dc54707e5be327e83cec742824d1ba263",
      "tree": "2f429e991d0499f5e1c176a2c7f5a46e522dff5f",
      "parents": [
        "2e2f6b5e6866cdba632bdd599cadbf235b80546f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 22 00:35:48 2009 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 22 00:35:48 2009 -0700"
      },
      "message": "Fix issue 2116700: Ringer screwy while connected over Bluetooth.\n\nThere was a regression introduced in AudioFlinger by change 24114 for suspended output:\nThe suspended output was not reading and mixing audio tracks.\nWhen the phone is ringing, the A2DP output is suspended if the SCO headset and A2DP headset are the same. As the ringtone is played over the duplicated output, the fact that the A2DP output was not reading data was causing the hardware output to be stalled from time to time.\n"
    },
    {
      "commit": "fa0a4bde3fa520aa10de88239af04b45a3e28da0",
      "tree": "266be60c60e453239bdb356c854e419e129b259b",
      "parents": [
        "77fa24a5ef3ee3bc108d4bf3c77b7b4c7d0d5451"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Mon Sep 21 14:33:20 2009 -0700"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Mon Sep 21 14:33:20 2009 -0700"
      },
      "message": "Work around gcc 4.0.3 bug.\n\nThis appears to fix the sim-eng build on the gDapper build machines.\n\nBasic problem is that LayerBuffer::OverlaySource has a constructor that\ncalls SurfaceFlinger.signalEvent().  SurfaceFlinger lists LayerBuffer\nas a friend, but that\u0027s not enough to convince gcc that the embedded\nOverlaySource class is also a friend.  I don\u0027t see a way to make them\nfriendly, so I marked signalEvent() as public.\n"
    },
    {
      "commit": "c6a22beff2af0590c1d76342bf57853f2bc85ff8",
      "tree": "97c78bbb58f82fe22e417b10dbb3eac5ce5aff56",
      "parents": [
        "5ea916b17cf0071f4d49936a370f4b873e4eb3e3",
        "4a06bb4f3355b0ef2b76aa883704da9d154c44ae"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Sep 20 20:12:30 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Sep 20 20:12:30 2009 -0400"
      },
      "message": "Merge change 26081 into eclair\n\n* changes:\n  workaround for [2113743] Sholes: frozen then runtime restart going to list view\n"
    },
    {
      "commit": "4a06bb4f3355b0ef2b76aa883704da9d154c44ae",
      "tree": "190a580772bf1cf941bde1bb924ba6a6f54f7619",
      "parents": [
        "0647b580aa7874311fc77b659e4f646750ddd74e"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Sep 17 22:04:50 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun Sep 20 17:08:45 2009 -0700"
      },
      "message": "workaround for [2113743] Sholes: frozen then runtime restart going to list view\n"
    },
    {
      "commit": "6cca1599f78549716ef120245e54fa1961976dda",
      "tree": "938b0ff8e0530e9e665f3ac4e7434bcefade2344",
      "parents": [
        "d163f4babe101b89aaf322c34d3bafeae237f7da"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Sep 20 12:40:03 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Sep 20 12:40:03 2009 -0700"
      },
      "message": "Fix issue #1862317: Browser does not appear to honor anchors (#es) in links\n\nAlso a little improved debugging output of bad resource identifiers.\n\nChange-Id: I054064ef22855608ffd722e4ccf12ce57d1992b2\n"
    },
    {
      "commit": "d342fd75267f30c299d15f2a3d25481267352482",
      "tree": "3c37b692d1eedb25a7a8be77d094cdbc622c4ec2",
      "parents": [
        "66fdd84e28a0619b7981ca00f2f2cd7681dbc82d"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "rjsams@android.com",
        "time": "Fri Sep 18 14:24:24 2009 -0700"
      },
      "committer": {
        "name": "Jason Sams",
        "email": "rjsams@android.com",
        "time": "Fri Sep 18 14:24:24 2009 -0700"
      },
      "message": "Clean up some debugging and add 2 math lib routines.\n"
    },
    {
      "commit": "2925b8c62a03381e5b3ff159847e8312ae9dfee5",
      "tree": "8897f49792ada5363176047cc10de96579a288d0",
      "parents": [
        "56af9e9f9cbc3626acf55558d581efd2de3caa03",
        "b9481d8cf6f3ade96ed062dc3f601c777fe4430f"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 18 02:55:00 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 18 02:55:00 2009 -0400"
      },
      "message": "Merge change 25496 into eclair\n\n* changes:\n  Fix issue 2127371: Possible race condition in AudioFlinger::openRecord() when a Track is being destroyed.\n"
    },
    {
      "commit": "ac7f13bc1ac8af99093987ebcb811f3892b49296",
      "tree": "e2cd07d253de353a68db17ab2820710f8ccbe2aa",
      "parents": [
        "cd25c56ad442fd5574c1fa49e0d443a80551ee1f"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Sep 17 19:19:08 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Sep 17 19:23:59 2009 -0700"
      },
      "message": "fix [2129080] Soft reboot after clicking around and then rubbing the screen\n"
    },
    {
      "commit": "b1a1874625a6aca967601fcda53a82d8d712df45",
      "tree": "3cf96bf9cc4bf734da47e58cab3c5421e7698139",
      "parents": [
        "d55de40481c6ec7d8fbd1a38c80a6c66bf462a71"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Sep 17 16:18:16 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Sep 17 16:18:16 2009 -0700"
      },
      "message": "Android side of the fix for [2121211] Sholes has stutter during animations\n\na new method, compostionComplete() is added to the framebuffer hal, it is used by surfaceflinger to signal the driver that the composition is complete, BEFORE it releases its client. This gives a chance to the driver to\n"
    },
    {
      "commit": "b9481d8cf6f3ade96ed062dc3f601c777fe4430f",
      "tree": "4b6e08fb86055440d681edf00a7d891f08ca4e04",
      "parents": [
        "76f0111845f0886f522cfe1eb5ec1dee34181f7c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 17 05:12:56 2009 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 17 09:26:04 2009 -0700"
      },
      "message": "Fix issue 2127371: Possible race condition in AudioFlinger::openRecord() when a Track is being destroyed.\n\nThe fix consists in locking AudioFlinger::mLock mutex in the TrackBase destructor before clearing the strong pointer to the shared memory client. The mutex is not locked in removeclient() any more which implies that we must make sure that the Client destructor is always called from the TrackBase destructor or that we hold the mLock mutex before calling deleting the Client.\n"
    },
    {
      "commit": "bcef9ac35da08b9f7f8a4728af94c23a7a010669",
      "tree": "c13c342c0265bc0b94608695d90e3edb6f54a918",
      "parents": [
        "76f0111845f0886f522cfe1eb5ec1dee34181f7c"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Sep 17 01:35:28 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Sep 17 01:35:28 2009 -0700"
      },
      "message": "add basic time stats for surfaces lock time\n"
    },
    {
      "commit": "e38212a22f900468cc4a888b896bee99e1c29a1d",
      "tree": "c7a67eead4e701e8cc719a44f9163d735500b468",
      "parents": [
        "a6aca3e094719b181c9858aa57d6c2160c5cb16a"
      ],
      "author": {
        "name": "Benny Wong",
        "email": "Benny.Wong@motorola.com",
        "time": "Wed Sep 16 14:48:52 2009 -0500"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Sep 16 20:24:21 2009 -0700"
      },
      "message": "Overlay could not set position or rotation immediately after created, it should be triggered by signalEvent().\nOriginally from: https://partner.source.android.com/g/#change,1074\n"
    },
    {
      "commit": "af369f6280c9eec0caa3f53f8e27f3713e1a7d25",
      "tree": "8021b39056c7e3e0ce50d8a6b26a4b6459aecbfa",
      "parents": [
        "75c4d498776a189f37e3d0294c9eda9ed51f6534"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Sep 16 20:15:42 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Sep 16 20:15:42 2009 -0700"
      },
      "message": "disable backbuffer preservation when possible, which may improve performance a bit\n"
    },
    {
      "commit": "75c4d498776a189f37e3d0294c9eda9ed51f6534",
      "tree": "6499144a5b2d4115e350c4e75c7c43f830ce2406",
      "parents": [
        "b8eb1cb79b2912b91a1b0198ba3e61776af07a79",
        "7cf03bace826631259aaa5ddc87a517e13bdee17"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 16 21:27:54 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 16 21:27:54 2009 -0400"
      },
      "message": "Merge change 25423 into eclair\n\n* changes:\n  fix [2119400] sholes: artifacting when switching orientation\n"
    },
    {
      "commit": "7cf03bace826631259aaa5ddc87a517e13bdee17",
      "tree": "48833f33eac1c4549761cc878f7945ae1cf2bbf0",
      "parents": [
        "2c68dd0483dd4f7b211bea32652d42c3c7cd602c"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Sep 16 18:27:24 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Sep 16 18:27:24 2009 -0700"
      },
      "message": "fix [2119400] sholes: artifacting when switching orientation\n"
    },
    {
      "commit": "9080125f6753ca830b091b0103759612036be786",
      "tree": "bd5040b392f150714c330ed61208a16026440bee",
      "parents": [
        "e777e0a3d1645c1b54f12af5779cb7ccf0c82234",
        "2c68dd0483dd4f7b211bea32652d42c3c7cd602c"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 16 20:00:57 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 16 20:00:57 2009 -0400"
      },
      "message": "Merge change 25393 into eclair\n\n* changes:\n  fix again [2102410] Home Screen is not displayed in the background in Landscape Mode\n"
    },
    {
      "commit": "2c68dd0483dd4f7b211bea32652d42c3c7cd602c",
      "tree": "9474980fa006d2366d6b37b4772944ab8b28f698",
      "parents": [
        "9092ab4d458ad60b459d5fad52368bde5d25f665"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Sep 16 17:00:19 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Sep 16 17:00:19 2009 -0700"
      },
      "message": "fix again [2102410] Home Screen is not displayed in the background in Landscape Mode\n"
    },
    {
      "commit": "07e62d1de9ca3c0f6f49973b549e8aa1e802ee5e",
      "tree": "6e3c40eeda9b240f245bcc4d5ce0f07384f9584e",
      "parents": [
        "32c687c20d6ac3080b396787147892dc85126b33",
        "be2e84193f709419634de4cc3ba0e67acf6976f3"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 16 18:06:12 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 16 18:06:12 2009 -0400"
      },
      "message": "Merge change 25185 into eclair\n\n* changes:\n  Implement renderscript Invokables.\n"
    },
    {
      "commit": "be2e84193f709419634de4cc3ba0e67acf6976f3",
      "tree": "5c940265dd0a42ef6072c03ec463a6961a6fb4d3",
      "parents": [
        "91a5d831d6e2311d4129cb6086a67ab66874992c"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "rjsams@android.com",
        "time": "Wed Sep 16 15:04:38 2009 -0700"
      },
      "committer": {
        "name": "Jason Sams",
        "email": "rjsams@android.com",
        "time": "Wed Sep 16 15:04:38 2009 -0700"
      },
      "message": "Implement renderscript Invokables.\n"
    },
    {
      "commit": "2bb6b2a11f50401701ed0aa098f91be158bc75a6",
      "tree": "6c07ed0d0b151f9004fb9bd41970b785d8b60ce6",
      "parents": [
        "8e9ef0e78970d0ca399bd3c9aaf9011f0e4aaebe"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Sep 16 06:02:45 2009 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Sep 16 06:02:45 2009 -0700"
      },
      "message": "Fix issue 2123668: Class scope typo in AudioFlinger.cpp.\n"
    },
    {
      "commit": "8ae0384a78ee2b66a91a13fe1c2a80f0642feacd",
      "tree": "05310c9e19505fa0e5ac94ed28d246e59bcb0fa4",
      "parents": [
        "e611a6ed33d157b7ae15bdfe4e1873dc20ce7d48"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Sep 15 19:31:28 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Sep 15 19:31:28 2009 -0700"
      },
      "message": "revert to black video background, since we don\u0027t need the color-key anylonger\n"
    },
    {
      "commit": "e611a6ed33d157b7ae15bdfe4e1873dc20ce7d48",
      "tree": "fc1e8f0b97d6f2c4cb43c52055e5f015ffe8204a",
      "parents": [
        "dd8f6186775f69a8fef6213bcdc23be633d1ab6f"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Sep 15 19:10:47 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Sep 15 19:21:31 2009 -0700"
      },
      "message": "fix [2122448] android_native_window_t::setUsage() only reallocates the first buffer\n\nTake 2. We needed to check that the usage flags are \"good enough\" as opposed to \"the same\".\n\nThis reverts commit 8f17a762fe9e9f31e4e86cb60ff2bfb6b10fdee6.\n"
    },
    {
      "commit": "8f17a762fe9e9f31e4e86cb60ff2bfb6b10fdee6",
      "tree": "f9500ecdcefae8e859433c2153dcc1b2fe642909",
      "parents": [
        "d6b10fb86229ed0e904138ec4604066ea85059db"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Sep 15 18:57:06 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Sep 15 18:57:06 2009 -0700"
      },
      "message": "Revert \"fix [2122448] android_native_window_t::setUsage() only reallocates the first buffer\"\n\nThis reverts commit 486aa963b63e20b7910e1004cebb4f0afabbd80f.\n"
    },
    {
      "commit": "486aa963b63e20b7910e1004cebb4f0afabbd80f",
      "tree": "b615e2ca3a60bf05a1315410df8fb4b7501105ad",
      "parents": [
        "a4fe2aca527ee45ddde6ace2316cad27dd487379"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Sep 15 17:34:04 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Sep 15 17:34:04 2009 -0700"
      },
      "message": "fix [2122448] android_native_window_t::setUsage() only reallocates the first buffer\n"
    },
    {
      "commit": "2bccbcc777ca48a08663c16e90ea3f76ace6eb07",
      "tree": "8e8fa0065902422a3b3be68c343d0ba076751825",
      "parents": [
        "f73f91c5b1f66bbe4b3ca59b743a62ad5a65853f",
        "296a0ec7e149b6b373b9271683eca286b1c376ed"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 15 11:29:23 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 15 11:29:23 2009 -0400"
      },
      "message": "Merge change 25050 into eclair\n\n* changes:\n  Fix issue 2118464: cannot play ring tones and notifications after disconnecting BT headset while in call.\n"
    },
    {
      "commit": "296a0ec7e149b6b373b9271683eca286b1c376ed",
      "tree": "29d0e221e2719cc7fe816b5f45eb752607ff28ef",
      "parents": [
        "54c06152e0d9c666aec61ae5d9686d7d3327ea34"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 15 07:10:12 2009 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 15 07:10:12 2009 -0700"
      },
      "message": "Fix issue 2118464: cannot play ring tones and notifications after disconnecting BT headset while in call.\n\nThe problem comes from the fact that when the duplicated output is closed after BT headset disconnection, the OUTPUT_CLOSED notification is not sent to AudioSystem. Then the mapping between notification stream and duplicated output cached in AudioSystem is not cleared and next time a notification is played, the duplicated output is selected and the createTrack() request is refused by AudioFlinger as the selected output doesn\u0027t exist.\nThe notification is ignored by AudioFlinger because when it is sent by the terminating playback thread, the thread has already been removed from the playback thread list.\n\nThe fix consists in sending the notification in closeOutput() and not when exiting the playback thread.\nThe same fix is applied to record threads.\n"
    },
    {
      "commit": "244f8c26365a303d9dd861bd48a29a4b48578da1",
      "tree": "33c20568a94d606507507ec5cedf2a01eba8de58",
      "parents": [
        "54c06152e0d9c666aec61ae5d9686d7d3327ea34"
      ],
      "author": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Tue Sep 15 14:51:56 2009 +0800"
      },
      "committer": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Tue Sep 15 18:29:03 2009 +0800"
      },
      "message": "Fix 2083478: Camera needs an auto-focus cancel API\n\nChange-Id: I13bda991b32aee47e82b5cf9d43b3021c416a9a2\n"
    },
    {
      "commit": "54c06152e0d9c666aec61ae5d9686d7d3327ea34",
      "tree": "0f4f6bfa0db5b2bb65a746466fd3ade731af9f7d",
      "parents": [
        "678b4c20cb92ac2b86f13e52ea86d70301358680",
        "64c0e1a51c3063991b4b01cefcf462a74a777592"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 15 02:26:19 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 15 02:26:19 2009 -0400"
      },
      "message": "Merge change 24872 into eclair\n\n* changes:\n  Fix issue 2115450: a2dp thread is started, even though we are only connected to headset and not playing music.\n"
    },
    {
      "commit": "151921a62485f2141ad1316076c196ef00e1b421",
      "tree": "d39ff4a5e1a8030bbebe79b277ca5f4c8d857471",
      "parents": [
        "bd443c01a0fadb2d536ffce1c45950f9037cbc56",
        "64a7c6bf5b73c1a401cb2aa8dfad3898166ae326"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 14 21:11:56 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 14 21:11:56 2009 -0400"
      },
      "message": "Merge change 24977 into eclair\n\n* changes:\n  add support for RGBX_8888 surfaces in SurfaceFlinger\n"
    },
    {
      "commit": "64a7c6bf5b73c1a401cb2aa8dfad3898166ae326",
      "tree": "fe2f128d94e4576d7b353df06ef816cf3ceb181c",
      "parents": [
        "e7f47f50ad0a97e32c87104e56f311db910e98f1"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Sep 14 18:10:30 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Sep 14 18:10:30 2009 -0700"
      },
      "message": "add support for RGBX_8888 surfaces in SurfaceFlinger\n"
    },
    {
      "commit": "4503cb75a02f6465bd576366945a1c5f2c8c13f3",
      "tree": "fb7cf94a83a62f450495653d9353ed5cb0958a74",
      "parents": [
        "c2974809373697147cbe5754835cc871fb93aef1",
        "988f6ebb443846228db1749bdbdd7712d73d3f3d"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 14 20:15:31 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 14 20:15:31 2009 -0400"
      },
      "message": "Merge change 24968 into eclair\n\n* changes:\n  Minor perf tweak for fountain.\n"
    },
    {
      "commit": "53973fda84d3e19642373f50fc33f646e5673584",
      "tree": "7e8157febb5585db1b97d87ca1a1c309396ec186",
      "parents": [
        "bd8527110caa5427ade0edd7ce0d00e63f15ccbc"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Sep 14 15:59:16 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Sep 14 15:59:16 2009 -0700"
      },
      "message": "fix [2117464] SF can crash when calling dumpsys\n"
    },
    {
      "commit": "bd8527110caa5427ade0edd7ce0d00e63f15ccbc",
      "tree": "b3f278132e4c3e9b78cfdfa48a97bf84f26e5d98",
      "parents": [
        "df5e76f9c635a84efa16c5e2f6cf516b4b8fe300"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Sep 14 15:48:42 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Sep 14 15:48:42 2009 -0700"
      },
      "message": "make sure to update the tail pointer when undoing a dequeue\n"
    },
    {
      "commit": "988f6ebb443846228db1749bdbdd7712d73d3f3d",
      "tree": "7797a7c37886ae9e29a636f8c1bcd335a649ee68",
      "parents": [
        "482d54bb0cd9e00fd929185c31fea3ad845d97bc"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "rjsams@android.com",
        "time": "Mon Sep 14 14:55:30 2009 -0700"
      },
      "committer": {
        "name": "Jason Sams",
        "email": "rjsams@android.com",
        "time": "Mon Sep 14 15:00:05 2009 -0700"
      },
      "message": "Minor perf tweak for fountain.\n"
    },
    {
      "commit": "64c0e1a51c3063991b4b01cefcf462a74a777592",
      "tree": "269c73ac43e177f62125340f9937f09f61a84d3c",
      "parents": [
        "91e2d8651fe38a921b37a8bf8b3148c572cf9430"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Sep 14 01:38:42 2009 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Sep 14 02:37:15 2009 -0700"
      },
      "message": "Fix issue 2115450: a2dp thread is started, even though we are only connected to headset and not playing music.\n\nThis is due to a regression introduced by change 24114: when no audio tracks are ready for mixing, 0s are written to audio hardware. However this should only happen if tracks have already been mixed since the audio flinger thread woke up.\nAlso do not write 0s to audio hardware in direct output threads when audio format is not linear PCM.\n"
    },
    {
      "commit": "91e2d8651fe38a921b37a8bf8b3148c572cf9430",
      "tree": "e59c620de2482fdea90b9d22959726d41b45fb8f",
      "parents": [
        "ab50b86b79936623b5e326f2ed84b3c947c8ec93",
        "8a77a995c961c7c9a3888f4212f7be87d08afae1"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 14 02:43:52 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 14 02:43:52 2009 -0400"
      },
      "message": "Merge change 24337 into eclair\n\n* changes:\n  Fix issue 2107584: media server crash when AudioFlinger fails to allocate memory for track control block.\n"
    },
    {
      "commit": "3e63f9173a9d60d83c24b6412fe7dd0c42896797",
      "tree": "d55402a3194c9200aef0529800ba78110db71555",
      "parents": [
        "32d8571f509c392dca732c243e9b2138c15daecf"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Sep 11 19:18:20 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Sep 11 19:18:20 2009 -0700"
      },
      "message": "fix [2111536] [FAST BLOCKER] Device is soft rebooted after ending the call through voice dialer\n"
    },
    {
      "commit": "248b5bd51e325107f8119b564db6a06ac51c232a",
      "tree": "9a059822a1817d5ffb68d471f6e83ec20f583a89",
      "parents": [
        "436c627ca4228284caf363f0cb35947e58b841b9"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Sep 10 19:41:18 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Sep 10 19:41:18 2009 -0700"
      },
      "message": "fix [2112575] stuck on DequeueCondition for a surface that doesn\u0027t exist anymore\n\nthis also fixes part of [2111536] Device is soft rebooted after ending the call through voice dialer\n"
    },
    {
      "commit": "436c627ca4228284caf363f0cb35947e58b841b9",
      "tree": "6743fc56b723aef0c09f2d09279581e862472973",
      "parents": [
        "bcbcaa7edd32ba67c6290d79f7e7821c4b5b39ac"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Sep 10 16:55:13 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Sep 10 16:55:13 2009 -0700"
      },
      "message": "make sure conditions will return when the status of a surface is not NO_ERROR\n"
    },
    {
      "commit": "24d237db943051942b5966f5e788d67050ec0ba5",
      "tree": "2a11231583c10a41798544bc14944ee38a9fbc2b",
      "parents": [
        "bbe14a1758a5b99689b7aa13a6d4f58e61705ebf"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Sep 04 18:49:03 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Sep 09 19:20:10 2009 -0700"
      },
      "message": "add a debug property to disable h/w composition. debug.sf.hw, when set to 0 will disable h/w composition\n"
    },
    {
      "commit": "e7c11d770ab44656d32330ba585489bd284b4a47",
      "tree": "f3db961a4fadec5bb7cd9157d20a65192f2e3f41",
      "parents": [
        "16b72bbbc985cba7c59f52bf6969b4015f185830"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Sep 09 17:47:15 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Sep 09 17:47:15 2009 -0700"
      },
      "message": "fix [2102410] Home Screen is not displayed in the background in Landscape Mode\n\nthe blurring code now handles NPOT textures.\n"
    },
    {
      "commit": "fa736d79b7d22fe07d9f5ea5491d8aabe9b4d5c4",
      "tree": "9759b6cfadc4378b1d3d615fa9942fdf7722d97f",
      "parents": [
        "201511cf8a004d386ec9f592041ad3e3d4107184"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Wed Sep 09 13:10:56 2009 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Wed Sep 09 13:10:56 2009 -0700"
      },
      "message": "Remove the FallRS demo, now promoted as a wallpaper.\n\nChange-Id: I0e40f2aa4b51f9e9cdbe14d178491b3667662023\n"
    },
    {
      "commit": "b9e52a07b7a605fe6d6588587bc74002f632c768",
      "tree": "7862a2acf078db635214fdfc0d0eb07a404490ad",
      "parents": [
        "11c803ac77b6a9b815180b4649a700361d3b8cfe"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Wed Sep 09 08:00:09 2009 -0700"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Wed Sep 09 08:02:54 2009 -0700"
      },
      "message": "Fix sim-eng build.\n\nAppears to have been broken by:\n\ncommit 9779b221e999583ff89e0dfc40e56398737adbb3\nAuthor: Mathias Agopian \u003cmathias@google.com\u003e\nDate:   Mon Sep 7 16:32:45 2009 -0700\n\n    fix [2068105] implement queueBuffer/lockBuffer/dequeueBuffer properly\n\nFor some reason we don\u0027t like to have \"-lpthread\" globally -- it\u0027s a no-op\non device builds, but required for many host tools and all sim binaries --\nso adding the use of pthread calls requires adding the library explicitly.\n"
    },
    {
      "commit": "8a77a995c961c7c9a3888f4212f7be87d08afae1",
      "tree": "02f32484af3e6cf8e302c67d1518f7feeb54c0be",
      "parents": [
        "0c065d9ef17ad9e045391bab3630a49fb998250c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Sep 09 05:16:08 2009 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Sep 09 05:16:08 2009 -0700"
      },
      "message": "Fix issue 2107584: media server crash when AudioFlinger fails to allocate memory for track control block.\n\nAudioFlinger: verify that mCblk is not null before using it in Track and RecordTrack contructors.\nIAudioFlinger: check result of remote transaction before reading IAudioTrack and IAudioRecord.\nIAudioTrack and IAudioRecord: check result of remote transaction before reading IMemory.\n"
    },
    {
      "commit": "11c803ac77b6a9b815180b4649a700361d3b8cfe",
      "tree": "af550a05e37000fc8bec4508251afff33a64570f",
      "parents": [
        "72e2d6da79a2fc3b5346c02ed40b9335c1eb78fa",
        "d42bd87f23974164d2539ea85c7b5e6329faf2c2"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 09 03:29:19 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 09 03:29:19 2009 -0700"
      },
      "message": "Merge change 24335 into eclair\n\n* changes:\n  use broadcast() instead of signal() when signaling the condition-variable Thread::RequestExitAndWait() is waiting for\n"
    },
    {
      "commit": "72e2d6da79a2fc3b5346c02ed40b9335c1eb78fa",
      "tree": "2c268eb0083cc7f0e0ac618ade088a3da1538e3b",
      "parents": [
        "0a5bf25765cc884aba8d417d8a85f985c5ff3b5a",
        "a280496bd2ce04d6beff4536f2115a9a4d7568e4"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 09 03:29:08 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 09 03:29:08 2009 -0700"
      },
      "message": "Merge change 24334 into eclair\n\n* changes:\n  fix [2037525] Fail to start camera after adb sync new Camera\n"
    },
    {
      "commit": "0a5bf25765cc884aba8d417d8a85f985c5ff3b5a",
      "tree": "a83597fdb3e6685e06e5e5d5bcbf30904759e12e",
      "parents": [
        "0c065d9ef17ad9e045391bab3630a49fb998250c",
        "b34d143bce3905c23aa5c1b2b147ec6df48cf9d7"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 09 03:28:47 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 09 03:28:47 2009 -0700"
      },
      "message": "Merge change 24333 into eclair\n\n* changes:\n  rename Mutexes to make the code easier to follow\n"
    },
    {
      "commit": "d42bd87f23974164d2539ea85c7b5e6329faf2c2",
      "tree": "9ab3713baa90ff2f06d9937d86900fbf43825c39",
      "parents": [
        "a280496bd2ce04d6beff4536f2115a9a4d7568e4"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Sep 09 02:38:13 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Sep 09 02:45:26 2009 -0700"
      },
      "message": "use broadcast() instead of signal() when signaling the condition-variable Thread::RequestExitAndWait() is waiting for\n\nwe could have several thread waiting on the condition and they all need to wake-up.\nalso added a debug \"mTid\" field in the class, which contains the tid of the thread (as opposed to pthread_t), this\nis useful when debugging under gdb for instance.\n"
    },
    {
      "commit": "a280496bd2ce04d6beff4536f2115a9a4d7568e4",
      "tree": "d796ce8eae898c35617bd3501b44c778e129fbfa",
      "parents": [
        "b34d143bce3905c23aa5c1b2b147ec6df48cf9d7"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Sep 08 23:52:08 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Sep 09 00:50:29 2009 -0700"
      },
      "message": "fix [2037525] Fail to start camera after adb sync new Camera\n\nwe ended-up locking a Mutex that had been destroyed.\nThis happened because we gave an sp\u003cSource\u003e to the outside world,\nand were called after LayerBuffer had been destroyed.\n\nInstead we now give a wp\u003cLayerBuffer\u003e to the outside and have it\ndo the destruction.\n"
    },
    {
      "commit": "96c08a69ea0b95d1d8a8edb67f73bd9548e09f16",
      "tree": "b3062ccac2f1bd12f33be481a957cd5b88579e16",
      "parents": [
        "948ef29ebacde30bc2f1283b5e6d86f2413698c4"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Sep 07 08:38:38 2009 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 08 22:56:07 2009 -0700"
      },
      "message": "Fix issue 1992233: DTMF tones on Sholes is really long.\n\nAdd a parameter to ToneGenerator.startTone() allowing the caller to specify the tone duration. This is used by the phone application to have a precise control on the DTMF tone duration which was not possible with the use of delayed messaged.\nAlso modified AudioFlinger output threads so that 0s are written to the audio output stream when no more tracks are ready to mix instead of just sleeping. This avoids an issue where the end of a previous DTMF tone could stay in audio hardware buffers and be played just before the beginning of the next DTMF tone.\n"
    },
    {
      "commit": "b34d143bce3905c23aa5c1b2b147ec6df48cf9d7",
      "tree": "eebed55688017c50a57955195c6bb03235a6855c",
      "parents": [
        "948ef29ebacde30bc2f1283b5e6d86f2413698c4"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Sep 08 20:02:47 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Sep 08 22:48:24 2009 -0700"
      },
      "message": "rename Mutexes to make the code easier to follow\n"
    },
    {
      "commit": "dc54f416a43cc1cb68bf9e81003fd200ea2dc648",
      "tree": "cf41b20c08c3e683dcc3df134399576c42c0799f",
      "parents": [
        "9779b221e999583ff89e0dfc40e56398737adbb3"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Sep 07 16:33:36 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Sep 07 16:33:36 2009 -0700"
      },
      "message": "delete old and unused source files"
    },
    {
      "commit": "9779b221e999583ff89e0dfc40e56398737adbb3",
      "tree": "76b185d252b95b05e8d74e7a1644b843f8839725",
      "parents": [
        "a4eb91da03bd785bc91bed0d25a9efaa9baba1c1"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Sep 07 16:32:45 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Sep 07 16:32:45 2009 -0700"
      },
      "message": "fix [2068105] implement queueBuffer/lockBuffer/dequeueBuffer properly\n\nRewrote SurfaceFlinger\u0027s buffer management from the ground-up.\nThe design now support an arbitrary number of buffers per surface, however the current implementation is limited to four. Currently only 2 buffers are used in practice.\n\nThe main new feature is to be able to dequeue all buffers at once (very important when there are only two). \n\nA client can dequeue all buffers until there are none available, it can lock all buffers except the last one that is used for composition. The client will block then, until a new buffer is enqueued.\n\nThe current implementation requires that buffers are locked in the same order they are dequeued and enqueued in the same order they are locked. Only one buffer can be locked at a time.\n\neg. Allowed sequence:   DQ, DQ, LOCK, Q, LOCK, Q\neg. Forbidden sequence: DQ, DQ, LOCK, LOCK, Q, Q\n\n"
    },
    {
      "commit": "ffae4fcc78d0f280da6052d102b11962fb8041b7",
      "tree": "84620e6958dd21be6852de4b81fa87de50d5f5d9",
      "parents": [
        "9cc1817d46d8092865d8f1e7a6391dcae197a26a"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Sep 04 19:50:23 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Sep 04 19:50:23 2009 -0700"
      },
      "message": "attempt to fix [2099362] Possible SurfaceFlinger crash\n"
    },
    {
      "commit": "ac67ebe667d30f3cd2e39fa57164d4f3ddaea677",
      "tree": "34d4cd3a0f7a6542b461dd633a7d0c3f24cfe62c",
      "parents": [
        "a3c745dafa2679b73a6d499324b6ffaac819fdc9",
        "7042cde5e19093595e0a7c6a95a8d7c9e4708afa"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 04 18:21:30 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 04 18:21:30 2009 -0700"
      },
      "message": "Merge change 24058 into eclair\n\n* changes:\n  Minor perf improvement to fall and expand use of struct.\n"
    },
    {
      "commit": "a3c745dafa2679b73a6d499324b6ffaac819fdc9",
      "tree": "d5ccaa24544c45ce7bda6a940ff423338d8e7810",
      "parents": [
        "3194a66329ea617c1f7bf558e2ac6a765860dd97",
        "7adb985e85d912d4a5f8f9590e17cfd9c7f4b4ed"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 04 18:21:18 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 04 18:21:18 2009 -0700"
      },
      "message": "Merge change 24057 into eclair\n\n* changes:\n  checkpoint\n"
    },
    {
      "commit": "7042cde5e19093595e0a7c6a95a8d7c9e4708afa",
      "tree": "0829f2cb8d9ddc6a9ace047994440ab0ba553335",
      "parents": [
        "7adb985e85d912d4a5f8f9590e17cfd9c7f4b4ed"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "rjsams@android.com",
        "time": "Fri Sep 04 18:19:46 2009 -0700"
      },
      "committer": {
        "name": "Jason Sams",
        "email": "rjsams@android.com",
        "time": "Fri Sep 04 18:19:46 2009 -0700"
      },
      "message": "Minor perf improvement to fall and expand use of struct.\n"
    },
    {
      "commit": "3194a66329ea617c1f7bf558e2ac6a765860dd97",
      "tree": "0ead92ed3f6eeb881aec5241e3d19dd1cf795952",
      "parents": [
        "2d496bfebc010f26d65dd5e3a3c4a8170919cf0a",
        "7164b8d645f9463e36eda5eac3dd085e26427bda"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 04 18:17:15 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 04 18:17:15 2009 -0700"
      },
      "message": "Merge change 24048 into eclair\n\n* changes:\n  fix [2098939] Smooth gradients show banding on Sholes\n"
    },
    {
      "commit": "2d496bfebc010f26d65dd5e3a3c4a8170919cf0a",
      "tree": "fc531aa4429fb1666bdf26d3abb00d8cbfedc033",
      "parents": [
        "e51ddc1b688fc6ecd57a1aa5cfdebbe1c22fc24d"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Fri Sep 04 17:55:41 2009 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Fri Sep 04 17:55:53 2009 -0700"
      },
      "message": "Fix point sprites.\n\nChange-Id: Ic9438daaf25f3969a0dd5b634b7cceccbbbfb27b\n"
    },
    {
      "commit": "7164b8d645f9463e36eda5eac3dd085e26427bda",
      "tree": "586d651992ef50d5e88d34f05afb706e4e927e57",
      "parents": [
        "c2042f5e4910c4f7c5b812787ad2b025d93da497"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Sep 04 17:27:16 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Sep 04 17:27:16 2009 -0700"
      },
      "message": "fix [2098939] Smooth gradients show banding on Sholes\n"
    },
    {
      "commit": "7adb985e85d912d4a5f8f9590e17cfd9c7f4b4ed",
      "tree": "6ddb0e5b812b61cee2d6a935b73292f53e622eb5",
      "parents": [
        "c2042f5e4910c4f7c5b812787ad2b025d93da497"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "rjsams@android.com",
        "time": "Fri Sep 04 16:00:28 2009 -0700"
      },
      "committer": {
        "name": "Jason Sams",
        "email": "rjsams@android.com",
        "time": "Fri Sep 04 16:01:41 2009 -0700"
      },
      "message": "checkpoint\n"
    },
    {
      "commit": "ea84a7c51790f9ba5f2194a66d6cf4ea8d879776",
      "tree": "089830bec92dcfb6fb7738f920433a8957b49de0",
      "parents": [
        "2525a815220652b37e2e390fe8c62394a6d0e574"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "rjsams@android.com",
        "time": "Fri Sep 04 14:42:41 2009 -0700"
      },
      "committer": {
        "name": "Jason Sams",
        "email": "rjsams@android.com",
        "time": "Fri Sep 04 14:42:41 2009 -0700"
      },
      "message": "Remove \"predefined\" elements from Java layer.  Static elements continue to exist but are no longer treated as a special version of element.\n"
    },
    {
      "commit": "2525a815220652b37e2e390fe8c62394a6d0e574",
      "tree": "be26549baa696d9beb89c8188ab16c13f26a5548",
      "parents": [
        "1c1ffa0cab8b56274970736d7f3b8c00c01c3d2b"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "rjsams@android.com",
        "time": "Thu Sep 03 15:43:13 2009 -0700"
      },
      "committer": {
        "name": "Jason Sams",
        "email": "rjsams@android.com",
        "time": "Thu Sep 03 15:43:13 2009 -0700"
      },
      "message": "Improve structure support using symbol lookup of named structures in scripts to allow them to appear as just pointers to structs.\n"
    },
    {
      "commit": "a160c6ea053ab317374327d8ba21684b2fac40e4",
      "tree": "aa9108839842462629e48ebba8a1ff29778a306a",
      "parents": [
        "0c36a517cd01a7112460a96f9f0fa2badf8f7015"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 03 03:45:52 2009 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 03 04:11:18 2009 -0700"
      },
      "message": "fix issue 2096657: Sholes: residue shutter sound heard ONCE while taking a picture AFTER the volume is turned off.\n\nDo not ramp volume if the first frame of a track is processed after the track was stopped.\nIn the case of very short sounds, the track stop request can be received by AudioFlinger just after the start request before the first frame is mixed by AudioMixer. In this case, the track is already in stopped state and initial volume is applied with a ramp for the first frame processed which should not be the case: initial volume change is always applied immediatelly.\n"
    },
    {
      "commit": "6db4303d04d138cd2648b829306c4b1693ac12e8",
      "tree": "fabf71e54c0f8cd2a2cd519b90bc90282ae5afe7",
      "parents": [
        "458e9186c175f87c420b7f82e91c0afa695c8ebb",
        "a8f6018d6c2d28313f9550fa8fcb39c2f607e09c"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 02 17:21:35 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 02 17:21:35 2009 -0700"
      },
      "message": "Merge change 23568 into eclair\n\n* changes:\n  Work on issue #2079167: Flickering issue across multiple UI\n"
    },
    {
      "commit": "a8f6018d6c2d28313f9550fa8fcb39c2f607e09c",
      "tree": "a64e1d3e4b63e2792ab93ee69d913b415925d814",
      "parents": [
        "14de0880dd7b716f39b822917e874ca5e579ff37"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Sep 01 19:01:50 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Sep 02 17:20:25 2009 -0700"
      },
      "message": "Work on issue #2079167: Flickering issue across multiple UI\n\nThis addresses a few parts of the bug:\n\n- There was a small issue in the window manager where we could show a window\n  too early before the transition animation starts, which was introduced\n  by the recent wallpaper work.  This was the cause of the flicker when\n  starting the dialer for the first time.\n\n- There was a much larger problem that has existing forever where moving\n  an application token to the front or back was not synchronized with the\n  application animation transaction.  This was the cause of the flicker\n  when hanging up (now that the in-call screen moves to the back instead\n  of closing and we always have a wallpaper visible).  The approach to\n  solving this is to have the window manager go ahead and move the app\n  tokens (it must in order to keep in sync with the activity manager), but\n  to delay the actual window movement: perform the movement to front when\n  the animation starts, and to back when it ends.  Actually, when the\n  animation ends, we just go and completely rebuild the window list to\n  ensure it is correct, because there can be ways people can add windows\n  while in this intermediate state where they could end up at the wrong\n  place once we do the delayed movement to the front or back.  And it is\n  simply reasuring to know that every time we finish a full app transition,\n  we re-evaluate the world and put everything in its proper place.\n\nAlso included in this change are a few little tweaks to the input system,\nto perform better logging, and completely ignore input devices that do not\nhave any of our input classes.  There is also a little cleanup of evaluating\nconfiguration changes to not do more work than needed when an input\ndevices appears or disappears, and to only log a config change message when\nthe config is truly changing.\n\nChange-Id: Ifb2db77f8867435121722a6abeb946ec7c3ea9d3\n"
    },
    {
      "commit": "458e9186c175f87c420b7f82e91c0afa695c8ebb",
      "tree": "28d240237f3fc984532dc55ab4c49e7841d73772",
      "parents": [
        "14de0880dd7b716f39b822917e874ca5e579ff37",
        "c8546781ff6fa26b3a7f2d1483db363f299a3898"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 02 17:05:31 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 02 17:05:31 2009 -0700"
      },
      "message": "Merge change 23720 into eclair\n\n* changes:\n  Add colorkey to gl clear operation\n"
    },
    {
      "commit": "c8546781ff6fa26b3a7f2d1483db363f299a3898",
      "tree": "fc5fb4170153e3d0fc71a8b8f1753d6fb1a7a998",
      "parents": [
        "5e2a385c0d95f4a99dd8c562c6d2d79aa8546030"
      ],
      "author": {
        "name": "Rebecca Schultz Zavin",
        "email": "rebecca@android.com",
        "time": "Tue Sep 01 23:06:45 2009 -0700"
      },
      "committer": {
        "name": "Rebecca Schultz Zavin",
        "email": "rebecca@android.com",
        "time": "Wed Sep 02 15:57:42 2009 -0700"
      },
      "message": "Add colorkey to gl clear operation\n\nSigned-off-by: Rebecca Schultz Zavin \u003crebecca@android.com\u003e\n"
    },
    {
      "commit": "66c70e13d9f39cf82df8542fe53f2049d3f2062e",
      "tree": "592607f78192270c93e56f314ad215d7b244d8eb",
      "parents": [
        "040571aa2f71031376ff37ffa827d3612eb89340",
        "c87d25215c842cea370c6a86ce67585fa8da4900"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 02 11:17:18 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 02 11:17:18 2009 -0700"
      },
      "message": "Merge change 23529 into eclair\n\n* changes:\n  Make it an error to use a bare apostrophe in aapt, and adjust warnings/errors.\n"
    },
    {
      "commit": "f4cca783dff5335108647ff7ae86983f56245067",
      "tree": "d12edb6ef997b537f904be5852499751b2bd2b57",
      "parents": [
        "c937b5ce4ff2f39fd9c60f718f98550a932b62f0",
        "44e9983ffc2b28f2ed755a2c99f156aeab0ff77f"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 01 20:42:19 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 01 20:42:19 2009 -0700"
      },
      "message": "Merge change 23583 into eclair\n\n* changes:\n  Update fountain to use structures.\n"
    },
    {
      "commit": "c87d25215c842cea370c6a86ce67585fa8da4900",
      "tree": "221eb50bb658c745f0ce5c56588193d565a1ccf3",
      "parents": [
        "b7559e02803266e5fa9f4496174bc343ecd245ab"
      ],
      "author": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Tue Sep 01 15:20:30 2009 -0700"
      },
      "committer": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Tue Sep 01 15:20:30 2009 -0700"
      },
      "message": "Make it an error to use a bare apostrophe in aapt, and adjust warnings/errors.\n\nIn practice, no one ever writes an apostrophe in an aapt string with the\nintent of using it to quote whitespace -- they always mean to include a\nliteral apostrophe in the string and then are surprised when they find\nthe apostrophe missing.  Make this an error so that it is discovered\nright away instead of waiting until late in QA or after the strings have\nalready been sent for translation.  (And fix a recently-introduced string\nthat has exactly this problem.)\n\nSilence the warning about an empty span in a string, since this seems to\nannoy people instead of finding any real problems.\n\nMake the error about having a translated string with no base string into\na warning, since this is a big pain when making changes to an application\nthat has already had some translations done, and the dead translations\nshould be removed by a later translation import anyway.\n"
    },
    {
      "commit": "d069f32039c74d89fd158d1a25d8fdf445fd01c1",
      "tree": "9abce14d7bfedb31d59ee8ba94c6f16d82fc0aec",
      "parents": [
        "c98d68cd56338ec57695b3c35114fbde88d4bde8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 01 05:56:26 2009 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 01 05:56:26 2009 -0700"
      },
      "message": "Fix issue 2091594: music chirp after disconnecting A2DP.\n\nIn AudioFlinger::MixerThread::putTracks(), change the mFillingUpStatus flag to FS_FILLING for active tracks so that mute request is executed without ramping volume down when the track is moved from A2DP to hardware output.\nAlso modified AudioFlinger::setStreamOutput() so that the notification of the change is sent only once to AudioSystem.\n"
    },
    {
      "commit": "44e9983ffc2b28f2ed755a2c99f156aeab0ff77f",
      "tree": "4d962aada8a7f7ef9ca9d2d04bf0680f93e1ba41",
      "parents": [
        "52d6245ba2454eab456d609d065283dfa76e8c79"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "rjsams@android.com",
        "time": "Mon Aug 31 12:05:00 2009 -0700"
      },
      "committer": {
        "name": "Jason Sams",
        "email": "rjsams@android.com",
        "time": "Mon Aug 31 12:10:24 2009 -0700"
      },
      "message": "Update fountain to use structures.\n"
    },
    {
      "commit": "7954c4642591fef4ee880411ed29dc1f344f1b6f",
      "tree": "e39879c86cf4a156246cde57a4a739a41331c8b2",
      "parents": [
        "66360af891ac1b77fa5a48d668bd848c84b6f041"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 28 10:39:03 2009 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Aug 31 02:10:20 2009 -0700"
      },
      "message": "Fix issue 2085690: AudioFlinger must properly terminate the input and output threads when destroyed.\n\nCall closeInput() for all inputs and closeOutput() for all outputs before deleting audio hardware in AudioFlinger destructor.\n"
    },
    {
      "commit": "9e6842caa8334f78744dee77d476ac6eec5b7540",
      "tree": "39e41d6c4aed8aa20ea17bf2635fce3c34a95bc5",
      "parents": [
        "4b027f128fea32bfcabee55bf4d994400453c00c",
        "36dad722511366e7d90b6e33669a033d0c8ec74e"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 28 13:31:28 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 28 13:31:28 2009 -0700"
      },
      "message": "Merge change 23168 into eclair\n\n* changes:\n  EventHub: Fix file descriptor leak.\n"
    },
    {
      "commit": "36dad722511366e7d90b6e33669a033d0c8ec74e",
      "tree": "37fa698e2b060b2d1507950ec7d0cf42ed962479",
      "parents": [
        "49237345d83e62fdb9eb8d50b13ad086636a04fa"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Aug 28 13:29:06 2009 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Aug 28 13:30:03 2009 -0700"
      },
      "message": "EventHub: Fix file descriptor leak.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "07ae40623737a6060b8a925fd2e6bba76780dcd4",
      "tree": "74278403aa4fa761f05ae030abbbd64ff8635b4a",
      "parents": [
        "0409cde3601131caf14c88d132c65d74774bbd79"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "rjsams@android.com",
        "time": "Thu Aug 27 20:23:34 2009 -0700"
      },
      "committer": {
        "name": "Jason Sams",
        "email": "rjsams@android.com",
        "time": "Thu Aug 27 20:23:34 2009 -0700"
      },
      "message": "Implement async data/subData.  Implement TriangleMeshBuilder in SimpleMesh which replaces TriangleMesh.  Update Film to use new builder.\n"
    },
    {
      "commit": "327c27be19ad333c4835c84397152a0b2cb33081",
      "tree": "829f4323a59b922a47f6e7a60750be8e2c64a089",
      "parents": [
        "42b1648212d31dbc63518ca8379f145fef1efcb8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Aug 27 00:48:47 2009 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Aug 27 05:58:10 2009 -0700"
      },
      "message": "Fix issue 2045911: Camera Shutter tone does not play correctly while listening to music.\n\nAdd the possibility to delay routing and volume commands in AudioPolicyClientInterface. The delay is not blocking for the caller.\n"
    },
    {
      "commit": "a8d49178f94e025be8be00460739315b9c273e4c",
      "tree": "7ccc645e6f9acb14a1e92b6d6163b641fe72937b",
      "parents": [
        "b89c9d422781d10c614af61b1519daed2b9086e2"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Aug 26 16:36:26 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Aug 26 16:55:50 2009 -0700"
      },
      "message": "dumpsys SurfaceFlinger will now always dump SF\u0027s state, even if SF is deadlocked\n(in this case the state is dumped without the proper locks held which could result to a crash)\n\nin addition, the last transaction and swap times are printed to the dump as well as the time spent\n*currently* in these function. For instance, if SF is unresponsive because eglSwapBuffers() is stuck,\nthis will show up here.\n"
    },
    {
      "commit": "67c6844ea0577b7894c3053952eb4ee39fa3134c",
      "tree": "80b837c901ad6f165efd5234d3263ccab2057ad2",
      "parents": [
        "f5b4596a383b6ab83f92edecfe054e80b555c2d0"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "rjsams@android.com",
        "time": "Tue Aug 25 17:09:59 2009 -0700"
      },
      "committer": {
        "name": "Jason Sams",
        "email": "rjsams@android.com",
        "time": "Tue Aug 25 17:09:59 2009 -0700"
      },
      "message": "Remove bogus comments and logging.\n"
    },
    {
      "commit": "f5b4596a383b6ab83f92edecfe054e80b555c2d0",
      "tree": "76f91ae57eadbd3944c6368c9ff571534097ce54",
      "parents": [
        "c69a8807f3aae255c9fe61c4f61bc1ebdd355543"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "rjsams@android.com",
        "time": "Tue Aug 25 14:49:07 2009 -0700"
      },
      "committer": {
        "name": "Jason Sams",
        "email": "rjsams@android.com",
        "time": "Tue Aug 25 14:49:07 2009 -0700"
      },
      "message": "Implement java interface for RS shutdown and fix shutdown deadlock with the command fifo.\n"
    },
    {
      "commit": "b13ada5071f55c96054c47bbd88d8801cd2c0f15",
      "tree": "652b6ca78a53aafaa7c6c3ceb7229a3d6aab43db",
      "parents": [
        "dbade9d6a075b1d5b8ebe10ee8961a5de296c93b"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "rjsams@android.com",
        "time": "Tue Aug 25 11:34:49 2009 -0700"
      },
      "committer": {
        "name": "Jason Sams",
        "email": "rjsams@android.com",
        "time": "Tue Aug 25 11:44:30 2009 -0700"
      },
      "message": "Add support for selecting the color bit depth and if the application used a depth buffer.\n"
    },
    {
      "commit": "463a60830fb67fe2b8bd8c088b0fa7e905aa4183",
      "tree": "6dc86fc468c8f026771af7d4081344bd86c1b9d7",
      "parents": [
        "d507ff21296b10ed57feec1200a8fe7eb09c0fc4"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Mon Aug 24 13:12:40 2009 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Mon Aug 24 13:12:40 2009 -0700"
      },
      "message": "Remove Galaxy Render Script, replaced by its wallpaper equivalent.\n\nChange-Id: I28c91d648fe5ab6e794bf55d11879388b139dbe9\n"
    },
    {
      "commit": "6f89172b6e149c623fe582e4baa658299a3fc72c",
      "tree": "42431cf1d482889d313280180176a8345624ef36",
      "parents": [
        "426ac065d0065507b7bc8c7c5c47fc2b09de2c82",
        "1965610f3b8047a9d8c8a3c37007914d9054fe9c"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 21 16:30:13 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 21 16:30:13 2009 -0700"
      },
      "message": "Merge change 22352 into eclair\n\n* changes:\n  Fix FallRS by keeping a reference to the mesh.\n"
    },
    {
      "commit": "1965610f3b8047a9d8c8a3c37007914d9054fe9c",
      "tree": "da4e2a64b9229ea66a3321d9913b129beb94a236",
      "parents": [
        "475ead0c5107b620d487c1ed4298a3f6671fc2b2"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Fri Aug 21 16:29:42 2009 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Fri Aug 21 16:29:42 2009 -0700"
      },
      "message": "Fix FallRS by keeping a reference to the mesh.\n"
    },
    {
      "commit": "9e2be20cc5a8f0f7cf384412b5ef519aa7263759",
      "tree": "33924907b869afceda6f79e6680417e79f59a052",
      "parents": [
        "dd03c6135f91df6d5d9e71de1487520dc3345742"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Aug 21 15:44:17 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Aug 21 15:44:17 2009 -0700"
      },
      "message": "fix [2070341] [FAST BLOCKER] can\u0027t successfully setup erc52\n"
    },
    {
      "commit": "75e6c77139dac6bc8f408e3e3a1c87bbfe8078be",
      "tree": "b71f9dc0ae9f7c56fb98f1fff12bfc673d158f60",
      "parents": [
        "d57ca2deff2a3d7e346043d39d9245a578b691a2",
        "d22fff7185979537877213c826879c0100a20b11"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 20 17:08:54 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 20 17:08:54 2009 -0700"
      },
      "message": "Merge change 22169 into eclair\n\n* changes:\n  Cleanup the Galaxy, add a few RS functions for Grass.\n"
    },
    {
      "commit": "d22fff7185979537877213c826879c0100a20b11",
      "tree": "0c2b1dbccc215f45b4ce290a7fa0a7f7f3cb83fb",
      "parents": [
        "1c1629da30bd1b125c59ab9bbcecff3bb3e74324"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Thu Aug 20 17:08:33 2009 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Thu Aug 20 17:08:33 2009 -0700"
      },
      "message": "Cleanup the Galaxy, add a few RS functions for Grass."
    }
  ],
  "next": "25ffcdc9d7e32c9c1eeb2b48cc2f17d1353e9fae"
}
