)]}'
{
  "log": [
    {
      "commit": "022ad466c95001eaf043b1f0aff89cde92e3387f",
      "tree": "2044ceb42fee7a6c299b6c559bed0e48069bcd91",
      "parents": [
        "1c02bfb63ea6e1d1630a09229044d64be200a9ef",
        "d899d73308f987c932a4366977e67a3d8aa8bc8b"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Nov 05 13:55:19 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Nov 05 13:55:19 2009 -0800"
      },
      "message": "am 818a9cf8: Merge change Ia4eedace into eclair\n\nMerge commit \u0027818a9cf827f282addbf7c8ee23534e08a3aaa358\u0027 into eclair-mr2\n\n* commit \u0027818a9cf827f282addbf7c8ee23534e08a3aaa358\u0027:\n  Now that UseBuffer on this component is fixed, let\u0027s use it.\n"
    },
    {
      "commit": "d899d73308f987c932a4366977e67a3d8aa8bc8b",
      "tree": "934d5bff7af0343f39eb0858e92ee054bac4685b",
      "parents": [
        "dee7f8349ad8e93c5b16c24bed49fa9192790e0f"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Nov 05 09:56:03 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Nov 05 09:56:03 2009 -0800"
      },
      "message": "Now that UseBuffer on this component is fixed, let\u0027s use it.\n"
    },
    {
      "commit": "1c02bfb63ea6e1d1630a09229044d64be200a9ef",
      "tree": "20d55a7e13a544f2187a44a2b9364cb75200be22",
      "parents": [
        "308d4aea9ccb62d3d9e3010a73b16435e554d5f2",
        "dee7f8349ad8e93c5b16c24bed49fa9192790e0f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 05 00:01:33 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Nov 05 00:01:33 2009 -0800"
      },
      "message": "am 67b69292: Merge change I93f500a5 into eclair\n\nMerge commit \u002767b692920c18f99b096dce285adc6f7439fa866c\u0027 into eclair-mr2\n\n* commit \u002767b692920c18f99b096dce285adc6f7439fa866c\u0027:\n  Fix issue 2203561: Sholes: audio playing out of earpiece.\n"
    },
    {
      "commit": "34f1d8ecd23169a5f299937e3aaf1bd7937578a0",
      "tree": "04f5504f74df6dde00b495a95bf30766be12821a",
      "parents": [
        "c6c6237a67661c7b2d8822b7360cdf01e64d2c7c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Nov 04 08:27:26 2009 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Nov 04 23:47:21 2009 -0800"
      },
      "message": "Fix issue 2203561: Sholes: audio playing out of earpiece.\n\nCreate a new IAudioTrack interface to AudioFlinger when start() fails due to a broken pipe error.\nDo the same if start fails due to the same error after time out in obtainBuffer().\nDo not indicate that the AudioTrack is started to AudioPolicyManager if IAudioTrack start fails.\nThis avoids that an AudioTrack keeps a dead IAudioTrack after a media server crash.\n\nSame modifications for AudioRecord.\n\nAdd a flag to ToneGenerator indicating that the callback thread can call Java. Without it, when the media server crashes and restarts, the AudioSystem error callback will crash in JNI if the IAudiotrack is created from AudioTrack callback thread.\n"
    },
    {
      "commit": "2c814adaf6340ee3cf2b942f1dff0f2ea6904c81",
      "tree": "7bc09ea2a47006e8938c4561c8324610dc960dab",
      "parents": [
        "01b8bbb3a841729052860d8ca734e0e0e90bb40a",
        "0dba73763a04d39faf999dcc5ef12af3c99535a7"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 04 13:33:27 2009 -0500"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 04 13:33:27 2009 -0500"
      },
      "message": "Merge change I6bce6d87 into eclair-mr2\n\n* changes:\n  Adds a WAVExtractor for 16-bit signed PCM audio wave files.\n"
    },
    {
      "commit": "01b8bbb3a841729052860d8ca734e0e0e90bb40a",
      "tree": "f76cc8592558afc48372c2b38eedf6561a4659dc",
      "parents": [
        "08994dc192d79a5b60b6741db330bd383096be34",
        "1f9ad1d704a17533989a9274c55bd5bb9d3abcc0"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 04 13:33:13 2009 -0500"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 04 13:33:13 2009 -0500"
      },
      "message": "Merge change I313953dc into eclair-mr2\n\n* changes:\n  Support raw audio sources in MediaPlayerImpl.\n"
    },
    {
      "commit": "af2abc8634dcae706c0fae02b1381fe70e678f35",
      "tree": "5cd2c4f47f16aa64fcdff68233addf9b71443daf",
      "parents": [
        "202ff50113b293a80c8df60022e2c4ad8a829fbe",
        "c0bbcf32ac6ffa76409232d7156250e1092bfa24"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 04 13:32:46 2009 -0500"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 04 13:32:46 2009 -0500"
      },
      "message": "Merge change I5126e183 into eclair-mr2\n\n* changes:\n  Fix MP3Extractor duration overflows...\n"
    },
    {
      "commit": "0dba73763a04d39faf999dcc5ef12af3c99535a7",
      "tree": "c1fb2463a412cbdd7cdef1e303728d2ba80860d9",
      "parents": [
        "1f9ad1d704a17533989a9274c55bd5bb9d3abcc0"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 03 16:00:58 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 03 16:00:58 2009 -0800"
      },
      "message": "Adds a WAVExtractor for 16-bit signed PCM audio wave files.\n"
    },
    {
      "commit": "1f9ad1d704a17533989a9274c55bd5bb9d3abcc0",
      "tree": "3ea176b69776c84e0c6250bdeeaf33bb9f91a801",
      "parents": [
        "125ef261deb4efbb50cc41c60902dea48d8d4187"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 03 16:00:22 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 03 16:00:22 2009 -0800"
      },
      "message": "Support raw audio sources in MediaPlayerImpl.\n"
    },
    {
      "commit": "c0bbcf32ac6ffa76409232d7156250e1092bfa24",
      "tree": "b5c4f07b87f7a0ac01fe511eb1889d5e3a0c0bac",
      "parents": [
        "672635d84f2d897b5e782448356bba18b5f2dc7c"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 03 15:58:35 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 03 15:58:35 2009 -0800"
      },
      "message": "Fix MP3Extractor duration overflows...\n"
    },
    {
      "commit": "202ff50113b293a80c8df60022e2c4ad8a829fbe",
      "tree": "8bb439769e4ccf325b8db9f5d98ead07621fc4ff",
      "parents": [
        "672635d84f2d897b5e782448356bba18b5f2dc7c",
        "c6c6237a67661c7b2d8822b7360cdf01e64d2c7c"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 03 11:59:59 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Nov 03 11:59:59 2009 -0800"
      },
      "message": "am 338ccf43: Merge change Id2906ad8 into eclair\n\nMerge commit \u0027338ccf43b6a4468aea6aa7d831be7d6c8d8d134d\u0027 into eclair-mr2\n\n* commit \u0027338ccf43b6a4468aea6aa7d831be7d6c8d8d134d\u0027:\n  Fix video flickering by propagating the NO_CACHING flag from the master to MemoryHeapPMem.\n"
    },
    {
      "commit": "c6c6237a67661c7b2d8822b7360cdf01e64d2c7c",
      "tree": "4ec57b98b97b984ade8d6cc2e859b199d4cf5e2e",
      "parents": [
        "967441ef270cf9dda4c859770764dcb2146f2435"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 03 10:26:34 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 03 10:28:48 2009 -0800"
      },
      "message": "Fix video flickering by propagating the NO_CACHING flag from the master to MemoryHeapPMem.\n"
    },
    {
      "commit": "076667f9624516f9c65d5d4d7571ef5522237229",
      "tree": "430f9f5f3b7c20427f6c4a9274323035ddc330bf",
      "parents": [
        "5dce5d8609857f803cb0eec7e2b1b55c158ce525",
        "7ddc40044ac664245e1535b20426900733163724"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Nov 02 14:41:28 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 02 14:41:28 2009 -0800"
      },
      "message": "am 1d9246e8: Merge change Id095e180 into eclair\n\nMerge commit \u00271d9246e8bb8de624e14c55dce57e93da18cfd7a8\u0027 into eclair-mr2\n\n* commit \u00271d9246e8bb8de624e14c55dce57e93da18cfd7a8\u0027:\n  Make sure the visualization stops immediately when sound stops, instead of continuing for a fraction of a second.\n"
    },
    {
      "commit": "6741eb86bf54bee6a0875e4f7a825d5d0de5c23a",
      "tree": "9c9cbddcdfb186db54760ecba9ba8899a159503a",
      "parents": [
        "dac6a31a33ba53fb93850670cdddd1e6515dadce"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Nov 02 13:52:11 2009 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Nov 02 13:55:04 2009 -0800"
      },
      "message": "Make sure the visualization stops immediately when sound stops, instead of continuing for a fraction of a second.\n"
    },
    {
      "commit": "8d8380ccea24aed511f96ecb9282b0d2c3331d10",
      "tree": "4515926967faaee0ef6d8db4e6b09915d19ed933",
      "parents": [
        "df6b61291f6f89d827851d5ed727b09d19a5c7db",
        "dac6a31a33ba53fb93850670cdddd1e6515dadce"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Thu Oct 29 19:35:16 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 29 19:35:16 2009 -0700"
      },
      "message": "am 3a814141: Merge change Iee0486e2 into eclair\n\nMerge commit \u00273a8141416a0b1d517d4729eba4bcf914c468e20b\u0027 into eclair-mr2\n\n* commit \u00273a8141416a0b1d517d4729eba4bcf914c468e20b\u0027:\n  Dump media recorder PID in dumpsys media.player, and fix minor bugs.\n"
    },
    {
      "commit": "dac6a31a33ba53fb93850670cdddd1e6515dadce",
      "tree": "ae36b4b259a20b94898c86f612832fee85b1d853",
      "parents": [
        "f9ae38fa6eafa700b6642ea045c8749df5364cd6"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Thu Oct 29 15:46:37 2009 -0700"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Thu Oct 29 15:46:37 2009 -0700"
      },
      "message": "Dump media recorder PID in dumpsys media.player, and fix minor bugs.\n"
    },
    {
      "commit": "df6b61291f6f89d827851d5ed727b09d19a5c7db",
      "tree": "9f8de91747d54f044006813e651b73c98a82fd92",
      "parents": [
        "b439827ca7e2a991055260982952b8fd8bc84fee",
        "888f72a4628eed3c136ff2e346a15d129da0d520"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 29 16:20:43 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 29 16:20:43 2009 -0400"
      },
      "message": "Merge change Ib482ce88 into eclair-mr2\n\n* changes:\n  Revive support for video encoding in OMXCodec.\n"
    },
    {
      "commit": "888f72a4628eed3c136ff2e346a15d129da0d520",
      "tree": "49d476fe15b42d96bf6befb5ad241964ef0efd66",
      "parents": [
        "4ee1540a3949693693688c2004a56cb42de55160"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Oct 29 12:02:48 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Oct 29 12:02:48 2009 -0700"
      },
      "message": "Revive support for video encoding in OMXCodec.\n"
    },
    {
      "commit": "b439827ca7e2a991055260982952b8fd8bc84fee",
      "tree": "7e6478afc771e14f5bda0c974b15521d831d8a4b",
      "parents": [
        "4ee1540a3949693693688c2004a56cb42de55160",
        "23e246f7c2a53426b97296ec7780e8dfe80147d4"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 29 11:09:53 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 29 11:09:53 2009 -0400"
      },
      "message": "Merge change Ic5e3d73f into eclair-mr2\n\n* changes:\n  LOG_ASSERT needs a message.\n"
    },
    {
      "commit": "23e246f7c2a53426b97296ec7780e8dfe80147d4",
      "tree": "d0a5dd5e45d6d5ad14fb1e5d4ed00263d0b2fd1d",
      "parents": [
        "1eea7f529c1c25901a7749fed4792ed68379d841"
      ],
      "author": {
        "name": "Patrick Scott",
        "email": "phanna@android.com",
        "time": "Thu Oct 29 08:31:36 2009 -0400"
      },
      "committer": {
        "name": "Patrick Scott",
        "email": "phanna@android.com",
        "time": "Thu Oct 29 08:31:36 2009 -0400"
      },
      "message": "LOG_ASSERT needs a message.\n\nThis fails to build when asserts are turned on.\n"
    },
    {
      "commit": "4ee1540a3949693693688c2004a56cb42de55160",
      "tree": "496ec30e396a38df4790b0c243982da36cc109a8",
      "parents": [
        "548403bfc52434b875d620a05cc88985e5cc879c",
        "f9ae38fa6eafa700b6642ea045c8749df5364cd6"
      ],
      "author": {
        "name": "Dave Sparks",
        "email": "davidsparks@android.com",
        "time": "Wed Oct 28 11:38:08 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 28 11:38:08 2009 -0700"
      },
      "message": "am e8543418: Merge change I7c0d20a7 into eclair\n\nMerge commit \u0027e8543418783f8f8f9a6bafdaa1dd6289661eac85\u0027 into eclair-mr2\n\n* commit \u0027e8543418783f8f8f9a6bafdaa1dd6289661eac85\u0027:\n  Run the metadataretriever at background priority. Bug 2187133.\n"
    },
    {
      "commit": "548403bfc52434b875d620a05cc88985e5cc879c",
      "tree": "46c51c47f7a66d7bf26c01982df3e48719ce575e",
      "parents": [
        "636df899721d7da23fc792f20df29937e628ab2f",
        "17d58a83356ba568861b3aa391c5df915d33c0f1"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Oct 28 11:37:16 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 28 11:37:16 2009 -0700"
      },
      "message": "am 54620b1a: Merge change I6e50a8c6 into eclair\n\nMerge commit \u002754620b1a77e51b3fa531dbd099bd69c39d7d0029\u0027 into eclair-mr2\n\n* commit \u002754620b1a77e51b3fa531dbd099bd69c39d7d0029\u0027:\n  Revert \"Now that the underlying bug is fixed we can continue using OMX_UseBuffer for this decoder\u0027s input buffers.\"\n"
    },
    {
      "commit": "636df899721d7da23fc792f20df29937e628ab2f",
      "tree": "dac95b12590f7def3e0fb9e0ecaa2feab2c2f8e8",
      "parents": [
        "1eea7f529c1c25901a7749fed4792ed68379d841",
        "be5c74f5da6a93b0d23f96e11848acfcc3b4d1d9"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 28 13:25:09 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 28 13:25:09 2009 -0400"
      },
      "message": "Merge change I155e2ad0 into eclair-mr2\n\n* changes:\n  Re-enable CameraSource.\n"
    },
    {
      "commit": "be5c74f5da6a93b0d23f96e11848acfcc3b4d1d9",
      "tree": "1de11554d9fa859de0ee4df0dc80d94dbd332a22",
      "parents": [
        "34769bc913e9f6bb138e666d94a9d685bf3da217"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Oct 13 17:08:31 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Oct 28 10:15:07 2009 -0700"
      },
      "message": "Re-enable CameraSource.\n"
    },
    {
      "commit": "1eea7f529c1c25901a7749fed4792ed68379d841",
      "tree": "e010c6f1f8924f81a91408139a32aff4ff41c970",
      "parents": [
        "d6703ab22c85b43fdb2deb78a37e51465c902a5f"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Oct 27 15:50:04 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Oct 27 15:50:04 2009 -0700"
      },
      "message": "Use a simple replacement for String8 that allocates its storage beforehand to avoid reentering the heap while we\u0027re examining it (leak checker).\n"
    },
    {
      "commit": "f9ae38fa6eafa700b6642ea045c8749df5364cd6",
      "tree": "df06dc8fc03f84eac72ba46fdf6a7c8444996823",
      "parents": [
        "17d58a83356ba568861b3aa391c5df915d33c0f1",
        "41fbe930c0c128bcded1348e60d7d9e8f79d8a77"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 26 21:00:46 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 26 21:00:46 2009 -0400"
      },
      "message": "Merge change I7c0d20a7 into eclair\n\n* changes:\n  Run the metadataretriever at background priority. Bug 2187133.\n"
    },
    {
      "commit": "41fbe930c0c128bcded1348e60d7d9e8f79d8a77",
      "tree": "eaeff7d7642de923d7b61f0edc0bc2591d4746c0",
      "parents": [
        "88e5ad9f0d9b35d4868347bce47b28b7358b32e4"
      ],
      "author": {
        "name": "Dave Sparks",
        "email": "davidsparks@android.com",
        "time": "Mon Oct 26 16:28:26 2009 -0700"
      },
      "committer": {
        "name": "Dave Sparks",
        "email": "davidsparks@android.com",
        "time": "Mon Oct 26 16:28:26 2009 -0700"
      },
      "message": "Run the metadataretriever at background priority. Bug 2187133.\n\nThis change forces metadata retreiver threads to background priority.\nUses an inner class to encapsulate the priority change so that it\nautomatically restores priority when returning to the client.\n"
    },
    {
      "commit": "d6703ab22c85b43fdb2deb78a37e51465c902a5f",
      "tree": "758e461c2351430bd5aae21781b707ece78fa7f4",
      "parents": [
        "fe44b7a8b2b8da50a7a78f4b7e034b6d01785e44"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Oct 26 16:11:54 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Oct 26 16:11:54 2009 -0700"
      },
      "message": "When freeing an OMX node, attempt to transition it from its current state all the way to \"Loaded\" in order to properly free any allocated buffers.\n"
    },
    {
      "commit": "17d58a83356ba568861b3aa391c5df915d33c0f1",
      "tree": "87d85eadb793c328084b440811dba46a05a4b561",
      "parents": [
        "88e5ad9f0d9b35d4868347bce47b28b7358b32e4"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Oct 26 11:11:02 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Oct 26 11:11:02 2009 -0700"
      },
      "message": "Revert \"Now that the underlying bug is fixed we can continue using OMX_UseBuffer for this decoder\u0027s input buffers.\"\n\nThis reverts commit 7a03b074a554ba3fd08dbc20cfd4b2f37c5f3aaa.\n"
    },
    {
      "commit": "fe44b7a8b2b8da50a7a78f4b7e034b6d01785e44",
      "tree": "75b34f839652f8a98f241e9dea64139d6cc6b347",
      "parents": [
        "34769bc913e9f6bb138e666d94a9d685bf3da217",
        "88e5ad9f0d9b35d4868347bce47b28b7358b32e4"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Oct 24 01:38:58 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Oct 24 01:38:58 2009 -0700"
      },
      "message": "am bf96aaad: Merge change Icf10db28 into eclair\n\nMerge commit \u0027bf96aaadd46fb5b0884070177faa16ec4f22e2ba\u0027 into eclair-mr2\n\n* commit \u0027bf96aaadd46fb5b0884070177faa16ec4f22e2ba\u0027:\n  Fix issue 2192181: AudioFlinger must provide separated methods to set VOICE_CALL stream volume and down link audio volume.\n"
    },
    {
      "commit": "88e5ad9f0d9b35d4868347bce47b28b7358b32e4",
      "tree": "ed98cd518a493ead689846309cbd513447aed7a7",
      "parents": [
        "a9a4390989072d579eedab6b71fb41248b3ad8fe",
        "f0ee6f4055e26fb35d9c526a596668a4dc9da5ba"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Oct 24 04:32:28 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Oct 24 04:32:28 2009 -0400"
      },
      "message": "Merge change Icf10db28 into eclair\n\n* changes:\n  Fix issue 2192181: AudioFlinger must provide separated methods to set VOICE_CALL stream volume and down link audio volume.\n"
    },
    {
      "commit": "34769bc913e9f6bb138e666d94a9d685bf3da217",
      "tree": "04de6901ea0132276789b671db83c2cccbee68c0",
      "parents": [
        "66326a5ee0869f1ee4d136a477e6effba428b3cb"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 23 10:22:30 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 23 10:35:08 2009 -0700"
      },
      "message": "New API to instantiate a MediaExtractor given a URI and optional MIME type.\n\nAlso DataSources now must provide a method initCheck()\nand DataSource::reat_at has been renamed to readAt to conform to\nstandard API naming guidelines.\n"
    },
    {
      "commit": "66326a5ee0869f1ee4d136a477e6effba428b3cb",
      "tree": "43af246f917acf425d889109d3aec8daec34ac75",
      "parents": [
        "47bed1a7755ed58fa5d4c0d35b20468deb83bd60"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 23 09:55:10 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 23 09:55:10 2009 -0700"
      },
      "message": "Moving the individual extractor headers files to the private include directory.\n"
    },
    {
      "commit": "47bed1a7755ed58fa5d4c0d35b20468deb83bd60",
      "tree": "54f34c32742f0f78054c484c2abda633c7f4369b",
      "parents": [
        "48ac1615d669b7ba3b212d174441b31755d02ef1"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Oct 22 09:44:00 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 23 08:48:12 2009 -0700"
      },
      "message": "Make stagefright a little less verbose. Fix heap corruption for real.\n"
    },
    {
      "commit": "48ac1615d669b7ba3b212d174441b31755d02ef1",
      "tree": "23f41ed7999bce6b6fd92a24e0c1ce210bee381b",
      "parents": [
        "7b70cfc35c8555eda186fd0b792f013a4b082cff",
        "ba229b3faa98b3bb6567cf95040062be2d9c2b3f"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 23 11:42:41 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 23 11:42:41 2009 -0400"
      },
      "message": "Merge change Ie13526ad into eclair-mr2\n\n* changes:\n  Prefer software decoders over hardware for thumbnail extraction.\n"
    },
    {
      "commit": "ba229b3faa98b3bb6567cf95040062be2d9c2b3f",
      "tree": "2f13ee20c074336addf9df049da764ecb2eb77df",
      "parents": [
        "7e04dcf8d6784dd56f53aa90bf34431ab4f0710c"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Oct 22 10:43:34 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 23 08:39:00 2009 -0700"
      },
      "message": "Prefer software decoders over hardware for thumbnail extraction.\n\nWhile our hardware decoders clearly outperform the software decoders in terms\nof raw throughput, their startup latency makes them less suitable for thumbnail\nextraction.\n"
    },
    {
      "commit": "7b70cfc35c8555eda186fd0b792f013a4b082cff",
      "tree": "48adef9d53131aaf3f5a0f96adb7311d5a3e144a",
      "parents": [
        "09d88b00dbd0a04ed45a661590cca49d6e5b42f5",
        "2d6d6e9a3d569eda4555c4eb68cec452be958bb1"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 23 11:34:38 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 23 11:34:38 2009 -0400"
      },
      "message": "Merge change Icb64cd2c into eclair-mr2\n\n* changes:\n  Still don\u0027t know why the heap gets corrupted, but not deleting the OMXNodeInstance appears to prevent this from happening.\n"
    },
    {
      "commit": "09d88b00dbd0a04ed45a661590cca49d6e5b42f5",
      "tree": "b6763fbbc76acd37f65138dae533724d3a45ddbc",
      "parents": [
        "7e04dcf8d6784dd56f53aa90bf34431ab4f0710c",
        "a9a4390989072d579eedab6b71fb41248b3ad8fe"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Oct 23 08:27:11 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 23 08:27:11 2009 -0700"
      },
      "message": "am dd28d563: Fix 2209967 Tonegenerator: mutex not release in startTone() upon timeout waiting for the stop sequence to complete.\n\nMerge commit \u0027dd28d56368441537ec5eb42150516416fdbf10ad\u0027 into eclair-mr2\n\n* commit \u0027dd28d56368441537ec5eb42150516416fdbf10ad\u0027:\n  Fix 2209967 Tonegenerator: mutex not release in startTone() upon timeout waiting for the stop sequence to complete.\n"
    },
    {
      "commit": "a9a4390989072d579eedab6b71fb41248b3ad8fe",
      "tree": "f6f0292d92860316a9d2233070871f62e470bd4c",
      "parents": [
        "4926a47afc079c8d9259f18a26accbfba2f976eb"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Oct 23 04:46:30 2009 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Oct 23 06:54:33 2009 -0700"
      },
      "message": "Fix 2209967 Tonegenerator: mutex not release in startTone() upon timeout waiting for the stop sequence to complete.\n\nUnlock mLock mutex when exiting upon wait stop timeout condition.\nIncrease timeout delays to avoid timing out when A2DP exits standby.\n"
    },
    {
      "commit": "7e04dcf8d6784dd56f53aa90bf34431ab4f0710c",
      "tree": "62d858199d99be0c19887e2eca64495218067c01",
      "parents": [
        "521bad496a8b80008abe573a6712a8051c9eb322"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Oct 22 13:49:30 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Oct 22 14:22:57 2009 -0700"
      },
      "message": "Extract video thumbnails from the largest sync sample among the first 20.\n\nAlso fixes OMXCodec seek behaviour on the very first call to OMXCodec::read()\n"
    },
    {
      "commit": "521bad496a8b80008abe573a6712a8051c9eb322",
      "tree": "e049b15ebf4f01c5f376febdb6bc1d3d75929ae1",
      "parents": [
        "97055951de932589b99bedb0506a3d6eca728523",
        "4926a47afc079c8d9259f18a26accbfba2f976eb"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Oct 22 10:46:50 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 22 10:46:50 2009 -0700"
      },
      "message": "am b0e6a9a0: Merge change I7a03b074 into eclair\n\nMerge commit \u0027b0e6a9a0e6e82327f52fd25f3a9e2463ff591905\u0027 into eclair-mr2\n\n* commit \u0027b0e6a9a0e6e82327f52fd25f3a9e2463ff591905\u0027:\n  Now that the underlying bug is fixed we can continue using OMX_UseBuffer for this decoder\u0027s input buffers.\n"
    },
    {
      "commit": "2d6d6e9a3d569eda4555c4eb68cec452be958bb1",
      "tree": "5877a5a930884daf265b53d98041f3f527a2b734",
      "parents": [
        "97055951de932589b99bedb0506a3d6eca728523"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Oct 22 08:42:19 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Oct 22 08:45:28 2009 -0700"
      },
      "message": "Still don\u0027t know why the heap gets corrupted, but not deleting the OMXNodeInstance appears to prevent this from happening.\n"
    },
    {
      "commit": "4926a47afc079c8d9259f18a26accbfba2f976eb",
      "tree": "cf5df5deb1245ddabdb487e4f23327d56ad4f7fb",
      "parents": [
        "66d1e82ce5d5e189442285b6225977137b65c608"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Oct 21 15:06:21 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Oct 21 15:06:21 2009 -0700"
      },
      "message": "Now that the underlying bug is fixed we can continue using OMX_UseBuffer for this decoder\u0027s input buffers.\n"
    },
    {
      "commit": "c6323f9d72e0f08dd1e813550a56c8d2f0fd76a2",
      "tree": "e655f9a2780ffab04697fb98b3d4d1fbb2477896",
      "parents": [
        "12658b720b176b7d934444256d07ba3c595d9b44"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Oct 21 14:01:30 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Oct 21 14:01:30 2009 -0700"
      },
      "message": "Some cleanup of OMXCodec code, make sure to ignore 0-length output buffers in the metadata retriever.\n"
    },
    {
      "commit": "f0ee6f4055e26fb35d9c526a596668a4dc9da5ba",
      "tree": "9eaa1f520448a3c83ec724cc4d02e9d4838c203f",
      "parents": [
        "66d1e82ce5d5e189442285b6225977137b65c608"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Oct 21 08:14:22 2009 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Oct 21 12:29:37 2009 -0700"
      },
      "message": "Fix issue 2192181: AudioFlinger must provide separated methods to set VOICE_CALL stream volume and down link audio volume.\n\nAdded setVoiceVolume() method to AudioSystem, AudioFlinger, IAudioFlinger, AudioPolicyService.\nRemoved call to AudioHardwareInterface::setVoiceVolume() from AudioFlinger::setStreamVolume().\n"
    },
    {
      "commit": "66d1e82ce5d5e189442285b6225977137b65c608",
      "tree": "95ea71b61f77cef54e37cfaab9ee7329ca9da803",
      "parents": [
        "a3b28504ad5e5d1a6265d385031f2aaba01cec76"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Oct 20 10:43:48 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Oct 20 11:49:01 2009 -0700"
      },
      "message": "do not merge: The qcom video decoders always output yuv data after adjusting dimensions to be a multiple of 16.\n\nAdd a quirk mode to OMXCodec that makes it aware of this fact for proper display. Also integrate back a change from eclair-mr2 that delays releasing an output buffer briefly after posting it to surface flinger, as we don\u0027t know how long it\u0027ll take it to actually display the buffer\u0027s content.\n"
    },
    {
      "commit": "12658b720b176b7d934444256d07ba3c595d9b44",
      "tree": "5f2678fa7f7dbc0fbba96872c212896d1f1dfc1e",
      "parents": [
        "a58568bc37ea3964ba116925fcc5fa52dfe6fa49"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Oct 19 13:06:40 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Oct 19 13:06:40 2009 -0700"
      },
      "message": "Avoid signaling a format change to the client if its insubstantial.\n\nFor example, the original port settings change may just indicate a change\nin the number of buffers to allocate, which won\u0027t be visible to the client\nin any case.\n"
    },
    {
      "commit": "a58568bc37ea3964ba116925fcc5fa52dfe6fa49",
      "tree": "3a4fdf9810e34a5b31e0ab240f7ff8714cad2193",
      "parents": [
        "b90ca5b1beb9c73e09f46773172c08fad12d6a95"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Oct 19 10:15:44 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Oct 19 10:15:44 2009 -0700"
      },
      "message": "Fixing the build by renaming private \"string.h\" header file.\n"
    },
    {
      "commit": "318ad9c1d9d6515026dfc2c021359d27decaa7a1",
      "tree": "28a58c4e3f20528b01c2abd08ba5f62d8755650c",
      "parents": [
        "89e69da4d86348409994c9dafbbb2634ccd7c196"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Oct 15 13:46:54 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 16 11:22:43 2009 -0700"
      },
      "message": "Reimplement the OMX backend for stagefright.\n\nBesides a major cleanup and refactoring, OMX is now a singleton living in the media server, it listens for death notifications of node observers/clients that allocated OMX nodes and performs/attempts cleanup.\n\nChanged APIs to conform to the rest of the system.\n"
    },
    {
      "commit": "89e69da4d86348409994c9dafbbb2634ccd7c196",
      "tree": "6ff666e2d0dde0d1327db900c67ac46c05a4ae06",
      "parents": [
        "549aa3741725ea2fd75c5fb717ff5a9316a5a55d"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Oct 13 10:22:55 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Oct 13 10:22:55 2009 -0700"
      },
      "message": "Separated private from public header files.\n"
    },
    {
      "commit": "549aa3741725ea2fd75c5fb717ff5a9316a5a55d",
      "tree": "4e59a21e633217dce4bbaa4abaa7123630f7d082",
      "parents": [
        "7f281f87670c63775ea1ae8b24af31822d5ad416"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Oct 13 10:06:37 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Oct 13 10:06:37 2009 -0700"
      },
      "message": "Fix various compiler warnings accumulated over time.\n"
    },
    {
      "commit": "7f281f87670c63775ea1ae8b24af31822d5ad416",
      "tree": "c04964f9bc176627df0eec3688b00bc17479bc06",
      "parents": [
        "0bf3921522461b1c7d321d0c667c1020ab3110bc"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 09 14:11:28 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Oct 13 09:46:46 2009 -0700"
      },
      "message": "OMXCodec now notifies the reader of changes in the output format by returning a special result/error code.\n"
    },
    {
      "commit": "0bf3921522461b1c7d321d0c667c1020ab3110bc",
      "tree": "fff4e450f8842c033b2f002d990acd0129b876ad",
      "parents": [
        "48c948b1137e7bbdb161b51908657ab72ac5e2da"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Oct 12 15:48:51 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Oct 12 16:04:30 2009 -0700"
      },
      "message": "Proper chunk size computation for Layer II/III V2 and V2.5, skip optional ID3 tag.\n\nrelated-to-bug: 1986192\n"
    },
    {
      "commit": "48c948b1137e7bbdb161b51908657ab72ac5e2da",
      "tree": "93382f5cf363010d79ea26d9e44e6470821f1658",
      "parents": [
        "d3eaeefb1bac68bc1fee91b794be2c2c3bea6d94"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Oct 08 10:07:49 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Oct 12 16:00:07 2009 -0700"
      },
      "message": "Change to a int64_t usecs representation for timestamps and duration throughout stagefright.\n"
    },
    {
      "commit": "2a4a7d5af053a17586a262a1267ba993e31790f1",
      "tree": "ba10badd8bcd457023752508bb3b16f61dfdfa22",
      "parents": [
        "36efa039efaae4526791336cb688032d22b34bec"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Oct 06 16:20:44 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Oct 08 15:06:09 2009 -0700"
      },
      "message": "Split the ColorConverter off SoftwareRenderer, metadata support in stagefright.\n"
    },
    {
      "commit": "36efa039efaae4526791336cb688032d22b34bec",
      "tree": "8bb2b193530f7c606475e2863be843eb8cce58e6",
      "parents": [
        "479ededc5b55e63ea9b425cbe465c93bb8b8b3dc"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Oct 08 11:02:27 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Oct 08 14:21:58 2009 -0700"
      },
      "message": "Some decoders will return an error on OMX_EmptyThisBuffer to indicate that they don\u0027t support the media format, deal with this.\n"
    },
    {
      "commit": "479ededc5b55e63ea9b425cbe465c93bb8b8b3dc",
      "tree": "e45fadce01eb4e74f188e0f76204bfddfd8e9b9a",
      "parents": [
        "9749025189acc6c737be22007e90ed8bbbcdbc21",
        "fcf6723f0974854a04bd0d9e676b5ed2a147ce09"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 08 17:19:10 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 08 17:19:10 2009 -0400"
      },
      "message": "Merge change I729c3938 into eclair-mr2\n\n* changes:\n  Insert a small delay after submitting to surface flinger and before returning the buffer to the decoder.\n"
    },
    {
      "commit": "9749025189acc6c737be22007e90ed8bbbcdbc21",
      "tree": "dc77ce5b47554c00ff4c6727487e711225321852",
      "parents": [
        "733c0882e993a5c3124e50345c79a310c817c1c3"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Oct 08 09:12:11 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Oct 08 09:12:11 2009 -0700"
      },
      "message": "The vendor is about to check in a fix for this issue, the workaround is no longer needed\n"
    },
    {
      "commit": "fcf6723f0974854a04bd0d9e676b5ed2a147ce09",
      "tree": "8fc46d53244055ec48d75fdc12cd35740ced58b4",
      "parents": [
        "ec430b158df17b2c766f7750a96c35d3902f5f49"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Oct 08 08:41:11 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Oct 08 08:41:11 2009 -0700"
      },
      "message": "Insert a small delay after submitting to surface flinger and before returning the buffer to the decoder.\n\nSince we cannot tell how long it\u0027ll take until surface flinger\nhas displayed the data onscreen, we\u0027ll just have to guess...\nWe must not return the buffer to the decoder before it\u0027s been displayed.\n"
    },
    {
      "commit": "ec430b158df17b2c766f7750a96c35d3902f5f49",
      "tree": "6dab1104548754cd6d021d2ce37f0b90a0a58034",
      "parents": [
        "23e1ce72323c87cacd3443b7d0deeda3a82f9dba"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Oct 07 13:36:52 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Oct 07 13:53:24 2009 -0700"
      },
      "message": "Workaround for avc decoder misreporting output buffer size requirements if the content is not a multiple-16 width/height.\n"
    },
    {
      "commit": "e33e00e931d1381d402484aa5cde67e540e3c82c",
      "tree": "406a97eb4bfe9bfb0d472cd4b7758d4518f8daee",
      "parents": [
        "5bffa09d4483ac31de42077d05d24ba26fab928d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Oct 05 20:29:18 2009 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Oct 06 18:59:35 2009 -0700"
      },
      "message": "Fix issue 2139634: DTMF tones on Sholes popping, hissing (audio latency too high).\n\nThis change is a complement to the main fix in kernel driver for the same issue (partner change #1250).\nIt removes clicks sometimes heard after the end of the tones while audio flinger is sending 0s to the audio output stream.\nThe problem was that the sleep time between two writes was more than the duration of one audio output stream buffer which could cause some underrun.\n\nAlso fixed a recent regression in ToneGenerator that made that the end of previous tone was repeated at the beginning of current one under certain timing circumstances when the maximum tone duration was specified.\n"
    },
    {
      "commit": "10dbb8e97e7a81ca4867663b5517f048820b3094",
      "tree": "8a85a3f2c3547afc82a7ab1f92bed562ab980102",
      "parents": [
        "defd1bd08aaf7edc1918108419cf3f9d185c22f9"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Sun Sep 20 10:42:13 2009 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Oct 06 08:51:16 2009 -0700"
      },
      "message": "Music visualizer support hack.\nThis currently assumes 44k stereo (won\u0027t crash on other formats, but won\u0027t give the correct results either), and links statically with libspeex to get FFT data, increasing the size of libmedia by about 45kb.\n"
    },
    {
      "commit": "fdf23c711d5d6094c95b43cdc9356a25d67f10c8",
      "tree": "d21580027dec4558dc1068e339dcc2cd458a8342",
      "parents": [
        "a569aebd284506058a34d9772ebb28c8dac09aa3"
      ],
      "author": {
        "name": "Jianhong Jiang",
        "email": "jianhong@google.com",
        "time": "Tue Sep 29 23:12:39 2009 -0700"
      },
      "committer": {
        "name": "Jianhong Jiang",
        "email": "jianhong@google.com",
        "time": "Tue Sep 29 23:12:39 2009 -0700"
      },
      "message": "Remove audio latency fudge factor 96 msec.\n"
    },
    {
      "commit": "a569aebd284506058a34d9772ebb28c8dac09aa3",
      "tree": "9d30a75250c6def34a24c31bf77ff65f7f22e850",
      "parents": [
        "824b6a4a67166c3937400702944f659bd0d5d386"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Sep 29 10:45:27 2009 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Sep 29 12:43:12 2009 -0700"
      },
      "message": "Fix some metadata retriever issues:\n1. mRetriever was initialized twice: one in the constructor and the other in the setDataSource\n2. cached the mode so that setMode can still be called before setDataSource.\n   mRetriever won\u0027t be initialized until data source is set; thus we have to do this\n"
    },
    {
      "commit": "824b6a4a67166c3937400702944f659bd0d5d386",
      "tree": "6191f9487ca60d2bf8dbaa16dd8889dd0f594376",
      "parents": [
        "cdc9847ba4caa93817a8edf3014919d4480298ad"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 24 07:03:14 2009 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 24 23:49:40 2009 -0700"
      },
      "message": "Fix issue 2142613: ToneGenerator: short tones sometimes don\u0027t play on sholes or over A2DP.\n\nWhen the AudioTrack callback notification size is relatively high (Which is the case on Sholes and over A2DP), it is likely that the end of tone is reached during the first callback. In this case, the AudioTrack is stopped before exiting the callback which causes 2 problems:\n- 1: If the AudioFlinger thread is scheduled before we exit the ToneGenerator callback, the track can be stopped and reset before the data is actually marked as present in the buffer by the AudioTrack callback \u003d\u003e no audio will be processed by AudioFlinger.\n- 2: In this case, the data write index in the AudioTrack buffer is incremented after the track was reset by the AudioFlinger which leaves unplayed data in the buffer. This data will be played the next time the AudioTrack is started if not flushed in between.\n\nThe fix consists in adding an intermediate state to ToneGenerator state machine so that we exit the callback function when the stop condition is reached and stop the AudioTrack the next time we execute the callback.\n"
    },
    {
      "commit": "5228dd1b7468bfc86a807a299f515d33048f96ac",
      "tree": "f99062b9e6f0200a7e88a4a95f688018655455c3",
      "parents": [
        "56a9496a8f4adf3bf27448e1f41757af513c2a40"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Sep 17 11:16:52 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Sep 17 11:16:52 2009 -0700"
      },
      "message": "Another stagefright test-case and ignore end-of-stream notifications while we\u0027re flushing.\n"
    },
    {
      "commit": "56a9496a8f4adf3bf27448e1f41757af513c2a40",
      "tree": "dd39402cae8b33a9f11c070ca3d7c95c85ba2c54",
      "parents": [
        "269091da58951736dc2f4c8b74886b6a9aa12be1",
        "4265a834394bfe14a008a2ac58fbbe388566ad07"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 16 13:01:57 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 16 13:01:57 2009 -0400"
      },
      "message": "Merge change 25158 into eclair\n\n* changes:\n  Another software color conversion implementation, this time OMX_QCOM_COLOR_FormatYVU420SemiPlanar \u003d\u003e rgb565.\n"
    },
    {
      "commit": "4265a834394bfe14a008a2ac58fbbe388566ad07",
      "tree": "9b67b7b56d75ad4e967e8435ff69e4ee48e05862",
      "parents": [
        "430209e4d4d767e96d1e59a705d1b8b6624cb1e8"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 15 16:19:08 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 15 16:19:08 2009 -0700"
      },
      "message": "Another software color conversion implementation, this time OMX_QCOM_COLOR_FormatYVU420SemiPlanar \u003d\u003e rgb565.\n"
    },
    {
      "commit": "269091da58951736dc2f4c8b74886b6a9aa12be1",
      "tree": "e7103299292b98c051b68d8f19fd6be861de55d2",
      "parents": [
        "430209e4d4d767e96d1e59a705d1b8b6624cb1e8"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 15 15:50:31 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 15 15:50:31 2009 -0700"
      },
      "message": "The 8k chipset qcom decoders require that the input buffers be allocated using OMX_AllocateBuffer rather than OMX_UseBuffer for now.\n\nIf they aren\u0027t, a later call to OMX_FreeBuffer crashes...\n"
    },
    {
      "commit": "430209e4d4d767e96d1e59a705d1b8b6624cb1e8",
      "tree": "fc25f89f15c14fcb163dce3e6d003847b7942aac",
      "parents": [
        "1b84df1a0823fbcb9cec754311f53eaccfe85ae3",
        "10f75b8c71beb7f327e50bbac8e528af4e40fa24"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 15 17:48:33 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 15 17:48:33 2009 -0400"
      },
      "message": "Merge change 25128 into eclair\n\n* changes:\n  Support CbYCrY -\u003e RGB565 color conversion in IOMXRenderer.\n"
    },
    {
      "commit": "10f75b8c71beb7f327e50bbac8e528af4e40fa24",
      "tree": "3a598fc384752eee9c7d3f3ff1f35642b74dd09f",
      "parents": [
        "85cca02ebdc636e9b3ed5894503671fd043bf2a7"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 15 14:32:59 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 15 14:32:59 2009 -0700"
      },
      "message": "Support CbYCrY -\u003e RGB565 color conversion in IOMXRenderer.\n"
    },
    {
      "commit": "1b84df1a0823fbcb9cec754311f53eaccfe85ae3",
      "tree": "d6f4de4d8cb283ed7dbb0a8b0f5f9c4626a24fc6",
      "parents": [
        "85cca02ebdc636e9b3ed5894503671fd043bf2a7"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 15 12:49:11 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 15 12:49:11 2009 -0700"
      },
      "message": "Added an API IOMX::createRendererFromJavaSurface.\n\nThis api allows to instantiate a renderer by specifying the hosting java Surface object. This hides the implementation details of (java-)Surface, (native-)Surface and friends.\n"
    },
    {
      "commit": "95301196d59fb88ef96342fd307a2be374b5079b",
      "tree": "6c2cefc7b7e75253eec64b36e9eedf4a711096a7",
      "parents": [
        "803d1ab94a74d6205e749909633cec56c742ca44"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Sep 14 15:24:14 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Sep 14 15:24:14 2009 -0700"
      },
      "message": "Added a little more logging in OMXCodec.cpp for vendors to be able to reproduce issues...\n"
    },
    {
      "commit": "803d1ab94a74d6205e749909633cec56c742ca44",
      "tree": "f1200d641154e6732b8d0299f0a7b89c5a3baa72",
      "parents": [
        "a72e166d734648f7fb27bf4e820e045b0da9f7a5",
        "df4de7d7bd0060a84b064ce074d3f86d3a7aa0ae"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 14 13:08:02 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 14 13:08:02 2009 -0400"
      },
      "message": "Merge change 24742 into eclair\n\n* changes:\n  Apparently I must not use OMX_UseBuffer on either input or output ports on any of the TI components... or else.\n"
    },
    {
      "commit": "a72e166d734648f7fb27bf4e820e045b0da9f7a5",
      "tree": "a19a7046fe6643053af80c562c8fe1e5c6b157a2",
      "parents": [
        "8f0e4aace6c0643f7c4005184c7df2c73368f0dc",
        "5841db78dff14898538200287d246577b1fc37e2"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 14 02:43:52 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 14 02:43:52 2009 -0400"
      },
      "message": "Merge change 24337 into eclair\n\n* changes:\n  Fix issue 2107584: media server crash when AudioFlinger fails to allocate memory for track control block.\n"
    },
    {
      "commit": "df4de7d7bd0060a84b064ce074d3f86d3a7aa0ae",
      "tree": "20dacca53bcfba3ce8c46c72d8a67e2b78b6dccc",
      "parents": [
        "8f0e4aace6c0643f7c4005184c7df2c73368f0dc"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Sep 11 12:58:53 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Sep 11 12:58:53 2009 -0700"
      },
      "message": "Apparently I must not use OMX_UseBuffer on either input or output ports on any of the TI components... or else.\n"
    },
    {
      "commit": "8f0e4aace6c0643f7c4005184c7df2c73368f0dc",
      "tree": "fb0065cc26fe6f3b6dfc2104985684e8e9077966",
      "parents": [
        "777893a928680f09e306b4b9efc1d5cf4479a9da"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Sep 11 09:54:52 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Sep 11 09:54:52 2009 -0700"
      },
      "message": "Only build the \"full\" stagefright (including MediaExtractors and MediaPlayer) if BUILD_WITH_FULL_STAGEFRIGHT define is set (to true).\n"
    },
    {
      "commit": "777893a928680f09e306b4b9efc1d5cf4479a9da",
      "tree": "0a84c104682b3b4c5c61c45615a595c6d79f8120",
      "parents": [
        "11c043f1f7e2f9c55ad8dec851f7ad3c303d83d1"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Sep 11 07:47:55 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Sep 11 07:49:50 2009 -0700"
      },
      "message": "Move JPEGSource.{cpp,h} into libstagefright.\n"
    },
    {
      "commit": "18291bc20e55e8f3fd5feb786771a8ed32c19c59",
      "tree": "5651fb76f7bc732cb4a9ddfff919c73c2f8189c7",
      "parents": [
        "8cd11d23197209e2c2bdb7980bc17e3f1257a118"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Sep 10 14:13:30 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Sep 10 14:43:36 2009 -0700"
      },
      "message": "Media MIME types now have corresponding constants in MediaDefs.h, new codec enumeration API.\n"
    },
    {
      "commit": "8cd11d23197209e2c2bdb7980bc17e3f1257a118",
      "tree": "1c196af7bd5f1c0dbb402f22cab56d6a03314379",
      "parents": [
        "44d4b64990c34fb69ee012fdec1b0ef1bd3edde8"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Sep 10 09:57:53 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Sep 10 10:27:14 2009 -0700"
      },
      "message": "Add component name to informational logging in OMXCodec.cpp\n"
    },
    {
      "commit": "44d4b64990c34fb69ee012fdec1b0ef1bd3edde8",
      "tree": "62d9d2577cf16a02085a90f8665b1584f9580638",
      "parents": [
        "51ae4a9426fbc0f512facb180439affdb9859645",
        "25b130939339d57789a86fac837a2a8cedbcb7d8"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 10 12:39:26 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 10 12:39:26 2009 -0400"
      },
      "message": "Merge change 24450 into eclair\n\n* changes:\n  Minor API change in MPEG4Writer, support for amr output into MPEG4 containers.\n"
    },
    {
      "commit": "51ae4a9426fbc0f512facb180439affdb9859645",
      "tree": "fa2c0b80b1994810f35b57c83fdede745a638795",
      "parents": [
        "2f7daa1d7e01bfc2cd7546edeeaea0c3c2ee728c",
        "371e243b6638e74e577d56a24eee7d5a97e36d2b"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 10 12:39:16 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 10 12:39:16 2009 -0400"
      },
      "message": "Merge change 24448 into eclair\n\n* changes:\n  Support for amr-wb tracks in MPEG4Extractor.\n"
    },
    {
      "commit": "25b130939339d57789a86fac837a2a8cedbcb7d8",
      "tree": "2ac26d2178ce9934860886fe5a6c55549914e08b",
      "parents": [
        "195ea1e0d4484f1deb2309e239f6a5cc9a7e5ba7"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Sep 09 16:36:12 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Sep 09 16:36:12 2009 -0700"
      },
      "message": "Minor API change in MPEG4Writer, support for amr output into MPEG4 containers.\n"
    },
    {
      "commit": "371e243b6638e74e577d56a24eee7d5a97e36d2b",
      "tree": "34f628153868fa2a397509e6ae2bdaeb501361fb",
      "parents": [
        "195ea1e0d4484f1deb2309e239f6a5cc9a7e5ba7"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Sep 09 16:32:59 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Sep 09 16:33:53 2009 -0700"
      },
      "message": "Support for amr-wb tracks in MPEG4Extractor.\n"
    },
    {
      "commit": "2f7daa1d7e01bfc2cd7546edeeaea0c3c2ee728c",
      "tree": "6c33b46c0a555a66f561187a14e16fb63fbcdf3e",
      "parents": [
        "195ea1e0d4484f1deb2309e239f6a5cc9a7e5ba7"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Sep 09 16:29:47 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Sep 09 16:29:47 2009 -0700"
      },
      "message": "Added some more verbose output for AMR formats. Properly fill out the output format.\n"
    },
    {
      "commit": "195ea1e0d4484f1deb2309e239f6a5cc9a7e5ba7",
      "tree": "12b2a48c1a60551b69fdb39558829e0dbc21d8f4",
      "parents": [
        "f75978f63a25e79c683e96611f95cb5cd49efd3d"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 08 14:01:44 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Sep 09 11:24:33 2009 -0700"
      },
      "message": "Calculate proper output buffer size for some more 16-bit RGB color spaces.\n"
    },
    {
      "commit": "f75978f63a25e79c683e96611f95cb5cd49efd3d",
      "tree": "dd74697325270da0b961fb6dadc2ecb2b95be9a4",
      "parents": [
        "03480f8ae9df41902b6523493fe19a2a513b8d98"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 08 16:07:15 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Sep 09 11:05:42 2009 -0700"
      },
      "message": "Added a .amr file extractor (for AMR-NB and AMR-WB content).\n"
    },
    {
      "commit": "03480f8ae9df41902b6523493fe19a2a513b8d98",
      "tree": "f58654967a25e9716f500dcbc7dd3ed82e229e5d",
      "parents": [
        "85fa14d35468acca07ce0085d67b909f673fae07",
        "456db75516efc889e1ee4e5e16021e77c03b0941"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 09 13:55:48 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 09 13:55:48 2009 -0400"
      },
      "message": "Merge change 24179 into eclair\n\n* changes:\n  Support encoding amr-wb content in stagefright.\n"
    },
    {
      "commit": "5841db78dff14898538200287d246577b1fc37e2",
      "tree": "3d3cd806d443584a23a4ac3b3731ca3ba761c58e",
      "parents": [
        "85fa14d35468acca07ce0085d67b909f673fae07"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Sep 09 05:16:08 2009 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Sep 09 05:16:08 2009 -0700"
      },
      "message": "Fix issue 2107584: media server crash when AudioFlinger fails to allocate memory for track control block.\n\nAudioFlinger: verify that mCblk is not null before using it in Track and RecordTrack contructors.\nIAudioFlinger: check result of remote transaction before reading IAudioTrack and IAudioRecord.\nIAudioTrack and IAudioRecord: check result of remote transaction before reading IMemory.\n"
    },
    {
      "commit": "85fa14d35468acca07ce0085d67b909f673fae07",
      "tree": "05de2f3b72a4b488d187c518f2183f0c7986eb1c",
      "parents": [
        "ee7347162e02fb1e44526aa0aae9906485ce3950"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Sep 07 08:38:38 2009 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 08 22:56:07 2009 -0700"
      },
      "message": "Fix issue 1992233: DTMF tones on Sholes is really long.\n\nAdd a parameter to ToneGenerator.startTone() allowing the caller to specify the tone duration. This is used by the phone application to have a precise control on the DTMF tone duration which was not possible with the use of delayed messaged.\nAlso modified AudioFlinger output threads so that 0s are written to the audio output stream when no more tracks are ready to mix instead of just sleeping. This avoids an issue where the end of a previous DTMF tone could stay in audio hardware buffers and be played just before the beginning of the next DTMF tone.\n"
    },
    {
      "commit": "8723e5ab1fbe66df796c4f4e303ce29f6ad26f7f",
      "tree": "60f0816b91a1e0175d8597b8badd32261432dd61",
      "parents": [
        "148c1a2a96774517407717b61e5bc9cb08be8806",
        "b7802d9ee9c9dbb471ae4f010bd67ba1aaa9f264"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 08 13:07:45 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 08 13:07:45 2009 -0700"
      },
      "message": "Merge change 24178 into eclair\n\n* changes:\n  The qcom decoder requires that the output buffers be allocated by the component for hardware accelerated display to work.\n"
    },
    {
      "commit": "456db75516efc889e1ee4e5e16021e77c03b0941",
      "tree": "b8f60c27fc81543563104a9cc2ed9edd8e7a5883",
      "parents": [
        "b7802d9ee9c9dbb471ae4f010bd67ba1aaa9f264"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 08 10:19:21 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 08 12:55:50 2009 -0700"
      },
      "message": "Support encoding amr-wb content in stagefright.\n"
    },
    {
      "commit": "b7802d9ee9c9dbb471ae4f010bd67ba1aaa9f264",
      "tree": "2501613362262d99f236919e13bca079d4870f7e",
      "parents": [
        "e07db23c4935e47ecedfec7537ba95163e5836e5"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Sep 04 07:48:51 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 08 11:38:14 2009 -0700"
      },
      "message": "The qcom decoder requires that the output buffers be allocated by the component for hardware accelerated display to work.\n"
    },
    {
      "commit": "148c1a2a96774517407717b61e5bc9cb08be8806",
      "tree": "c6c4a5aff75009eddb3f89dfe7ba5f4ed9f75d40",
      "parents": [
        "e07db23c4935e47ecedfec7537ba95163e5836e5"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Sun Sep 06 14:29:45 2009 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Sep 08 11:04:53 2009 -0700"
      },
      "message": "Add basic metadata retrieval support for midi, ogg, etc.\nBug 2050320\n"
    },
    {
      "commit": "7a6b9e2eca7d20457ace3538c689640e5bfda4f3",
      "tree": "4c41291356bdcf67ae8dad8083f81ac4071cc13f",
      "parents": [
        "e5adbeee3401915ff8e1a983396ce3554436b11c"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Sep 02 16:05:36 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Sep 02 16:05:36 2009 -0700"
      },
      "message": "Setting the component role appears to be mandatory now for all mime types.\n\nAlso using CODEC_LOGV instead of vanilla LOGV to include the component name the message related to.\n"
    },
    {
      "commit": "e5adbeee3401915ff8e1a983396ce3554436b11c",
      "tree": "b87c6bf50a10502ce2aa5878b9ebb9ffd73edd1f",
      "parents": [
        "bc327427531dddd3de2e55c093641207c013f0dd"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Sep 02 14:01:43 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Sep 02 14:01:43 2009 -0700"
      },
      "message": "Some work to make audio encoding work.\n"
    },
    {
      "commit": "bc327427531dddd3de2e55c093641207c013f0dd",
      "tree": "d23a381b180386f66b12667784c3056cf3732f70",
      "parents": [
        "37940eefcba982836b579fe1ffec6cada72b0974",
        "104b12d973d365d2ab66b77f638a117bf4496af8"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 02 10:05:45 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 02 10:05:45 2009 -0700"
      },
      "message": "Merge change 23632 into eclair\n\n* changes:\n  Increase buffer allocated to receive HTTP response, YouTube is rather verbose...\n"
    },
    {
      "commit": "104b12d973d365d2ab66b77f638a117bf4496af8",
      "tree": "6b088d5b25baf2ea4e0d157feea71d94f7560912",
      "parents": [
        "53f2b2ae6417e8a32961e05cf21920c540d8b823"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Sep 02 09:24:09 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Sep 02 09:24:09 2009 -0700"
      },
      "message": "Increase buffer allocated to receive HTTP response, YouTube is rather verbose...\n\nYes, I know, fixed buffers are bad.\n"
    },
    {
      "commit": "37940eefcba982836b579fe1ffec6cada72b0974",
      "tree": "0465b025e8098bdd221260a74c285338d3bbac2f",
      "parents": [
        "53f2b2ae6417e8a32961e05cf21920c540d8b823"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 01 16:02:43 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 01 16:02:43 2009 -0700"
      },
      "message": "Squashed commit of the following:\n\ncommit c45bfbb97ccd05982008df47181f9c73abaf0497\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Sep 1 15:58:12 2009 -0700\n\n    This quirk should not be enabled by default in order to make the bug reproducible by the vendor.\n\ncommit 21d72e80e795fcae53d9c3bcc8ba6312b081e420\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Sep 1 15:55:45 2009 -0700\n\n    Undoing the hack to temporarily give up the lock to facilitate reading from the buffer source.\n\n    This simply causes too many issues, there need to be independent threads providing input buffers and dequeuing output buffers.\n\ncommit 84d507def8999c146ce124cc8edfe106c9ca70c2\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Sep 1 15:16:23 2009 -0700\n\n    The AAC components appear to output stereo data even if the input data is mono...\n"
    },
    {
      "commit": "53f2b2ae6417e8a32961e05cf21920c540d8b823",
      "tree": "2833da2618aad637273ca6bf8c8691727b738436",
      "parents": [
        "91440855a178365c5074a782831ab219afb9e274"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Aug 31 16:27:47 2009 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Aug 31 16:40:08 2009 -0700"
      },
      "message": "Temporarily unlock our mutex while fetching a buffer from the upstream source.\n"
    }
  ],
  "next": "450bf4b0d25c933431b790d911a5fcae750fe38d"
}
