)]}'
{
  "log": [
    {
      "commit": "41610c37763fcea076cce18de9f5b4c7d9c30ea6",
      "tree": "bcd154f48a74e0c21c46100e633203bc248cd24f",
      "parents": [
        "3991f099c643b718e78e0d938745ef2c5c431544",
        "8d65510a2e9ff7b64f2f35bfe3cd745a717c9533"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Sep 07 14:56:47 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 07 14:56:47 2011 -0700"
      },
      "message": "Merge \"Bug 5270905 fix MediaPlayer with IStreamSource\""
    },
    {
      "commit": "8d65510a2e9ff7b64f2f35bfe3cd745a717c9533",
      "tree": "f0c15ae37b71e36d332fc1666ff6d86f1b0aa0f3",
      "parents": [
        "d6e27296206b9f897401107f1c46f4ac2947be85"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Sep 07 14:40:23 2011 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Sep 07 14:42:37 2011 -0700"
      },
      "message": "Bug 5270905 fix MediaPlayer with IStreamSource\n\nChange-Id: Ia8a6381a6c88b4a0a1378aab03f5275f0fa1125a\n"
    },
    {
      "commit": "3991f099c643b718e78e0d938745ef2c5c431544",
      "tree": "2f3f4199ece39d20df417a83060a067701818303",
      "parents": [
        "74a0a0d7f766d63330a00c3fa8f133c44c1d5be6",
        "31292d99f62a812af691e67e8e732c6ae582ee08"
      ],
      "author": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Wed Sep 07 14:18:41 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 07 14:18:41 2011 -0700"
      },
      "message": "Merge \"Fixing bug in SurfaceMediaSource_test\""
    },
    {
      "commit": "74a0a0d7f766d63330a00c3fa8f133c44c1d5be6",
      "tree": "93fe5add97af3833cef442cf499c8eb3d501edf2",
      "parents": [
        "aa9dfd5d07534c29337b5c72022f7dfecd85deea"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Sep 07 11:05:43 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Sep 07 11:05:43 2011 -0700"
      },
      "message": "Apparently keyframe status in audio tracks of .webm/.mkv files is unreliable\n\nfortunately in all our supported audio encodings we can treat every frame as\na keyframe.\n\nChange-Id: I32f21d0077bbae7ef9efe725dd351baf531179e2\nrelated-to-bug: 5263837\n"
    },
    {
      "commit": "aa9dfd5d07534c29337b5c72022f7dfecd85deea",
      "tree": "be9c30397e3f4e7eaaadacc5d2af410ee58f48e9",
      "parents": [
        "d6e27296206b9f897401107f1c46f4ac2947be85",
        "e7484f36061a60aadadb01143d84964d931aa837"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Sep 07 09:05:04 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 07 09:05:04 2011 -0700"
      },
      "message": "Merge \"Stop metadata retriever from dereferencing a NULL pointer if\""
    },
    {
      "commit": "d6e27296206b9f897401107f1c46f4ac2947be85",
      "tree": "1c86967dc53b99661fdf4272d89f8ed681364dc2",
      "parents": [
        "a4f73a9e0e0863a567cc06defa0d9e0269388d4e"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Sep 06 19:18:43 2011 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Sep 06 19:18:43 2011 -0700"
      },
      "message": "Revert \"To make SniffMP3() more concrete so that we can remove false-positve responses from MPEG-PS streams.\"\n\nThis reverts commit 983ab88e117fcbda9370b8f4ba94271d37149672.\n\nrelated-to-bug: 5231309\n"
    },
    {
      "commit": "e7484f36061a60aadadb01143d84964d931aa837",
      "tree": "9b1fc82f1e573b3bc65a62b33a2dee31031034ba",
      "parents": [
        "2e3319a62be898e1f0405025d24962fc6a1a3f07"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 06 16:05:02 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 06 16:05:02 2011 -0700"
      },
      "message": "Stop metadata retriever from dereferencing a NULL pointer if\n\nthe media extractor failed to initialize (malformed or unsupported content)\n\nChange-Id: Icfad4e9eeb8d6713ad12eee7979ab30b696c06e0\nrelated-to-bug: 5263840\n"
    },
    {
      "commit": "a4f73a9e0e0863a567cc06defa0d9e0269388d4e",
      "tree": "464d68e33f1351796c60a2a0ff43ec696eb69e7b",
      "parents": [
        "2e3319a62be898e1f0405025d24962fc6a1a3f07",
        "408b8dc3c0a364c6f6b4991d15da9e6bcc2b8008"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 06 14:53:59 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 06 14:53:59 2011 -0700"
      },
      "message": "Merge \"Issue 5247986: Battery drain due to audio wakelock\""
    },
    {
      "commit": "408b8dc3c0a364c6f6b4991d15da9e6bcc2b8008",
      "tree": "f5f9885d8b86fc8073678962a8d38eec4ebef2a4",
      "parents": [
        "3a13fad63af40a8364fce796b1a54a8f0a2fbf32"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 06 12:36:15 2011 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 06 14:37:20 2011 -0700"
      },
      "message": "Issue 5247986: Battery drain due to audio wakelock\n\nThe problem occurs when activating or deactivating A2DP connection\nwhile SoudPool has a channel active. This can happen quite frequently now\nthat the UI sound effects are enabled by default.\nIf PCM data is remaining in the AudioTrack buffer when it is restroyed and\nre-created on the new AudioFlinger output thread, this data is flushed.\nAs a consequence, no underrun or request for new data callback is sent to\nSoundPool and the sound channel remains active for ever as the end of the\nsample is never detected.\n\nChange-Id: I13e0c11e4ce3f83bff7f58d347ca814b6a86712b\n"
    },
    {
      "commit": "2e3319a62be898e1f0405025d24962fc6a1a3f07",
      "tree": "160e7bf7076d06d64f9f00ada5ff1d2ce24234e3",
      "parents": [
        "adc857e80a1045897ebad85e691dc04451d364e3",
        "0662067b06658a4a56a8416c676f6cce8ccddb53"
      ],
      "author": {
        "name": "Dave Burke",
        "email": "daveburke@google.com",
        "time": "Tue Sep 06 13:06:20 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 06 13:06:20 2011 -0700"
      },
      "message": "Merge \"Handle setDataSource failures properly. #5261671\""
    },
    {
      "commit": "0662067b06658a4a56a8416c676f6cce8ccddb53",
      "tree": "5a1ed2dc243f4bd4727635a57153bfb0e65422ea",
      "parents": [
        "71b63e3ef687c379368be6b02e70bd2feb0b6b8d"
      ],
      "author": {
        "name": "Dave Burke",
        "email": "daveburke@google.com",
        "time": "Tue Sep 06 20:39:47 2011 +0100"
      },
      "committer": {
        "name": "Dave Burke",
        "email": "daveburke@google.com",
        "time": "Tue Sep 06 20:39:47 2011 +0100"
      },
      "message": "Handle setDataSource failures properly. #5261671\n\nChange-Id: Iea0aa474d1939db23da9aabdfae2081e834f30d9\n"
    },
    {
      "commit": "adc857e80a1045897ebad85e691dc04451d364e3",
      "tree": "a0fe509045d916e8c7dd853f63d3e8a72ade9f79",
      "parents": [
        "71b63e3ef687c379368be6b02e70bd2feb0b6b8d",
        "97857479de48fda4c33bb415b2fbb15193f768e8"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Sep 06 09:54:43 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 06 09:54:43 2011 -0700"
      },
      "message": "Merge \"Don\u0027t overwrite pending port setting change if there are more than one port setting change event.\""
    },
    {
      "commit": "31292d99f62a812af691e67e8e732c6ae582ee08",
      "tree": "908e6109ab6ae0b6d3bf79f6964aab1005b751d3",
      "parents": [
        "71b63e3ef687c379368be6b02e70bd2feb0b6b8d"
      ],
      "author": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Fri Sep 02 17:56:35 2011 -0700"
      },
      "committer": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Fri Sep 02 17:56:35 2011 -0700"
      },
      "message": "Fixing bug in SurfaceMediaSource_test\n\nThe test was making EGL calls once disconnected. Instead of calling\n\"disconnect\" directly on the Surface, and EGL calls should be made to that\neffect.\n\nChange-Id: I21468ac8cbc2cb3145a49269e32a884736cd452e\n"
    },
    {
      "commit": "71b63e3ef687c379368be6b02e70bd2feb0b6b8d",
      "tree": "999224e0be6a519fea200fb1f637d611e1e89d4c",
      "parents": [
        "3a13fad63af40a8364fce796b1a54a8f0a2fbf32"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 02 14:20:56 2011 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 02 15:59:50 2011 -0700"
      },
      "message": "Fix issue 5252593: any app can restart the runtime\n\nReplace null device address string by empty sting.\n\nChange-Id: I285c35f3345334e6d2190493b1a8a5aca1a361a4\n"
    },
    {
      "commit": "3a13fad63af40a8364fce796b1a54a8f0a2fbf32",
      "tree": "a99d1e91d87550a46a523acfc0734a72f56db917",
      "parents": [
        "d681bbb1767bed09415e050ba78975df214bcd68"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Sep 02 09:34:51 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Sep 02 09:34:51 2011 -0700"
      },
      "message": "Properly serialize access to FileSource::getSize by acquiring the mutex\n\nBoth ::getSize and ::read call into lseek64, if this happens simultaneously\nfrom multiple threads the results are undefined if not properly serialized.\n\nChange-Id: I737cafebd836f3d8eb702beac557b4731f69c6f6\nrelated-to-bug: 5196490\n"
    },
    {
      "commit": "d681bbb1767bed09415e050ba78975df214bcd68",
      "tree": "2030c617c61bbf7b6cd8c6bafab601a99b1ac83d",
      "parents": [
        "d942202ee0c92608c648735c3ad0f1bab4312420"
      ],
      "author": {
        "name": "Dave Burke",
        "email": "daveburke@google.com",
        "time": "Tue Aug 30 14:39:17 2011 +0100"
      },
      "committer": {
        "name": "Dave Burke",
        "email": "daveburke@google.com",
        "time": "Fri Sep 02 11:26:59 2011 +0100"
      },
      "message": "Require INTERNET permission for network-based content.\nBug #1870981\n\nChange-Id: Ia3ad166390c4d60cea19c3783895b078a2c4c15f\n"
    },
    {
      "commit": "97857479de48fda4c33bb415b2fbb15193f768e8",
      "tree": "c17c7c6fc443508a0a34db15e9ef566e02463a56",
      "parents": [
        "d942202ee0c92608c648735c3ad0f1bab4312420"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Sep 01 19:31:01 2011 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Sep 01 19:39:18 2011 -0700"
      },
      "message": "Don\u0027t overwrite pending port setting change if there are more than one port setting change event.\n\nChange-Id: I3413f5235b191031252aa3785f5aaef00caef1ce\nrelated-to-bug: 5122512\n"
    },
    {
      "commit": "d942202ee0c92608c648735c3ad0f1bab4312420",
      "tree": "9408506e1e119d84dec3661c0894fbcea3d2359e",
      "parents": [
        "5403129e2a2f44620f2ac8109889e5a61be08732",
        "02f6e988107bc13ebe4828b734ea0fc3d9d11ae0"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Sep 01 12:20:23 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 01 12:20:24 2011 -0700"
      },
      "message": "Merge \"Guard the audio notifications with a separate lock to avoid deadlocks during reset.\""
    },
    {
      "commit": "02f6e988107bc13ebe4828b734ea0fc3d9d11ae0",
      "tree": "33ae71e49d527dba2905559879002be3d48a580b",
      "parents": [
        "a8e409f8f9b40737d0b03355894b5e141d0aff6b"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Sep 01 11:39:11 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Sep 01 11:39:11 2011 -0700"
      },
      "message": "Guard the audio notifications with a separate lock to avoid deadlocks during reset.\n\nChange-Id: I9a97372e1f777d1cbd6774cac2ed34b4b8cd9392\nrelated-to-bug: 5179827\n"
    },
    {
      "commit": "5403129e2a2f44620f2ac8109889e5a61be08732",
      "tree": "7d4d6e9ccde89e3c3087d9a0d92ac8eea31024b9",
      "parents": [
        "a8e409f8f9b40737d0b03355894b5e141d0aff6b"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Sep 01 11:04:43 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Sep 01 11:04:43 2011 -0700"
      },
      "message": "Signal an error when encountering a malformed .ts stream.\n\nChange-Id: I3ab0215419214b652573945403eb45eb09d41aff\nrelated-to-bug: 5114811\n"
    },
    {
      "commit": "a8e409f8f9b40737d0b03355894b5e141d0aff6b",
      "tree": "8799a5eecc61038ccf054d905ca3f4492ae18f30",
      "parents": [
        "77d2e08add3ba24fdc527809408028efe3e06b6b"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Tue Aug 30 21:33:10 2011 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu Sep 01 13:37:14 2011 +0800"
      },
      "message": "Add video snapshot camera parameter.\n\nThe API is still hidden.\n\nbug:5187868\n\nChange-Id: I59e1b5774ca32be049723d1a0887faa90d8884bb\n"
    },
    {
      "commit": "77d2e08add3ba24fdc527809408028efe3e06b6b",
      "tree": "2d6f5f9ee01d04bce87cea84bf83e22da9d2c759",
      "parents": [
        "aec548b979f3d64712e8aa84cffdc4b7f094a798",
        "ed362eccc7eabc669f9f39169e26662a7215d198"
      ],
      "author": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Wed Aug 31 22:00:35 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 31 22:00:35 2011 -0700"
      },
      "message": "Merge \"Incr. MIN_UNDEQUEUED_BUFFERS in SurfaceMediaSource\""
    },
    {
      "commit": "ed362eccc7eabc669f9f39169e26662a7215d198",
      "tree": "c62947ab463db709bd3dde9c1fd3eb2f42cc13a1",
      "parents": [
        "d2824a9a392e02a09929a34f0a3dad41ac1faacf"
      ],
      "author": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Mon Aug 29 19:53:51 2011 -0700"
      },
      "committer": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Wed Aug 31 17:43:24 2011 -0700"
      },
      "message": "Incr. MIN_UNDEQUEUED_BUFFERS in SurfaceMediaSource\n\nThe buffers in SurfaceMediaSource were 4 earlier, whereas\nwe need 5 for one of the devices.\n\nChange-Id: I87bf5e28bbb0f7c9661dc01b040baa903d95d2c2\n"
    },
    {
      "commit": "aec548b979f3d64712e8aa84cffdc4b7f094a798",
      "tree": "db85875efd52fd8893b9a033b5bb529d79ccdeba",
      "parents": [
        "ef96bbce63da03bc0f0ad86174567cfdd5990c1b",
        "06528d7f18ad01377357d337eaa3e875a242bd2d"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 31 16:44:49 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 31 16:44:49 2011 -0700"
      },
      "message": "Merge \"I have one HLS stream that switches stream PIDs from one bandwidth to the next\""
    },
    {
      "commit": "ef96bbce63da03bc0f0ad86174567cfdd5990c1b",
      "tree": "a7998dbad6111fc7e4c2bf2ae6940f5df5ca3bf9",
      "parents": [
        "c6b551541a6abd68bc3f3add07c196be4badccf3",
        "18ac5407da14dad9731f40ffc9a56bee73830019"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 31 16:44:43 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 31 16:44:43 2011 -0700"
      },
      "message": "Merge \"Discontinuities are only signalled on streams that have been identified, i.e.\""
    },
    {
      "commit": "06528d7f18ad01377357d337eaa3e875a242bd2d",
      "tree": "c08f45ba206b07b864f7a153f65fc739ae51fe1c",
      "parents": [
        "18ac5407da14dad9731f40ffc9a56bee73830019"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 31 16:29:05 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 31 16:29:05 2011 -0700"
      },
      "message": "I have one HLS stream that switches stream PIDs from one bandwidth to the next\n\nthis change intends to support its very limited case and signals an error in\nall other cases of unexpected PID changes that we cannot recover from.\n\nChange-Id: Icbfdf9fe7461969e2a8781ed416f54d891dd789a\n"
    },
    {
      "commit": "18ac5407da14dad9731f40ffc9a56bee73830019",
      "tree": "f7574b9ebd7cd610f873d064a0dee23a32b16a4b",
      "parents": [
        "935456794a8d572368ebe942d13451f7d71a9f4e"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 31 15:04:25 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 31 15:35:49 2011 -0700"
      },
      "message": "Discontinuities are only signalled on streams that have been identified, i.e.\n\nthose that have a queue. This ensures that the player doesn\u0027t observe discontinuities\nthat don\u0027t match up across streams.\n\nAlso, make sure output buffers arriving from the decoder to be rendered are sent\nback to the decoder if we started flushing.\n\nFinally, don\u0027t parse TS packets for streams we don\u0027t support. And don\u0027t allocate\nmemory for them.\n\nChange-Id: I708e0de4cba8110a62e4c8ceb1e5702430d5d2bb\n"
    },
    {
      "commit": "c6b551541a6abd68bc3f3add07c196be4badccf3",
      "tree": "4ec2977ddb7f547186869772b2b882b96d2a1732",
      "parents": [
        "f11b37bc9c92380cafadad7c8988f170687b8dfe",
        "21fcf0830c8b4fb544a09467bc96a8d0463ad966"
      ],
      "author": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Wed Aug 31 15:09:26 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 31 15:09:26 2011 -0700"
      },
      "message": "Merge \"Update SurfaceMediaSource_test to not use pbuffer configs\""
    },
    {
      "commit": "f11b37bc9c92380cafadad7c8988f170687b8dfe",
      "tree": "f7a13b041ec50ecb7dfc50be4f850e6fb03660eb",
      "parents": [
        "af6764da53c022768290e735bbcc3088bec333d8",
        "e8eb2f4f0f8eff0313a27892ab8514223553d943"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Aug 31 14:17:18 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 31 14:17:18 2011 -0700"
      },
      "message": "Merge \"Fix a crash where the EOS was signalled but some output buffer were still pending.\""
    },
    {
      "commit": "af6764da53c022768290e735bbcc3088bec333d8",
      "tree": "9b98de8360b386d35e90f14fb256875aac963361",
      "parents": [
        "e31f4f78729f66b3a90f51671ad557b551ed0bea",
        "df4a59c61103e7e0e9332e167a0be67da5d82ff3"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Aug 31 13:41:06 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 31 13:41:06 2011 -0700"
      },
      "message": "Merge \"Fix SurfaceMediaSource timestamp handling.\""
    },
    {
      "commit": "e31f4f78729f66b3a90f51671ad557b551ed0bea",
      "tree": "349610917fc80daee815b848e58a0ae5cf3fefae",
      "parents": [
        "935456794a8d572368ebe942d13451f7d71a9f4e",
        "5b75fdc8fbc026453888cbb2d3fe31345394618b"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Wed Aug 31 10:37:48 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 31 10:37:48 2011 -0700"
      },
      "message": "Merge \"Stop the AudioSource in reset() of AwesomePlayer if AudioSource is not NULL and AudioPlayer was not started. Fix for 5236419.\""
    },
    {
      "commit": "5b75fdc8fbc026453888cbb2d3fe31345394618b",
      "tree": "64023538fcbc1dcee5a89bbdf70db6d63c600d7b",
      "parents": [
        "b76e90de3c64626fe07a68469d0a59a31c8efb6b"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Wed Aug 31 10:24:18 2011 -0700"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Wed Aug 31 10:24:18 2011 -0700"
      },
      "message": "Stop the AudioSource in reset() of AwesomePlayer if AudioSource is not NULL\nand AudioPlayer was not started.\nFix for 5236419.\n\nChange-Id: I5eadd069118c3533a19b5d6f6dca2ce16d8505fb\n"
    },
    {
      "commit": "935456794a8d572368ebe942d13451f7d71a9f4e",
      "tree": "28f8cdfb4d2a1be1086d9b13adc4970128625ede",
      "parents": [
        "c3d8f74cda26197ec9066374fe31abe9ee77c1b1",
        "c4c17d47b674b425fb6c399822c0ab3258543c0a"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 31 09:44:57 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 31 09:44:57 2011 -0700"
      },
      "message": "Merge \"ATSParser now supports a mode in which PTS is considered to be absolute time\""
    },
    {
      "commit": "21fcf0830c8b4fb544a09467bc96a8d0463ad966",
      "tree": "5ebd613fe21d3b020126fe248f699f05fef2b362",
      "parents": [
        "790332a3170f967d58cee5d89cc92be8205d9aa3"
      ],
      "author": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Tue Aug 30 19:10:54 2011 -0700"
      },
      "committer": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Tue Aug 30 22:36:41 2011 -0700"
      },
      "message": "Update SurfaceMediaSource_test to not use pbuffer configs\n\nSurfaceMediaSource_test now does not use pbuffer configs\nto create a surface. Always uses a window config.\nAlso, cleaned up the test a bit.\n\nChange-Id: Idda40dcb8474249eccaa8d2dad20ee840d2dd484\n"
    },
    {
      "commit": "c3d8f74cda26197ec9066374fe31abe9ee77c1b1",
      "tree": "3ae10f50402ac74a72001880131a7a0e40b66905",
      "parents": [
        "b76e90de3c64626fe07a68469d0a59a31c8efb6b",
        "8343f2c317b48f9b9827781b16a5c9fd31743826"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 30 19:24:04 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 30 19:24:04 2011 -0700"
      },
      "message": "Merge \"fix Surface positions are not floats\""
    },
    {
      "commit": "8343f2c317b48f9b9827781b16a5c9fd31743826",
      "tree": "dcc878af2cf5c119c029b6f51b6c68fa431e3b85",
      "parents": [
        "63970b42f101c87db7cfd26d43b0d300260b1582"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 30 18:51:54 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 30 18:51:54 2011 -0700"
      },
      "message": "fix Surface positions are not floats\n\nAdded Surface.setPosition(float, float) which allows to set a surface\u0027s\nposition in float.\n\nBug: 5239859\nChange-Id: I903aef4ad5b5999142202fb8ea30fe216d805711\n"
    },
    {
      "commit": "e8eb2f4f0f8eff0313a27892ab8514223553d943",
      "tree": "e876f82be05fd6d783301ca9a31f2157c6a79127",
      "parents": [
        "13e6dfbd77a6e2c2832cbfe6dc66f3db8716538b"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Aug 30 17:06:10 2011 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Aug 30 17:06:10 2011 -0700"
      },
      "message": "Fix a crash where the EOS was signalled but some output buffer were still pending.\n\nChange-Id: Ide111264501441b51bb10629ae2021accf9e1fb5\nrelated-to-bug: 5234126\n"
    },
    {
      "commit": "c4c17d47b674b425fb6c399822c0ab3258543c0a",
      "tree": "7e41c2ed3db28d1c61ddd28175b19c2d954f3549",
      "parents": [
        "13e6dfbd77a6e2c2832cbfe6dc66f3db8716538b"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Aug 30 16:06:28 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Aug 30 16:06:28 2011 -0700"
      },
      "message": "ATSParser now supports a mode in which PTS is considered to be absolute time\n\ni.e. PTS 0 \u003c\u003d\u003e media time 0\n\nChange-Id: If10a0f98c129b95e8430dc419664b1def92e547e\n"
    },
    {
      "commit": "b76e90de3c64626fe07a68469d0a59a31c8efb6b",
      "tree": "b8ced112fa7e83a34898679552a26744610ce0e1",
      "parents": [
        "1619f3d3428e9d502dc477d31e0681fe1cd12b89",
        "9f6530f53ae9eda43f4e7c1cb30d2379db00aa00"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Aug 30 10:51:54 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 30 10:51:54 2011 -0700"
      },
      "message": "Merge \"226483: A2DP connected, but music out to speaker\""
    },
    {
      "commit": "df4a59c61103e7e0e9332e167a0be67da5d82ff3",
      "tree": "2f87a701a3c76fc553c4383d1c913ba867d0bcfa",
      "parents": [
        "1b5a697dc5435c76447eb5a2de373f5acdda119e"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Mon Aug 29 18:16:03 2011 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Aug 30 10:49:15 2011 -0700"
      },
      "message": "Fix SurfaceMediaSource timestamp handling.\n\nWas not basing timestamps on startTimeUs.\nNow synchronizes properly with audio.\n\nBug: 4510826\nChange-Id: I613db0aa91e51fc75d120e65540e742d8ab2ae43\n"
    },
    {
      "commit": "9f6530f53ae9eda43f4e7c1cb30d2379db00aa00",
      "tree": "663430f29fec8c038ad2770e2640c9480c0e2251",
      "parents": [
        "d2824a9a392e02a09929a34f0a3dad41ac1faacf"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Aug 30 10:18:54 2011 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Aug 30 10:19:38 2011 -0700"
      },
      "message": "226483: A2DP connected, but music out to speaker\n\nWhen the A2DP headset is connected, there is a possible\nrace condition when the audio tracks are moved from\nthe mixer thread attached to the speaker output to the thread\nattached to A2DP output.\nAs the request to clear the stream type to output mapping cache in\nthe client process is asynchronous, it is possible that the flag\nindicating to the client audio track to re-create the IAudioTrack\non the new thread is processed before the cache is invalidated.\nIn this case, the track will be attached to the old thread and\nmusic will continue playing over the device speaker instead of being\nredirected to A2DP headset.\n\nChange-Id: Ib2ce1eb5320eaff83287b93779061bf4e7a330df\n"
    },
    {
      "commit": "1619f3d3428e9d502dc477d31e0681fe1cd12b89",
      "tree": "61b0a9c48624ecad9b03a2512ac484f1c660a8d8",
      "parents": [
        "13e6dfbd77a6e2c2832cbfe6dc66f3db8716538b",
        "bf4c48bc678c8f531f39f0b48755967d844ad581"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Aug 30 09:06:36 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 30 09:06:36 2011 -0700"
      },
      "message": "Merge \"Bug 5156756 Fix AAC ADTS header size computation\""
    },
    {
      "commit": "bf4c48bc678c8f531f39f0b48755967d844ad581",
      "tree": "8b48c85ea1bb59a7c6833135f77d723330e150da",
      "parents": [
        "1b5a697dc5435c76447eb5a2de373f5acdda119e"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Aug 29 14:06:51 2011 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Aug 29 18:56:55 2011 -0700"
      },
      "message": "Bug 5156756 Fix AAC ADTS header size computation\n\nThis previous frame size computation code had two incorrect\n assumptions:\n 1/ the ADTS frame length value already contains the header size\n 2/ the ADTS header is not of fixed size: it is 2 bytes bigger\n  if it contains the CRC value.\nFor 1/, the code worked because when the header size was added\n to the frame size, the + operator is of stronger precedence\n than the ? operator, so the size added was always 0 (instead\n of ADTS_HEADER_LENGTH.\nFor 2/, the code worked as long as there was no CRC in the ADTS\n data.\n\nThe fix consists in:\n - documenting what the frame length computation code returns\n - fixing the frame length computation\n - when computing the frame length, also returning the header\n  size so the correct data can be sent to the decoder.\n\nChange-Id: I92df72a9e531f594f762e63d62f9dee7b0109904\n"
    },
    {
      "commit": "13e6dfbd77a6e2c2832cbfe6dc66f3db8716538b",
      "tree": "00737e1c8fe6e23c35e00879b0455beb84b38976",
      "parents": [
        "63970b42f101c87db7cfd26d43b0d300260b1582",
        "bee5337da7659b3b7128622ba1f42618b11df5be"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Aug 29 15:12:41 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 29 15:12:41 2011 -0700"
      },
      "message": "Merge \"Audioflinger: reverse logic of BT NREC indication\""
    },
    {
      "commit": "bee5337da7659b3b7128622ba1f42618b11df5be",
      "tree": "523c43a148debb18c5d0f2c8a7b8bf1c62cf920f",
      "parents": [
        "d2824a9a392e02a09929a34f0a3dad41ac1faacf"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Aug 29 12:42:48 2011 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Aug 29 14:50:38 2011 -0700"
      },
      "message": "Audioflinger: reverse logic of BT NREC indication\n\nThe interpretation of BT NREC by AudioFlinger to enable\nor disable AEC and NS was wrong: NREC to ON (default) means\nthe phone (Audio Gateway) must enable local AEC and NS.\n\nChange-Id: I88a264e7fc9831c43bbace4f6b585baec73f2006\n"
    },
    {
      "commit": "63970b42f101c87db7cfd26d43b0d300260b1582",
      "tree": "5e358f4f34709bc1663723fc094b7d888b7a86d9",
      "parents": [
        "1b5a697dc5435c76447eb5a2de373f5acdda119e"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Aug 29 13:01:23 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Aug 29 13:01:23 2011 -0700"
      },
      "message": "Return an error to the client instead of asserting if decoder instantiation fails\n\nafter a surface change.\n\nChange-Id: Ic7758cbeb107032db68a1c3b8e2984710a12dd8b\nrelated-to-bug: 5212725\n"
    },
    {
      "commit": "1b5a697dc5435c76447eb5a2de373f5acdda119e",
      "tree": "1e773337b864ca9dc065a94b65a5278dffe858a4",
      "parents": [
        "c7de3f6bbaa6c1b8b334574fad34d583e3a67f5d",
        "cb67cd1b51ff9ab221e3124cf7e546515fef3c87"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Aug 29 08:10:56 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 29 08:10:56 2011 -0700"
      },
      "message": "Merge \"Signal errors to the client instead of asserting in ACodec.\""
    },
    {
      "commit": "c7de3f6bbaa6c1b8b334574fad34d583e3a67f5d",
      "tree": "3dce6ee437fc2372ff1d1787d2bd7b6dbfd3bea9",
      "parents": [
        "6004f2dc9af4088e34cc72b1ac3c4a3c5cd4ae14",
        "f76e1672c674620cb056f338a25ee4826d55dfcb"
      ],
      "author": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Sun Aug 28 14:40:26 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Aug 28 14:40:26 2011 -0700"
      },
      "message": "Merge \"Default W, H allowed in SurfaceMediaSource dequeue\""
    },
    {
      "commit": "6004f2dc9af4088e34cc72b1ac3c4a3c5cd4ae14",
      "tree": "a46bbb26c3283307ff30d7715b21b2d22e758693",
      "parents": [
        "f4b25b1dca4f1798c6f3f989be0738258d6504de",
        "790332a3170f967d58cee5d89cc92be8205d9aa3"
      ],
      "author": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Fri Aug 26 20:05:58 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 26 20:05:58 2011 -0700"
      },
      "message": "Merge \"Modify enum value of OMX_COLOR_FormatAndroidOpaque\""
    },
    {
      "commit": "f4b25b1dca4f1798c6f3f989be0738258d6504de",
      "tree": "73239e058f52997caedc64ec4c64120e6a24fa34",
      "parents": [
        "d2824a9a392e02a09929a34f0a3dad41ac1faacf",
        "5410afcbb0af5d29d9f710a1c2978c500f9792dc"
      ],
      "author": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Fri Aug 26 20:01:46 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 26 20:01:46 2011 -0700"
      },
      "message": "Merge \"Fixing small syntax error in MPEG4 logging\""
    },
    {
      "commit": "790332a3170f967d58cee5d89cc92be8205d9aa3",
      "tree": "738c602c4d2bb7f3576bd113d6c22913196cfc26",
      "parents": [
        "0b293e76c8fe4e973ccd8a872bc5320ba28d49cc"
      ],
      "author": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Fri Aug 26 19:34:49 2011 -0700"
      },
      "committer": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Fri Aug 26 19:38:13 2011 -0700"
      },
      "message": "Modify enum value of OMX_COLOR_FormatAndroidOpaque\n\nThe enum value chosen earlier had a conflict with one of the vendors.\n\nChange-Id: I47832dd1157447f89324d56e8ab146260cd7927c\n"
    },
    {
      "commit": "5410afcbb0af5d29d9f710a1c2978c500f9792dc",
      "tree": "7152c0a5df13b75dc8bf01939857485b0bbe539a",
      "parents": [
        "0b293e76c8fe4e973ccd8a872bc5320ba28d49cc"
      ],
      "author": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Fri Aug 26 19:17:20 2011 -0700"
      },
      "committer": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Fri Aug 26 19:18:57 2011 -0700"
      },
      "message": "Fixing small syntax error in MPEG4 logging\n\nFound that the build was breaking when the logging was enabled in\nMPEG4Writer. Fixed.\n\nChange-Id: I62c5e6d16b2ecf5644c8d46b9bbcca68a797b223\n"
    },
    {
      "commit": "cb67cd1b51ff9ab221e3124cf7e546515fef3c87",
      "tree": "9bc33d4f184b31279929c4f59544444fe5442984",
      "parents": [
        "8d9d585ce5b1aa284289a27dda048c6317b104e7"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Aug 26 16:02:19 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Aug 26 16:02:19 2011 -0700"
      },
      "message": "Signal errors to the client instead of asserting in ACodec.\n\nAlso make sure NuPlayer can properly shutdown in certain edge cases.\n\nChange-Id: Iceb16d600d87ba66c802e60e95bf62f66487a453\n"
    },
    {
      "commit": "d2824a9a392e02a09929a34f0a3dad41ac1faacf",
      "tree": "ded4154b1d5b77344a9be3ed6b31433f12d71b06",
      "parents": [
        "0b293e76c8fe4e973ccd8a872bc5320ba28d49cc",
        "5df775d2f509c76e76a46615fca83dba95299f6e"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Aug 26 13:47:26 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 26 13:47:26 2011 -0700"
      },
      "message": "Merge \"Support for posting messages and synchronously waiting for a response.\""
    },
    {
      "commit": "0b293e76c8fe4e973ccd8a872bc5320ba28d49cc",
      "tree": "97ec0fe2c847cd7b7f75fe9819de2c19a3d68e8d",
      "parents": [
        "8d9d585ce5b1aa284289a27dda048c6317b104e7"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Aug 26 11:26:25 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Aug 26 11:26:25 2011 -0700"
      },
      "message": "Properly reset the number of frames we think we\u0027ve written to the audio sink\n\nin order to compute the final delay before posting end-of-stream correctly.\n\nChange-Id: I4ff6d7142fdf1ea2d19d12ec78c1e84322d22e5f\nrelated-to-bug: 5216930\n"
    },
    {
      "commit": "8d9d585ce5b1aa284289a27dda048c6317b104e7",
      "tree": "5965c0970a4d18dfec1d9563ad702058a5e80b5b",
      "parents": [
        "24245683b9285b0b53c8900f088cf146000501c4",
        "cd07594333cbe8b2c86c6609cce01a74d6cc33f8"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Aug 25 17:41:46 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 25 17:41:46 2011 -0700"
      },
      "message": "Merge \"Bug 4364249 Play position is 0 after flushing AudioTrack\""
    },
    {
      "commit": "cd07594333cbe8b2c86c6609cce01a74d6cc33f8",
      "tree": "70b1b94cb811f564e8fe0c6ec348469adaae5f3c",
      "parents": [
        "539a735a82fefb1944aa6135df73dfe9f541566c"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Aug 25 16:47:23 2011 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Aug 25 17:33:49 2011 -0700"
      },
      "message": "Bug 4364249 Play position is 0 after flushing AudioTrack\n\nAudioTrack::stop() is not synchronous, so a stop() followed\n by flush(), which is synchronous, will not always report\n a playhead position of 0 after being called.\nThis CL adds a flag to mark a track as flushed, and report the\n correct playhead position in this state.\nBug 5217011 has been created to address the real issue in the\n future, where flush could be made synchronous, to properly\n address bug 4364249.\n\nChange-Id: Icf989d41a6bcd5985bb87764c287f3edb7e26d12\n"
    },
    {
      "commit": "5df775d2f509c76e76a46615fca83dba95299f6e",
      "tree": "1062b747ad85433dec6dca2093fafb8d2a6d89a7",
      "parents": [
        "24245683b9285b0b53c8900f088cf146000501c4"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Aug 25 16:09:06 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Aug 25 16:28:18 2011 -0700"
      },
      "message": "Support for posting messages and synchronously waiting for a response.\n\nChange-Id: Id6c7a08c34fd5cb6c4632f78ece9e7898b29e52c\n"
    },
    {
      "commit": "24245683b9285b0b53c8900f088cf146000501c4",
      "tree": "43b77e68322df454e3b18a7e7bd43a91937eb0e7",
      "parents": [
        "9a82f8acd4138fe920e91bd73e0041d52b2db237",
        "9a442c1b9a051edc6d4ceb0daad2d0a8433e7b0b"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Aug 25 13:40:16 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 25 13:40:16 2011 -0700"
      },
      "message": "Merge \"When encountering a discontinuity, flush(clear) all content enqueued up to that\""
    },
    {
      "commit": "9a442c1b9a051edc6d4ceb0daad2d0a8433e7b0b",
      "tree": "d64a141b01e4355335e755174b9cb30997f35d3a",
      "parents": [
        "934d865a807e149b97d11b54c674d421b51bbe8a"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Aug 25 12:21:26 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Aug 25 13:37:34 2011 -0700"
      },
      "message": "When encountering a discontinuity, flush(clear) all content enqueued up to that\n\npoint except previously enqueued discontinuities.\n\nChange-Id: Id04a559dc062fa4a5c80c599ad74bf81a543de01\nrelated-to-bug: 5201378\n"
    },
    {
      "commit": "9a82f8acd4138fe920e91bd73e0041d52b2db237",
      "tree": "4ccc13095368e10c7d30b185b86d1a041bbff165",
      "parents": [
        "934d865a807e149b97d11b54c674d421b51bbe8a",
        "1a49a13f20a06c2b58b97ad311a90d8eb0956052"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Thu Aug 25 10:28:50 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 25 10:28:50 2011 -0700"
      },
      "message": "Merge \"Set mSeekNotificationSent as false for RTSP seeking. Fix for bug 5208736.\""
    },
    {
      "commit": "1a49a13f20a06c2b58b97ad311a90d8eb0956052",
      "tree": "7539a13cc9f76ccbe2e96137a1a446f39eabb696",
      "parents": [
        "50bb96ca6d19846b20b8016cf020e6a3a80e495e"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Thu Aug 25 10:09:34 2011 -0700"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Thu Aug 25 10:09:34 2011 -0700"
      },
      "message": "Set mSeekNotificationSent as false for RTSP seeking.\nFix for bug 5208736.\n\nChange-Id: Ib1d74608ec289509082d8dcad080769f48098853\n"
    },
    {
      "commit": "934d865a807e149b97d11b54c674d421b51bbe8a",
      "tree": "8c17a110e17439ec92765fc6083655414bbceae4",
      "parents": [
        "539a735a82fefb1944aa6135df73dfe9f541566c",
        "9197441e59be323e2f6f0c6506f7248eb6a944b2"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Aug 25 08:12:11 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 25 08:12:11 2011 -0700"
      },
      "message": "Merge \"When Camera is launched by media recording framework, stagefright controls the stop and release.\""
    },
    {
      "commit": "9197441e59be323e2f6f0c6506f7248eb6a944b2",
      "tree": "254c9d5d6510e2c25c6879af324555b26a7769d1",
      "parents": [
        "3281e721c785304613c44853fc506b43cfea343c"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Aug 24 19:50:36 2011 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Aug 24 19:50:36 2011 -0700"
      },
      "message": "When Camera is launched by media recording framework, stagefright controls the stop and release.\n\nChange-Id: Ic79a60dad0f617a845211d3fbe146c1648a71da3\nrelated-to-bug: 5205804\n"
    },
    {
      "commit": "539a735a82fefb1944aa6135df73dfe9f541566c",
      "tree": "8bf1247fa8ebac7e76a38ccbb141914be63aad00",
      "parents": [
        "1797e5d00e0ba4048c2258f091e6fd80748aa0ad",
        "84f74fbfeec81eb59e874660fd52ad42820ea8a2"
      ],
      "author": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Wed Aug 24 18:57:35 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 24 18:57:35 2011 -0700"
      },
      "message": "Merge \"Port setting change should happen before receiving any filled frame.\""
    },
    {
      "commit": "f76e1672c674620cb056f338a25ee4826d55dfcb",
      "tree": "d09da6ba0e48617adc7a7ccd12f6dd9f3c26492b",
      "parents": [
        "ed422aa0dfab77312d25d52e7f204744ba16dc27"
      ],
      "author": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Wed Aug 24 17:39:09 2011 -0700"
      },
      "committer": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Wed Aug 24 17:51:05 2011 -0700"
      },
      "message": "Default W, H allowed in SurfaceMediaSource dequeue\n\nThe client does not have to send (w, h) \u003d (0,0) in dequeuebuffer. It can\nset the same w, h as the default width and height.\n\nChange-Id: I8202f90261ccaebbd35ea28c153a7472f01912f1\n"
    },
    {
      "commit": "1797e5d00e0ba4048c2258f091e6fd80748aa0ad",
      "tree": "1b062f277b2cd983b01e64276e1207dcbfae3a92",
      "parents": [
        "3281e721c785304613c44853fc506b43cfea343c",
        "0c5c7d2b119d2350c186ae9902919bcf28c3e277"
      ],
      "author": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Wed Aug 24 15:18:07 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 24 15:18:07 2011 -0700"
      },
      "message": "Merge \"Testing the GL/ CPU encoding w/ Gralloc buffers\""
    },
    {
      "commit": "0c5c7d2b119d2350c186ae9902919bcf28c3e277",
      "tree": "c9d61e6ca1f259cb873289ed92d838b9d335d6b5",
      "parents": [
        "ed422aa0dfab77312d25d52e7f204744ba16dc27"
      ],
      "author": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Thu Aug 18 21:53:02 2011 -0700"
      },
      "committer": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Wed Aug 24 13:57:46 2011 -0700"
      },
      "message": "Testing the GL/ CPU encoding w/ Gralloc buffers\n\nThis is the test for Gralloc buffers based encoding.\ncontains a combination of two main changes:\n\n1. GL based encoding tests added to SurfaceMediaSource_test\n\n2. SurfaceMediaSource ::read() colorformat\n\nThe SurfaceMediaSource::getformat() sets it to OMX_COLOR_FormatAndroidOpaque.\nThe omx encoder needs to interpret that colorformat and reads the format\nfrom the Gralloc buffers directly\n\nChange-Id: Iee2fe8901384109a4952e1d6c528c59eb01eb5b1\n"
    },
    {
      "commit": "3281e721c785304613c44853fc506b43cfea343c",
      "tree": "27e3191b3c45326991d2fe24ea441fabfe6e9b37",
      "parents": [
        "ed422aa0dfab77312d25d52e7f204744ba16dc27",
        "97f2fb5bc753f021bfa51f58129bc1a36c047c47"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Aug 23 18:06:16 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 23 18:06:16 2011 -0700"
      },
      "message": "Merge \"To make SniffMP3() more concrete so that we can remove false-positve responses from MPEG-PS streams.\""
    },
    {
      "commit": "ed422aa0dfab77312d25d52e7f204744ba16dc27",
      "tree": "bd4499edf95a8dec8de1a125f643869f80d1ba40",
      "parents": [
        "0e8f3d8060cecfa2046a421c120cb5d0320423ca",
        "eca1762d92c43f2b7836941d14e453d4c0f9ed99"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Aug 23 10:32:35 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 23 10:32:35 2011 -0700"
      },
      "message": "Merge \"We were accidentally sending out an output buffer before the final port settings change\""
    },
    {
      "commit": "eca1762d92c43f2b7836941d14e453d4c0f9ed99",
      "tree": "883a5c050322b2c1954917ec4d50729321c8780a",
      "parents": [
        "8c32b164d00d3e4d73764d06956331f09693ef43"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Aug 23 10:21:34 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Aug 23 10:22:49 2011 -0700"
      },
      "message": "We were accidentally sending out an output buffer before the final port settings change\n\nChange-Id: I4de0d3c377bb12e59524ed370ab3ed0b9a9b70a6\nrelated-to-bug: 5122512\n"
    },
    {
      "commit": "0e8f3d8060cecfa2046a421c120cb5d0320423ca",
      "tree": "073a1a1702af0b691837c33ea41ef197d27e5126",
      "parents": [
        "8c32b164d00d3e4d73764d06956331f09693ef43",
        "a1884f9e9ec3836683efd7eb333ee442e8bc9d56"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Aug 23 08:42:59 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 23 08:42:59 2011 -0700"
      },
      "message": "Merge \"AudioFlinger: add check for audio HAL init failure\""
    },
    {
      "commit": "a1884f9e9ec3836683efd7eb333ee442e8bc9d56",
      "tree": "08eb0f2c471d07c21a6b6590cadced3b60d79a5a",
      "parents": [
        "2edd41583bb8c2b90c332980e0d1c34ae9ede34e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Aug 23 08:25:03 2011 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Aug 23 08:25:03 2011 -0700"
      },
      "message": "AudioFlinger: add check for audio HAL init failure\n\nDo not call audio HAL functions on the primary HW interface\nif it could not be initialized properly.\n\nChange-Id: If54059c8fd188d6c1686f9e0439994fe9411478a\n"
    },
    {
      "commit": "84f74fbfeec81eb59e874660fd52ad42820ea8a2",
      "tree": "815cd9a26c8be7bc1ca359bee0b844dc5894ebb8",
      "parents": [
        "8c32b164d00d3e4d73764d06956331f09693ef43"
      ],
      "author": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Mon Aug 22 20:11:31 2011 +0800"
      },
      "committer": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Tue Aug 23 11:18:05 2011 +0800"
      },
      "message": "Port setting change should happen before receiving any filled frame.\n\nChange-Id: I12a54b80e7ef958b6d451b7add110d38f05ec439\n"
    },
    {
      "commit": "8c32b164d00d3e4d73764d06956331f09693ef43",
      "tree": "9d51b06b8174e7ec7a9f2bf2025b002e1bd07937",
      "parents": [
        "2edd41583bb8c2b90c332980e0d1c34ae9ede34e"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Aug 22 13:21:26 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Aug 22 13:21:26 2011 -0700"
      },
      "message": "The MatroskaExtractor will now publish a different mime-type \"video/webm\" if\n\nthe doctype of the matroska file indicates that it is a webm file.\n\nChange-Id: I467f597690a841043ecd11d2a2cae93351820f1b\nrelated-to-bug: 5042137\n"
    },
    {
      "commit": "2edd41583bb8c2b90c332980e0d1c34ae9ede34e",
      "tree": "1544d712897a8b92a00cefa92249251816deda4b",
      "parents": [
        "759f2893897c7b7a4822923d8d8ac13eec712b26",
        "2e17686223bad35101c23083dc79f1d12f3ff429"
      ],
      "author": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Sun Aug 21 19:19:01 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Aug 21 19:19:01 2011 -0700"
      },
      "message": "Merge \"Remove useAndroidNativeBuffer(2) warning message.\""
    },
    {
      "commit": "759f2893897c7b7a4822923d8d8ac13eec712b26",
      "tree": "13db15d53678fa6fe71d3dd8bd9458a28c56ca89",
      "parents": [
        "f764f8c0625762d98eacadb582c7308dba1c7b79",
        "8f74b712fbf5c24de8bc799b7129dc802747a6f4"
      ],
      "author": {
        "name": "Rajneesh Chowdury",
        "email": "rajneeshc@google.com",
        "time": "Fri Aug 19 15:01:11 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 19 15:01:11 2011 -0700"
      },
      "message": "Merge \"Fix for 4142219 Don\u0027t hard code platform-specific limitations (Jni/ Java)\""
    },
    {
      "commit": "f764f8c0625762d98eacadb582c7308dba1c7b79",
      "tree": "c58850f82e46e3a78648fae89e6b58b049ea7b24",
      "parents": [
        "67f43688334bcd72ae7c3b5b386c1b6a34711f4f",
        "a0dac9e24ae7520cb7d7f0505bf0936bffbcd047"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Fri Aug 19 14:36:10 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 19 14:36:10 2011 -0700"
      },
      "message": "Merge \"Stagefright: fix a compiler warning\""
    },
    {
      "commit": "8f74b712fbf5c24de8bc799b7129dc802747a6f4",
      "tree": "2f668bac8f044d68362ab040a099407b12cb2f73",
      "parents": [
        "67f43688334bcd72ae7c3b5b386c1b6a34711f4f"
      ],
      "author": {
        "name": "Rajneesh Chowdury",
        "email": "rajneeshc@google.com",
        "time": "Fri Aug 12 16:43:37 2011 -0700"
      },
      "committer": {
        "name": "Rajneesh Chowdury",
        "email": "rajneeshc@google.com",
        "time": "Fri Aug 19 14:34:47 2011 -0700"
      },
      "message": "Fix for 4142219 Don\u0027t hard code platform-specific limitations (Jni/ Java)\n\nAlso fixes 5118207 add other video codec support for video editor export.\n\nChange-Id: If72427173bd8ff684af07ba00f4425c1deef29c6\n"
    },
    {
      "commit": "67f43688334bcd72ae7c3b5b386c1b6a34711f4f",
      "tree": "51a8a18c629c43475c5ef1b40b6968e0f41e1722",
      "parents": [
        "50bb96ca6d19846b20b8016cf020e6a3a80e495e"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Aug 19 10:30:58 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Aug 19 10:30:58 2011 -0700"
      },
      "message": "Raise the maximum input buffer size for the vpx video decoder to 256KB\n\nChange-Id: I0411763829bf186d1b3b679fa72c9051524506b4\nrelated-to-bug: 5169641\n"
    },
    {
      "commit": "50bb96ca6d19846b20b8016cf020e6a3a80e495e",
      "tree": "43eccb95599d163689591350b11ea24dca80c0aa",
      "parents": [
        "7341123ed8fed903c593a38d57ffabad3ad62860",
        "af64a8a6ad89f52685e822dca30742a4132c9ae6"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Thu Aug 18 15:14:36 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 18 15:14:36 2011 -0700"
      },
      "message": "Merge \"When switching surface, do not set mSeekNotificationSent as true, because there could be a previous uncompleted seeking which needs to send back MEDIA_SEEK_COMPLETE message. If we set mSeekNotificationSent as true here, then mediaplayer.cpp will be waiting for message MEDIA_SEEK_COMPLETE. The getCurrentPosition() will always return the seek time before MEDIA_SEEK_COMPLETE being received by mediaplayer.cpp. Fix for bug 5181272.\""
    },
    {
      "commit": "af64a8a6ad89f52685e822dca30742a4132c9ae6",
      "tree": "667302be03f9fb7a9fa08d9352847fc2ecdf1e23",
      "parents": [
        "ee0846f97cf07f5f18d19161526743330aabb44e"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Thu Aug 18 14:52:36 2011 -0700"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Thu Aug 18 14:52:36 2011 -0700"
      },
      "message": "When switching surface, do not set mSeekNotificationSent as true,\nbecause there could be a previous uncompleted seeking which needs\nto send back MEDIA_SEEK_COMPLETE message. If we set mSeekNotificationSent\nas true here, then mediaplayer.cpp will be waiting for message\nMEDIA_SEEK_COMPLETE. The getCurrentPosition() will always return\nthe seek time before MEDIA_SEEK_COMPLETE being received by mediaplayer.cpp.\nFix for bug 5181272.\n\nChange-Id: I290aff29b6d9ec8db67c66abbe1f352a43f57073\n"
    },
    {
      "commit": "7341123ed8fed903c593a38d57ffabad3ad62860",
      "tree": "3d14c65ad7b82c0c685ebd2f58d616d38f8d1eff",
      "parents": [
        "cdef698dae0c6dd89755f6494cc3d4b163f410ef",
        "14f95746466fb6abdbbf33ee26d92ebf3fbef98f"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Aug 18 11:46:18 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 18 11:46:18 2011 -0700"
      },
      "message": "Merge \"Some decoders require more gentle treatment\""
    },
    {
      "commit": "14f95746466fb6abdbbf33ee26d92ebf3fbef98f",
      "tree": "ae0f29e7c94988e0297b6058cfe16f17cf6c9527",
      "parents": [
        "a17b835f5b0bf42f4855fe57aef42799f28f3915"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Aug 11 17:38:35 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Aug 18 11:43:34 2011 -0700"
      },
      "message": "Some decoders require more gentle treatment\n\nWe sacrifice A/V sync to some extent to enable the decoder to recover from\ntemporary bottlenecks.\n\nChange-Id: I16195091ad752bfad4c70869cdd7e9f28ca3a118\nrelated-to-bug: 5180142\n"
    },
    {
      "commit": "cdef698dae0c6dd89755f6494cc3d4b163f410ef",
      "tree": "915d81d54f93ee501db95be3e07d9c2a537d2fb5",
      "parents": [
        "a17b835f5b0bf42f4855fe57aef42799f28f3915"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Aug 18 10:53:23 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Aug 18 10:53:23 2011 -0700"
      },
      "message": "Disable vorbis-auto-looping if the audio sink used is not realtime, i.e. recording.\n\nChange-Id: I982e740e8488ff8717ca5f081db9def55aabc9ec\nrelated-to-bug: 5179033\n"
    },
    {
      "commit": "2e17686223bad35101c23083dc79f1d12f3ff429",
      "tree": "f9a1a452a328263c81eb0f25739378d1aee9bb24",
      "parents": [
        "a17b835f5b0bf42f4855fe57aef42799f28f3915"
      ],
      "author": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Thu Aug 18 16:56:36 2011 +0800"
      },
      "committer": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Thu Aug 18 16:56:36 2011 +0800"
      },
      "message": "Remove useAndroidNativeBuffer(2) warning message.\n\nChange-Id: I3e9765e7271d80fda302e521501720bf8c13e5c7\n"
    },
    {
      "commit": "97f2fb5bc753f021bfa51f58129bc1a36c047c47",
      "tree": "217c71649c578f0cf3fb37585a902a8be9ccd212",
      "parents": [
        "ee0846f97cf07f5f18d19161526743330aabb44e"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Thu Aug 18 15:24:27 2011 +0900"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Thu Aug 18 15:24:27 2011 +0900"
      },
      "message": "To make SniffMP3() more concrete so that we can remove false-positve responses from MPEG-PS streams.\n\nNote: current resync logic keeps searching mp3 frames until it meets a\nvalid one. This resync logic works well with seek() operation, but in\nSniffMP3(), this may cause false-positive classification for the\nfollowing MPEG-PS file format.\n  A possible MPEG-PS video file:\n      [PS header]...[mp3 frame][mp3 frame] ...\n  MP3 files:\n      [ID3 tag][mp3 frame][mp3 frame] ...\n\nBUG: 5104562\nChange-Id: Idd5020723f7bdb2fefc2a63fc8651580fd644399\n"
    },
    {
      "commit": "a17b835f5b0bf42f4855fe57aef42799f28f3915",
      "tree": "2a0e275756f173efb4a790d4bfe666d06a6a3569",
      "parents": [
        "ee0846f97cf07f5f18d19161526743330aabb44e",
        "ab3f1388c71aed957f94ddab976faa77ab77e67f"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Wed Aug 17 22:24:53 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 17 22:24:53 2011 -0700"
      },
      "message": "Merge \"Add new camera focus mode FOCUS_MODE_CONTINUOUS_PICTURE.\""
    },
    {
      "commit": "ee0846f97cf07f5f18d19161526743330aabb44e",
      "tree": "060d8b6539f946d215149036427f0d0cbe2b11ce",
      "parents": [
        "1e7d2ba8b79e548286a649ca91402a2d41f59fa0",
        "169c286ed166499c5099d2b336967e0bf3d25551"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 17 13:21:40 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 17 13:21:40 2011 -0700"
      },
      "message": "Merge \"Make sure we have all the sample table metadata before declaring a track valid.\""
    },
    {
      "commit": "169c286ed166499c5099d2b336967e0bf3d25551",
      "tree": "762830447cdb8540b297da53fd76d709d899b4b8",
      "parents": [
        "8a976a863cf921f97feff8be63f11775a1d8b76f"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 17 13:03:51 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 17 13:03:51 2011 -0700"
      },
      "message": "Make sure we have all the sample table metadata before declaring a track valid.\n\nChange-Id: I2dfbc3e6017b5cd264e4cccfa47d19047b2e7f31\nrelated-to-bug: 5178976\n"
    },
    {
      "commit": "1e7d2ba8b79e548286a649ca91402a2d41f59fa0",
      "tree": "6ca2fd4af4bb0f273dae9475a53c1431fcfdc490",
      "parents": [
        "8a976a863cf921f97feff8be63f11775a1d8b76f",
        "64b944106c697933a453a1ffd8bcddb137fdbc4c"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Aug 17 11:14:49 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 17 11:14:49 2011 -0700"
      },
      "message": "Merge \"Don\u0027t time out prematurely for video encoding waiting for output buffers\""
    },
    {
      "commit": "ab3f1388c71aed957f94ddab976faa77ab77e67f",
      "tree": "8187b7aa433b95bfbc53f3d9e209839662bf4889",
      "parents": [
        "a5cc7cce9b8aee73b08f6532710e186c02fdd1c0"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Tue Aug 16 21:14:16 2011 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu Aug 18 00:15:40 2011 +0800"
      },
      "message": "Add new camera focus mode FOCUS_MODE_CONTINUOUS_PICTURE.\n\nThe API is still hidden.\n\nbug:5086125\nChange-Id: I69268a95ad6aae249771d3a8dfb423ffe2d87081\n"
    },
    {
      "commit": "8a976a863cf921f97feff8be63f11775a1d8b76f",
      "tree": "b3f53684b537c6e7adbd93a0766f04da2bb36f13",
      "parents": [
        "61659f61b8dec729ffc03ef88e2d87f8941dcfc0",
        "421b31b7a859b6aa6185a36143158ef59f751adf"
      ],
      "author": {
        "name": "Kristian Monsen",
        "email": "kristianm@google.com",
        "time": "Wed Aug 17 02:41:00 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 17 02:41:00 2011 -0700"
      },
      "message": "Merge \"Testing for bug 5122864 libwebcore related libraries increased by 3MB in ICS vs HCMR2\""
    },
    {
      "commit": "61659f61b8dec729ffc03ef88e2d87f8941dcfc0",
      "tree": "66b02dcff43efdaf21490ffff54c1b46c0929eb3",
      "parents": [
        "99590d29c9d3081cadfccd036842f5ce9a7debef",
        "c92fd24c10a6bf80b346d7e261325434d9c6964b"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Aug 16 14:37:51 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 16 14:37:51 2011 -0700"
      },
      "message": "Merge \"Error handling in ACodec and Nuplayer.\""
    },
    {
      "commit": "c92fd24c10a6bf80b346d7e261325434d9c6964b",
      "tree": "073315512c82b4a50de81e1fdfcb5b35db0ad1a1",
      "parents": [
        "a5cc7cce9b8aee73b08f6532710e186c02fdd1c0"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Aug 16 13:48:44 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Aug 16 13:48:44 2011 -0700"
      },
      "message": "Error handling in ACodec and Nuplayer.\n\nCodec errors (and codec not found errors) now trigger a controlled shutdown\nof playback and signal errors to the MediaPlayer client.\n\nChange-Id: I2ee23ff2a1422d05a1a21e50ecb87d7c7ab958cc\n"
    },
    {
      "commit": "99590d29c9d3081cadfccd036842f5ce9a7debef",
      "tree": "c69dbce9da686ab24276fb080b0a08012ea11e91",
      "parents": [
        "a5cc7cce9b8aee73b08f6532710e186c02fdd1c0"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Aug 16 12:41:41 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Aug 16 12:41:41 2011 -0700"
      },
      "message": "Properly initialize some instance variables.\n\nChange-Id: I190b889be343dca14fe8109528be14cc3cdd4c34\n"
    },
    {
      "commit": "64b944106c697933a453a1ffd8bcddb137fdbc4c",
      "tree": "6186c0bba24f052e39a8bb52c090743f901f9123",
      "parents": [
        "a5cc7cce9b8aee73b08f6532710e186c02fdd1c0"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Sun Aug 14 16:14:12 2011 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Aug 16 10:02:17 2011 -0700"
      },
      "message": "Don\u0027t time out prematurely for video encoding waiting for output buffers\n\no For timelapse video encoding, the timelapse between two neighoring\n  input frames could be very long\n\nChange-Id: I2b6f9c392f2237deae71c894efc7fc3692431796\nrelated-to-bug: 5160548\n"
    },
    {
      "commit": "421b31b7a859b6aa6185a36143158ef59f751adf",
      "tree": "8dab4a43b02d9aedde8b353a03960caea6e893e5",
      "parents": [
        "a5cc7cce9b8aee73b08f6532710e186c02fdd1c0"
      ],
      "author": {
        "name": "Kristian Monsen",
        "email": "kristianm@google.com",
        "time": "Tue Aug 16 16:31:05 2011 +0100"
      },
      "committer": {
        "name": "Kristian Monsen",
        "email": "kristianm@google.com",
        "time": "Tue Aug 16 16:31:05 2011 +0100"
      },
      "message": "Testing for bug 5122864 libwebcore related libraries increased by 3MB in ICS vs HCMR2\n\nReenabling chromium as a shread lib\n\nChange-Id: I5f7abe61624d812c5781c4a453f587e744bc082d\n"
    },
    {
      "commit": "a5cc7cce9b8aee73b08f6532710e186c02fdd1c0",
      "tree": "e23becde27c1878444b3569d55109b7306a36994",
      "parents": [
        "0270b188aa3929cc512ec6869caba1d6b60cc08c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Aug 02 17:41:11 2011 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 12 17:43:35 2011 -0700"
      },
      "message": "Issue 5081351: isWiredHeadsetOn() permission.\n\nAudioManager.isWiredHeadsetOn() should not require permission MODIFY_AUDIO_SETTINGS.\nRemove permission checks on all getters in audio policy manager as permission enforcement\nis really usefull for setters.\nAlso deprecate AudioManager.isWiredHeadsetOn() which name and implementation are deceptive.\n\nChange-Id: I38f8df7c26c0d417bf0e2b74e4c11c2d143f2ecd\n"
    },
    {
      "commit": "0270b188aa3929cc512ec6869caba1d6b60cc08c",
      "tree": "dda5b931e1c380f8dd0c47b4e8b2178980d4cce6",
      "parents": [
        "db29e5238e28d59978755a2ff2e7e0f05393abdf"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Aug 12 14:14:39 2011 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Aug 12 14:54:56 2011 -0700"
      },
      "message": "Don\u0027t remove effects on session 0\n\nb/5159902\nChange-Id: Id6f29fb1c687069f7480dd81d4745a558f202226\n"
    }
  ],
  "next": "db29e5238e28d59978755a2ff2e7e0f05393abdf"
}
