)]}'
{
  "log": [
    {
      "commit": "134ee6a324c35f39e3576172e4eae4c6de6eb9dc",
      "tree": "c402e0b47b926a0ed1bfee9fa2ef16822a19dd45",
      "parents": [
        "8ae1d0bdcef22f2bdd8d283e0e615f3ba6c3f4cd"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Dec 16 09:30:55 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Dec 17 09:28:15 2009 -0800"
      },
      "message": "Squashed commit of the following:\n\ncommit 144b1c40e9cf08a584c50e1bef7ba3f287e81a4f\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Dec 16 09:28:23 2009 -0800\n\n    This H264 file shows a certain problem even better.\n\ncommit 3245f1f3b7471975aeeb824a756c987abd610f55\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Dec 16 09:20:08 2009 -0800\n\n    Using only the QA testfiles now.\n\ncommit 074817eb3816c5dd70858a3594e3b92d799d873b\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Dec 15 16:17:39 2009 -0800\n\n    Yay, roles are back again now that the API is in place.\n\ncommit 6d847e4932cc38301ae27cb7283b7f1553a95457\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Dec 15 13:01:20 2009 -0800\n\n    Added commandline option for specifying the random seed for reproducable tests.\n\ncommit 62ab37b26336eaa67e49791c41c996acb6acee3f\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Dec 14 10:53:27 2009 -0800\n\n    When issuing a seek it is important that only the first MediaSource::read call has the seek option.\n\ncommit e77c46644b2fb6862bafa3569f7d304252074f1e\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Dec 7 16:39:07 2009 -0800\n\n    Make sure the tests are actually built, sp\u003cOMXCodec\u003e becomes sp\u003cMediaSource\u003e\n\ncommit 6df56915bd55a9445b3c6f953d3cc251d81579b8\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu Dec 3 14:25:36 2009 -0800\n\n    Temporarily disable support for querying the roles of OMX components.\n\ncommit 31bb26930df9e3658dea684cedb4b0f1a06a4a88\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Dec 1 13:36:52 2009 -0800\n\n    Disregard EOS events, slightly change the way the EOS flag on output buffers is handled.\n\ncommit 4c382fbc9aebee8197d5988d04378062809e7c48\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Dec 1 09:37:24 2009 -0800\n\n    New random seek test for the codec tests. Fixed \"sticky\" end-of-output-buffers flag behaviour in OMXCodec.\n\ncommit c762eac3e44309592b61a168d66e091cf609fa03\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Nov 3 14:13:43 2009 -0800\n\n    Fix a typo.\n\ncommit 50540a59b65c7d476b0193c7494cd75895e6ca6d\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Nov 3 09:48:35 2009 -0800\n\n    Some more fine tuning of the unit tests, make MPEG4Extractor less verbose.\n\ncommit 1157a7e52a0636706caa235abe16d2ff8a0b8140\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Oct 28 12:01:01 2009 -0700\n\n    Changes to the IOMX::listNodes API, this now returns the component\u0027s roles as well, unit tests now test all components in all supported roles by default.\n\ncommit 30fbf2d8c6cb927689f7ba75eb550a81e9df488a\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Oct 26 09:45:26 2009 -0700\n\n    Initial check-in of unit tests for OMX components.\n"
    },
    {
      "commit": "8ae1d0bdcef22f2bdd8d283e0e615f3ba6c3f4cd",
      "tree": "d2ac9d7dbbd665bda5f3019ad27db3a925158061",
      "parents": [
        "1af80bc3fefb999756ef4847e72b2dcfd0b88a4a"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Dec 15 15:22:08 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Dec 15 15:22:08 2009 -0800"
      },
      "message": "Add a new API to support determining the roles of an OMX component specified by name. Remove unneeded OMXSoftwareCodecsPlugin.\n"
    },
    {
      "commit": "1af80bc3fefb999756ef4847e72b2dcfd0b88a4a",
      "tree": "618d9bfd43163d93140072b5fa677e41cddf117a",
      "parents": [
        "c1689e49ac867de33f2e81289449878ac2e536a0"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Dec 15 13:25:11 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Dec 15 13:28:55 2009 -0800"
      },
      "message": "Properly integrate the software codecs into the OMXCodec::Create hierarchy of available components.\n"
    },
    {
      "commit": "c1689e49ac867de33f2e81289449878ac2e536a0",
      "tree": "48fc2423f6cd3fa5cfc069fd3690c51ed11e4a17",
      "parents": [
        "68ddfc7f245bf31f16c3d65ba754cbb78e37fcbe"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Dec 14 15:34:11 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Dec 14 15:34:11 2009 -0800"
      },
      "message": "It\u0027s important that seek requests are only specified in the initial call to MediaSource::read and are not repeated in subsequent calls.\n"
    },
    {
      "commit": "68ddfc7f245bf31f16c3d65ba754cbb78e37fcbe",
      "tree": "9a14b60005fb9575706c98cb101f24d7f8123a61",
      "parents": [
        "587423f64501606852f05393ce1edfac0c18d545",
        "733b7729ea462fae9c6899456444e28fef1c757c"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Dec 14 14:32:13 2009 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Dec 14 14:32:13 2009 -0800"
      },
      "message": "Merge change I1314e737 into eclair-mr2\n\n* changes:\n  AwesomePlayer now renders either remote (IOMXRenderer) or locally depending on what kind of decoder was instantiated. Split off color conversion code into its own shared library.\n"
    },
    {
      "commit": "733b7729ea462fae9c6899456444e28fef1c757c",
      "tree": "bdae9df47ee74857a0941e17d1cef6b096bab771",
      "parents": [
        "b841f14f8e51f2365945281fbfa54ef6a1b1b5a6"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Dec 14 14:18:22 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Dec 14 14:18:22 2009 -0800"
      },
      "message": "AwesomePlayer now renders either remote (IOMXRenderer) or locally depending on what kind of decoder was instantiated. Split off color conversion code into its own shared library.\n"
    },
    {
      "commit": "587423f64501606852f05393ce1edfac0c18d545",
      "tree": "5d940990a8f02c7ff84ddf32041b13aaf1c0a2fe",
      "parents": [
        "b841f14f8e51f2365945281fbfa54ef6a1b1b5a6"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Dec 14 10:53:00 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Dec 14 10:54:10 2009 -0800"
      },
      "message": "The software AVCDecoder now properly seeks as requested.\n"
    },
    {
      "commit": "b841f14f8e51f2365945281fbfa54ef6a1b1b5a6",
      "tree": "9c0c648cfe9d900425f7756dd0bf2a9b805771ec",
      "parents": [
        "6b91407a918d755454ed396068ff7f67b7088f34"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Dec 11 15:07:25 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Dec 11 15:09:31 2009 -0800"
      },
      "message": "Initial checkin of software AMR NB encoder based on PV source code.\n"
    },
    {
      "commit": "6b91407a918d755454ed396068ff7f67b7088f34",
      "tree": "ff38d37a9acdcf4a0890501402c835b77538cf8a",
      "parents": [
        "72124cf05cd5b40f2902198aca2797616b813457"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Dec 11 11:27:02 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Dec 11 11:27:02 2009 -0800"
      },
      "message": "Propagate duration from input to output only if available, support multiple full frames of audio per input buffer in AMR/AAC decoders.\n"
    },
    {
      "commit": "72124cf05cd5b40f2902198aca2797616b813457",
      "tree": "afc27f32795be17b1e860f6970a30824613a9dc0",
      "parents": [
        "08411b75d4c30ce26180639f158e2f33d190eee8"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Dec 11 09:45:19 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Dec 11 09:58:36 2009 -0800"
      },
      "message": "Removing an unused header file and a stale forward declaration. Also handling one more nalType as a no-op.\n"
    },
    {
      "commit": "08411b75d4c30ce26180639f158e2f33d190eee8",
      "tree": "36ff8639d52fad7a6efa9a41666542c898381cde",
      "parents": [
        "fd4a8e09a54469bbccea6248f84319a1eb78765e"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Dec 10 15:32:12 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Dec 11 09:04:55 2009 -0800"
      },
      "message": "remote destructors are not synchronously executed by the binder...\n"
    },
    {
      "commit": "fd4a8e09a54469bbccea6248f84319a1eb78765e",
      "tree": "fb86252a7d297d77785e166d028bd52be8710d2a",
      "parents": [
        "e8647636abd1294ae929a8f20c0afa5e9b6b268b"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Dec 10 15:49:04 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Dec 11 09:01:32 2009 -0800"
      },
      "message": "Fix seek-on-startup behaviour in AwesomePlayer.\n"
    },
    {
      "commit": "e8647636abd1294ae929a8f20c0afa5e9b6b268b",
      "tree": "434623ce0b1523231c7f09a845fe685da4ed7f2d",
      "parents": [
        "3ce139526703a0c070bc3606e0d8a01290baeeb9",
        "4844ac54e8b5997c3b03872dbafe8ebed4787517"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 11 08:48:47 2009 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 11 08:48:47 2009 -0800"
      },
      "message": "Merge change Ia67d5388 into eclair-mr2\n\n* changes:\n  remote destructors are not synchronously executed by the binder...\n"
    },
    {
      "commit": "4844ac54e8b5997c3b03872dbafe8ebed4787517",
      "tree": "4c738546c3730529907760489bc38a2124b1240f",
      "parents": [
        "3869dcbacecc5575cdde7b337a39cbd14c1fd7cb"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Dec 10 15:32:12 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Dec 11 08:39:42 2009 -0800"
      },
      "message": "remote destructors are not synchronously executed by the binder...\n"
    },
    {
      "commit": "3ce139526703a0c070bc3606e0d8a01290baeeb9",
      "tree": "5dc04b37f874d4e92af34fd9b2ed095801c9725f",
      "parents": [
        "0a2b8e6424d1b027fb188ba0bd290fedff34b0f5",
        "609f1a00c96cf5605f4614e7bb6d0487c98969c5"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 11 08:39:00 2009 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 11 08:39:00 2009 -0800"
      },
      "message": "Merge change I595c2d60 into eclair-mr2\n\n* changes:\n  Initial checkin of software AVC video decoder based on PV source code.\n"
    },
    {
      "commit": "0a2b8e6424d1b027fb188ba0bd290fedff34b0f5",
      "tree": "e856fa8b85db6937b54a49b930e079aae9764888",
      "parents": [
        "3869dcbacecc5575cdde7b337a39cbd14c1fd7cb",
        "8eb8011120a68a86199b9960cf1ae91a6ddc7e6d"
      ],
      "author": {
        "name": "Dave Sparks",
        "email": "davidsparks@android.com",
        "time": "Thu Dec 10 17:57:10 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Dec 10 17:57:10 2009 -0800"
      },
      "message": "am 14f89404: Fix media player decode function. Bug 2317821.\n\nMerge commit \u002714f8940472217e8b0164d8f213679710d623d528\u0027 into eclair-mr2\n\n* commit \u002714f8940472217e8b0164d8f213679710d623d528\u0027:\n  Fix media player decode function. Bug 2317821.\n"
    },
    {
      "commit": "609f1a00c96cf5605f4614e7bb6d0487c98969c5",
      "tree": "31aa2b3d1787a2f236b733ab27dff8aff04b3197",
      "parents": [
        "df08a8102aa0721afec6df5db8f5742f5542473c"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Dec 10 09:44:29 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Dec 10 14:43:44 2009 -0800"
      },
      "message": "Initial checkin of software AVC video decoder based on PV source code.\n"
    },
    {
      "commit": "20352a300f84516ef615a023b7134733682b3223",
      "tree": "a58e58cd39789763408fc42e069cabf14a84a28a",
      "parents": [
        "4f1efc098cb5791c3e9f483f2af84aef70d2d0a0",
        "29340b0706b7b65e441c47d6f0c83c344d516435"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 10 12:37:59 2009 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 10 12:37:59 2009 -0800"
      },
      "message": "Merge change I3c01bb62 into eclair-mr2\n\n* changes:\n  Adding copyright headers to recently introduced decoder source files.\n"
    },
    {
      "commit": "29340b0706b7b65e441c47d6f0c83c344d516435",
      "tree": "59ffd0b15b07a421479bd2ed8a712b9482cb4a6d",
      "parents": [
        "c54176addef15699a518b69cd6bbd40ffc95e72e"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Dec 10 12:28:22 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Dec 10 12:28:22 2009 -0800"
      },
      "message": "Adding copyright headers to recently introduced decoder source files.\n"
    },
    {
      "commit": "4f1efc098cb5791c3e9f483f2af84aef70d2d0a0",
      "tree": "a2873e84aed3eecb1198f85954e24cddb1bdc380",
      "parents": [
        "c54176addef15699a518b69cd6bbd40ffc95e72e"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Dec 08 15:40:06 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Dec 10 12:23:55 2009 -0800"
      },
      "message": "Initial check in of AMR (NB and WB) decoders based on PV source code.\n"
    },
    {
      "commit": "8eb8011120a68a86199b9960cf1ae91a6ddc7e6d",
      "tree": "3b09d720df002b724e30eec03a4e0caddcea7b10",
      "parents": [
        "48643f38c9e92dd0a3d4a31c293c954f3df4db1b"
      ],
      "author": {
        "name": "Dave Sparks",
        "email": "davidsparks@android.com",
        "time": "Wed Dec 09 20:20:26 2009 -0800"
      },
      "committer": {
        "name": "Dave Sparks",
        "email": "davidsparks@android.com",
        "time": "Wed Dec 09 20:36:31 2009 -0800"
      },
      "message": "Fix media player decode function. Bug 2317821.\n\nThere was a recent change to OpenCORE that broke the MediaPlayer::decode()\nfunction for all OpenCORE supported formats (MP3, AAC, and AMR-NB/WB). The\naffect is that SoundPool is unreliable for all of these formats. This patch\nchanges the logic in the AudioCache object that processes messages from the\nmedia player. The old logic was fragile. This change should make it more\nrobust against changes.\n"
    },
    {
      "commit": "c54176addef15699a518b69cd6bbd40ffc95e72e",
      "tree": "1adf2d71394da2327a60029fdd17cd2704794ba0",
      "parents": [
        "35dd25795bb83d41c1022b1aefe890ffc00e9a35"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Dec 08 10:07:22 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Dec 08 10:07:22 2009 -0800"
      },
      "message": "Make sure to use the hand-tweaked-assembly version of the relevant mp3 code if building for ARM.\n"
    },
    {
      "commit": "35dd25795bb83d41c1022b1aefe890ffc00e9a35",
      "tree": "dbb32ea9ed09c0ff2565849feddf8255a0ab65d0",
      "parents": [
        "edf4e6f02b54481ecd74bbdb51e3f5e3db0f53ff",
        "541962997b4076da11546619f082467ffd9bcd1f"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 08 09:16:08 2009 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 08 09:16:08 2009 -0800"
      },
      "message": "Merge change Ib16e5543 into eclair-mr2\n\n* changes:\n  Fix the mp3 audio extractor that would occasionally return an invalid frame directly after a seek.\n"
    },
    {
      "commit": "edf4e6f02b54481ecd74bbdb51e3f5e3db0f53ff",
      "tree": "3659c584cb564460c220555d7227bc44383007cc",
      "parents": [
        "d912f4646ece79832f9d852b39eb6b0d836ccfc4",
        "ebd0d94d2619280f9871ef2d0965d95fb880404c"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 08 09:16:00 2009 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 08 09:16:00 2009 -0800"
      },
      "message": "Merge change I8f658214 into eclair-mr2\n\n* changes:\n  Minor tweaks to the mp3 and aac software decoders, propagate duration to output format.\n"
    },
    {
      "commit": "d912f4646ece79832f9d852b39eb6b0d836ccfc4",
      "tree": "3997f451c32651068afbe82a1a6ea06884bf8cf1",
      "parents": [
        "d9618f23226f46c752e56f712bc4b505117d8b4b"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Dec 07 16:37:37 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Dec 07 16:41:57 2009 -0800"
      },
      "message": "Note to self: Don\u0027t reverse the arguments to fseek(o)...\n"
    },
    {
      "commit": "ebd0d94d2619280f9871ef2d0965d95fb880404c",
      "tree": "8b71343070a2b78cb24de0751c093bbdbbd0392c",
      "parents": [
        "d9618f23226f46c752e56f712bc4b505117d8b4b"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Dec 07 16:32:37 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Dec 07 16:41:16 2009 -0800"
      },
      "message": "Minor tweaks to the mp3 and aac software decoders, propagate duration to output format.\n"
    },
    {
      "commit": "541962997b4076da11546619f082467ffd9bcd1f",
      "tree": "947bb4e0c7b03a404123ec3ccda00ef67fa540c6",
      "parents": [
        "d9618f23226f46c752e56f712bc4b505117d8b4b"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Dec 07 16:31:31 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Dec 07 16:40:29 2009 -0800"
      },
      "message": "Fix the mp3 audio extractor that would occasionally return an invalid frame directly after a seek.\n"
    },
    {
      "commit": "d9618f23226f46c752e56f712bc4b505117d8b4b",
      "tree": "6bf48d5023b6b77d2a65d94a827715a89cafdf02",
      "parents": [
        "92616b5655b7aef260480f60f2aabf98e821c8f3"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Dec 07 14:22:35 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Dec 07 14:22:35 2009 -0800"
      },
      "message": "Initial checkin of stagefright MP3 audio decoder based on PV source code.\n"
    },
    {
      "commit": "92616b5655b7aef260480f60f2aabf98e821c8f3",
      "tree": "659614a0a1836d3e785d28ede92a20968fb8727b",
      "parents": [
        "c4fbba6ab63b6fc1a60f6d91238291a73332091b"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Dec 07 11:23:44 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Dec 07 11:23:44 2009 -0800"
      },
      "message": "Fixing the build, only instantiate the software aac decoder in full stagefright builds.\n"
    },
    {
      "commit": "c4fbba6ab63b6fc1a60f6d91238291a73332091b",
      "tree": "caa41079b8b42b44fdccd0c7aee9a5e2398e9409",
      "parents": [
        "a410d5a7150d6b14f98197e570c78ea7b6a65091",
        "f44de515d3b6098a0b585865c1a0c7b20d3075a6"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Dec 07 11:03:28 2009 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Dec 07 11:03:28 2009 -0800"
      },
      "message": "Merge change I9c6e1f90 into eclair-mr2\n\n* changes:\n  Initial check in of stagefright software AAC decoder based on PV source code.\n"
    },
    {
      "commit": "a410d5a7150d6b14f98197e570c78ea7b6a65091",
      "tree": "3fcb722bdfba1d0bd214d8dfa831e9f3d71cc6e5",
      "parents": [
        "bf697e37550d9e8376089b0b5e498613bede798c",
        "148b266afe2ac92b5616c24e8d5160e6f9242f69"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Dec 07 11:03:17 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Dec 07 11:03:17 2009 -0800"
      },
      "message": "am 6d42d806: Merge change I9cc489a2 into eclair\n\nMerge commit \u00276d42d80653f2c41f3e72a878a1d9a6f9693b89f7\u0027 into eclair-mr2\n\n* commit \u00276d42d80653f2c41f3e72a878a1d9a6f9693b89f7\u0027:\n  Fix issue 2304669: VoiceIME: starting and canceling voice IME yields persistent \"error 8\" state on future attempts and breaks voice search.\n"
    },
    {
      "commit": "f44de515d3b6098a0b585865c1a0c7b20d3075a6",
      "tree": "028b1d81643bbb332464b42b50a0f79ba5359142",
      "parents": [
        "bf697e37550d9e8376089b0b5e498613bede798c"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Dec 07 09:56:32 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Dec 07 11:02:28 2009 -0800"
      },
      "message": "Initial check in of stagefright software AAC decoder based on PV source code.\n"
    },
    {
      "commit": "bf697e37550d9e8376089b0b5e498613bede798c",
      "tree": "b9e89f19038a23f9b4ad0e667b8ac1a37f8738df",
      "parents": [
        "f0fb96c352f30b812a4903a1d783a715e1e817bd"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Dec 07 09:43:00 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Dec 07 09:43:00 2009 -0800"
      },
      "message": "Change OMXCodec::Create to return an sp\u003cMediaSource\u003e instead of an sp\u003cOMXCodec\u003e, this is more general and does not sacrifice any functionality as the remaining OMXCodec APIs are not meant to be public anyway.\n"
    },
    {
      "commit": "148b266afe2ac92b5616c24e8d5160e6f9242f69",
      "tree": "6a39d1291d8abe0fe7ca25b0ac6d58f92acf2163",
      "parents": [
        "f311c557729099d002f4aae37c402a8287912369"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Dec 05 05:20:01 2009 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Dec 07 05:37:47 2009 -0800"
      },
      "message": "Fix issue 2304669: VoiceIME: starting and canceling voice IME yields persistent \"error 8\" state on future attempts and breaks voice search.\n\nFixed AudioFlinger::openInput() broken in change ddb78e7753be03937ad57ce7c3c842c52bdad65e\nso that an invalid IO handle (0) is returned in case of failure.\nApplied the same correction to openOutput().\nModified RecordThread start procedure so that a failure occuring during the first read from audio input stream is detected and causes\nthe record start to fail.\nModified RecordThread stop procedure to make sure that audio input stream fd is closed before we exit the stop function.\n\nFixed AudioRecord JAVA and JNI implementation to take status of native AudioRecord::start() into account\nand not change mRecordingState to RECORDSTATE_RECORDING if start fails.\n"
    },
    {
      "commit": "f0fb96c352f30b812a4903a1d783a715e1e817bd",
      "tree": "bf0573cd7eb7789a512c51f21c854c4e8b7fa017",
      "parents": [
        "adf7d77752b3dbd47badc8819aa2674860d6ccba"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Dec 04 12:52:40 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Dec 04 12:52:40 2009 -0800"
      },
      "message": "Enable proper cleanup of OMX nodes managed through stagefright.\n"
    },
    {
      "commit": "adf7d77752b3dbd47badc8819aa2674860d6ccba",
      "tree": "5430de0a699b0d321fe546edb0ed865244317db7",
      "parents": [
        "15478f3287c62a780d19b9059023331721bd4f4f",
        "981594f5c3697c3330bdbd4bb5a743fb9f01e6ab"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 03 20:03:59 2009 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 03 20:03:59 2009 -0800"
      },
      "message": "Merge change I6c84d731 into eclair-mr2\n\n* changes:\n  Media/ToneGenerator: Change tone format for TONE_CDMA_ANSWER\n"
    },
    {
      "commit": "15478f3287c62a780d19b9059023331721bd4f4f",
      "tree": "a617c79c852b63dba38b2f99200b8270f81d87a3",
      "parents": [
        "0ef47568ed93872feab423330b10a62a432decd5"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Dec 03 16:22:52 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Dec 03 16:22:52 2009 -0800"
      },
      "message": "Two more uses of strlcpy that break the sim build. Now fixed.\n"
    },
    {
      "commit": "0ef47568ed93872feab423330b10a62a432decd5",
      "tree": "e8555fcda98a2fd3454c0f271a41d1dbc821971c",
      "parents": [
        "97494da9d418b599fa1b9930487b90c978357634"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Dec 03 16:07:05 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Dec 03 16:07:05 2009 -0800"
      },
      "message": "Apparently strlcpy is not part of a standard linux distribution... Unbreaking the sim build.\n"
    },
    {
      "commit": "97494da9d418b599fa1b9930487b90c978357634",
      "tree": "761c80dc646ec8a3ad2f46ecaf3f51b71203bfff",
      "parents": [
        "572e6a5cea656c1df50f69df9730f2dc351308de"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Dec 03 15:45:53 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Dec 03 15:45:53 2009 -0800"
      },
      "message": "I accidentally broke this code while refactoring MediaScanner. This is the fix.\n"
    },
    {
      "commit": "572e6a5cea656c1df50f69df9730f2dc351308de",
      "tree": "be9e13cfa4ca972e341b93551070b2f07118d1c6",
      "parents": [
        "413f523afe96aff02d2b0a7459127b8f67b2b43c",
        "e3ec3cec3a2e27033249ff82964d2cbd441d9873"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 03 13:27:08 2009 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 03 13:27:08 2009 -0800"
      },
      "message": "Merge change I74bf38a0 into eclair-mr2\n\n* changes:\n  Squashed commit of the following:\n"
    },
    {
      "commit": "413f523afe96aff02d2b0a7459127b8f67b2b43c",
      "tree": "395251a728a780bf6d46e4ef4a721e0cf4a77f3a",
      "parents": [
        "8908d616cc9d74f9fe2c17f1d8d9335ee28c290d"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Dec 03 11:31:19 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Dec 03 13:21:54 2009 -0800"
      },
      "message": "Refactor MediaScanner. Some steps on the way towards being able to build the tree without OpenCore.\n"
    },
    {
      "commit": "e3ec3cec3a2e27033249ff82964d2cbd441d9873",
      "tree": "46e3b22fc02c1f20b8a8403818395ba4ba51ddb2",
      "parents": [
        "c297fccffc4ab1cb3b9f5c6a5b0802be057f3e0f"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Dec 03 11:39:54 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Dec 03 12:49:09 2009 -0800"
      },
      "message": "Squashed commit of the following:\n\ncommit 543e192bf2ae13f573dc4c4e53b239ed4ea00e81\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu Dec 3 11:33:57 2009 -0800\n\n    stagefright now acts as the OMX Master, vendors supply their own plugins through libstagefrighthw. In OpenCore-enabled builds we now sit on top of PVMaster...\n\ncommit 3cbfdbd9cecadbb77b63125c62883bf1065884fe\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Dec 2 12:39:07 2009 -0800\n\n    More OMX infrastructure, stagefright is now taking over the OMX Master, multiplexing all contributing OMX implementations under a common interface.\n"
    },
    {
      "commit": "981594f5c3697c3330bdbd4bb5a743fb9f01e6ab",
      "tree": "50eb7e48850ee83d03fec54169765a0c07f35559",
      "parents": [
        "8908d616cc9d74f9fe2c17f1d8d9335ee28c290d"
      ],
      "author": {
        "name": "Naveen Kalla",
        "email": "nkalla@quicinc.com",
        "time": "Tue Oct 13 15:29:47 2009 -0700"
      },
      "committer": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Thu Dec 03 12:17:18 2009 -0800"
      },
      "message": "Media/ToneGenerator: Change tone format for TONE_CDMA_ANSWER\n\nTone format for TONE_CDMA_ANSWER should be 660Hz + 1000Hz, with a 500ms ON\nduration.\n"
    },
    {
      "commit": "8908d616cc9d74f9fe2c17f1d8d9335ee28c290d",
      "tree": "d7fddd5e7e3467626f0eddbbf1fdc0a9f283844f",
      "parents": [
        "c297fccffc4ab1cb3b9f5c6a5b0802be057f3e0f",
        "1d711f67ffb3ea73aca155537e0f21b444251158"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 03 11:25:54 2009 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 03 11:25:54 2009 -0800"
      },
      "message": "Merge change Ib904c2a4 into eclair-mr2\n\n* changes:\n  Remove old hack A/V sync hack that is no longer needed.\n"
    },
    {
      "commit": "1d711f67ffb3ea73aca155537e0f21b444251158",
      "tree": "aee381e7f30e46d562f12a80b0689007e0242991",
      "parents": [
        "a7c816c4bdb72cf4f9fe853a96cd7efdb394006d"
      ],
      "author": {
        "name": "Dave Sparks",
        "email": "davidsparks@android.com",
        "time": "Thu Dec 03 10:13:32 2009 -0800"
      },
      "committer": {
        "name": "Dave Sparks",
        "email": "davidsparks@android.com",
        "time": "Thu Dec 03 10:13:32 2009 -0800"
      },
      "message": "Remove old hack A/V sync hack that is no longer needed.\n"
    },
    {
      "commit": "c297fccffc4ab1cb3b9f5c6a5b0802be057f3e0f",
      "tree": "7f7bd7bfa58df757385ab01ffcd3fd7e27351cfb",
      "parents": [
        "a7c816c4bdb72cf4f9fe853a96cd7efdb394006d"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Dec 01 15:26:54 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Dec 01 15:26:54 2009 -0800"
      },
      "message": "A small sample tool to encode pcm audio data to amr, decode it again and play it. Some changes to OMXCodec to properly configure the AMR decoder(s).\n"
    },
    {
      "commit": "a7c816c4bdb72cf4f9fe853a96cd7efdb394006d",
      "tree": "2862a6b0b87a19889e10cddf829e3bd922822583",
      "parents": [
        "827f3004421aacb6bceaf772ac825d4f2d3006e4",
        "f311c557729099d002f4aae37c402a8287912369"
      ],
      "author": {
        "name": "Dave Sparks",
        "email": "davidsparks@android.com",
        "time": "Mon Nov 23 19:58:33 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 23 19:58:33 2009 -0800"
      },
      "message": "am 16cc72bd: Fix simulator build.\n\nMerge commit \u002716cc72bdef471ffeee3f61eba8262783de248b04\u0027 into eclair-mr2\n\n* commit \u002716cc72bdef471ffeee3f61eba8262783de248b04\u0027:\n  Fix simulator build.\n"
    },
    {
      "commit": "827f3004421aacb6bceaf772ac825d4f2d3006e4",
      "tree": "224f040563bccf2ec3a4bba7d1fea81c092608c8",
      "parents": [
        "e5d6df402da9b6c5577470abb81a5e6801bd7752",
        "ec4dde75955f87e5afea3f59ef991130257f3f3a"
      ],
      "author": {
        "name": "Dave Sparks",
        "email": "davidsparks@android.com",
        "time": "Mon Nov 23 19:58:00 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 23 19:58:00 2009 -0800"
      },
      "message": "am 8424ec32: Merge change I0f9a53d4 into eclair\n\nMerge commit \u00278424ec323b2bc38887370c75e2c1fcd84bcdb013\u0027 into eclair-mr2\n\n* commit \u00278424ec323b2bc38887370c75e2c1fcd84bcdb013\u0027:\n  Set metadata retriever thread group to the caller\u0027s group.\n"
    },
    {
      "commit": "f311c557729099d002f4aae37c402a8287912369",
      "tree": "376c75d23be1b4031fef4cbd906b204543ce1e69",
      "parents": [
        "ec4dde75955f87e5afea3f59ef991130257f3f3a"
      ],
      "author": {
        "name": "Dave Sparks",
        "email": "davidsparks@android.com",
        "time": "Mon Nov 23 19:51:33 2009 -0800"
      },
      "committer": {
        "name": "Dave Sparks",
        "email": "davidsparks@android.com",
        "time": "Mon Nov 23 19:51:33 2009 -0800"
      },
      "message": "Fix simulator build.\n"
    },
    {
      "commit": "ec4dde75955f87e5afea3f59ef991130257f3f3a",
      "tree": "68bdeed14853f8f8a2678acb2b875487e7af706a",
      "parents": [
        "4ddf30b2b118068d82bb37858186d668eddbbe6d"
      ],
      "author": {
        "name": "Dave Sparks",
        "email": "davidsparks@android.com",
        "time": "Mon Nov 23 16:51:15 2009 -0800"
      },
      "committer": {
        "name": "Dave Sparks",
        "email": "davidsparks@android.com",
        "time": "Mon Nov 23 16:51:15 2009 -0800"
      },
      "message": "Set metadata retriever thread group to the caller\u0027s group.\n\nThis patch modifies the native binder interface to the metadata\nretriever to pass the caller\u0027s thread group across the binder\ninterface. On the server side, the thread scheduler group is\nset to the caller\u0027s scheduler group temporarily and restored\nafter the request has completed. This patch also reverts a\nprevious patch where the priority of the thread was forced to\na low priority foreground thread.\n\nThis should give apps more control over the priority of their\nmetadata retrieval, particularly allow background process to\nrun without hogging the CPU.\n"
    },
    {
      "commit": "e5d6df402da9b6c5577470abb81a5e6801bd7752",
      "tree": "6788322bcb337c52ee83c01049594d78658a759b",
      "parents": [
        "f83d9a75c4616b2da4db7b1559e918fbf8709005"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Nov 23 14:39:38 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Nov 23 15:14:44 2009 -0800"
      },
      "message": "Some playable/decodable streams have been found in the wild that violate this assertion, let\u0027s be lenient for now.\n"
    },
    {
      "commit": "f83d9a75c4616b2da4db7b1559e918fbf8709005",
      "tree": "efdb656d0716757d60b2f3f1d1b4b5591ea48a79",
      "parents": [
        "738c4315859395bfeeaae3d4c9d6fb9f414778f1",
        "650773d00356129ffd661cdaef3fb3095c343707"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 23 14:39:03 2009 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 23 14:39:03 2009 -0800"
      },
      "message": "Merge change I24b0a95d into eclair-mr2\n\n* changes:\n  The original delay after which we dropped a frame was too aggressive. 40ms lateness seems more appropriate (about 25fps).\n"
    },
    {
      "commit": "738c4315859395bfeeaae3d4c9d6fb9f414778f1",
      "tree": "914b3e3eb6702df6b62191ca96819f31ee20e1a1",
      "parents": [
        "bfa6b2d7a1be1832ac40ed90aece1834f720b5c6"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Nov 23 14:03:32 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Nov 23 14:06:42 2009 -0800"
      },
      "message": "Make sure the decoder\u0027s input buffers are large enough to hold the largest input data. Verify that the setting actually sticks.\n"
    },
    {
      "commit": "650773d00356129ffd661cdaef3fb3095c343707",
      "tree": "d7eaa1dc1cfc6b008bae7ee687c07ea99bf27a56",
      "parents": [
        "bfa6b2d7a1be1832ac40ed90aece1834f720b5c6"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Nov 23 14:02:00 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Nov 23 14:04:48 2009 -0800"
      },
      "message": "The original delay after which we dropped a frame was too aggressive. 40ms lateness seems more appropriate (about 25fps).\n"
    },
    {
      "commit": "bfa6b2d7a1be1832ac40ed90aece1834f720b5c6",
      "tree": "5b4948c52fde583d593d088ffc4a7f772c904a86",
      "parents": [
        "bf89c099fc97717e3008a481aeddc76c1ac5e00d"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Nov 20 09:32:46 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Nov 23 10:44:30 2009 -0800"
      },
      "message": "Squashed commit of the following:\n\ncommit 1efc38dc3c33fef57b759002db3965ed07a28cb0\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu Nov 19 14:36:14 2009 -0800\n\n    Sending the SEEK-COMPLETE notification temporarily broke seeking backwards in time behaviour. This is now fixed.\n\n    Also, get rid of the semi-random delay after posting buffers to surface flinger in favour of delaying the buffer release until the next frame is displayed.\n\ncommit 51973062eb5ee63fd64b845d72bac517cc3369cf\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Nov 18 14:01:43 2009 -0800\n\n    Fix one more unit test, properly send seek-complete notification only after seek actually completed.\n\ncommit cb22250b34b1fcfe1bf459723a761fd003950229\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Nov 18 12:31:36 2009 -0800\n\n    Fix seek-while-paused in AwesomePlayer, revert to using FileSource if MmapSource fails.\n\ncommit 25eb9241138ddf7bb27ce90657116c5f8a94d880\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Nov 18 12:30:40 2009 -0800\n\n    Support seeking and duration in AMRExtractor, assuming all frames are the same size.\n\ncommit 44192f2ebb7ea3bbd3ba5910025692dbc6a08faa\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Nov 18 10:21:44 2009 -0800\n\n    MediaPlayerImpl is dead, long live AwesomePlayer.\n\ncommit c5b52d3c0674f5dc94db506afbce52401cceddac\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Nov 18 09:42:23 2009 -0800\n\n    New implementation of the stagefright mediaplayer.\n"
    },
    {
      "commit": "bf89c099fc97717e3008a481aeddc76c1ac5e00d",
      "tree": "0cdf045cfa9affd3aab1a87fdcf9c4d44f47a7d8",
      "parents": [
        "70453d7e16079720947adabad1e76d5d6b72ea14",
        "4ddf30b2b118068d82bb37858186d668eddbbe6d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Nov 21 00:21:15 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Nov 21 00:21:15 2009 -0800"
      },
      "message": "am e7800946: Merge change I49f02be9 into eclair\n\nMerge commit \u0027e7800946a42c0ebe8e0b3f6eba04a96a9641aaff\u0027 into eclair-mr2\n\n* commit \u0027e7800946a42c0ebe8e0b3f6eba04a96a9641aaff\u0027:\n  Issue 2265163: Audio still reported routed through earpiece on sholes\n"
    },
    {
      "commit": "4ddf30b2b118068d82bb37858186d668eddbbe6d",
      "tree": "e270f842df4d078948ecb80aefb31f7658d866bc",
      "parents": [
        "2f5925e123afdaba79c7ca8ef6647e4b86cd5488",
        "6100d2d60517ff33ed8eb35d0b7ea63cde0831c9"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Nov 21 00:18:24 2009 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Nov 21 00:18:24 2009 -0800"
      },
      "message": "Merge change I49f02be9 into eclair\n\n* changes:\n  Issue 2265163: Audio still reported routed through earpiece on sholes\n"
    },
    {
      "commit": "6100d2d60517ff33ed8eb35d0b7ea63cde0831c9",
      "tree": "9cd057df8eb60ff3e68bb6f9c04f92053dfb443e",
      "parents": [
        "583892d0185d102f3c9ca69ea48fe38af31ecd31"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 19 09:00:56 2009 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 19 23:57:45 2009 -0800"
      },
      "message": "Issue 2265163: Audio still reported routed through earpiece on sholes\n\nThis is a second attempt to fix the audio routed to earpiece syndrom.\nThe root cause identified this time is the crash of an application having an active AudioTrack playing on the VOICE_CALL stream type.\nWhen this happens, the AudioTrack destructor is not called and the audio policy manager is not notified of the track stop.\nResults a situation where the VOICE_CALL stream is considered as always in use by audio policy manager which makes that audio is routed to earpiece.\n\nThe fix consists in moving the track start/stop/close notification to audio policiy manager from AudioTrack to AudioFlinger Track objet.\nThe net result is that in the case of a client application crash, the AudioFlinger TrackHandle object (which implements the remote side of the IAudioTrack binder interface) destructor is called which in turn destroys the Track object and we can notify the audio policy manager of the track stop and removal.\n\nThe same modification is made for AudioRecord although no bug related to record has been reported yet.\nAlso fixed a potential problem if record stop is called while the record thread is exiting.\n"
    },
    {
      "commit": "2f5925e123afdaba79c7ca8ef6647e4b86cd5488",
      "tree": "994ce4cc1ddd2b37ea86944fcb04b2d69ac0d138",
      "parents": [
        "583892d0185d102f3c9ca69ea48fe38af31ecd31"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Nov 19 11:22:36 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Nov 19 11:24:18 2009 -0800"
      },
      "message": "DO NOT MERGE: Instead of inserting semi-random delays after submission to surface flinger, delay releasing buffers to the next display time to avoid flickering.\n"
    },
    {
      "commit": "f78933fdfc5bc71881b3011f921b643d90387664",
      "tree": "e13d666ee10eea352fd7d3d253e1f4d96984578e",
      "parents": [
        "c77a293c4971d9f6c4e3b0c0573fb13276bedf18",
        "30ab66297501757d745b9ae10da61adcd891f497"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 17 10:46:41 2009 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 17 10:46:41 2009 -0800"
      },
      "message": "Merge change Iea6a38c6 into eclair-mr2\n\n* changes:\n  Squashed commit of the following:\n"
    },
    {
      "commit": "c77a293c4971d9f6c4e3b0c0573fb13276bedf18",
      "tree": "010b291f6045cb4df6ca1f1fc93773087bdd2b66",
      "parents": [
        "03475f5af25e4aa32d46d41dd2ec756853d8dd9d",
        "be11f392a8b8ff1006cf536350cc8a85f8788ff4"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 17 10:36:24 2009 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 17 10:36:24 2009 -0800"
      },
      "message": "Merge change Ib64ea2dd into eclair-mr2\n\n* changes:\n  Improvements to TimedEventQueue.\n"
    },
    {
      "commit": "be11f392a8b8ff1006cf536350cc8a85f8788ff4",
      "tree": "b01deb5339fb3b15db63fa6d021cce441dfe1be1",
      "parents": [
        "057eacf4578ac6b90ee18c524670e01445bf2732"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 17 10:25:01 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 17 10:29:32 2009 -0800"
      },
      "message": "Improvements to TimedEventQueue.\n\nEvents are now cancelled given their \"unique\" event_id instead of the event pointer\nitself (which may be reallocated in place if we\u0027re unlucky). Also the ability to\ncancel multiple events matching a predicate has been added.\n"
    },
    {
      "commit": "03475f5af25e4aa32d46d41dd2ec756853d8dd9d",
      "tree": "aa3a35c429a4307d2383931b3dd2e72fe55277f2",
      "parents": [
        "057eacf4578ac6b90ee18c524670e01445bf2732"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Nov 16 15:34:01 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 17 10:21:03 2009 -0800"
      },
      "message": "Update FileSource to also accept a file descriptor and a range.\n"
    },
    {
      "commit": "30ab66297501757d745b9ae10da61adcd891f497",
      "tree": "e287230832c3cf3437df7ac07c282975e95044e7",
      "parents": [
        "057eacf4578ac6b90ee18c524670e01445bf2732"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Nov 16 15:43:38 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Nov 16 15:43:38 2009 -0800"
      },
      "message": "Squashed commit of the following:\n\ncommit 333057b355f8c260c549553b9a0634755c838b6a\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Nov 13 15:35:48 2009 -0800\n\n    Some more tweaks to AVC encoding on sholes.\n\ncommit 9981d0ee52ec5b8b0182aae733d1571e3ebb8390\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu Nov 12 16:36:57 2009 -0800\n\n    Support for avc encoding, including sholes specific tweaks to pick the right colorspace for the camera to not require transcoding.\n\ncommit 5ba0ebbbd4efca51f3ae1f60e2ca31e7d2cf136d\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Nov 11 09:50:03 2009 -0800\n\n    Enable actual (camera) video-only recording using h.263 or mpeg4 encoding.\n\ncommit 3fd59c3526a37fe7c696f4a978925d1831c09313\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Nov 10 14:57:48 2009 -0800\n\n    Allow switching between the PV recorder implementation and one supported by stagefright.\n\n    This is controlled through the property \"media.stagefright.enable-record\".\n"
    },
    {
      "commit": "057eacf4578ac6b90ee18c524670e01445bf2732",
      "tree": "d334848d94bc7ef9a4adee4b2623227109d3f322",
      "parents": [
        "86b48a89a6cde62fc1db9140593386450bc0a9a1",
        "583892d0185d102f3c9ca69ea48fe38af31ecd31"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 12 23:10:34 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Nov 12 23:10:34 2009 -0800"
      },
      "message": "am fddfb9ae: Merge change Iad79689a into eclair\n\nMerge commit \u0027fddfb9ae03a2730ac5ce27fa4c47b7d3a0285d0f\u0027 into eclair-mr2\n\n* commit \u0027fddfb9ae03a2730ac5ce27fa4c47b7d3a0285d0f\u0027:\n  Improvements for issue 2197683:\tEnglish IME key-press latency is noticeably higher on passion than sholes\n"
    },
    {
      "commit": "583892d0185d102f3c9ca69ea48fe38af31ecd31",
      "tree": "81d50ceb87a4f1f7a1d61bd75480619580c5c5d5",
      "parents": [
        "1aaa563c2cb0df3f414aa0cfc13f9ae7b457dc49",
        "2b584244930c9de0e3bc46898a801e9ccb731900"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 12 22:53:28 2009 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 12 22:53:28 2009 -0800"
      },
      "message": "Merge change Iad79689a into eclair\n\n* changes:\n  Improvements for issue 2197683:\tEnglish IME key-press latency is noticeably higher on passion than sholes\n"
    },
    {
      "commit": "53f45f0367d9563278f427db106736dcd1a433d1",
      "tree": "7e7a696b98534e1699696227a4159b6592f2f937",
      "parents": [
        "ca4bea0965f870c7d1d92357d860f50c6c18d51d",
        "1dfc99f22fb9d8c798065938c24eeb4eb9691747"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Nov 12 10:32:26 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Nov 12 10:32:26 2009 -0800"
      },
      "message": "resolved conflicts for merge of c66d53f9 to eclair-mr2\n"
    },
    {
      "commit": "1dfc99f22fb9d8c798065938c24eeb4eb9691747",
      "tree": "51fa5da2f34649321196925e4a3441158193d7e2",
      "parents": [
        "a75e9fb4876139fff4bb836fb0ebd5f80c8b20b3"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Nov 11 16:33:17 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Nov 12 09:36:10 2009 -0800"
      },
      "message": "Delegate the platform dependent hardware renderer implementation to a shared library provided by the vendor.\n"
    },
    {
      "commit": "2b584244930c9de0e3bc46898a801e9ccb731900",
      "tree": "cd24f4c3ebc3cd42feb98361123b4291228c8782",
      "parents": [
        "a75e9fb4876139fff4bb836fb0ebd5f80c8b20b3"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Nov 09 23:32:22 2009 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Nov 11 12:13:27 2009 -0800"
      },
      "message": "Improvements for issue 2197683:\tEnglish IME key-press latency is noticeably higher on passion than sholes\n\nThis change goes with a kernel driver change that reduces the audio buffer size from 4800 bytes (~27ms) to 3072 bytes (~17ms).\n- The AudioFlinger modifcations in change 0bca68cfff161abbc992fec82dc7c88079dd1a36 have been removed: the short sleep period was counter productive when the AudioTrack is using the call back thread as it causes to many preemptions.\n- AudioFlinger mixer thread now detects long standby exit time and in this case anticipates start by writing 0s as soon as a track is enabled even if not ready for mixing.\n- AudioTrack::start() is modified to start call back thread before starting the IAudioTrack so that thread startup time is masked by IAudioTrack start and mixer thread wakeup time.\n"
    },
    {
      "commit": "ca4bea0965f870c7d1d92357d860f50c6c18d51d",
      "tree": "bb136f251be0a9e1a817e201c5447ca42ebf606d",
      "parents": [
        "7eb443df575d8002d045bec28cdcde23c8137a2c"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 10 13:47:45 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 10 13:47:45 2009 -0800"
      },
      "message": "Make MediaPlayerImpl less verbose by default.\n"
    },
    {
      "commit": "7eb443df575d8002d045bec28cdcde23c8137a2c",
      "tree": "ffc2c4411fe7f1ddcba2361d11b2768310d79b44",
      "parents": [
        "732324915492184dc5f773235af7f9146016c360",
        "a75e9fb4876139fff4bb836fb0ebd5f80c8b20b3"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 10 12:29:34 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Nov 10 12:29:34 2009 -0800"
      },
      "message": "am cfe45c77: Merge change I96c4d4b3 into eclair\n\nMerge commit \u0027cfe45c775ddb5e48bf556aee7422298260eb4fd8\u0027 into eclair-mr2\n\n* commit \u0027cfe45c775ddb5e48bf556aee7422298260eb4fd8\u0027:\n  Fix for random audio output failures, properly dup() the file descriptor in IMediaPlayer::setDataSource to assume ownership as the caller will otherwise close it.\n"
    },
    {
      "commit": "a75e9fb4876139fff4bb836fb0ebd5f80c8b20b3",
      "tree": "1e55974ca456a316250d4694d8eb2b976aa7a982",
      "parents": [
        "dae04ca7c4b5590786ffc336721ee8714cc79fef"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 10 11:51:43 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 10 12:26:26 2009 -0800"
      },
      "message": "Fix for random audio output failures, properly dup() the file descriptor in IMediaPlayer::setDataSource to assume ownership as the caller will otherwise close it.\n"
    },
    {
      "commit": "5bb42b780a934386f26c1c1f0a8249494ec65f7c",
      "tree": "6f8069290744fb50ea485a80ecda5bf449d15a6d",
      "parents": [
        "84ec55b736ae2278d6abdc1c7a0312de46ef5f3d",
        "fa70cad40b01627ac1c22e04cdd548ece9c2654f"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 06 14:25:26 2009 -0500"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 06 14:25:26 2009 -0500"
      },
      "message": "Merge change I9a50fdf4 into eclair-mr2\n\n* changes:\n  Handle OMX_StateInvalid in emergency shutdown properly (by ignoring it and hoping for the best) instead of asserting.\n"
    },
    {
      "commit": "84ec55b736ae2278d6abdc1c7a0312de46ef5f3d",
      "tree": "fddab69ca6235e219c7ebc7d8380be634a3eb936",
      "parents": [
        "6fceb868bf79feac0498ca5db8694c92ef6b4fa5",
        "dae04ca7c4b5590786ffc336721ee8714cc79fef"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Nov 06 10:07:53 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Nov 06 10:07:53 2009 -0800"
      },
      "message": "am fde273ba: Merge change Ic997acac into eclair\n\nMerge commit \u0027fde273baf6592a5fde15ee4dd4d798d90368e440\u0027 into eclair-mr2\n\n* commit \u0027fde273baf6592a5fde15ee4dd4d798d90368e440\u0027:\n  Make AudioPlayer a little less verbose, defer starting audio playback until after the first video frame has been decoded (if there\u0027s video at all).\n"
    },
    {
      "commit": "fa70cad40b01627ac1c22e04cdd548ece9c2654f",
      "tree": "e0fb01133d01e5680b669f26c0eeedddcbe09809",
      "parents": [
        "6fceb868bf79feac0498ca5db8694c92ef6b4fa5"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Nov 06 08:40:09 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Nov 06 08:44:26 2009 -0800"
      },
      "message": "Handle OMX_StateInvalid in emergency shutdown properly (by ignoring it and hoping for the best) instead of asserting.\n"
    },
    {
      "commit": "dae04ca7c4b5590786ffc336721ee8714cc79fef",
      "tree": "2e5ef5164464e2feae4c4803f0b5800d06cfd439",
      "parents": [
        "5b65c7043dada0c89d3a941742666ac40ea35746"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Nov 05 16:34:39 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Nov 05 16:34:39 2009 -0800"
      },
      "message": "Make AudioPlayer a little less verbose, defer starting audio playback until after the first video frame has been decoded (if there\u0027s video at all).\n"
    },
    {
      "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": "5b65c7043dada0c89d3a941742666ac40ea35746",
      "tree": "21290d7a1384e815ba02e812599f1e0fe918f619",
      "parents": [
        "d899d73308f987c932a4366977e67a3d8aa8bc8b"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Nov 05 12:04:22 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Nov 05 13:06:17 2009 -0800"
      },
      "message": "DO NOT MERGE: Squashed commit of the following:\n\ncommit 08259dd3dc9026887f9bbfedaf45866eb56ea9bc\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu Nov 5 12:02:31 2009 -0800\n\n    DO NOT MERGE: Use PV for metadata extraction even if stagefright is used for playback.\n\ncommit 991832fe4dc012e51d3d9ed8d647c7f09991858f\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu Nov 5 11:24:11 2009 -0800\n\n    DO NOT MERGE: Do not assert if we encounter OMX_StateInvalid. All bets are off though.\n\ncommit cec45cf302d9218fe79956cbe8a462d7ca3a10bb\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Oct 26 16:11:54 2009 -0700\n\n    DO NOT MERGE: 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\ncommit 34a1e885ef9113d68acbc26d36fcc47fdebbed84\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu Nov 5 11:10:49 2009 -0800\n\n    DO NOT MERGE: Fix heap corruptin in OMXNodeInstance.\n\ncommit 5a47f7439a1298b330541a7e4e647a8b44487388\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu Nov 5 11:08:19 2009 -0800\n\n    DO NOT MERGE: Fix seek-on-initial-read behaviour of OMXCodec.\n\ncommit 45bed64722501b9f411a2940aff5aff4cc4d2e98\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu Nov 5 11:02:23 2009 -0800\n\n    DO NOT MERGE: Renaming string.h to stagefright_string.h to avoid conflicts.\n\ncommit 6738e306a50196f31a73d4fc7b7c45faff639903\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu Oct 15 13:46:54 2009 -0700\n\n    DO NOT MERGE: Reimplement the OMX backend for stagefright.\n\n    Besides 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\n    Changed APIs to conform to the rest of the system.\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"
    }
  ],
  "next": "be5c74f5da6a93b0d23f96e11848acfcc3b4d1d9"
}
