)]}'
{
  "log": [
    {
      "commit": "e89f5d9ef38caec9240a74a9da7974ac5253f623",
      "tree": "d930204fae542b4bac125f3c9361e0f2571e6da2",
      "parents": [
        "87175263c86341c56e4971d3180777800026db66",
        "d0fc955c08ed14ba8e4f0967b4fcef3c10bdcc62"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 26 12:12:28 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jan 26 12:12:28 2011 -0800"
      },
      "message": "am 1a6e6d55: am 6df89fde: Merge \"Ignore errors returned from native_window_set_crop.\" into honeycomb\n\n* commit \u00271a6e6d55b8dd33b3bd2b52849d39ef96b556b52f\u0027:\n  Ignore errors returned from native_window_set_crop.\n"
    },
    {
      "commit": "d0fc955c08ed14ba8e4f0967b4fcef3c10bdcc62",
      "tree": "4a5d1146a7208ce4633128c3639e9f932d0346df",
      "parents": [
        "86ba757ddf906a7b59f0dbba9a2197d823650050",
        "fccf727542ac3efa1d75234260db73edb53c76a1"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 26 12:09:56 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jan 26 12:09:56 2011 -0800"
      },
      "message": "am 6df89fde: Merge \"Ignore errors returned from native_window_set_crop.\" into honeycomb\n\n* commit \u00276df89fde0db446bb530ab872b373b1faa3ccb06c\u0027:\n  Ignore errors returned from native_window_set_crop.\n"
    },
    {
      "commit": "fccf727542ac3efa1d75234260db73edb53c76a1",
      "tree": "6a84621e04bbdcac76f169ce8712ecd018b60003",
      "parents": [
        "d3455c0d28c7b663ada8db188aa8dc0a3979e496",
        "6592195d76b12a9823f82d3352245d0a6d459647"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 26 12:06:39 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 26 12:06:39 2011 -0800"
      },
      "message": "Merge \"Ignore errors returned from native_window_set_crop.\" into honeycomb"
    },
    {
      "commit": "6592195d76b12a9823f82d3352245d0a6d459647",
      "tree": "2a3ad430a712ec218f0e658d6224f033dba8b214",
      "parents": [
        "78fc8fab70411c6863d5f71383061f51290294df"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 26 12:02:35 2011 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 26 12:02:35 2011 -0800"
      },
      "message": "Ignore errors returned from native_window_set_crop.\n\nIf the surface is already invalid, we\u0027ll know soon enough.\n\nChange-Id: If360ffb8293817afb47df8c1a75722aea74bb335\nrelated-to-bug: 3394601\n"
    },
    {
      "commit": "87175263c86341c56e4971d3180777800026db66",
      "tree": "4b204ba752193658e6854a7a3e5b06880710ddd0",
      "parents": [
        "270ea87277c1c601ea26db2af469a930cc4272ad",
        "86ba757ddf906a7b59f0dbba9a2197d823650050"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 26 11:48:12 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jan 26 11:48:12 2011 -0800"
      },
      "message": "am e328d1c0: am a9f27fa6: Merge \"Protect notification callback parameters with a mutex.\" into honeycomb\n\n* commit \u0027e328d1c0bea62f4dc28210dbcab0da40f4449bf2\u0027:\n  Protect notification callback parameters with a mutex.\n"
    },
    {
      "commit": "270ea87277c1c601ea26db2af469a930cc4272ad",
      "tree": "4e57b61cde9bf70420a5c8fda7040023cf61ebb6",
      "parents": [
        "b9b84ec91ba7b300bc5ab9378448387733b5048e",
        "b7b1486bd55f9fe27f15724452f748045d204fb1"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 26 11:48:07 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jan 26 11:48:07 2011 -0800"
      },
      "message": "am 38a1714b: am 7765c65d: Merge \"Linux sockets suck, closing a socket descriptor does not abort pending recv/send calls.\" into honeycomb\n\n* commit \u002738a1714bf79821dad296eeddfda1b6a7ce93ebbd\u0027:\n  Linux sockets suck, closing a socket descriptor does not abort pending recv/send calls.\n"
    },
    {
      "commit": "b9b84ec91ba7b300bc5ab9378448387733b5048e",
      "tree": "5117ced8a7be67fdc66ec9b4e53bc34b6f09dec7",
      "parents": [
        "80458176c35e87358bd8de677e7b32e0af4f8d13",
        "aeb38af82d525015ec4d3f2d51671093cd80a0dc"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 26 11:48:01 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jan 26 11:48:01 2011 -0800"
      },
      "message": "am 807398e7: am d030359f: Merge \"Instead of not feeding the AudioTrack any data after EOS, play silence instead.\" into honeycomb\n\n* commit \u0027807398e7f0718aaa9e8f53c556d0707c083819cf\u0027:\n  Instead of not feeding the AudioTrack any data after EOS, play silence instead.\n"
    },
    {
      "commit": "86ba757ddf906a7b59f0dbba9a2197d823650050",
      "tree": "2d088df9318bd8fa1746c3d77e4d4e0186fffaa8",
      "parents": [
        "b7b1486bd55f9fe27f15724452f748045d204fb1",
        "d3455c0d28c7b663ada8db188aa8dc0a3979e496"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 26 11:44:17 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jan 26 11:44:17 2011 -0800"
      },
      "message": "am a9f27fa6: Merge \"Protect notification callback parameters with a mutex.\" into honeycomb\n\n* commit \u0027a9f27fa631ab21d52c75842ccaacc1cbcd75fca0\u0027:\n  Protect notification callback parameters with a mutex.\n"
    },
    {
      "commit": "b7b1486bd55f9fe27f15724452f748045d204fb1",
      "tree": "2971aa492abde8a8df8c94a98d4cddecaf7f084c",
      "parents": [
        "aeb38af82d525015ec4d3f2d51671093cd80a0dc",
        "78fc8fab70411c6863d5f71383061f51290294df"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 26 11:44:11 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jan 26 11:44:11 2011 -0800"
      },
      "message": "am 7765c65d: Merge \"Linux sockets suck, closing a socket descriptor does not abort pending recv/send calls.\" into honeycomb\n\n* commit \u00277765c65dbe1ba8f2229f2fec5a83ba2d1da79733\u0027:\n  Linux sockets suck, closing a socket descriptor does not abort pending recv/send calls.\n"
    },
    {
      "commit": "aeb38af82d525015ec4d3f2d51671093cd80a0dc",
      "tree": "f1785b55e530ed23bf165864126d1d2b0ed8822a",
      "parents": [
        "a0c51bbd0ea4c0266b12c9ffa450ccc297160b19",
        "6e1cc6e6e5477693a279185c372b90863778a10b"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 26 11:43:50 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jan 26 11:43:50 2011 -0800"
      },
      "message": "am d030359f: Merge \"Instead of not feeding the AudioTrack any data after EOS, play silence instead.\" into honeycomb\n\n* commit \u0027d030359ff10a031c762d4f229d9c1bdfd366cb50\u0027:\n  Instead of not feeding the AudioTrack any data after EOS, play silence instead.\n"
    },
    {
      "commit": "d3455c0d28c7b663ada8db188aa8dc0a3979e496",
      "tree": "d870d47caec0717aeb4b0fdf3ec82ca64b481ee9",
      "parents": [
        "78fc8fab70411c6863d5f71383061f51290294df",
        "01f394247f3d5851f5bb12c2786b5fee265b6357"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 26 11:28:01 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 26 11:28:01 2011 -0800"
      },
      "message": "Merge \"Protect notification callback parameters with a mutex.\" into honeycomb"
    },
    {
      "commit": "78fc8fab70411c6863d5f71383061f51290294df",
      "tree": "1ea06af8e5f58e44f11fb6b5fa53a3a4e4966ecd",
      "parents": [
        "6e1cc6e6e5477693a279185c372b90863778a10b",
        "0b967b923f7f608b2faa1820167a4f262a2f0720"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 26 11:24:13 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 26 11:24:13 2011 -0800"
      },
      "message": "Merge \"Linux sockets suck, closing a socket descriptor does not abort pending recv/send calls.\" into honeycomb"
    },
    {
      "commit": "01f394247f3d5851f5bb12c2786b5fee265b6357",
      "tree": "8fb13813062b563324f9b47f4f9741897fde7f98",
      "parents": [
        "b656f3592332cebfad8944e8692003cf3688d586"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 26 11:19:19 2011 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 26 11:20:42 2011 -0800"
      },
      "message": "Protect notification callback parameters with a mutex.\n\nThis avoids the race condition where notifications are dispatched to a NULL receiver\nafter notifications have been disabled.\n\nChange-Id: I6d351ffbee97616e2c35559c132a6c5e6a66948a\nrelated-to-bug: 3394139\n"
    },
    {
      "commit": "6e1cc6e6e5477693a279185c372b90863778a10b",
      "tree": "e3c6cca182f6408857b887aeb6b39dcac375c9e5",
      "parents": [
        "b656f3592332cebfad8944e8692003cf3688d586"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 26 10:41:38 2011 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 26 10:41:38 2011 -0800"
      },
      "message": "Instead of not feeding the AudioTrack any data after EOS, play silence instead.\n\nChange-Id: I9aa797cf5bb58eefed51d732f4e5d09450551158\nrelated-to-bug: 3347428\n"
    },
    {
      "commit": "0b967b923f7f608b2faa1820167a4f262a2f0720",
      "tree": "a1ab8f69a22fe935ecbfe924dc04ee7b41048e63",
      "parents": [
        "b656f3592332cebfad8944e8692003cf3688d586"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 26 10:14:38 2011 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 26 10:14:38 2011 -0800"
      },
      "message": "Linux sockets suck, closing a socket descriptor does not abort pending recv/send calls.\n\nChange-Id: Id53e7831761619f72ddc61f63571230011c93f16\nrelated-to-bug: 3362836\n"
    },
    {
      "commit": "80458176c35e87358bd8de677e7b32e0af4f8d13",
      "tree": "43e400b26ad1fa743924b91adfcbbeb144c3873d",
      "parents": [
        "aa2343eb886835e6cbb80b6f042f1f8a8a6eb5ca",
        "a0c51bbd0ea4c0266b12c9ffa450ccc297160b19"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jan 25 16:22:07 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 25 16:22:07 2011 -0800"
      },
      "message": "am 9392c41b: (-s ours) am df836892: (-s ours) am 239fd805: Merge \"fix [3361121] hang in glClear() - device unresponsive, OTA fails (DO NOT MERGE)\" into gingerbread\n\n* commit \u00279392c41b99cb136d6c2a058f6bc3ffb83daf5a46\u0027:\n  fix [3361121] hang in glClear() - device unresponsive, OTA fails (DO NOT MERGE)\n"
    },
    {
      "commit": "aa2343eb886835e6cbb80b6f042f1f8a8a6eb5ca",
      "tree": "43e400b26ad1fa743924b91adfcbbeb144c3873d",
      "parents": [
        "e0c2d1574276e7d863d2f600e15f5e837828fd4d",
        "287c34497550ff3f27a5fa3aa15c0049081056d3"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Jan 25 16:20:56 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 25 16:20:56 2011 -0800"
      },
      "message": "am c80daa1b: am f10d9404: Merge \"StagefrightMediaScanner: Close metadata retriever after we are done scanning\" into honeycomb\n\n* commit \u0027c80daa1b05b8f1d2873df23821ae2c5344e76fb8\u0027:\n  StagefrightMediaScanner: Close metadata retriever after we are done scanning\n"
    },
    {
      "commit": "e0c2d1574276e7d863d2f600e15f5e837828fd4d",
      "tree": "ee6ce2cc23b70da11a0b53f705af5e312e63d05b",
      "parents": [
        "f2c71496494409aba6e770a17c0488e25380428e",
        "5895b78183840f3d56a6e50af26a4b9f778a5b14"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Jan 25 16:20:34 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 25 16:20:34 2011 -0800"
      },
      "message": "am 45800cf9: am 3115dad3: Merge \"Report errors to applications if AudioRecord-\u003estart() fails\" into honeycomb\n\n* commit \u002745800cf939d716a6d6435872f5f876b2cfd2689d\u0027:\n  Report errors to applications if AudioRecord-\u003estart() fails\n"
    },
    {
      "commit": "a0c51bbd0ea4c0266b12c9ffa450ccc297160b19",
      "tree": "97f8e7a520a1ccae5a4e97e71a50a2a131db0ce1",
      "parents": [
        "287c34497550ff3f27a5fa3aa15c0049081056d3",
        "1a082f3061c2a444ac6602f321aa334589167f07"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jan 25 16:04:48 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 25 16:04:48 2011 -0800"
      },
      "message": "am df836892: (-s ours) am 239fd805: Merge \"fix [3361121] hang in glClear() - device unresponsive, OTA fails (DO NOT MERGE)\" into gingerbread\n\n* commit \u0027df8368925acd4593a309e06548d7f900bf8d94df\u0027:\n  fix [3361121] hang in glClear() - device unresponsive, OTA fails (DO NOT MERGE)\n"
    },
    {
      "commit": "287c34497550ff3f27a5fa3aa15c0049081056d3",
      "tree": "97f8e7a520a1ccae5a4e97e71a50a2a131db0ce1",
      "parents": [
        "5895b78183840f3d56a6e50af26a4b9f778a5b14",
        "b656f3592332cebfad8944e8692003cf3688d586"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Jan 25 15:48:06 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 25 15:48:06 2011 -0800"
      },
      "message": "am f10d9404: Merge \"StagefrightMediaScanner: Close metadata retriever after we are done scanning\" into honeycomb\n\n* commit \u0027f10d940413000732f1cd35bcb113c41019c7e3b7\u0027:\n  StagefrightMediaScanner: Close metadata retriever after we are done scanning\n"
    },
    {
      "commit": "b656f3592332cebfad8944e8692003cf3688d586",
      "tree": "aaea72bcd5f1283c6a1b7aba0e08a8644ec2160c",
      "parents": [
        "eaae38445a340c4857c1c5569475879a728e63b7",
        "0a095d09464ba18e288a3f529410af0f1257ac2a"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Jan 25 15:46:25 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 25 15:46:25 2011 -0800"
      },
      "message": "Merge \"StagefrightMediaScanner: Close metadata retriever after we are done scanning\" into honeycomb"
    },
    {
      "commit": "5895b78183840f3d56a6e50af26a4b9f778a5b14",
      "tree": "31e2137478b262747aa71e84bfa8b632f96135ad",
      "parents": [
        "47fac46eeb5f522fc964bcaadf27512e29d691fb",
        "eaae38445a340c4857c1c5569475879a728e63b7"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Jan 25 15:33:27 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 25 15:33:27 2011 -0800"
      },
      "message": "am 3115dad3: Merge \"Report errors to applications if AudioRecord-\u003estart() fails\" into honeycomb\n\n* commit \u00273115dad3fc8493ff510b9f6a46b18d951bf5c162\u0027:\n  Report errors to applications if AudioRecord-\u003estart() fails\n"
    },
    {
      "commit": "eaae38445a340c4857c1c5569475879a728e63b7",
      "tree": "17e8fcf56c9c8d215cd5ba0149f21d63d4576843",
      "parents": [
        "4feffd1a8d95cf3843c06a37160580d30d421d8e"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Jan 25 12:37:43 2011 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Jan 25 15:30:34 2011 -0800"
      },
      "message": "Report errors to applications if AudioRecord-\u003estart() fails\n\nbug - 3385198\n\nChange-Id: I86ac8071eb28a538b333e102192193d1b9eda5eb\n"
    },
    {
      "commit": "0a095d09464ba18e288a3f529410af0f1257ac2a",
      "tree": "1c3810dbf07e83724c4d11cb012dd664669a8623",
      "parents": [
        "4feffd1a8d95cf3843c06a37160580d30d421d8e"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Jan 25 15:20:04 2011 -0800"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Jan 25 15:20:04 2011 -0800"
      },
      "message": "StagefrightMediaScanner: Close metadata retriever after we are done scanning\n\nThis prevents the mediaserver from leaking a file descriptor after\nthe media scanner runs\n\nBUG: 3373546\n\nChange-Id: I82a8bae82306de3da56a5c7da5b03ecf106a4efc\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "f2c71496494409aba6e770a17c0488e25380428e",
      "tree": "268cf01651f899b2d626d0e7dfecb20c6133629b",
      "parents": [
        "b29a24c534ca753ae9923bf56943e3a75e82391e",
        "df489b929115ea93a0cf689830fe44400ce3c00f"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jan 25 15:06:20 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 25 15:06:20 2011 -0800"
      },
      "message": "Merge \"Bug 3117154\""
    },
    {
      "commit": "1a082f3061c2a444ac6602f321aa334589167f07",
      "tree": "d7c810889e7658ca0a29d00c0410645e4dea40cf",
      "parents": [
        "958c063ed2b9e255e4b4ffc5c7d5f9939da95c36",
        "b1d099197a9385f3afc9411da32a341546991d85"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jan 25 14:46:40 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 25 14:46:40 2011 -0800"
      },
      "message": "am 239fd805: Merge \"fix [3361121] hang in glClear() - device unresponsive, OTA fails (DO NOT MERGE)\" into gingerbread\n\n* commit \u0027239fd805ef7c0e4116b0a89e20caaf287e91f017\u0027:\n  fix [3361121] hang in glClear() - device unresponsive, OTA fails (DO NOT MERGE)\n"
    },
    {
      "commit": "b1d099197a9385f3afc9411da32a341546991d85",
      "tree": "0ca322a21353cffa9237bad07e9b09f366672c38",
      "parents": [
        "47f44fb9b85ac555e5b84b2f5ca8536a85659c3e"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jan 18 15:51:30 2011 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jan 25 14:19:13 2011 -0800"
      },
      "message": "fix [3361121] hang in glClear() - device unresponsive, OTA fails (DO NOT MERGE)\n\nGenerally we never want to lock a buffer for write access if it is at\nthe \"head\" on the surfaceflinger side. The only exception (1) is when\nthe buffer is not currently in use AND there is at least one queued\nbuffer -- in which case, SurfaceFlinger will never use said buffer\nanymore, because on the next composition around, it will be able to\nretire the first queued buffer.\n\nThe logic above relies on SurfaceFlinger always retiring\nand locking a buffer before composition -- unfortunately this\ndidn\u0027t happen during a screenshot.\n\nThis could leave us in a situation where a buffer is locked by the\napplication for write, and used by SurfaceFlinger for texturing,\ncausing a hang.\n\nHere, we fix this issue by never assuming the exception (1), it was\nintended as an optimization allowing ANativeWindow::lockBuffer() to\nreturn sooner and was justified when most of SF composition was\ndone in software. The actual buffer locking is now ensured by\ngralloc. We could have handled screenshots in a similar way to\na regular composition, but it could have caused glitches on screen,\nessentially, taking a screenshot could cause to skip a frame.\n\nnow that we removed the notion of a \"inUse\" buffer in surfaceflinger\na lot of code can be simplified / removed.\n\nnoteworthy, the whole concept of \"unlockClient\" wrt. \"compositionComplete\"\nis also gone.\n"
    },
    {
      "commit": "b29a24c534ca753ae9923bf56943e3a75e82391e",
      "tree": "876d09167c9cc295378fffd44d150035b390276d",
      "parents": [
        "75c4128e01376b271ff35362c34e06c20abc29aa",
        "47fac46eeb5f522fc964bcaadf27512e29d691fb"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Jan 25 11:03:39 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 25 11:03:39 2011 -0800"
      },
      "message": "am 8952df72: am 4b440268: am c929677e: Merge \"Increase the number of useful bits in the spectrum.\" into gingerbread\n\n* commit \u00278952df72402d8edbc60a0285f0dc7e8fce29a96f\u0027:\n  Increase the number of useful bits in the spectrum.\n"
    },
    {
      "commit": "47fac46eeb5f522fc964bcaadf27512e29d691fb",
      "tree": "e8f31b4ad920d3d73cdd2982caffbbf08f1a56c7",
      "parents": [
        "9099343896ff1a1f2444cba372aaab4a0dbb4818",
        "958c063ed2b9e255e4b4ffc5c7d5f9939da95c36"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Jan 25 10:58:56 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 25 10:58:56 2011 -0800"
      },
      "message": "am 4b440268: am c929677e: Merge \"Increase the number of useful bits in the spectrum.\" into gingerbread\n\n* commit \u00274b44026879723d924ddc306ea1e330a9e87c3a1c\u0027:\n  Increase the number of useful bits in the spectrum.\n"
    },
    {
      "commit": "75c4128e01376b271ff35362c34e06c20abc29aa",
      "tree": "23f38bfe3176b1ffe1ad1aea278fa75221db4695",
      "parents": [
        "4e38fa31abc95e606865e693b1be6180616a4be8",
        "9099343896ff1a1f2444cba372aaab4a0dbb4818"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Jan 25 10:56:38 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 25 10:56:38 2011 -0800"
      },
      "message": "am a79ec961: (-s ours) am ca1cf59f: (-s ours) am efebdf4b: DO NOT MERGE: Support non-multiple-of-16 dimensions in MPEG4/H.263 software decoder\n\n* commit \u0027a79ec961af59ad754cc338a1d3579f9940246b6f\u0027:\n  DO NOT MERGE: Support non-multiple-of-16 dimensions in MPEG4/H.263 software decoder\n"
    },
    {
      "commit": "df489b929115ea93a0cf689830fe44400ce3c00f",
      "tree": "e34b5e622da00e3f324d44a0ca3b17022d2fcb27",
      "parents": [
        "59556c4909a2b681791f2305bf48b5160edd0ba2"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jan 25 10:53:40 2011 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jan 25 10:55:35 2011 -0800"
      },
      "message": "Bug 3117154\n\nThe previous default audible behavior was actually NONE (dry), despite\nthe default value of MEDIUMROOM.  Corrected default value to match the\ndefault behavior.\n\nChange-Id: Iadb0d41629a383fd52f03e8a21ba4b74ea24401c\n"
    },
    {
      "commit": "9099343896ff1a1f2444cba372aaab4a0dbb4818",
      "tree": "967bda0cdbd343c683630d676a2a8ac2f1fc54de",
      "parents": [
        "eaf6ab4dcee0c65d06d58e0a3e6f095477a5885c",
        "05adea42e17b0af3b90e51945f800aa26a2d0240"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Jan 25 10:53:46 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 25 10:53:46 2011 -0800"
      },
      "message": "am ca1cf59f: (-s ours) am efebdf4b: DO NOT MERGE: Support non-multiple-of-16 dimensions in MPEG4/H.263 software decoder\n\n* commit \u0027ca1cf59f495dacb132f2a83cefad41d51141a699\u0027:\n  DO NOT MERGE: Support non-multiple-of-16 dimensions in MPEG4/H.263 software decoder\n"
    },
    {
      "commit": "958c063ed2b9e255e4b4ffc5c7d5f9939da95c36",
      "tree": "394bae7c9db45fd43e2eefe52318f6c53fc12ce3",
      "parents": [
        "05adea42e17b0af3b90e51945f800aa26a2d0240",
        "47f44fb9b85ac555e5b84b2f5ca8536a85659c3e"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Jan 25 10:11:09 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 25 10:11:09 2011 -0800"
      },
      "message": "am c929677e: Merge \"Increase the number of useful bits in the spectrum.\" into gingerbread\n\n* commit \u0027c929677e017759047d94599faa1b80ebe278fefb\u0027:\n  Increase the number of useful bits in the spectrum.\n"
    },
    {
      "commit": "4e38fa31abc95e606865e693b1be6180616a4be8",
      "tree": "23f38bfe3176b1ffe1ad1aea278fa75221db4695",
      "parents": [
        "59556c4909a2b681791f2305bf48b5160edd0ba2",
        "61dca6702ce50d937fc764c55bb0842b40dcd0e4"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Jan 25 10:10:24 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 25 10:10:24 2011 -0800"
      },
      "message": "Merge \"Bug 3376700 Add support in APM for stream-specific volume curves\""
    },
    {
      "commit": "47f44fb9b85ac555e5b84b2f5ca8536a85659c3e",
      "tree": "50dca0f43441e80b655b67f6d44d7f481165b2a9",
      "parents": [
        "05b22175a0d186d964694a5162892b6b3476c562",
        "209821c7b7ead3ac58743d0a6d21dd05a2e77708"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Jan 25 10:06:16 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 25 10:06:16 2011 -0800"
      },
      "message": "Merge \"Increase the number of useful bits in the spectrum.\" into gingerbread"
    },
    {
      "commit": "61dca6702ce50d937fc764c55bb0842b40dcd0e4",
      "tree": "afed90c2745038d5eb95f0d75c2f98a5d3fa4717",
      "parents": [
        "7aa9f73b06525781245b8c2970f09f48050a276d"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Jan 24 15:28:26 2011 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Jan 25 10:04:31 2011 -0800"
      },
      "message": "Bug 3376700 Add support in APM for stream-specific volume curves\n\nThe stream volume was handled the same way for all different stream,\n the only potential difference between each of them being the number\n of steps available to the user to change the volume. This was\n mapped to 99 steps of 0.5dB amplitude, offering a maximum attenuation\n of -49.5dB.\nThis change consists in defining for each stream a curve with two\n knees (3 segments) for conversion from volume index to attenuation.\n This curve is defined in the AudioPolicyManager in\n initializeVolumeCurves(), and can therefore be overridden by the\n platform.\nNote that this change doesn\u0027t modify the volume curves: this CL\n enables the curves to be changed by overriding this default\n behavior.\n\nChange-Id: I575b66799c52df2906db248943b15120b8a79ea2\n"
    },
    {
      "commit": "05adea42e17b0af3b90e51945f800aa26a2d0240",
      "tree": "a2fbe66947c9da426e10e544625b4e8c67c3233d",
      "parents": [
        "2b61341c6308b99254b504a7fa9d890200796369",
        "05b22175a0d186d964694a5162892b6b3476c562"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Jan 24 16:30:12 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jan 24 16:30:12 2011 -0800"
      },
      "message": "am efebdf4b: DO NOT MERGE: Support non-multiple-of-16 dimensions in MPEG4/H.263 software decoder\n\n* commit \u0027efebdf4bd4da35bc50c7d81450c8473697f6654a\u0027:\n  DO NOT MERGE: Support non-multiple-of-16 dimensions in MPEG4/H.263 software decoder\n"
    },
    {
      "commit": "05b22175a0d186d964694a5162892b6b3476c562",
      "tree": "1417f736200d0c6678d30109f47fc651220cff1d",
      "parents": [
        "b517e006b51c95db9c44bf5f104f562d431ae597"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Jan 24 13:36:30 2011 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Jan 24 15:59:14 2011 -0800"
      },
      "message": "DO NOT MERGE: Support non-multiple-of-16 dimensions in MPEG4/H.263 software decoder\n\nChange-Id: I6c27c00a6e13cb3635e61089c0db0989f5810c37\nrelated-to-bug: 3384367\n"
    },
    {
      "commit": "59556c4909a2b681791f2305bf48b5160edd0ba2",
      "tree": "ed9aaaa661328bc2fcda0f489a7b9f7649b03317",
      "parents": [
        "124bd286a895d0fcd3c6586f27a6c0a454236f3f",
        "eaf6ab4dcee0c65d06d58e0a3e6f095477a5885c"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Jan 24 14:04:12 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jan 24 14:04:12 2011 -0800"
      },
      "message": "am 54bce526: am bc5172fe: Merge \"Support non-multiple-of-16 dimensions in MPEG4/H.263 software decoder\" into honeycomb\n\n* commit \u002754bce526bf1062093d012853ae6ed2eb68e37e26\u0027:\n  Support non-multiple-of-16 dimensions in MPEG4/H.263 software decoder\n"
    },
    {
      "commit": "eaf6ab4dcee0c65d06d58e0a3e6f095477a5885c",
      "tree": "967bda0cdbd343c683630d676a2a8ac2f1fc54de",
      "parents": [
        "25c5e4efeadcc6189df881cf7c5922df775f2e9a",
        "4feffd1a8d95cf3843c06a37160580d30d421d8e"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Jan 24 14:00:59 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jan 24 14:00:59 2011 -0800"
      },
      "message": "am bc5172fe: Merge \"Support non-multiple-of-16 dimensions in MPEG4/H.263 software decoder\" into honeycomb\n\n* commit \u0027bc5172fe662104e2558b0841fcf82035398e5cac\u0027:\n  Support non-multiple-of-16 dimensions in MPEG4/H.263 software decoder\n"
    },
    {
      "commit": "4feffd1a8d95cf3843c06a37160580d30d421d8e",
      "tree": "96dcc816650047f9bd54ed5c4dd57b2564997db4",
      "parents": [
        "30ae68bccd8de6f0ab2acd22a6d661ace514343e",
        "b9ff4b4f631239a6a37fe6588e025cb387150c0e"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Jan 24 13:57:11 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 24 13:57:11 2011 -0800"
      },
      "message": "Merge \"Support non-multiple-of-16 dimensions in MPEG4/H.263 software decoder\" into honeycomb"
    },
    {
      "commit": "124bd286a895d0fcd3c6586f27a6c0a454236f3f",
      "tree": "d39ebe644d5c7942f8636e8525822a9541d0ff1a",
      "parents": [
        "b64747693f80ce8d88d4d0e0cc040b4623c4d871",
        "25c5e4efeadcc6189df881cf7c5922df775f2e9a"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Jan 24 13:37:40 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jan 24 13:37:40 2011 -0800"
      },
      "message": "am 5481142a: am c45d3ad0: Merge \"The .mkv parser lib leaves some tracks NULL if it doesn\\\u0027t support them.\" into honeycomb\n\n* commit \u00275481142a0358f72c192d5a7e7f50cda77106309e\u0027:\n  The .mkv parser lib leaves some tracks NULL if it doesn\u0027t support them.\n"
    },
    {
      "commit": "b9ff4b4f631239a6a37fe6588e025cb387150c0e",
      "tree": "aa07166839a4dde2a400155c816e3fdeb2a13d0a",
      "parents": [
        "e20e15bcfd0317f63ecf76e6b8e9fbd9196fde0b"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Jan 24 13:36:30 2011 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Jan 24 13:36:30 2011 -0800"
      },
      "message": "Support non-multiple-of-16 dimensions in MPEG4/H.263 software decoder\n\nChange-Id: Ia22ebce66d9c35de4b04c3eedc9495847796901d\nrelated-to-bug: 3384367\n"
    },
    {
      "commit": "25c5e4efeadcc6189df881cf7c5922df775f2e9a",
      "tree": "469bdc831251c2ba4a6dc882ef51eeee98106274",
      "parents": [
        "339b2ac29492def972b9829efa0d5e1f4b1363ee",
        "30ae68bccd8de6f0ab2acd22a6d661ace514343e"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Jan 24 13:31:27 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jan 24 13:31:27 2011 -0800"
      },
      "message": "am c45d3ad0: Merge \"The .mkv parser lib leaves some tracks NULL if it doesn\\\u0027t support them.\" into honeycomb\n\n* commit \u0027c45d3ad08469eb4c519a5aeef74f6d914e674144\u0027:\n  The .mkv parser lib leaves some tracks NULL if it doesn\u0027t support them.\n"
    },
    {
      "commit": "b64747693f80ce8d88d4d0e0cc040b4623c4d871",
      "tree": "329dcb5d4a65921d185ffa553d2e3ca7fb2a0cb4",
      "parents": [
        "7e9d76e8fbadf3acb73bc61452e6f7092bf54736",
        "339b2ac29492def972b9829efa0d5e1f4b1363ee"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Jan 24 13:31:00 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jan 24 13:31:00 2011 -0800"
      },
      "message": "am bd6ac1e4: am da6f9295: Merge \"Make AwesomePlayer\\\u0027s reset process more verbose to track down ANRs (again)\" into honeycomb\n\n* commit \u0027bd6ac1e4d444e69d31677fec41d4d1a265098f08\u0027:\n  Make AwesomePlayer\u0027s reset process more verbose to track down ANRs (again)\n"
    },
    {
      "commit": "7e9d76e8fbadf3acb73bc61452e6f7092bf54736",
      "tree": "55a34aa0f0b91f7d0aed3e4b7f96cce3408fac0b",
      "parents": [
        "7aa9f73b06525781245b8c2970f09f48050a276d",
        "59b9326d8e2abdd4b67b4c0a64a4b6af01d304ec"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jan 24 13:29:24 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jan 24 13:29:24 2011 -0800"
      },
      "message": "am f6a61c0a: (-s ours) am 39999e3a: (-s ours) am c5694ebd: Merge \"do not merge - Fix issue 3371096.\" into gingerbread\n\n* commit \u0027f6a61c0abcf5834979245bb596f99f6257f43e5a\u0027:\n  do not merge - Fix issue 3371096.\n"
    },
    {
      "commit": "30ae68bccd8de6f0ab2acd22a6d661ace514343e",
      "tree": "695613eb6de864f47baa0826e68419acc8fce720",
      "parents": [
        "e20e15bcfd0317f63ecf76e6b8e9fbd9196fde0b"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Jan 24 12:46:12 2011 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Jan 24 12:46:12 2011 -0800"
      },
      "message": "The .mkv parser lib leaves some tracks NULL if it doesn\u0027t support them.\n\nBut it still counts them as valid tracks...\n\nChange-Id: I77e8fd24cce91a586e8e418759db55b6eba449c0\nrelated-to-bug: 3377186\n"
    },
    {
      "commit": "339b2ac29492def972b9829efa0d5e1f4b1363ee",
      "tree": "f357bd64cef1166429f0170517607f91fe66a5cc",
      "parents": [
        "59b9326d8e2abdd4b67b4c0a64a4b6af01d304ec",
        "e20e15bcfd0317f63ecf76e6b8e9fbd9196fde0b"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Jan 24 11:16:57 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jan 24 11:16:57 2011 -0800"
      },
      "message": "am da6f9295: Merge \"Make AwesomePlayer\\\u0027s reset process more verbose to track down ANRs (again)\" into honeycomb\n\n* commit \u0027da6f9295840b0e74f61afa273ce2a767d8148af7\u0027:\n  Make AwesomePlayer\u0027s reset process more verbose to track down ANRs (again)\n"
    },
    {
      "commit": "e20e15bcfd0317f63ecf76e6b8e9fbd9196fde0b",
      "tree": "8bdbe3540933accbce090f008fcd91188185b68f",
      "parents": [
        "5aae7c2895dcf1716ea66c440b7e569e84dcd5b5"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Jan 24 10:30:05 2011 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Jan 24 10:31:52 2011 -0800"
      },
      "message": "Make AwesomePlayer\u0027s reset process more verbose to track down ANRs (again)\n\nChange-Id: I0d66994cc4295fd5ceeaaf151ce913ed0dd995f9\nrelated-to-bug: 3362836\n"
    },
    {
      "commit": "209821c7b7ead3ac58743d0a6d21dd05a2e77708",
      "tree": "e9cc0ea746bad9d05425f459ad245f882ceab36c",
      "parents": [
        "b517e006b51c95db9c44bf5f104f562d431ae597"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Jan 18 16:44:28 2011 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Jan 24 08:47:55 2011 -0800"
      },
      "message": "Increase the number of useful bits in the spectrum.\n\nChange-Id: I3efc2ac8db689285566df35cb6f594aab41141db\n"
    },
    {
      "commit": "59b9326d8e2abdd4b67b4c0a64a4b6af01d304ec",
      "tree": "99d0f5c090bb7b4d96bd95b446910cbcbea4fd80",
      "parents": [
        "939bd35c377862ed76bd1b5c634efd1e3f2e9a98",
        "2b61341c6308b99254b504a7fa9d890200796369"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jan 24 00:02:04 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jan 24 00:02:04 2011 -0800"
      },
      "message": "am 39999e3a: (-s ours) am c5694ebd: Merge \"do not merge - Fix issue 3371096.\" into gingerbread\n\n* commit \u002739999e3af59599051c6ae0fc8d90cd4bda67ead3\u0027:\n  do not merge - Fix issue 3371096.\n"
    },
    {
      "commit": "7aa9f73b06525781245b8c2970f09f48050a276d",
      "tree": "55a34aa0f0b91f7d0aed3e4b7f96cce3408fac0b",
      "parents": [
        "4448e05139b90fd04008a0a53d92fff53ee8a827",
        "23f1b33c5f88f07510ca5dc01b3afd7af6843d6c"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Sat Jan 22 15:59:28 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Jan 22 15:59:28 2011 -0800"
      },
      "message": "Merge \"New APIs for MTP and PTP host support\""
    },
    {
      "commit": "23f1b33c5f88f07510ca5dc01b3afd7af6843d6c",
      "tree": "801bb79c1b94e88d649a4066b631290e3de19ae9",
      "parents": [
        "f0cf63fff696b30a0b5760bb637efb1aa9bf1f55"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Dec 30 15:38:45 2010 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Sat Jan 22 15:56:09 2011 -0800"
      },
      "message": "New APIs for MTP and PTP host support\n\nThis replaces the previous ContentProvider based interface\n\nChange-Id: I4cea2544854adb9fdcc04345e4d73d8ef05380f3\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "4448e05139b90fd04008a0a53d92fff53ee8a827",
      "tree": "fd79b3be53c4f2778eced7f2689cbc4c4b3a699f",
      "parents": [
        "f0cf63fff696b30a0b5760bb637efb1aa9bf1f55",
        "939bd35c377862ed76bd1b5c634efd1e3f2e9a98"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Sat Jan 22 14:39:13 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Jan 22 14:39:13 2011 -0800"
      },
      "message": "am f1762fd2: am 2d044d1f: Merge \"Remove MTP related log spam\" into honeycomb\n\n* commit \u0027f1762fd25f326dde776a248c193b8eccc2dfddff\u0027:\n  Remove MTP related log spam\n"
    },
    {
      "commit": "939bd35c377862ed76bd1b5c634efd1e3f2e9a98",
      "tree": "99d0f5c090bb7b4d96bd95b446910cbcbea4fd80",
      "parents": [
        "e717633851ea07c2c7581dfba4915bbe27d9640a",
        "5aae7c2895dcf1716ea66c440b7e569e84dcd5b5"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Sat Jan 22 14:37:31 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Jan 22 14:37:31 2011 -0800"
      },
      "message": "am 2d044d1f: Merge \"Remove MTP related log spam\" into honeycomb\n\n* commit \u00272d044d1ff9d5d51eba9669857b7d5ea4e9c2ac52\u0027:\n  Remove MTP related log spam\n"
    },
    {
      "commit": "5aae7c2895dcf1716ea66c440b7e569e84dcd5b5",
      "tree": "4ff42f07706024d7dac37b47a3d933c06a4a9b9a",
      "parents": [
        "8aded52c4d6962da5357d4bfc0bca4be3aa331ef",
        "59d6ae5e339547fea8a350c1d855b52d5ac4f62c"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Sat Jan 22 14:35:39 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Jan 22 14:35:39 2011 -0800"
      },
      "message": "Merge \"Remove MTP related log spam\" into honeycomb"
    },
    {
      "commit": "59d6ae5e339547fea8a350c1d855b52d5ac4f62c",
      "tree": "7fe582634b7de85fc686be802f7dfe39be1a6d32",
      "parents": [
        "b408222bd9479c291874b607acae1425d6154fe7"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Jan 21 21:00:54 2011 -0800"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Jan 21 21:00:54 2011 -0800"
      },
      "message": "Remove MTP related log spam\n\nChange-Id: I9de1792cbeec07fa5ab42ff9a10813f0c3d30fc1\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "f0cf63fff696b30a0b5760bb637efb1aa9bf1f55",
      "tree": "88c0a9f8f4bdf2619938c6a12e17463cc4cf2d3d",
      "parents": [
        "49e9a5c2c2037f570d036e270dfef4b8f28e7d3f",
        "44482001e106cfb7389110f869ddae381f8a2da7"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 21 18:14:09 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 21 18:14:09 2011 -0800"
      },
      "message": "Merge \"Bug 3361124 Remove drmioserver, continued\""
    },
    {
      "commit": "49e9a5c2c2037f570d036e270dfef4b8f28e7d3f",
      "tree": "53d7d3ad694f734aa688509c20d288fa7416e932",
      "parents": [
        "3950125472675b07f220d7f91df5a2d7b1489836",
        "e717633851ea07c2c7581dfba4915bbe27d9640a"
      ],
      "author": {
        "name": "Dave Sparks",
        "email": "davidsparks@android.com",
        "time": "Fri Jan 21 17:37:34 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 21 17:37:34 2011 -0800"
      },
      "message": "am 817ddaf9: (-s ours) am b6e89aff: (-s ours) am 65d39eeb: Merge \"DO NOT MERGE: Prefill the cache before trying to instantiate the media extractor.\" into gingerbread\n\n* commit \u0027817ddaf979d66858e02444ae3ff3dfe02dea288e\u0027:\n  DO NOT MERGE: Prefill the cache before trying to instantiate the media extractor.\n"
    },
    {
      "commit": "e717633851ea07c2c7581dfba4915bbe27d9640a",
      "tree": "3958add020049d932d7edb39bd154ab3815c66bf",
      "parents": [
        "3862c5a4ac16121538f66e2cf46ffc2b9b7ac50d",
        "b23ef145ac2a62068a6a8848f1f5d8a74f9c2b34"
      ],
      "author": {
        "name": "Dave Sparks",
        "email": "davidsparks@android.com",
        "time": "Fri Jan 21 17:33:59 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 21 17:33:59 2011 -0800"
      },
      "message": "am b6e89aff: (-s ours) am 65d39eeb: Merge \"DO NOT MERGE: Prefill the cache before trying to instantiate the media extractor.\" into gingerbread\n\n* commit \u0027b6e89affd5d119f40e5c8a40f2d4f29ca5e534ca\u0027:\n  DO NOT MERGE: Prefill the cache before trying to instantiate the media extractor.\n"
    },
    {
      "commit": "3950125472675b07f220d7f91df5a2d7b1489836",
      "tree": "53d7d3ad694f734aa688509c20d288fa7416e932",
      "parents": [
        "93057e20f3bdcfa368b662049bdd13c9d47cc4b4",
        "3862c5a4ac16121538f66e2cf46ffc2b9b7ac50d"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Jan 21 16:08:34 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 21 16:08:34 2011 -0800"
      },
      "message": "am d34b7aab: (-s ours) am 66e35c24: (-s ours) am e9a00235: Merge \"DO NOT MERGE: Apparently our native TCP sockets do not return an error from blocking \"connect\"\" into gingerbread\n\n* commit \u0027d34b7aab38503a743e06f7e4e2c974e4d9716984\u0027:\n  DO NOT MERGE: Apparently our native TCP sockets do not return an error from blocking \"connect\"\n"
    },
    {
      "commit": "3862c5a4ac16121538f66e2cf46ffc2b9b7ac50d",
      "tree": "3958add020049d932d7edb39bd154ab3815c66bf",
      "parents": [
        "4c81192920777cd6884c6e4eeb4dea5f00451d88",
        "ea59c3e26a903af458cb1cadaeed869a99bf5680"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Jan 21 16:04:56 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 21 16:04:56 2011 -0800"
      },
      "message": "am 66e35c24: (-s ours) am e9a00235: Merge \"DO NOT MERGE: Apparently our native TCP sockets do not return an error from blocking \"connect\"\" into gingerbread\n\n* commit \u002766e35c240e6105934e76cabfafed385f95f013ba\u0027:\n  DO NOT MERGE: Apparently our native TCP sockets do not return an error from blocking \"connect\"\n"
    },
    {
      "commit": "93057e20f3bdcfa368b662049bdd13c9d47cc4b4",
      "tree": "53d7d3ad694f734aa688509c20d288fa7416e932",
      "parents": [
        "21ae1d9cdf7ed1e0cc211431ced2ce4d9cf7d02f",
        "4c81192920777cd6884c6e4eeb4dea5f00451d88"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Fri Jan 21 15:34:06 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 21 15:34:06 2011 -0800"
      },
      "message": "am 48e8ec61: am 366d15d5: Merge \"Revert \"Make AwesomePlayer\\\u0027s reset process more verbose to track down ANRs.\"\" into honeycomb\n\n* commit \u002748e8ec611a6ce4d5fa23830b1ebd24cfbc1c84f2\u0027:\n  Revert \"Make AwesomePlayer\u0027s reset process more verbose to track down ANRs.\"\n"
    },
    {
      "commit": "4c81192920777cd6884c6e4eeb4dea5f00451d88",
      "tree": "3958add020049d932d7edb39bd154ab3815c66bf",
      "parents": [
        "e8600e37d70d5570d73353e892edb00dd872d1c5",
        "8aded52c4d6962da5357d4bfc0bca4be3aa331ef"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Fri Jan 21 15:08:04 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 21 15:08:04 2011 -0800"
      },
      "message": "am 366d15d5: Merge \"Revert \"Make AwesomePlayer\\\u0027s reset process more verbose to track down ANRs.\"\" into honeycomb\n\n* commit \u0027366d15d5425aaa090d9c1a1d7273f13e2c85c43b\u0027:\n  Revert \"Make AwesomePlayer\u0027s reset process more verbose to track down ANRs.\"\n"
    },
    {
      "commit": "8aded52c4d6962da5357d4bfc0bca4be3aa331ef",
      "tree": "c262a3454ed8d461d2aee932b2e0be43fef73e5d",
      "parents": [
        "7fac331b39ca49ce49a67e425dcc031a3cb9e97f"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Fri Jan 21 14:50:32 2011 -0800"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Fri Jan 21 14:52:51 2011 -0800"
      },
      "message": "Revert \"Make AwesomePlayer\u0027s reset process more verbose to track down ANRs.\"\n\nThis reverts commit 90c656574175bd54ed8d258f406f158177e5e91c.\n\nBug: 3378444\nChange-Id: Id845bc0bc213f18c73fec12e6a2084cb2075c2d9\n"
    },
    {
      "commit": "21ae1d9cdf7ed1e0cc211431ced2ce4d9cf7d02f",
      "tree": "304fa40a704074959210dbae3010e5a4ba4fdd76",
      "parents": [
        "5688459765a29875a7bd11d05b8965fb91525614",
        "e8600e37d70d5570d73353e892edb00dd872d1c5"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Jan 21 14:47:15 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 21 14:47:15 2011 -0800"
      },
      "message": "am 3564d9ea: am 63d64a14: Merge \"Properly rotate video that\\\u0027s marked as such and decoded to a surface.\" into honeycomb\n\n* commit \u00273564d9eada7ae3f40bc4c80272fbbb867f04e018\u0027:\n  Properly rotate video that\u0027s marked as such and decoded to a surface.\n"
    },
    {
      "commit": "e8600e37d70d5570d73353e892edb00dd872d1c5",
      "tree": "94edbf7e75265604b7c75d33c6a30f0d781b509d",
      "parents": [
        "42ab78068f67d5b22fbfbcf40448bae505d543ca",
        "7fac331b39ca49ce49a67e425dcc031a3cb9e97f"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Jan 21 14:44:21 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 21 14:44:21 2011 -0800"
      },
      "message": "am 63d64a14: Merge \"Properly rotate video that\\\u0027s marked as such and decoded to a surface.\" into honeycomb\n\n* commit \u002763d64a14790ae21db31b60747864b4a7565b33c3\u0027:\n  Properly rotate video that\u0027s marked as such and decoded to a surface.\n"
    },
    {
      "commit": "7fac331b39ca49ce49a67e425dcc031a3cb9e97f",
      "tree": "f38b5f0a2b0180deed38d27b9b91c26908785d6d",
      "parents": [
        "bc7f5b2e56107cfeaeeab13cf8979379e3c2f139"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Jan 21 14:32:31 2011 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Jan 21 14:32:31 2011 -0800"
      },
      "message": "Properly rotate video that\u0027s marked as such and decoded to a surface.\n\nChange-Id: I1e9144db3447e58c99aac3f47702ad471678789c\nrelated-to-bug: 3378148\n"
    },
    {
      "commit": "5688459765a29875a7bd11d05b8965fb91525614",
      "tree": "48e62194e1e3377a8245a226c559edcbccc70207",
      "parents": [
        "39fd6ce3c83daaccae47e9b3b68cdc6a89256424",
        "42ab78068f67d5b22fbfbcf40448bae505d543ca"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Jan 21 13:19:42 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 21 13:19:42 2011 -0800"
      },
      "message": "am 9a62d902: am 05aa0827: Merge \"Some tweaks to HTTP live / nuplayer behaviour\" into honeycomb\n\n* commit \u00279a62d902ead8f94fa0ce071300e3767bfb976d8b\u0027:\n  Some tweaks to HTTP live / nuplayer behaviour\n"
    },
    {
      "commit": "42ab78068f67d5b22fbfbcf40448bae505d543ca",
      "tree": "f4bf970d75b7a8e886e3a06227aaf2b1e906f2db",
      "parents": [
        "ffaee8a4c3d99342445c92254c42160512583180",
        "bc7f5b2e56107cfeaeeab13cf8979379e3c2f139"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Jan 21 13:17:42 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 21 13:17:42 2011 -0800"
      },
      "message": "am 05aa0827: Merge \"Some tweaks to HTTP live / nuplayer behaviour\" into honeycomb\n\n* commit \u002705aa082770d812c5921d6b2f9b3559f1fd1536a8\u0027:\n  Some tweaks to HTTP live / nuplayer behaviour\n"
    },
    {
      "commit": "39fd6ce3c83daaccae47e9b3b68cdc6a89256424",
      "tree": "ac25a5729c7a2137f51d2946fc5c7bc0e22b99bd",
      "parents": [
        "2324edf081300b0a588d498667806452e13f21ea",
        "ffaee8a4c3d99342445c92254c42160512583180"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Jan 21 10:48:25 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 21 10:48:25 2011 -0800"
      },
      "message": "am ec0c94b7: am c4f82e33: Merge \"Implement missing pause/resume support for NuPlayer.\" into honeycomb\n\n* commit \u0027ec0c94b7d70c1e4160e1ec57070b94d052de7eb5\u0027:\n  Implement missing pause/resume support for NuPlayer.\n"
    },
    {
      "commit": "bc7f5b2e56107cfeaeeab13cf8979379e3c2f139",
      "tree": "dffbfa1a0c661a0bd986d3ef8d80287cb0bcc513",
      "parents": [
        "b408222bd9479c291874b607acae1425d6154fe7"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Jan 21 10:15:23 2011 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Jan 21 10:34:40 2011 -0800"
      },
      "message": "Some tweaks to HTTP live / nuplayer behaviour\n\n- play audio-only streams again\n- workaround for malformed streams that switch PIDs across bandwidths\n- attempt to pick a different bandwidth stream if the previously chosen one appears\n  to be malformed/unsupported.\n\nChange-Id: I426d0a40dc725aa242f619d4c9d048b69aca55c9\nrelated-to-bug: 2368598\n"
    },
    {
      "commit": "44482001e106cfb7389110f869ddae381f8a2da7",
      "tree": "a7a5ddedfc4501ccadf974f49d97d9b5496f95e6",
      "parents": [
        "2324edf081300b0a588d498667806452e13f21ea"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 21 09:06:19 2011 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 21 09:06:19 2011 -0800"
      },
      "message": "Bug 3361124 Remove drmioserver, continued\n\nChange-Id: I525b7a3ac1a79d3aaa1d3c7853df1c903b38b7c0\n"
    },
    {
      "commit": "2b61341c6308b99254b504a7fa9d890200796369",
      "tree": "5e59c875c4bebd9c55eee1e7c6be6bc153926dca",
      "parents": [
        "b23ef145ac2a62068a6a8848f1f5d8a74f9c2b34",
        "b517e006b51c95db9c44bf5f104f562d431ae597"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 20 21:46:21 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 20 21:46:21 2011 -0800"
      },
      "message": "am c5694ebd: Merge \"do not merge - Fix issue 3371096.\" into gingerbread\n\n* commit \u0027c5694ebda9a50be391ef9cfaa7f93e9efb04b6c5\u0027:\n  do not merge - Fix issue 3371096.\n"
    },
    {
      "commit": "b23ef145ac2a62068a6a8848f1f5d8a74f9c2b34",
      "tree": "21366520a5f7082e22a9663aff5e1987aa36a6af",
      "parents": [
        "ea59c3e26a903af458cb1cadaeed869a99bf5680",
        "6e3edc2dffb0d424b02ac57b55114b0d13163f56"
      ],
      "author": {
        "name": "Dave Sparks",
        "email": "davidsparks@android.com",
        "time": "Thu Jan 20 17:41:30 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 20 17:41:30 2011 -0800"
      },
      "message": "am 65d39eeb: Merge \"DO NOT MERGE: Prefill the cache before trying to instantiate the media extractor.\" into gingerbread\n\n* commit \u002765d39eeb9b032e5507a01daa25afff62b29bffe4\u0027:\n  DO NOT MERGE: Prefill the cache before trying to instantiate the media extractor.\n"
    },
    {
      "commit": "2324edf081300b0a588d498667806452e13f21ea",
      "tree": "960929f13cecdd95825ee54cda43f0f83d5eec46",
      "parents": [
        "9751ad130d2e8ac7fd6b890760adbcf9a28385b9",
        "1c3913cf94572c4bfa2c6f7a98925787c5499b69"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jan 20 17:25:14 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 20 17:25:14 2011 -0800"
      },
      "message": "am 612d7f3c: am a423d868: Merge \"clean-up unneeded code\" into honeycomb\n\n* commit \u0027612d7f3c092ec2c4a2ae44cb09d6dfb4e525a659\u0027:\n  clean-up unneeded code\n"
    },
    {
      "commit": "ffaee8a4c3d99342445c92254c42160512583180",
      "tree": "76a6265c319df75e94b4fd6d8a5d51e194f0ce5f",
      "parents": [
        "1c3913cf94572c4bfa2c6f7a98925787c5499b69",
        "b408222bd9479c291874b607acae1425d6154fe7"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Jan 20 17:14:59 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 20 17:14:59 2011 -0800"
      },
      "message": "am c4f82e33: Merge \"Implement missing pause/resume support for NuPlayer.\" into honeycomb\n\n* commit \u0027c4f82e3387429ae94e4874b7dc1649b3c643b505\u0027:\n  Implement missing pause/resume support for NuPlayer.\n"
    },
    {
      "commit": "1c3913cf94572c4bfa2c6f7a98925787c5499b69",
      "tree": "05715c76738dffbbf694b8ad4c7b62aa819a880b",
      "parents": [
        "87b0438aed11ed7f5e7cc442a5300eb5f20ebdc5",
        "adde7faabd165ebf69eaf64f62eb6792032a350a"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jan 20 17:03:46 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 20 17:03:46 2011 -0800"
      },
      "message": "am a423d868: Merge \"clean-up unneeded code\" into honeycomb\n\n* commit \u0027a423d868009b9961597365ce7f190aef23f4b1cc\u0027:\n  clean-up unneeded code\n"
    },
    {
      "commit": "b408222bd9479c291874b607acae1425d6154fe7",
      "tree": "3d9ed699c5082bbf6449e623290ca59ce3b7a64d",
      "parents": [
        "adde7faabd165ebf69eaf64f62eb6792032a350a"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Jan 20 15:23:04 2011 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Jan 20 15:23:04 2011 -0800"
      },
      "message": "Implement missing pause/resume support for NuPlayer.\n\nChange-Id: Ia3f1ce521dd4b70e134ef03aa7c9db8e8d39a134\nrelated-to-bug: 2368598\n"
    },
    {
      "commit": "adde7faabd165ebf69eaf64f62eb6792032a350a",
      "tree": "7e03e923ddcde1792d8525a2d308bd01031e25a3",
      "parents": [
        "da00f9c4b83fbb0076d5cadbfca76097cb22086c",
        "9383d1a2197479e4d2ac4571c7fbe424f93e3b93"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jan 20 12:25:26 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 20 12:25:26 2011 -0800"
      },
      "message": "Merge \"clean-up unneeded code\" into honeycomb"
    },
    {
      "commit": "9383d1a2197479e4d2ac4571c7fbe424f93e3b93",
      "tree": "cbe9c93cd1adf5561c007dc5719a69ca3607b53f",
      "parents": [
        "91a685f1eaa32cadb461755fb235239b308953c9"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jan 19 18:02:20 2011 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jan 20 12:10:11 2011 -0800"
      },
      "message": "clean-up unneeded code\n\nnow that we removed the notion of a \"inUse\" buffer in surfaceflinger\na lot of code can be simplified / removed.\n\nnoteworthy, the whole concept of \"unlockClient\" wrt. \"compositionComplete\"\nis also gone.\n\nChange-Id: I210413d4c8c0998dae05c8620ebfc895d3e6233d\n"
    },
    {
      "commit": "b517e006b51c95db9c44bf5f104f562d431ae597",
      "tree": "92595dc209798655c6c41444b68a9b6809b54510",
      "parents": [
        "6e3edc2dffb0d424b02ac57b55114b0d13163f56"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 19 18:36:13 2011 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 20 12:05:25 2011 -0800"
      },
      "message": "do not merge - Fix issue 3371096.\n\nEffectModule::process() was copying effect chain input buffer to\noutput buffer if no effect was active instead of accumulating it.\n\nChange-Id: If4ca75601ea69a088d0f71d88aec53e90a1dec89\n"
    },
    {
      "commit": "9751ad130d2e8ac7fd6b890760adbcf9a28385b9",
      "tree": "8dfd5fc7a1c768c32bbc9991859be2f8ad1752f7",
      "parents": [
        "2d9e5440ef937c860b4771aaa3b6f406615eb8d2",
        "87b0438aed11ed7f5e7cc442a5300eb5f20ebdc5"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 20 10:35:29 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 20 10:35:29 2011 -0800"
      },
      "message": "am 4dcaeb6d: am 404946fc: Merge \"Fix issue 3371096.\" into honeycomb\n\n* commit \u00274dcaeb6d776bc87469a97001a223099c8e805579\u0027:\n  Fix issue 3371096.\n"
    },
    {
      "commit": "87b0438aed11ed7f5e7cc442a5300eb5f20ebdc5",
      "tree": "b774edcdf237529f1c1e851bbc624c495c57c510",
      "parents": [
        "48086f7b1d7c48bc849118b0203f4fb983334ce3",
        "da00f9c4b83fbb0076d5cadbfca76097cb22086c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 20 10:33:29 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 20 10:33:29 2011 -0800"
      },
      "message": "am 404946fc: Merge \"Fix issue 3371096.\" into honeycomb\n\n* commit \u0027404946fc260e5dff23c8a0db12e33ff842ab4b47\u0027:\n  Fix issue 3371096.\n"
    },
    {
      "commit": "da00f9c4b83fbb0076d5cadbfca76097cb22086c",
      "tree": "c90ac3a883cc0fca45d0e5d9c1ec730c1e2045a7",
      "parents": [
        "737be0d7937e5ab61f0ddb8db1f3835f171300f1",
        "73337489229cc9b50371c7a9fcd86e9f00ea46d0"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 20 10:31:21 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 20 10:31:21 2011 -0800"
      },
      "message": "Merge \"Fix issue 3371096.\" into honeycomb"
    },
    {
      "commit": "2d9e5440ef937c860b4771aaa3b6f406615eb8d2",
      "tree": "b88e742c33d55824e827bb1afb1597ccca1e4b70",
      "parents": [
        "e21495572bebb9c7b5fad745ca1516e53e8fd395",
        "48086f7b1d7c48bc849118b0203f4fb983334ce3"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Jan 20 09:30:44 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 20 09:30:44 2011 -0800"
      },
      "message": "am 3230f1a9: am 637739d4: Merge \"Eliminate recording sound by starting the video track before audio track.\" into honeycomb\n\n* commit \u00273230f1a97db64e2d4ac3a0c691955f1a259d425a\u0027:\n  Eliminate recording sound by starting the video track before audio track.\n"
    },
    {
      "commit": "48086f7b1d7c48bc849118b0203f4fb983334ce3",
      "tree": "48b6bc71b558aee49fedc2319d0607209d7da88e",
      "parents": [
        "5cc52d46226bf1ab6faa8910413153c0b86dc5c9",
        "737be0d7937e5ab61f0ddb8db1f3835f171300f1"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Jan 20 09:28:55 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 20 09:28:55 2011 -0800"
      },
      "message": "am 637739d4: Merge \"Eliminate recording sound by starting the video track before audio track.\" into honeycomb\n\n* commit \u0027637739d4bf014e82af19ec4465e6031579ca6eea\u0027:\n  Eliminate recording sound by starting the video track before audio track.\n"
    },
    {
      "commit": "737be0d7937e5ab61f0ddb8db1f3835f171300f1",
      "tree": "f93f621fbd413757bf1a6489995a40ca0e0d866f",
      "parents": [
        "91a685f1eaa32cadb461755fb235239b308953c9",
        "7bd460110b27a979384dda351788eac95d8467f5"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Jan 20 09:27:01 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 20 09:27:01 2011 -0800"
      },
      "message": "Merge \"Eliminate recording sound by starting the video track before audio track.\" into honeycomb"
    },
    {
      "commit": "7bd460110b27a979384dda351788eac95d8467f5",
      "tree": "cd228aa4d17773047de7bcc1976892bcb979a229",
      "parents": [
        "886c09ee81eb7b8878e487c7f801ea8ddb27c17c"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Jan 19 20:42:19 2011 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Jan 20 06:58:16 2011 -0800"
      },
      "message": "Eliminate recording sound by starting the video track before audio track.\n\nDue to the variable delays in the system, the recording sound can still be heard\nif the audio track is started early. This happens even after we suppress a relative\nlong period of initial audio for a recording session. By starting the video track\nbefore the audio track, we effectively play the recording sound earlier.\n\nbug - 3371141\n\nChange-Id: I2cccf77eae953d96827fc080c618b1d962445c26\n"
    },
    {
      "commit": "73337489229cc9b50371c7a9fcd86e9f00ea46d0",
      "tree": "59fcf0e06094891a67e52540d735e59c48b1517d",
      "parents": [
        "662cb2487ed513ff3ac26b104b5715c01d78419c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 19 18:36:13 2011 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 19 18:36:13 2011 -0800"
      },
      "message": "Fix issue 3371096.\n\nEffectModule::process() was copying effect chain input buffer to\noutput buffer if no effect was active instead of accumulating it.\n\nChange-Id: I2838af2e7b6654d0a76547625929a5453da68d02\n"
    },
    {
      "commit": "e21495572bebb9c7b5fad745ca1516e53e8fd395",
      "tree": "405625778609c9d65ff20fb3571227867100f16f",
      "parents": [
        "62c64c48f8ae8142b893b20cf08fab2cb2a1d69f",
        "5cc52d46226bf1ab6faa8910413153c0b86dc5c9"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Wed Jan 19 16:01:34 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jan 19 16:01:34 2011 -0800"
      },
      "message": "am 113529f0: am a4b0cdc9: Merge \"More fix for 64 bit offset.\" into honeycomb\n\n* commit \u0027113529f062c43b111efbbd1382e23befdd1cdd30\u0027:\n  More fix for 64 bit offset.\n"
    },
    {
      "commit": "5cc52d46226bf1ab6faa8910413153c0b86dc5c9",
      "tree": "8f369f30d2ff5d39db2ceaca042f0bf917cb6df9",
      "parents": [
        "f16e4df61fb5482adffa1a541de985c48506ff28",
        "91a685f1eaa32cadb461755fb235239b308953c9"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Wed Jan 19 15:59:13 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jan 19 15:59:13 2011 -0800"
      },
      "message": "am a4b0cdc9: Merge \"More fix for 64 bit offset.\" into honeycomb\n\n* commit \u0027a4b0cdc96e309168517f4b4da24b7647668f99a7\u0027:\n  More fix for 64 bit offset.\n"
    },
    {
      "commit": "91a685f1eaa32cadb461755fb235239b308953c9",
      "tree": "271144ed0b6a7df45d55468a6002b2d903b192af",
      "parents": [
        "1c705e94c291897d23d236a7d118a68eace74406",
        "2ed8a921ef55aa2f3dd4b7ac33b7ded6ec33d92d"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Wed Jan 19 15:57:23 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 19 15:57:23 2011 -0800"
      },
      "message": "Merge \"More fix for 64 bit offset.\" into honeycomb"
    },
    {
      "commit": "6e3edc2dffb0d424b02ac57b55114b0d13163f56",
      "tree": "06e553aeaa4efe814f992cfe3674763e3b25f400",
      "parents": [
        "f4c056aeacad2dac60a83ccd7928bfeaa9d6ddf6"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 19 15:07:19 2011 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 19 15:44:23 2011 -0800"
      },
      "message": "DO NOT MERGE: Prefill the cache before trying to instantiate the media extractor.\n\nThe latter is an operation that otherwise could block on the datasource\nfor a significant amount of time. During that time we\u0027d be unable to\nabort the preparation phase without this prefill.\n\nChange-Id: I3bc889b264f599bfd5c2bbdf48b88ccb55d86172\nrelated-to-bug: 3362836\n"
    },
    {
      "commit": "2ed8a921ef55aa2f3dd4b7ac33b7ded6ec33d92d",
      "tree": "df7cad524492b9f7f54daddd99bf1626ba89bed4",
      "parents": [
        "886c09ee81eb7b8878e487c7f801ea8ddb27c17c"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Wed Jan 19 15:38:16 2011 -0800"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Wed Jan 19 15:38:16 2011 -0800"
      },
      "message": "More fix for 64 bit offset.\n\nChange-Id: Ia05060113ca0f43a4362914dc99c89c89e30eb4a\n"
    },
    {
      "commit": "62c64c48f8ae8142b893b20cf08fab2cb2a1d69f",
      "tree": "9b91531027304bb44f6fa50773cf5ff2319f64ac",
      "parents": [
        "2c036f7a42f813f814308421a61b84502e3a355a",
        "f16e4df61fb5482adffa1a541de985c48506ff28"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 19 15:28:29 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jan 19 15:28:29 2011 -0800"
      },
      "message": "am 559da2fd: am 3cd6302b: Merge \"Prefill the cache before trying to instantiate the media extractor.\" into honeycomb\n\n* commit \u0027559da2fd899dcd88ccea3f7df31a27b41d6ca074\u0027:\n  Prefill the cache before trying to instantiate the media extractor.\n"
    },
    {
      "commit": "f16e4df61fb5482adffa1a541de985c48506ff28",
      "tree": "87f6ecb9f017a00d7dc67aca6a7dcc520269fbe0",
      "parents": [
        "cafbd578dcff2bcbe025b2757f9a163f2b8a5398",
        "1c705e94c291897d23d236a7d118a68eace74406"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 19 15:24:28 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jan 19 15:24:28 2011 -0800"
      },
      "message": "am 3cd6302b: Merge \"Prefill the cache before trying to instantiate the media extractor.\" into honeycomb\n\n* commit \u00273cd6302b9e54ff888df5eb47b35d25e7dac1d763\u0027:\n  Prefill the cache before trying to instantiate the media extractor.\n"
    },
    {
      "commit": "1c705e94c291897d23d236a7d118a68eace74406",
      "tree": "3b7604c65dba8ecd02ea946b1665a51e8d4fa4c8",
      "parents": [
        "886c09ee81eb7b8878e487c7f801ea8ddb27c17c",
        "ac05c317cd818701535c5d72ce90da98c4bae75b"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 19 15:12:41 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 19 15:12:41 2011 -0800"
      },
      "message": "Merge \"Prefill the cache before trying to instantiate the media extractor.\" into honeycomb"
    },
    {
      "commit": "ac05c317cd818701535c5d72ce90da98c4bae75b",
      "tree": "7bc60e7bca5d17cad542d96782ad828a0df0c258",
      "parents": [
        "88b7ad413c4b6d08697069b18488641d6ce31fd3"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 19 15:07:19 2011 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 19 15:07:19 2011 -0800"
      },
      "message": "Prefill the cache before trying to instantiate the media extractor.\n\nThe latter is an operation that otherwise could block on the datasource\nfor a significant amount of time. During that time we\u0027d be unable to\nabort the preparation phase without this prefill.\n\nChange-Id: Ia42496d88a11314386ea8797d665bf4e94871e30\nrelated-to-bug: 3362836\n"
    },
    {
      "commit": "2c036f7a42f813f814308421a61b84502e3a355a",
      "tree": "4c3b5c9f7785073c29be8db825e082e0465db42e",
      "parents": [
        "7b6cdfc24a02f5bb72668ec7642ca06d937f981a",
        "cafbd578dcff2bcbe025b2757f9a163f2b8a5398"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Jan 19 14:01:18 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jan 19 14:01:18 2011 -0800"
      },
      "message": "am aa474aa6: am fc37018a: Merge \"Logging the duration range from different media tracks for recording\" into honeycomb\n\n* commit \u0027aa474aa6f9857272c5f74a14d8ab026ae8fc55c3\u0027:\n  Logging the duration range from different media tracks for recording\n"
    }
  ],
  "next": "cafbd578dcff2bcbe025b2757f9a163f2b8a5398"
}
