)]}'
{
  "log": [
    {
      "commit": "dd115cd3b1429a39f1c8e77cbdf03e760ebdb6c3",
      "tree": "ed3e70d787dbc6fd3e9a2ebb59ad7d088251c7fb",
      "parents": [
        "82fd03b854a5e6879dc9eb6d57962414e7082894",
        "eac68baf095aeef54865c28b6888924dc6295cbd"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 27 13:36:22 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 27 13:36:22 2011 -0700"
      },
      "message": "Merge \"Signal an appropriate error even if there are no active streams yet.\""
    },
    {
      "commit": "eac68baf095aeef54865c28b6888924dc6295cbd",
      "tree": "a1ca9c5de638d21e07be1aab9f25d01e118597e7",
      "parents": [
        "797ab6072402b12721dc226a9ebde3546e7640e9"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 27 12:12:25 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 27 12:13:37 2011 -0700"
      },
      "message": "Signal an appropriate error even if there are no active streams yet.\n\nChange-Id: I3ac1053ad288558b62ee18056dfd0a9ce0da8f49\nrelated-to-bug: 5372901\n"
    },
    {
      "commit": "82fd03b854a5e6879dc9eb6d57962414e7082894",
      "tree": "761dbf7ef3ac4853c5b0e3806568376ddf639141",
      "parents": [
        "797ab6072402b12721dc226a9ebde3546e7640e9",
        "9cb839a0fcc98fe4278b39afb8b6d664c04f1673"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 27 10:32:17 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 27 10:32:17 2011 -0700"
      },
      "message": "Merge \"Fix issue 5373048: AudioCache decode errors\""
    },
    {
      "commit": "9cb839a0fcc98fe4278b39afb8b6d664c04f1673",
      "tree": "f5847d0d1994489a829368b12c4998dcf229c926",
      "parents": [
        "ece731de0c0af30917316d55313f25c56f91960d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 27 09:48:56 2011 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 27 10:23:38 2011 -0700"
      },
      "message": "Fix issue 5373048: AudioCache decode errors\n\nWhen decoding a file for the SoundPool, do not\nreject the entire file in case of error but\nreturn what was decoded so far instead.\n\nChange-Id: Iff199a1b6a4c8e064e42a0dfe0704e0ae36a27fd\n"
    },
    {
      "commit": "797ab6072402b12721dc226a9ebde3546e7640e9",
      "tree": "a6c6a25ce9bd1b423243fca18300955b7e7ef3fb",
      "parents": [
        "070b91e1f67e6e2f129b6b492f38fbec7c8618e4",
        "031abfb6cc904da49b28423643d80a6485f4e3e6"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Sep 26 12:11:29 2011 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Sep 26 12:11:29 2011 -0700"
      },
      "message": "Reconcile with ics-factoryrom-release\n\nChange-Id: I4096cbbfd0bae1f7c08c9731f522529d3895d2d8\n"
    },
    {
      "commit": "070b91e1f67e6e2f129b6b492f38fbec7c8618e4",
      "tree": "a6c6a25ce9bd1b423243fca18300955b7e7ef3fb",
      "parents": [
        "dc9bacd838442a524585887e6ea6696836be2eda",
        "93d5ab693626fa2700375e838e4bb90e4d50e605"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Sep 26 11:26:59 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 26 11:26:59 2011 -0700"
      },
      "message": "Merge \"Properly connect to surface flinger in our shell tools\""
    },
    {
      "commit": "dc9bacd838442a524585887e6ea6696836be2eda",
      "tree": "230135b6bc20bff2be5a8292e91c0fac86201039",
      "parents": [
        "ece731de0c0af30917316d55313f25c56f91960d"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Sep 26 10:53:29 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Sep 26 10:53:29 2011 -0700"
      },
      "message": "Propagate error signalled by the source all the way to the output EOS notification.\n\nChange-Id: I30e959a6d669f09745c59fbdebee08f869511cf7\nrelated-to-bug: 5372901\n"
    },
    {
      "commit": "ece731de0c0af30917316d55313f25c56f91960d",
      "tree": "f22ab3869438cdcbad7036e830ba1aed3b20a0ab",
      "parents": [
        "ce7f4f6345395eb3e715beaf4a74621956070f47",
        "32e1832dfac3a6bbcc5c0973ccd0e22de4d1a1ac"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Sep 26 08:09:11 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 26 08:09:11 2011 -0700"
      },
      "message": "Merge \"Support even more .avi files with .mp3 content not aligned to chunk boundaries\""
    },
    {
      "commit": "32e1832dfac3a6bbcc5c0973ccd0e22de4d1a1ac",
      "tree": "5e0a3c8ef28fc0dab8428a385c99ca0a643d6a0d",
      "parents": [
        "e2c10206a506381ecd466e050f8b5cdf87db7100"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Sep 23 14:05:49 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Sep 23 14:59:31 2011 -0700"
      },
      "message": "Support even more .avi files with .mp3 content not aligned to chunk boundaries\n\nChange-Id: I3ace4118e2e519648c23c51d0b699ba0d7511a5d\nrelated-to-bug: 5349382\n"
    },
    {
      "commit": "ce7f4f6345395eb3e715beaf4a74621956070f47",
      "tree": "10602c3175014873741469cbf20f5f7737d74f7a",
      "parents": [
        "7df9b2be02dc9246ba858a54f28ea71cb9d1da08",
        "6bffdb8b598a2399e57f6ca48660fb7bdb2490b5"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 23 14:43:12 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 23 14:43:12 2011 -0700"
      },
      "message": "Merge \"Fix issue 5355047: Automated effect tests fail.\""
    },
    {
      "commit": "031abfb6cc904da49b28423643d80a6485f4e3e6",
      "tree": "d44f557cc6a511900df865aa0ebd8de877b8e086",
      "parents": [
        "b050002245f1606697488ddf5516e992d0c380be",
        "e6310baa913c8fcfcaf5cbec91bd99335002256c"
      ],
      "author": {
        "name": "The Android Automerger",
        "email": "android-build@android.com",
        "time": "Fri Sep 23 11:35:01 2011 -0700"
      },
      "committer": {
        "name": "The Android Automerger",
        "email": "android-build@android.com",
        "time": "Fri Sep 23 11:35:01 2011 -0700"
      },
      "message": "merge in ics-factoryrom-release history after reset to ics-factoryrom\n"
    },
    {
      "commit": "7df9b2be02dc9246ba858a54f28ea71cb9d1da08",
      "tree": "d3a767168d77e78f45fa46d18d2069d6971c75a1",
      "parents": [
        "0f0fed65815cdf083f70d723b3001a5dbd1837db",
        "d10c07603a28429beb7471c0fb23a5f9ec90bf26"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Sep 23 11:27:51 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 23 11:27:51 2011 -0700"
      },
      "message": "Merge \"Add an option to dump the raw stream to a file in the stagefright cmdline tool.\""
    },
    {
      "commit": "d10c07603a28429beb7471c0fb23a5f9ec90bf26",
      "tree": "de924db144aa49b74bd594801a519a5654b293ec",
      "parents": [
        "e2c10206a506381ecd466e050f8b5cdf87db7100"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Sep 23 10:25:32 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Sep 23 10:25:32 2011 -0700"
      },
      "message": "Add an option to dump the raw stream to a file in the stagefright cmdline tool.\n\nChange-Id: Ie19eca2cdf162d6973037ec554ef5916243ea7d7\n"
    },
    {
      "commit": "6bffdb8b598a2399e57f6ca48660fb7bdb2490b5",
      "tree": "5112db2529cd94fe9632bf781c07103e49a10849",
      "parents": [
        "89aa8fe4cb00d2f24260005b008602232d678684"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 23 08:40:41 2011 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 23 10:15:05 2011 -0700"
      },
      "message": "Fix issue 5355047: Automated effect tests fail.\n\nFixed several regressions in automated audio effect tests due\nto changes in effect framework and visualizer FFT output range.\n\n- Do not suspend Volume effect on session 0 when effects are\nenabled on specific sessions.\n- Adapt energy detection thresholds to new visualizer FFT range.\n- Leave more time for BassBoost and Virtualizer effects to ramp up\nbefore measuring the effect.\n- Removed second insert reverb left by mistake on the player session\nin preset reverb test.\n\nChange-Id: I7a1ad1372d783fa7900eb9dd1d3b47f54d8d766f\n"
    },
    {
      "commit": "0f0fed65815cdf083f70d723b3001a5dbd1837db",
      "tree": "9a1f16368db040e63102136b1632b8261e66864f",
      "parents": [
        "3d5ec85e29edfa0639290610044517bec269c7df",
        "b050002245f1606697488ddf5516e992d0c380be"
      ],
      "author": {
        "name": "Wei Huang",
        "email": "weih@google.com",
        "time": "Fri Sep 23 10:05:22 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Sep 23 10:05:22 2011 -0700"
      },
      "message": "am 3d9a9e55: Merge \"Update camera javadoc about AE and AWB lock.\" into ics-factoryrom\n\n* commit \u00273d9a9e55df85c720573e69ec3062efc331ea69bb\u0027:\n  Update camera javadoc about AE and AWB lock.\n"
    },
    {
      "commit": "b050002245f1606697488ddf5516e992d0c380be",
      "tree": "d44f557cc6a511900df865aa0ebd8de877b8e086",
      "parents": [
        "3e9bf4061475ae0d01c57e32c13e63808aa3e31f",
        "ca1d5399c5d6d23d16554be7c702fdf5232e55bd"
      ],
      "author": {
        "name": "Wei Huang",
        "email": "weih@google.com",
        "time": "Fri Sep 23 10:04:02 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 23 10:04:02 2011 -0700"
      },
      "message": "Merge \"Update camera javadoc about AE and AWB lock.\" into ics-factoryrom"
    },
    {
      "commit": "3d5ec85e29edfa0639290610044517bec269c7df",
      "tree": "c0eca34588f66fb2a2e2b3d43e80a2c902b8d418",
      "parents": [
        "e2c10206a506381ecd466e050f8b5cdf87db7100",
        "3e9bf4061475ae0d01c57e32c13e63808aa3e31f"
      ],
      "author": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Fri Sep 23 09:08:11 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Sep 23 09:08:11 2011 -0700"
      },
      "message": "am 1d71c7b4: Merge \"Returning EOS in SurfaceMediaSource:read\" into ics-factoryrom\n\n* commit \u00271d71c7b40a7f38487e602e78f45279b6a8364fc9\u0027:\n  Returning EOS in SurfaceMediaSource:read\n"
    },
    {
      "commit": "3e9bf4061475ae0d01c57e32c13e63808aa3e31f",
      "tree": "e202bf8dfb7dc91a2de1248ccee3265740e07760",
      "parents": [
        "669012d77b00a2aacb6fd12837f2870f9ec17865"
      ],
      "author": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Thu Sep 22 17:03:48 2011 -0700"
      },
      "committer": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Thu Sep 22 17:03:48 2011 -0700"
      },
      "message": "Returning EOS in SurfaceMediaSource:read\n\nIn SurfaceMediaSource::read, if disconnect has already been called, then\nERROR_END_OF_STREAM should be returned rather that NO_INIT. Else, it\nsometimes leads to a crash in mediarecorder stop() call.\n\nRelated to FactoryROM bug: 5332812\n\nChange-Id: I22132538ab2501d084e0283876817b1ec3f64a1d\n"
    },
    {
      "commit": "ca1d5399c5d6d23d16554be7c702fdf5232e55bd",
      "tree": "265d58933143412e49c38966e5c9b06ba009c359",
      "parents": [
        "669012d77b00a2aacb6fd12837f2870f9ec17865"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu Sep 22 11:43:28 2011 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu Sep 22 18:19:02 2011 +0800"
      },
      "message": "Update camera javadoc about AE and AWB lock.\n\n- Autofocus does not lock AE and AWB.\n- stopPreview and takePicture do not clear AE and AWB locks.\n\nbug:5356404\n\nChange-Id: I55d9b35f4ff746ecd2bff112c2674f1aa2543aca\n"
    },
    {
      "commit": "e2c10206a506381ecd466e050f8b5cdf87db7100",
      "tree": "0f4c0d0c2dfc769218737a3d593d46a311c519ff",
      "parents": [
        "10b3b8608c4739e772a80cf84a10fda98e842cd7",
        "5f6f4e4e89bc9b234d89276aea3eae7f677e2ff7"
      ],
      "author": {
        "name": "Edwin Wong",
        "email": "edwinwong@google.com",
        "time": "Wed Sep 21 23:05:57 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 21 23:05:57 2011 -0700"
      },
      "message": "Merge \"Modified loadPlugIns to load from /vendor and /system; skip libraries that are already loaded. BUG: 5284436\""
    },
    {
      "commit": "5f6f4e4e89bc9b234d89276aea3eae7f677e2ff7",
      "tree": "5e622df3a534d6023470490592a5ebb79b116310",
      "parents": [
        "fb6f03425a791dcc4188462c860becf6ca6be4ea"
      ],
      "author": {
        "name": "Edwin Wong",
        "email": "edwinwong@google.com",
        "time": "Wed Sep 21 19:18:30 2011 -0700"
      },
      "committer": {
        "name": "Edwin Wong",
        "email": "edwinwong@google.com",
        "time": "Wed Sep 21 21:50:31 2011 -0700"
      },
      "message": "Modified loadPlugIns to load from /vendor and /system; skip libraries that are already loaded.\nBUG: 5284436\n\nChange-Id: I99267c81a488860c3c7edb747100d44f3083bfc2\n"
    },
    {
      "commit": "10b3b8608c4739e772a80cf84a10fda98e842cd7",
      "tree": "11f0b85b1f03996ed982f6b7b8767c372fdd2ed9",
      "parents": [
        "dc7747d7da61a72b6d26dacf7569de9455d77474",
        "c639aad6d8894f57c02e620f52ccf49e51b64866"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Sep 21 13:56:09 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 21 13:56:09 2011 -0700"
      },
      "message": "Merge \"Support some .avi files containing H.264 video, log warnings if audio/video unsupported\""
    },
    {
      "commit": "c639aad6d8894f57c02e620f52ccf49e51b64866",
      "tree": "a248fe230bbc299332d7b9ca0c88702f130f8318",
      "parents": [
        "ad8e8bfea2da077248a9f217c029e14fefb01096"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Sep 21 13:19:54 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Sep 21 13:19:54 2011 -0700"
      },
      "message": "Support some .avi files containing H.264 video, log warnings if audio/video unsupported\n\nChange-Id: Ie7280f25f2bd19f32234c08673e64ceb65833677\nrelated-to-bug: 5349382\n"
    },
    {
      "commit": "dc7747d7da61a72b6d26dacf7569de9455d77474",
      "tree": "45ba6cb15ed555139bf1e7a68901bdb1e69cc421",
      "parents": [
        "ad8e8bfea2da077248a9f217c029e14fefb01096"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Sep 21 10:40:01 2011 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Sep 21 10:40:01 2011 -0700"
      },
      "message": "Bug 5234242 audio continues after discontinuity\n\nReduce to 8 buffers of 10 packets from 16 buffers of 20 packets.\n\nChange-Id: Ifdb5e15535989fbb6e5e1b70d5f9f71dc66a5c83\n"
    },
    {
      "commit": "93d5ab693626fa2700375e838e4bb90e4d50e605",
      "tree": "b61248326ac11a89534e8bf58375ad38301378d7",
      "parents": [
        "ad8e8bfea2da077248a9f217c029e14fefb01096"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Sep 15 12:42:32 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 20 10:37:18 2011 -0700"
      },
      "message": "Properly connect to surface flinger in our shell tools\n\nAlso raise the layer to INT_MAX to float in front of the toolbar.\n\nChange-Id: I045a1c83924e6655f1734d15f2504b90312eec64\n"
    },
    {
      "commit": "ad8e8bfea2da077248a9f217c029e14fefb01096",
      "tree": "4d4a5c63650f7cf75ce4c4023cbb145867767349",
      "parents": [
        "12bbe5d7d47747c093ddac2977f594a4a3c1810e",
        "e6310baa913c8fcfcaf5cbec91bd99335002256c"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Sep 20 07:43:10 2011 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Sep 20 07:43:10 2011 -0700"
      },
      "message": "Reconcile with ics-factoryrom-release\n\nChange-Id: I8bb64c1b31c7158d931fd9f7be8a9e5b317c5252\n"
    },
    {
      "commit": "e6310baa913c8fcfcaf5cbec91bd99335002256c",
      "tree": "97a5d285ac5092a13ea54a818de5242798b5f96b",
      "parents": [
        "669012d77b00a2aacb6fd12837f2870f9ec17865",
        "c66c7513b7cd8e92274e478d8431ce3f64b8d2a4"
      ],
      "author": {
        "name": "The Android Automerger",
        "email": "android-build@android.com",
        "time": "Tue Sep 20 06:28:15 2011 -0700"
      },
      "committer": {
        "name": "The Android Automerger",
        "email": "android-build@android.com",
        "time": "Tue Sep 20 06:28:15 2011 -0700"
      },
      "message": "merge in ics-factoryrom-release history after reset to ics-factoryrom\n"
    },
    {
      "commit": "c66c7513b7cd8e92274e478d8431ce3f64b8d2a4",
      "tree": "97a5d285ac5092a13ea54a818de5242798b5f96b",
      "parents": [
        "5dc2812abddde309234edc786a541d251c4f820a"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Sep 19 16:27:31 2011 -0700"
      },
      "committer": {
        "name": "The Android Automerger",
        "email": "android-build@android.com",
        "time": "Mon Sep 19 21:54:30 2011 -0700"
      },
      "message": "Add QVGA resolution to CamcorderProfile\n\nChange-Id: Icebbafb68d8164370f98a2c36699845d10ef081b\nrelated-to-bug: 5145483\n"
    },
    {
      "commit": "12bbe5d7d47747c093ddac2977f594a4a3c1810e",
      "tree": "4d4a5c63650f7cf75ce4c4023cbb145867767349",
      "parents": [
        "89aa8fe4cb00d2f24260005b008602232d678684",
        "669012d77b00a2aacb6fd12837f2870f9ec17865"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Sep 19 20:09:00 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Sep 19 20:09:00 2011 -0700"
      },
      "message": "am 92d0a64b: Merge \"Add QVGA resolution to CamcorderProfile\" into ics-factoryrom\n\n* commit \u002792d0a64b909cd95e8f4ce587438b0cc6d2daeaa0\u0027:\n  Add QVGA resolution to CamcorderProfile\n"
    },
    {
      "commit": "669012d77b00a2aacb6fd12837f2870f9ec17865",
      "tree": "97a5d285ac5092a13ea54a818de5242798b5f96b",
      "parents": [
        "5dc2812abddde309234edc786a541d251c4f820a"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Sep 19 16:27:31 2011 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Sep 19 19:32:26 2011 -0700"
      },
      "message": "Add QVGA resolution to CamcorderProfile\n\nChange-Id: Icebbafb68d8164370f98a2c36699845d10ef081b\nrelated-to-bug: 5145483\n"
    },
    {
      "commit": "89aa8fe4cb00d2f24260005b008602232d678684",
      "tree": "06d871b702884809f45f70ed71b19917cc93fd3d",
      "parents": [
        "84ada693b87f4d9344578e750a506b7789c13eb9"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Sep 19 12:18:47 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Sep 19 12:21:33 2011 -0700"
      },
      "message": "Remove an O(n^2) algorithm in MPEG4Extractor.cpp to speed up seeks in long streams\n\ncontaining B-frames.\n\nChange-Id: Ie4dc734d2c2d5a5ce84674bb883f4b27e2278642\nrelated-to-bug: 5336497\n"
    },
    {
      "commit": "84ada693b87f4d9344578e750a506b7789c13eb9",
      "tree": "b619c25fb9b2662a26616cc51e96f5b08dc56c0f",
      "parents": [
        "3169d9fa0a4ee7b00c12eb7892703a2a8ded161d",
        "3fe62150fa3dd6d25cb84aad80bc9e27ddd16c45"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Sep 19 08:54:59 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 19 08:54:59 2011 -0700"
      },
      "message": "Merge \"In order to recover from video lagging behind audio, drop avc frames\""
    },
    {
      "commit": "3fe62150fa3dd6d25cb84aad80bc9e27ddd16c45",
      "tree": "4d969afd449d31381899275bf9b9fa2a87f9a24e",
      "parents": [
        "078cfcf7cce9185ec7559910d08b0bc02bfc88a3"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Sep 16 15:09:22 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Sep 16 15:19:59 2011 -0700"
      },
      "message": "In order to recover from video lagging behind audio, drop avc frames\n\nthat are not referenced by other frames before feeding them into the decoder.\n\nChange-Id: I822190af8f8329567bff8da1ea23136d0a765481\n"
    },
    {
      "commit": "3169d9fa0a4ee7b00c12eb7892703a2a8ded161d",
      "tree": "103cb73bdba6605d6649f211ad169786df2b0a21",
      "parents": [
        "078cfcf7cce9185ec7559910d08b0bc02bfc88a3",
        "eb8b914ad9d4331e1cdf4346731770ce69fd0e77"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Sep 16 13:56:16 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 16 13:56:16 2011 -0700"
      },
      "message": "Merge \"AudioResampler: use relative instead of absolute labels\""
    },
    {
      "commit": "eb8b914ad9d4331e1cdf4346731770ce69fd0e77",
      "tree": "cf0032240f144033db3c512063fbd7f8161e042f",
      "parents": [
        "5dc2812abddde309234edc786a541d251c4f820a"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Sep 16 13:14:16 2011 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Sep 16 13:14:16 2011 -0700"
      },
      "message": "AudioResampler: use relative instead of absolute labels\n\nThis change is needed to allow Android to compile with -fPIE\nBug: 5328392\n\nChange-Id: I84d947975776800a7b79c6ac75a881af461a631c\n"
    },
    {
      "commit": "078cfcf7cce9185ec7559910d08b0bc02bfc88a3",
      "tree": "d4fb458318a3f0b3982b05e0c79a2cfc447dd732",
      "parents": [
        "5dc2812abddde309234edc786a541d251c4f820a"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Sep 15 12:25:04 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Sep 16 10:44:02 2011 -0700"
      },
      "message": "Various improvements to nuplayer playback\n\n- Drastically cut down the number of times we supply the AudioSink with data\nby estimating the time until the sink would run out of data and then scheduling\na refill in advance of that.\n\n- Use a dedicated looper for video decoders since they are currently taking\ntoo long to return from OMX_FillThisBuffer (bug 5325201)\n\n- Revise thread priorities for the OMX dispatcher and software codecs, instead\nof running them at ANDROID_PRIORITY_AUDIO, they now only run at\nANDROID_PRIORITY_FOREGROUND\n\n- Since threads created by pthread_create inherit all of the parent threads\nattributes including thread priority, briefly reset thread priority to\nANDROID_PRIORITY_FOREGROUND before instantiating OMX components and then\nrestore it.\n\nChange-Id: If9332a3a20dad5485333d68c11de0d2d5d3fffc3\n"
    },
    {
      "commit": "5dc2812abddde309234edc786a541d251c4f820a",
      "tree": "f4c077a42c5577d4fc9b098583a021f67382ba3e",
      "parents": [
        "6de6b48237423a65ec041288c90e3f78fd3fce48",
        "9a5e04438df742c297c5dbcdb60e6fd4d8f8321d"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Sep 14 17:42:22 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 14 17:42:22 2011 -0700"
      },
      "message": "Merge \"Change an assert failure due to unsupported level by HW AVC decoder and report the error to applications\""
    },
    {
      "commit": "6de6b48237423a65ec041288c90e3f78fd3fce48",
      "tree": "0a0b9ca39948d670140233001a2b3bb7d0e6e8ac",
      "parents": [
        "3a1dccab5f3be394572445f418a2f17f005db25e",
        "cfe2ba6b01a258e39f9c215ffc7b750e0b68f708"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 13 17:50:31 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 13 17:50:31 2011 -0700"
      },
      "message": "Merge \"Issue 5298399: Lost speech after a crash in gTalk.\""
    },
    {
      "commit": "cfe2ba6b01a258e39f9c215ffc7b750e0b68f708",
      "tree": "c4a213cfc30955cc61a8c9673e032caff41a0947",
      "parents": [
        "98afd841e8f0803a00d1970e4a28ea8999e9c498"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 13 15:04:17 2011 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 13 17:33:29 2011 -0700"
      },
      "message": "Issue 5298399: Lost speech after a crash in gTalk.\n\nFixed problem in AudioTrack::restoreTrack_l() causing a permanent\nfailure if the IAudioTrack interface to AudioFlinger could not be\nrestored at the first attempt.\n\nChange-Id: I039d4fe2dca8d3baf71f1a6c51119f27a67b6611\n"
    },
    {
      "commit": "3a1dccab5f3be394572445f418a2f17f005db25e",
      "tree": "e11b6c41ae5d1ca0992e76f59c478ac6054915bb",
      "parents": [
        "bf5db10436c0d194086237b3a90bb46b359ba688",
        "60cd0a0d488e604d27fc7dbb02b00348693dfde2"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 13 12:57:37 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 13 12:57:37 2011 -0700"
      },
      "message": "Merge \"Issue 4345021: Audio routed to multiple devices...\""
    },
    {
      "commit": "60cd0a0d488e604d27fc7dbb02b00348693dfde2",
      "tree": "483677bd2a83cde26bfbb49057a7cf3b3384aaf2",
      "parents": [
        "9215ea4cd8bc5f9c9770c5c34a009dc7c6068f86"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 13 11:40:21 2011 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 13 12:44:22 2011 -0700"
      },
      "message": "Issue 4345021: Audio routed to multiple devices...\n\nThere is a possiblility that the condition on which RecordThread::checkForNewParameters_l()\nwaits after updating the command completion status is never signalled.\nThis happens if the thread executing ThreadBase::setParameters() has timed out waiting\nfor the status (for instance if the audio HAL takes too long to execute the setParameters()\ncommand. Then the RecordThread is stuck forever.\n\nThe fix consists in waiting for the condition with a timeout in RecordThread::checkForNewParameters_l().\n\nChange-Id: I7fc671bc2fc43ba4acb65a2beb33ee05742f091e\n"
    },
    {
      "commit": "bf5db10436c0d194086237b3a90bb46b359ba688",
      "tree": "ba958c8a2d3faae29e2c741ebe6cad8c6757cec8",
      "parents": [
        "714aa7b7c52ce07d5fb44870c0853b4d8e5a758e",
        "7de73f4eb68f3aa478e19ba05a13bc84296f9894"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 13 11:37:22 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 13 11:37:22 2011 -0700"
      },
      "message": "Merge \"Support .avi tracks that have a sample size of 1, i.e. samples !\u003d chunks\""
    },
    {
      "commit": "7de73f4eb68f3aa478e19ba05a13bc84296f9894",
      "tree": "358aaff9893f6676069c1ea0ac6f3df995e6f622",
      "parents": [
        "9215ea4cd8bc5f9c9770c5c34a009dc7c6068f86"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 13 11:12:57 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 13 11:12:57 2011 -0700"
      },
      "message": "Support .avi tracks that have a sample size of 1, i.e. samples !\u003d chunks\n\nAssume for now that all chunks are the same size, i.e. have the same number of\nsamples.\n\nChange-Id: Ib8a7dfeb16cc3e5be199ff9d98b68dd0b9c23eb8\nrelated-to-bug: 5279872\n"
    },
    {
      "commit": "9a5e04438df742c297c5dbcdb60e6fd4d8f8321d",
      "tree": "8c9ae8e852283e296194f4b06f3a2ca41d046113",
      "parents": [
        "9215ea4cd8bc5f9c9770c5c34a009dc7c6068f86"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Sep 12 19:56:23 2011 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Sep 13 11:00:17 2011 -0700"
      },
      "message": "Change an assert failure due to unsupported level by HW AVC decoder and report the error to applications\n\nChange-Id: I522a994981d86329ccc86c3b536b561dc6e40eeb\nrelated-to-bug: 5300618\n"
    },
    {
      "commit": "714aa7b7c52ce07d5fb44870c0853b4d8e5a758e",
      "tree": "57b8bef529101db2340303e0d6c5a842f2cd9aaf",
      "parents": [
        "9215ea4cd8bc5f9c9770c5c34a009dc7c6068f86"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 13 08:28:38 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 13 09:48:22 2011 -0700"
      },
      "message": "Don\u0027t post position updates too frequently\n\ni.e. don\u0027t hog my message queue.\n\nrelated-to-bug: 5284760\nChange-Id: I8e2d36a11dbee1567b18ed13dc5257a65c6eeda7\n"
    },
    {
      "commit": "9215ea4cd8bc5f9c9770c5c34a009dc7c6068f86",
      "tree": "ee1509ee703b1903d33e69fef639dfdf4a2779c9",
      "parents": [
        "c6c4572cd35f739bfac2aa439b3664032e03dcd8",
        "cc54fbaa69c0b69929467449d2c19192f15b5039"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Sep 12 14:21:42 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 12 14:21:42 2011 -0700"
      },
      "message": "Merge \"Turn an another assertion into a runtime error in ACodec\u0027s implementation\""
    },
    {
      "commit": "cc54fbaa69c0b69929467449d2c19192f15b5039",
      "tree": "d0f0aaade0935a827e7dca1ba5659afd64c68417",
      "parents": [
        "fb6f03425a791dcc4188462c860becf6ca6be4ea"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Sep 12 14:14:08 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Sep 12 14:14:08 2011 -0700"
      },
      "message": "Turn an another assertion into a runtime error in ACodec\u0027s implementation\n\nChange-Id: I6779b29f200b90d088273ab3204724ef3d8d59bd\nrelated-to-bug: 5284760\n"
    },
    {
      "commit": "c6c4572cd35f739bfac2aa439b3664032e03dcd8",
      "tree": "d9148324e4afde473c7986a14b8f8ef0ae1b4af4",
      "parents": [
        "fb6f03425a791dcc4188462c860becf6ca6be4ea"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Sep 12 13:49:00 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Sep 12 13:49:00 2011 -0700"
      },
      "message": "Increase the avi extractor\u0027s confidence slighly over mp3\u0027s\n\nSo that we don\u0027t accidentally identify a .avi file containing an mp3 track as\nan mp3 file.\n\nChange-Id: I73495b80cbb5bc1007bf810f2db453c9f175171b\nrelated-to-bug: 5288189\n"
    },
    {
      "commit": "fb6f03425a791dcc4188462c860becf6ca6be4ea",
      "tree": "e21afb360622f19748a874f609d8c09a3804d809",
      "parents": [
        "618b58c4237359328b06371d9d6e855d2e6ac42c"
      ],
      "author": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Wed Sep 07 23:55:27 2011 -0700"
      },
      "committer": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Fri Sep 09 15:36:42 2011 -0700"
      },
      "message": "Make MediaScanner skip certain directories\n\nThe list of directories to skip are configurable via setprop.\nThe main motivation is that some test data folder takes long time\nto scan, and media scanner may compete for CPU time against perf\ntests therefore skewing the results.\n\nBug: 5263115\nChange-Id: I568213e2a4babf6033021c1d336ef0347c0e3315\n"
    },
    {
      "commit": "618b58c4237359328b06371d9d6e855d2e6ac42c",
      "tree": "2f502d28789410d95d604eca7cfe987e5c83b7d3",
      "parents": [
        "98afd841e8f0803a00d1970e4a28ea8999e9c498",
        "8edb8e82fa886564ee8e72178a1969e2437dd525"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Sep 09 14:56:30 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 09 14:56:30 2011 -0700"
      },
      "message": "Merge \"Don\u0027t check mFilledBuffers whether it is empty or not when the port reconfiguration is not meant for buffer reallocation\""
    },
    {
      "commit": "8edb8e82fa886564ee8e72178a1969e2437dd525",
      "tree": "2b5c5bfbe6df89cf5200193992cf66cce868e5fc",
      "parents": [
        "d6e27296206b9f897401107f1c46f4ac2947be85"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Sep 09 13:19:59 2011 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Sep 09 13:27:27 2011 -0700"
      },
      "message": "Don\u0027t check mFilledBuffers whether it is empty or not when the port reconfiguration is not meant for buffer reallocation\n\nChange-Id: Iee9b18449bce9d7565ab5cc7f9e999484051196c\nrelated-to-bug: 5233843\n"
    },
    {
      "commit": "98afd841e8f0803a00d1970e4a28ea8999e9c498",
      "tree": "88529696fc561e932a7d109b9dda779903d873d9",
      "parents": [
        "7280088b2315b6c2eccd39f0f0363d498ec82f0d",
        "2267ba18d0d2b2d4bd7f5411821ad89ac2659a88"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 08 16:07:40 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 08 16:07:40 2011 -0700"
      },
      "message": "Merge \"AudioTrack: extend callback thread sleep time\""
    },
    {
      "commit": "7280088b2315b6c2eccd39f0f0363d498ec82f0d",
      "tree": "99130d99c527c29e2819002421f077f338cb3a7a",
      "parents": [
        "f7eade99250520f2c9c8366a20a9256c4b34abc1",
        "7dc9b309f1ce01308bcfde9948ebfece32dc2870"
      ],
      "author": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Thu Sep 08 15:33:31 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 08 15:33:31 2011 -0700"
      },
      "message": "Merge \"Always set geometry in queuebuffer\""
    },
    {
      "commit": "2267ba18d0d2b2d4bd7f5411821ad89ac2659a88",
      "tree": "3339791f7085faf94b891071826d8a1be5d1cb17",
      "parents": [
        "74a0a0d7f766d63330a00c3fa8f133c44c1d5be6"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Sep 07 11:13:23 2011 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 08 15:18:37 2011 -0700"
      },
      "message": "AudioTrack: extend callback thread sleep time\n\nDo not force wake up the AudioTrack thread every 10ms if no timed\nevents (loop, markers..) have to be processed.\nThis will help reduce power consumption.\n\nChange-Id: Icb425b13800690008dd07c27ffac84739e3dbba3\n"
    },
    {
      "commit": "7dc9b309f1ce01308bcfde9948ebfece32dc2870",
      "tree": "cab0dce5adff7873717bb50aa4efbd99ad1e4d31",
      "parents": [
        "74a0a0d7f766d63330a00c3fa8f133c44c1d5be6"
      ],
      "author": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Thu Sep 08 14:15:00 2011 -0700"
      },
      "committer": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Thu Sep 08 14:16:55 2011 -0700"
      },
      "message": "Always set geometry in queuebuffer\n\nThe queuebuffer could return early due to timestamp issues. Need to set\nthe geometry even in that case.\n\nChange-Id: I04d7cd1df3996d640c269285398c0042923ba920\n"
    },
    {
      "commit": "f7eade99250520f2c9c8366a20a9256c4b34abc1",
      "tree": "b60360cfaa7a504d564810dc0aedc96ee34f7066",
      "parents": [
        "41610c37763fcea076cce18de9f5b4c7d9c30ea6"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Sep 08 11:33:47 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Sep 08 11:33:47 2011 -0700"
      },
      "message": "Audio player must not be used as a timesource before it\u0027s started.\n\nOtherwise it\u0027ll trigger a division-by-zero exception since the audio sample rate\nis as yet unknown.\n\nChange-Id: I0793aa7c1c348ffa2611272bb646eff6ecf6ff53\nrelated-to-bug: 5242451\n"
    },
    {
      "commit": "41610c37763fcea076cce18de9f5b4c7d9c30ea6",
      "tree": "bcd154f48a74e0c21c46100e633203bc248cd24f",
      "parents": [
        "3991f099c643b718e78e0d938745ef2c5c431544",
        "8d65510a2e9ff7b64f2f35bfe3cd745a717c9533"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Sep 07 14:56:47 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 07 14:56:47 2011 -0700"
      },
      "message": "Merge \"Bug 5270905 fix MediaPlayer with IStreamSource\""
    },
    {
      "commit": "8d65510a2e9ff7b64f2f35bfe3cd745a717c9533",
      "tree": "f0c15ae37b71e36d332fc1666ff6d86f1b0aa0f3",
      "parents": [
        "d6e27296206b9f897401107f1c46f4ac2947be85"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Sep 07 14:40:23 2011 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Sep 07 14:42:37 2011 -0700"
      },
      "message": "Bug 5270905 fix MediaPlayer with IStreamSource\n\nChange-Id: Ia8a6381a6c88b4a0a1378aab03f5275f0fa1125a\n"
    },
    {
      "commit": "3991f099c643b718e78e0d938745ef2c5c431544",
      "tree": "2f3f4199ece39d20df417a83060a067701818303",
      "parents": [
        "74a0a0d7f766d63330a00c3fa8f133c44c1d5be6",
        "31292d99f62a812af691e67e8e732c6ae582ee08"
      ],
      "author": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Wed Sep 07 14:18:41 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 07 14:18:41 2011 -0700"
      },
      "message": "Merge \"Fixing bug in SurfaceMediaSource_test\""
    },
    {
      "commit": "74a0a0d7f766d63330a00c3fa8f133c44c1d5be6",
      "tree": "93fe5add97af3833cef442cf499c8eb3d501edf2",
      "parents": [
        "aa9dfd5d07534c29337b5c72022f7dfecd85deea"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Sep 07 11:05:43 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Sep 07 11:05:43 2011 -0700"
      },
      "message": "Apparently keyframe status in audio tracks of .webm/.mkv files is unreliable\n\nfortunately in all our supported audio encodings we can treat every frame as\na keyframe.\n\nChange-Id: I32f21d0077bbae7ef9efe725dd351baf531179e2\nrelated-to-bug: 5263837\n"
    },
    {
      "commit": "aa9dfd5d07534c29337b5c72022f7dfecd85deea",
      "tree": "be9c30397e3f4e7eaaadacc5d2af410ee58f48e9",
      "parents": [
        "d6e27296206b9f897401107f1c46f4ac2947be85",
        "e7484f36061a60aadadb01143d84964d931aa837"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Sep 07 09:05:04 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 07 09:05:04 2011 -0700"
      },
      "message": "Merge \"Stop metadata retriever from dereferencing a NULL pointer if\""
    },
    {
      "commit": "d6e27296206b9f897401107f1c46f4ac2947be85",
      "tree": "1c86967dc53b99661fdf4272d89f8ed681364dc2",
      "parents": [
        "a4f73a9e0e0863a567cc06defa0d9e0269388d4e"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Sep 06 19:18:43 2011 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Sep 06 19:18:43 2011 -0700"
      },
      "message": "Revert \"To make SniffMP3() more concrete so that we can remove false-positve responses from MPEG-PS streams.\"\n\nThis reverts commit 983ab88e117fcbda9370b8f4ba94271d37149672.\n\nrelated-to-bug: 5231309\n"
    },
    {
      "commit": "e7484f36061a60aadadb01143d84964d931aa837",
      "tree": "9b1fc82f1e573b3bc65a62b33a2dee31031034ba",
      "parents": [
        "2e3319a62be898e1f0405025d24962fc6a1a3f07"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 06 16:05:02 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 06 16:05:02 2011 -0700"
      },
      "message": "Stop metadata retriever from dereferencing a NULL pointer if\n\nthe media extractor failed to initialize (malformed or unsupported content)\n\nChange-Id: Icfad4e9eeb8d6713ad12eee7979ab30b696c06e0\nrelated-to-bug: 5263840\n"
    },
    {
      "commit": "a4f73a9e0e0863a567cc06defa0d9e0269388d4e",
      "tree": "464d68e33f1351796c60a2a0ff43ec696eb69e7b",
      "parents": [
        "2e3319a62be898e1f0405025d24962fc6a1a3f07",
        "408b8dc3c0a364c6f6b4991d15da9e6bcc2b8008"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 06 14:53:59 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 06 14:53:59 2011 -0700"
      },
      "message": "Merge \"Issue 5247986: Battery drain due to audio wakelock\""
    },
    {
      "commit": "408b8dc3c0a364c6f6b4991d15da9e6bcc2b8008",
      "tree": "f5f9885d8b86fc8073678962a8d38eec4ebef2a4",
      "parents": [
        "3a13fad63af40a8364fce796b1a54a8f0a2fbf32"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 06 12:36:15 2011 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 06 14:37:20 2011 -0700"
      },
      "message": "Issue 5247986: Battery drain due to audio wakelock\n\nThe problem occurs when activating or deactivating A2DP connection\nwhile SoudPool has a channel active. This can happen quite frequently now\nthat the UI sound effects are enabled by default.\nIf PCM data is remaining in the AudioTrack buffer when it is restroyed and\nre-created on the new AudioFlinger output thread, this data is flushed.\nAs a consequence, no underrun or request for new data callback is sent to\nSoundPool and the sound channel remains active for ever as the end of the\nsample is never detected.\n\nChange-Id: I13e0c11e4ce3f83bff7f58d347ca814b6a86712b\n"
    },
    {
      "commit": "2e3319a62be898e1f0405025d24962fc6a1a3f07",
      "tree": "160e7bf7076d06d64f9f00ada5ff1d2ce24234e3",
      "parents": [
        "adc857e80a1045897ebad85e691dc04451d364e3",
        "0662067b06658a4a56a8416c676f6cce8ccddb53"
      ],
      "author": {
        "name": "Dave Burke",
        "email": "daveburke@google.com",
        "time": "Tue Sep 06 13:06:20 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 06 13:06:20 2011 -0700"
      },
      "message": "Merge \"Handle setDataSource failures properly. #5261671\""
    },
    {
      "commit": "0662067b06658a4a56a8416c676f6cce8ccddb53",
      "tree": "5a1ed2dc243f4bd4727635a57153bfb0e65422ea",
      "parents": [
        "71b63e3ef687c379368be6b02e70bd2feb0b6b8d"
      ],
      "author": {
        "name": "Dave Burke",
        "email": "daveburke@google.com",
        "time": "Tue Sep 06 20:39:47 2011 +0100"
      },
      "committer": {
        "name": "Dave Burke",
        "email": "daveburke@google.com",
        "time": "Tue Sep 06 20:39:47 2011 +0100"
      },
      "message": "Handle setDataSource failures properly. #5261671\n\nChange-Id: Iea0aa474d1939db23da9aabdfae2081e834f30d9\n"
    },
    {
      "commit": "adc857e80a1045897ebad85e691dc04451d364e3",
      "tree": "a0fe509045d916e8c7dd853f63d3e8a72ade9f79",
      "parents": [
        "71b63e3ef687c379368be6b02e70bd2feb0b6b8d",
        "97857479de48fda4c33bb415b2fbb15193f768e8"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Sep 06 09:54:43 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 06 09:54:43 2011 -0700"
      },
      "message": "Merge \"Don\u0027t overwrite pending port setting change if there are more than one port setting change event.\""
    },
    {
      "commit": "31292d99f62a812af691e67e8e732c6ae582ee08",
      "tree": "908e6109ab6ae0b6d3bf79f6964aab1005b751d3",
      "parents": [
        "71b63e3ef687c379368be6b02e70bd2feb0b6b8d"
      ],
      "author": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Fri Sep 02 17:56:35 2011 -0700"
      },
      "committer": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Fri Sep 02 17:56:35 2011 -0700"
      },
      "message": "Fixing bug in SurfaceMediaSource_test\n\nThe test was making EGL calls once disconnected. Instead of calling\n\"disconnect\" directly on the Surface, and EGL calls should be made to that\neffect.\n\nChange-Id: I21468ac8cbc2cb3145a49269e32a884736cd452e\n"
    },
    {
      "commit": "71b63e3ef687c379368be6b02e70bd2feb0b6b8d",
      "tree": "999224e0be6a519fea200fb1f637d611e1e89d4c",
      "parents": [
        "3a13fad63af40a8364fce796b1a54a8f0a2fbf32"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 02 14:20:56 2011 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 02 15:59:50 2011 -0700"
      },
      "message": "Fix issue 5252593: any app can restart the runtime\n\nReplace null device address string by empty sting.\n\nChange-Id: I285c35f3345334e6d2190493b1a8a5aca1a361a4\n"
    },
    {
      "commit": "3a13fad63af40a8364fce796b1a54a8f0a2fbf32",
      "tree": "a99d1e91d87550a46a523acfc0734a72f56db917",
      "parents": [
        "d681bbb1767bed09415e050ba78975df214bcd68"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Sep 02 09:34:51 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Sep 02 09:34:51 2011 -0700"
      },
      "message": "Properly serialize access to FileSource::getSize by acquiring the mutex\n\nBoth ::getSize and ::read call into lseek64, if this happens simultaneously\nfrom multiple threads the results are undefined if not properly serialized.\n\nChange-Id: I737cafebd836f3d8eb702beac557b4731f69c6f6\nrelated-to-bug: 5196490\n"
    },
    {
      "commit": "d681bbb1767bed09415e050ba78975df214bcd68",
      "tree": "2030c617c61bbf7b6cd8c6bafab601a99b1ac83d",
      "parents": [
        "d942202ee0c92608c648735c3ad0f1bab4312420"
      ],
      "author": {
        "name": "Dave Burke",
        "email": "daveburke@google.com",
        "time": "Tue Aug 30 14:39:17 2011 +0100"
      },
      "committer": {
        "name": "Dave Burke",
        "email": "daveburke@google.com",
        "time": "Fri Sep 02 11:26:59 2011 +0100"
      },
      "message": "Require INTERNET permission for network-based content.\nBug #1870981\n\nChange-Id: Ia3ad166390c4d60cea19c3783895b078a2c4c15f\n"
    },
    {
      "commit": "97857479de48fda4c33bb415b2fbb15193f768e8",
      "tree": "c17c7c6fc443508a0a34db15e9ef566e02463a56",
      "parents": [
        "d942202ee0c92608c648735c3ad0f1bab4312420"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Sep 01 19:31:01 2011 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Sep 01 19:39:18 2011 -0700"
      },
      "message": "Don\u0027t overwrite pending port setting change if there are more than one port setting change event.\n\nChange-Id: I3413f5235b191031252aa3785f5aaef00caef1ce\nrelated-to-bug: 5122512\n"
    },
    {
      "commit": "d942202ee0c92608c648735c3ad0f1bab4312420",
      "tree": "9408506e1e119d84dec3661c0894fbcea3d2359e",
      "parents": [
        "5403129e2a2f44620f2ac8109889e5a61be08732",
        "02f6e988107bc13ebe4828b734ea0fc3d9d11ae0"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Sep 01 12:20:23 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 01 12:20:24 2011 -0700"
      },
      "message": "Merge \"Guard the audio notifications with a separate lock to avoid deadlocks during reset.\""
    },
    {
      "commit": "02f6e988107bc13ebe4828b734ea0fc3d9d11ae0",
      "tree": "33ae71e49d527dba2905559879002be3d48a580b",
      "parents": [
        "a8e409f8f9b40737d0b03355894b5e141d0aff6b"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Sep 01 11:39:11 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Sep 01 11:39:11 2011 -0700"
      },
      "message": "Guard the audio notifications with a separate lock to avoid deadlocks during reset.\n\nChange-Id: I9a97372e1f777d1cbd6774cac2ed34b4b8cd9392\nrelated-to-bug: 5179827\n"
    },
    {
      "commit": "5403129e2a2f44620f2ac8109889e5a61be08732",
      "tree": "7d4d6e9ccde89e3c3087d9a0d92ac8eea31024b9",
      "parents": [
        "a8e409f8f9b40737d0b03355894b5e141d0aff6b"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Sep 01 11:04:43 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Sep 01 11:04:43 2011 -0700"
      },
      "message": "Signal an error when encountering a malformed .ts stream.\n\nChange-Id: I3ab0215419214b652573945403eb45eb09d41aff\nrelated-to-bug: 5114811\n"
    },
    {
      "commit": "a8e409f8f9b40737d0b03355894b5e141d0aff6b",
      "tree": "8799a5eecc61038ccf054d905ca3f4492ae18f30",
      "parents": [
        "77d2e08add3ba24fdc527809408028efe3e06b6b"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Tue Aug 30 21:33:10 2011 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu Sep 01 13:37:14 2011 +0800"
      },
      "message": "Add video snapshot camera parameter.\n\nThe API is still hidden.\n\nbug:5187868\n\nChange-Id: I59e1b5774ca32be049723d1a0887faa90d8884bb\n"
    },
    {
      "commit": "77d2e08add3ba24fdc527809408028efe3e06b6b",
      "tree": "2d6f5f9ee01d04bce87cea84bf83e22da9d2c759",
      "parents": [
        "aec548b979f3d64712e8aa84cffdc4b7f094a798",
        "ed362eccc7eabc669f9f39169e26662a7215d198"
      ],
      "author": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Wed Aug 31 22:00:35 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 31 22:00:35 2011 -0700"
      },
      "message": "Merge \"Incr. MIN_UNDEQUEUED_BUFFERS in SurfaceMediaSource\""
    },
    {
      "commit": "ed362eccc7eabc669f9f39169e26662a7215d198",
      "tree": "c62947ab463db709bd3dde9c1fd3eb2f42cc13a1",
      "parents": [
        "d2824a9a392e02a09929a34f0a3dad41ac1faacf"
      ],
      "author": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Mon Aug 29 19:53:51 2011 -0700"
      },
      "committer": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Wed Aug 31 17:43:24 2011 -0700"
      },
      "message": "Incr. MIN_UNDEQUEUED_BUFFERS in SurfaceMediaSource\n\nThe buffers in SurfaceMediaSource were 4 earlier, whereas\nwe need 5 for one of the devices.\n\nChange-Id: I87bf5e28bbb0f7c9661dc01b040baa903d95d2c2\n"
    },
    {
      "commit": "aec548b979f3d64712e8aa84cffdc4b7f094a798",
      "tree": "db85875efd52fd8893b9a033b5bb529d79ccdeba",
      "parents": [
        "ef96bbce63da03bc0f0ad86174567cfdd5990c1b",
        "06528d7f18ad01377357d337eaa3e875a242bd2d"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 31 16:44:49 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 31 16:44:49 2011 -0700"
      },
      "message": "Merge \"I have one HLS stream that switches stream PIDs from one bandwidth to the next\""
    },
    {
      "commit": "ef96bbce63da03bc0f0ad86174567cfdd5990c1b",
      "tree": "a7998dbad6111fc7e4c2bf2ae6940f5df5ca3bf9",
      "parents": [
        "c6b551541a6abd68bc3f3add07c196be4badccf3",
        "18ac5407da14dad9731f40ffc9a56bee73830019"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 31 16:44:43 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 31 16:44:43 2011 -0700"
      },
      "message": "Merge \"Discontinuities are only signalled on streams that have been identified, i.e.\""
    },
    {
      "commit": "06528d7f18ad01377357d337eaa3e875a242bd2d",
      "tree": "c08f45ba206b07b864f7a153f65fc739ae51fe1c",
      "parents": [
        "18ac5407da14dad9731f40ffc9a56bee73830019"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 31 16:29:05 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 31 16:29:05 2011 -0700"
      },
      "message": "I have one HLS stream that switches stream PIDs from one bandwidth to the next\n\nthis change intends to support its very limited case and signals an error in\nall other cases of unexpected PID changes that we cannot recover from.\n\nChange-Id: Icbfdf9fe7461969e2a8781ed416f54d891dd789a\n"
    },
    {
      "commit": "18ac5407da14dad9731f40ffc9a56bee73830019",
      "tree": "f7574b9ebd7cd610f873d064a0dee23a32b16a4b",
      "parents": [
        "935456794a8d572368ebe942d13451f7d71a9f4e"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 31 15:04:25 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 31 15:35:49 2011 -0700"
      },
      "message": "Discontinuities are only signalled on streams that have been identified, i.e.\n\nthose that have a queue. This ensures that the player doesn\u0027t observe discontinuities\nthat don\u0027t match up across streams.\n\nAlso, make sure output buffers arriving from the decoder to be rendered are sent\nback to the decoder if we started flushing.\n\nFinally, don\u0027t parse TS packets for streams we don\u0027t support. And don\u0027t allocate\nmemory for them.\n\nChange-Id: I708e0de4cba8110a62e4c8ceb1e5702430d5d2bb\n"
    },
    {
      "commit": "c6b551541a6abd68bc3f3add07c196be4badccf3",
      "tree": "4ec2977ddb7f547186869772b2b882b96d2a1732",
      "parents": [
        "f11b37bc9c92380cafadad7c8988f170687b8dfe",
        "21fcf0830c8b4fb544a09467bc96a8d0463ad966"
      ],
      "author": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Wed Aug 31 15:09:26 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 31 15:09:26 2011 -0700"
      },
      "message": "Merge \"Update SurfaceMediaSource_test to not use pbuffer configs\""
    },
    {
      "commit": "f11b37bc9c92380cafadad7c8988f170687b8dfe",
      "tree": "f7a13b041ec50ecb7dfc50be4f850e6fb03660eb",
      "parents": [
        "af6764da53c022768290e735bbcc3088bec333d8",
        "e8eb2f4f0f8eff0313a27892ab8514223553d943"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Aug 31 14:17:18 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 31 14:17:18 2011 -0700"
      },
      "message": "Merge \"Fix a crash where the EOS was signalled but some output buffer were still pending.\""
    },
    {
      "commit": "af6764da53c022768290e735bbcc3088bec333d8",
      "tree": "9b98de8360b386d35e90f14fb256875aac963361",
      "parents": [
        "e31f4f78729f66b3a90f51671ad557b551ed0bea",
        "df4a59c61103e7e0e9332e167a0be67da5d82ff3"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Aug 31 13:41:06 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 31 13:41:06 2011 -0700"
      },
      "message": "Merge \"Fix SurfaceMediaSource timestamp handling.\""
    },
    {
      "commit": "e31f4f78729f66b3a90f51671ad557b551ed0bea",
      "tree": "349610917fc80daee815b848e58a0ae5cf3fefae",
      "parents": [
        "935456794a8d572368ebe942d13451f7d71a9f4e",
        "5b75fdc8fbc026453888cbb2d3fe31345394618b"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Wed Aug 31 10:37:48 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 31 10:37:48 2011 -0700"
      },
      "message": "Merge \"Stop the AudioSource in reset() of AwesomePlayer if AudioSource is not NULL and AudioPlayer was not started. Fix for 5236419.\""
    },
    {
      "commit": "5b75fdc8fbc026453888cbb2d3fe31345394618b",
      "tree": "64023538fcbc1dcee5a89bbdf70db6d63c600d7b",
      "parents": [
        "b76e90de3c64626fe07a68469d0a59a31c8efb6b"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Wed Aug 31 10:24:18 2011 -0700"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Wed Aug 31 10:24:18 2011 -0700"
      },
      "message": "Stop the AudioSource in reset() of AwesomePlayer if AudioSource is not NULL\nand AudioPlayer was not started.\nFix for 5236419.\n\nChange-Id: I5eadd069118c3533a19b5d6f6dca2ce16d8505fb\n"
    },
    {
      "commit": "935456794a8d572368ebe942d13451f7d71a9f4e",
      "tree": "28f8cdfb4d2a1be1086d9b13adc4970128625ede",
      "parents": [
        "c3d8f74cda26197ec9066374fe31abe9ee77c1b1",
        "c4c17d47b674b425fb6c399822c0ab3258543c0a"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 31 09:44:57 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 31 09:44:57 2011 -0700"
      },
      "message": "Merge \"ATSParser now supports a mode in which PTS is considered to be absolute time\""
    },
    {
      "commit": "21fcf0830c8b4fb544a09467bc96a8d0463ad966",
      "tree": "5ebd613fe21d3b020126fe248f699f05fef2b362",
      "parents": [
        "790332a3170f967d58cee5d89cc92be8205d9aa3"
      ],
      "author": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Tue Aug 30 19:10:54 2011 -0700"
      },
      "committer": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Tue Aug 30 22:36:41 2011 -0700"
      },
      "message": "Update SurfaceMediaSource_test to not use pbuffer configs\n\nSurfaceMediaSource_test now does not use pbuffer configs\nto create a surface. Always uses a window config.\nAlso, cleaned up the test a bit.\n\nChange-Id: Idda40dcb8474249eccaa8d2dad20ee840d2dd484\n"
    },
    {
      "commit": "c3d8f74cda26197ec9066374fe31abe9ee77c1b1",
      "tree": "3ae10f50402ac74a72001880131a7a0e40b66905",
      "parents": [
        "b76e90de3c64626fe07a68469d0a59a31c8efb6b",
        "8343f2c317b48f9b9827781b16a5c9fd31743826"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 30 19:24:04 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 30 19:24:04 2011 -0700"
      },
      "message": "Merge \"fix Surface positions are not floats\""
    },
    {
      "commit": "8343f2c317b48f9b9827781b16a5c9fd31743826",
      "tree": "dcc878af2cf5c119c029b6f51b6c68fa431e3b85",
      "parents": [
        "63970b42f101c87db7cfd26d43b0d300260b1582"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 30 18:51:54 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 30 18:51:54 2011 -0700"
      },
      "message": "fix Surface positions are not floats\n\nAdded Surface.setPosition(float, float) which allows to set a surface\u0027s\nposition in float.\n\nBug: 5239859\nChange-Id: I903aef4ad5b5999142202fb8ea30fe216d805711\n"
    },
    {
      "commit": "e8eb2f4f0f8eff0313a27892ab8514223553d943",
      "tree": "e876f82be05fd6d783301ca9a31f2157c6a79127",
      "parents": [
        "13e6dfbd77a6e2c2832cbfe6dc66f3db8716538b"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Aug 30 17:06:10 2011 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Aug 30 17:06:10 2011 -0700"
      },
      "message": "Fix a crash where the EOS was signalled but some output buffer were still pending.\n\nChange-Id: Ide111264501441b51bb10629ae2021accf9e1fb5\nrelated-to-bug: 5234126\n"
    },
    {
      "commit": "c4c17d47b674b425fb6c399822c0ab3258543c0a",
      "tree": "7e41c2ed3db28d1c61ddd28175b19c2d954f3549",
      "parents": [
        "13e6dfbd77a6e2c2832cbfe6dc66f3db8716538b"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Aug 30 16:06:28 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Aug 30 16:06:28 2011 -0700"
      },
      "message": "ATSParser now supports a mode in which PTS is considered to be absolute time\n\ni.e. PTS 0 \u003c\u003d\u003e media time 0\n\nChange-Id: If10a0f98c129b95e8430dc419664b1def92e547e\n"
    },
    {
      "commit": "b76e90de3c64626fe07a68469d0a59a31c8efb6b",
      "tree": "b8ced112fa7e83a34898679552a26744610ce0e1",
      "parents": [
        "1619f3d3428e9d502dc477d31e0681fe1cd12b89",
        "9f6530f53ae9eda43f4e7c1cb30d2379db00aa00"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Aug 30 10:51:54 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 30 10:51:54 2011 -0700"
      },
      "message": "Merge \"226483: A2DP connected, but music out to speaker\""
    },
    {
      "commit": "df4a59c61103e7e0e9332e167a0be67da5d82ff3",
      "tree": "2f87a701a3c76fc553c4383d1c913ba867d0bcfa",
      "parents": [
        "1b5a697dc5435c76447eb5a2de373f5acdda119e"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Mon Aug 29 18:16:03 2011 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Aug 30 10:49:15 2011 -0700"
      },
      "message": "Fix SurfaceMediaSource timestamp handling.\n\nWas not basing timestamps on startTimeUs.\nNow synchronizes properly with audio.\n\nBug: 4510826\nChange-Id: I613db0aa91e51fc75d120e65540e742d8ab2ae43\n"
    },
    {
      "commit": "9f6530f53ae9eda43f4e7c1cb30d2379db00aa00",
      "tree": "663430f29fec8c038ad2770e2640c9480c0e2251",
      "parents": [
        "d2824a9a392e02a09929a34f0a3dad41ac1faacf"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Aug 30 10:18:54 2011 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Aug 30 10:19:38 2011 -0700"
      },
      "message": "226483: A2DP connected, but music out to speaker\n\nWhen the A2DP headset is connected, there is a possible\nrace condition when the audio tracks are moved from\nthe mixer thread attached to the speaker output to the thread\nattached to A2DP output.\nAs the request to clear the stream type to output mapping cache in\nthe client process is asynchronous, it is possible that the flag\nindicating to the client audio track to re-create the IAudioTrack\non the new thread is processed before the cache is invalidated.\nIn this case, the track will be attached to the old thread and\nmusic will continue playing over the device speaker instead of being\nredirected to A2DP headset.\n\nChange-Id: Ib2ce1eb5320eaff83287b93779061bf4e7a330df\n"
    },
    {
      "commit": "1619f3d3428e9d502dc477d31e0681fe1cd12b89",
      "tree": "61b0a9c48624ecad9b03a2512ac484f1c660a8d8",
      "parents": [
        "13e6dfbd77a6e2c2832cbfe6dc66f3db8716538b",
        "bf4c48bc678c8f531f39f0b48755967d844ad581"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Aug 30 09:06:36 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 30 09:06:36 2011 -0700"
      },
      "message": "Merge \"Bug 5156756 Fix AAC ADTS header size computation\""
    },
    {
      "commit": "bf4c48bc678c8f531f39f0b48755967d844ad581",
      "tree": "8b48c85ea1bb59a7c6833135f77d723330e150da",
      "parents": [
        "1b5a697dc5435c76447eb5a2de373f5acdda119e"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Aug 29 14:06:51 2011 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Aug 29 18:56:55 2011 -0700"
      },
      "message": "Bug 5156756 Fix AAC ADTS header size computation\n\nThis previous frame size computation code had two incorrect\n assumptions:\n 1/ the ADTS frame length value already contains the header size\n 2/ the ADTS header is not of fixed size: it is 2 bytes bigger\n  if it contains the CRC value.\nFor 1/, the code worked because when the header size was added\n to the frame size, the + operator is of stronger precedence\n than the ? operator, so the size added was always 0 (instead\n of ADTS_HEADER_LENGTH.\nFor 2/, the code worked as long as there was no CRC in the ADTS\n data.\n\nThe fix consists in:\n - documenting what the frame length computation code returns\n - fixing the frame length computation\n - when computing the frame length, also returning the header\n  size so the correct data can be sent to the decoder.\n\nChange-Id: I92df72a9e531f594f762e63d62f9dee7b0109904\n"
    },
    {
      "commit": "13e6dfbd77a6e2c2832cbfe6dc66f3db8716538b",
      "tree": "00737e1c8fe6e23c35e00879b0455beb84b38976",
      "parents": [
        "63970b42f101c87db7cfd26d43b0d300260b1582",
        "bee5337da7659b3b7128622ba1f42618b11df5be"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Aug 29 15:12:41 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 29 15:12:41 2011 -0700"
      },
      "message": "Merge \"Audioflinger: reverse logic of BT NREC indication\""
    }
  ],
  "next": "bee5337da7659b3b7128622ba1f42618b11df5be"
}
