)]}'
{
  "log": [
    {
      "commit": "97a38b4f1be201bbbfa23d298bb779fffd624a3d",
      "tree": "8670ca8035b00d491260ae70d9c5e8397cb2618f",
      "parents": [
        "bfa2f13fd3f463dbceea4d3a18c3124e70df0a05"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 26 15:40:56 2011 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 26 16:03:33 2011 -0800"
      },
      "message": "DO NOT MERGE: This particular RTSP server streams MPEG4-LATM audio with extra trailing bytes.\n\nAnd now we\u0027re just ignoring them. Yay standards.\n\nChange-Id: Ia8c0b9161e606152fb681f0dda3ba901954dc749\nrelated-to-bug: 3353752\n"
    },
    {
      "commit": "bfa2f13fd3f463dbceea4d3a18c3124e70df0a05",
      "tree": "23546faa4e073e21f7a1c4fa026cd81044cc49d0",
      "parents": [
        "b1d099197a9385f3afc9411da32a341546991d85"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Nov 15 12:11:32 2010 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Jan 26 11:20:01 2011 -0800"
      },
      "message": "do not merge bug 3370834 Cherrypick from master\n\nCherripick from master CL 79833, 79417, 78864, 80332, 87500\n\nAdd new audio mode and recording source for audio communications\n other than telelphony.\n\nThe audio mode MODE_IN_CALL signals the system the device a phone\n call is currently underway. There was no way for audio video\n chat or VoIP applications to signal a call is underway, but not\n using the telephony resources. This change introduces a new mode\n to address this. Changes in other parts of the system (java\n and native) are required to take this new mode into account.\nThe generic AudioPolicyManager is updated to not use its phone\n state variable directly, but to use two new convenience methods,\n isInCall() and isStateInCall(int) instead.\n\nAdd a recording source used to designate a recording stream for\nvoice communications such as VoIP.\n\nUpdate the platform-independent audio policy manager to pass the\n nature of the audio recording source to the audio policy client\n interface through the AudioPolicyClientInterface::setParameters()\n method.\n\nSIP calls should set the audio mode to MODE_IN_COMMUNICATION,\n Audio mode MODE_IN_CALL is reserved for telephony.\n\nSIP: Enable built-in echo canceler if available.\n1. Always initialize AudioRecord with VOICE_COMMUNICATION.\n2. If echo canceler is available, disable our echo suppressor.\n\nNote that this CL is intentionally not correcting the\n getAudioSourceMax() return value in MediaRecorder.java as the\n new source is hidden here.\n\nChange-Id: Ie68cd03c50553101aa2ad838fe9459b2cf151bc8\n"
    },
    {
      "commit": "b1d099197a9385f3afc9411da32a341546991d85",
      "tree": "0ca322a21353cffa9237bad07e9b09f366672c38",
      "parents": [
        "47f44fb9b85ac555e5b84b2f5ca8536a85659c3e"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jan 18 15:51:30 2011 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jan 25 14:19:13 2011 -0800"
      },
      "message": "fix [3361121] hang in glClear() - device unresponsive, OTA fails (DO NOT MERGE)\n\nGenerally we never want to lock a buffer for write access if it is at\nthe \"head\" on the surfaceflinger side. The only exception (1) is when\nthe buffer is not currently in use AND there is at least one queued\nbuffer -- in which case, SurfaceFlinger will never use said buffer\nanymore, because on the next composition around, it will be able to\nretire the first queued buffer.\n\nThe logic above relies on SurfaceFlinger always retiring\nand locking a buffer before composition -- unfortunately this\ndidn\u0027t happen during a screenshot.\n\nThis could leave us in a situation where a buffer is locked by the\napplication for write, and used by SurfaceFlinger for texturing,\ncausing a hang.\n\nHere, we fix this issue by never assuming the exception (1), it was\nintended as an optimization allowing ANativeWindow::lockBuffer() to\nreturn sooner and was justified when most of SF composition was\ndone in software. The actual buffer locking is now ensured by\ngralloc. We could have handled screenshots in a similar way to\na regular composition, but it could have caused glitches on screen,\nessentially, taking a screenshot could cause to skip a frame.\n\nnow that we removed the notion of a \"inUse\" buffer in surfaceflinger\na lot of code can be simplified / removed.\n\nnoteworthy, the whole concept of \"unlockClient\" wrt. \"compositionComplete\"\nis also gone.\n"
    },
    {
      "commit": "47f44fb9b85ac555e5b84b2f5ca8536a85659c3e",
      "tree": "50dca0f43441e80b655b67f6d44d7f481165b2a9",
      "parents": [
        "05b22175a0d186d964694a5162892b6b3476c562",
        "209821c7b7ead3ac58743d0a6d21dd05a2e77708"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Jan 25 10:06:16 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 25 10:06:16 2011 -0800"
      },
      "message": "Merge \"Increase the number of useful bits in the spectrum.\" into gingerbread"
    },
    {
      "commit": "05b22175a0d186d964694a5162892b6b3476c562",
      "tree": "1417f736200d0c6678d30109f47fc651220cff1d",
      "parents": [
        "b517e006b51c95db9c44bf5f104f562d431ae597"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Jan 24 13:36:30 2011 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Jan 24 15:59:14 2011 -0800"
      },
      "message": "DO NOT MERGE: Support non-multiple-of-16 dimensions in MPEG4/H.263 software decoder\n\nChange-Id: I6c27c00a6e13cb3635e61089c0db0989f5810c37\nrelated-to-bug: 3384367\n"
    },
    {
      "commit": "209821c7b7ead3ac58743d0a6d21dd05a2e77708",
      "tree": "e9cc0ea746bad9d05425f459ad245f882ceab36c",
      "parents": [
        "b517e006b51c95db9c44bf5f104f562d431ae597"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Jan 18 16:44:28 2011 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Jan 24 08:47:55 2011 -0800"
      },
      "message": "Increase the number of useful bits in the spectrum.\n\nChange-Id: I3efc2ac8db689285566df35cb6f594aab41141db\n"
    },
    {
      "commit": "b517e006b51c95db9c44bf5f104f562d431ae597",
      "tree": "92595dc209798655c6c41444b68a9b6809b54510",
      "parents": [
        "6e3edc2dffb0d424b02ac57b55114b0d13163f56"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 19 18:36:13 2011 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 20 12:05:25 2011 -0800"
      },
      "message": "do not merge - Fix issue 3371096.\n\nEffectModule::process() was copying effect chain input buffer to\noutput buffer if no effect was active instead of accumulating it.\n\nChange-Id: If4ca75601ea69a088d0f71d88aec53e90a1dec89\n"
    },
    {
      "commit": "6e3edc2dffb0d424b02ac57b55114b0d13163f56",
      "tree": "06e553aeaa4efe814f992cfe3674763e3b25f400",
      "parents": [
        "f4c056aeacad2dac60a83ccd7928bfeaa9d6ddf6"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 19 15:07:19 2011 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 19 15:44:23 2011 -0800"
      },
      "message": "DO NOT MERGE: Prefill the cache before trying to instantiate the media extractor.\n\nThe latter is an operation that otherwise could block on the datasource\nfor a significant amount of time. During that time we\u0027d be unable to\nabort the preparation phase without this prefill.\n\nChange-Id: I3bc889b264f599bfd5c2bbdf48b88ccb55d86172\nrelated-to-bug: 3362836\n"
    },
    {
      "commit": "f4c056aeacad2dac60a83ccd7928bfeaa9d6ddf6",
      "tree": "33c73abc7fb95445121cc4595a863ed45000b29e",
      "parents": [
        "95304d5488ba465f19cc788f1c7394218c2ea2d1"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Jan 18 15:26:40 2011 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Jan 18 15:52:31 2011 -0800"
      },
      "message": "DO NOT MERGE: Apparently our native TCP sockets do not return an error from blocking \"connect\"\n\nif the network interface is shutdown while connecting.\n\nChange-Id: I168c6026de24812efa9b7e607a9eb83efded8c1f\nrelated-to-bug: 3362836\n"
    },
    {
      "commit": "95304d5488ba465f19cc788f1c7394218c2ea2d1",
      "tree": "5f5269238a292e0e747cbfa2a01e6a2fb24615b8",
      "parents": [
        "e49051406baa71cb63d5754d33908ce3df201af1"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Dec 02 17:42:08 2010 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Jan 12 17:12:46 2011 -0800"
      },
      "message": "Squash commits of the following patches, cherry-picked from other branch - do not merge.\n\no Prepare for publishing MediaMetadataRetriever as public API\n  step one:\n  o replaced captureFrame with getFrameAtTime\n  o removed getMode\n\no Replace MediaMetadataRetriever.captureFrame() with MediaMetadataRetriever.getFrameAtTime()\n  as part of the preparation for publishing MediaMetadataRetriever as public Java API\n\no Remove captureFrame from MediaMetadataRetriever.java class\n  It has been replaced by getFrameAtTime() method\n\no Replace extractAlbumArt() with getEmbeddedPicture() in MediaMetadataRetriever.java\n\no Publish MediaMetadataRetriever.java as public API\n  o Removed setMode() methods and related mode constants\n  o Removed some of the unused the metadata keys\n  o Updated the javadoc\n  o part of a multi-project change.\n\nbug - 3309041\n\nChange-Id: I2efb6e8b8d52897186b016cb4efda6862f5584c4\n"
    },
    {
      "commit": "e49051406baa71cb63d5754d33908ce3df201af1",
      "tree": "18fde73551a4c51a3c6d9c9edecfecc816507c0e",
      "parents": [
        "9a0cf4fb7d18e186e06341bde915de234992d969"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 12 09:57:23 2011 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 12 09:57:23 2011 -0800"
      },
      "message": "Fail to parse duration instead of asserting, if the server response cannot be parsed.\n\nChange-Id: I95c61ed83800db82e99c0023b942fb8ae05ed3cf\nrelated-to-bug: 3338518\n"
    },
    {
      "commit": "9a0cf4fb7d18e186e06341bde915de234992d969",
      "tree": "b476b0c1e1e5d7abc7ae61e653cebda64d81681d",
      "parents": [
        "0d85990f20106513b6da5a446702aa62ab61397f"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Jan 11 16:01:33 2011 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Jan 11 16:02:31 2011 -0800"
      },
      "message": "DO NOT MERGE: Fix Matroska issues\n\nrelated-to-bug: 3331623\n\nSquashed commit of the following:\n\ncommit 8484811f3784564ce962ec1b6311bac532d73ffc\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Jan 11 11:56:06 2011 -0800\n\n    Properly parse Matroska lacing flags and extract all frames contained in a block.\n\n    related-to-bug: 3331623\n\ncommit 38f1f39381a01659577461b3d35bd22db45ba317\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Nov 15 15:10:34 2010 -0800\n\n    Proper support for variable NALsize lengths of AVC content in .mkv files.\n\n    related-to-bug: 3197442\n\nChange-Id: I4b404f3c3d0a2a2fa336b9edff75eb25ffc66a2f\n"
    },
    {
      "commit": "0d85990f20106513b6da5a446702aa62ab61397f",
      "tree": "82de1cf909430710c421b3ce311087e7699cd3b8",
      "parents": [
        "32c8335c6b6eb87a88e9193db1a5aab29175d043"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Jan 11 09:51:34 2011 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Jan 11 09:53:30 2011 -0800"
      },
      "message": "DO NOT MERGE: Fix parsing of ntp\u003d PLAY response.\n\nrelated-to-bug: 3340186\n\nSquashed commit of the following:\n\ncommit b61c36b7228aec9f5360883b1e1c1e0530488974\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Oct 27 13:59:59 2010 -0700\n\n    Better support for MP4A-LATM RTP disassembly. This used to fail if mNumSubFrames \u003e 1 and the sub frames did not align with RTP packet boundaries.\n\ncommit b10f322c07e5bebcaf032e8624cb4a5d733dfc15\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Oct 25 09:40:52 2010 -0700\n\n    We don\u0027t have access to the md5 implementation on the simulator, let\u0027s disable digest authentication in rtsp for simulator targets.\n\ncommit 0aa83cf9e4637adf9501708fcdf7d0d6d4dc4fe1\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Oct 20 15:00:34 2010 -0700\n\n    Support for BASIC and DIGEST authentication schemes in RTSP. Support for malformed packet descriptions that end lines in LF only, instead of CRLF.\n\n    related-to-bug: 3084183\n\nChange-Id: I6e512cb73cc8d5624a83f7154aa5699f7fef7534\n"
    },
    {
      "commit": "32c8335c6b6eb87a88e9193db1a5aab29175d043",
      "tree": "a7ee67ba1dd4051a2440eeee2f1347dc133d8389",
      "parents": [
        "288fb7e5bd7060cbe9b737500975754c9312e2db"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Jan 10 08:55:02 2011 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Jan 10 10:27:02 2011 -0800"
      },
      "message": "Avoid deadlock in OMX::freeNode by making sure OMXCodecObserver does not hold the last reference of OMXCodec object - do not merge\n\ncherry-picked from: I4c79b66a900c527e3ae6a833f76d5da1b75c5a89\n\nbug - 3336424\n\nChange-Id: I2d8ecb79a5422342988c195c012c9e6327ac457a\n"
    },
    {
      "commit": "288fb7e5bd7060cbe9b737500975754c9312e2db",
      "tree": "666d36f72e5d8517fd39db346d941286529c3a69",
      "parents": [
        "91dcf1510491c4128f506a0d28e64de5ecbf459d"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Jan 06 11:12:17 2011 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Jan 06 15:05:06 2011 -0800"
      },
      "message": "Add support for the \"compilation\" tag in mp3, mp4 and ogg, and also add\nsupport for two common ways of specifying album artist in ogg files.\nb/3311831\n\nChange-Id: Iba1152013b7577168af71f947d7249560419fa05\n"
    },
    {
      "commit": "91dcf1510491c4128f506a0d28e64de5ecbf459d",
      "tree": "0886108cbd43dd72295de19b99d6fa204e797242",
      "parents": [
        "0f01764099d7a65b8921725df3340140f9fc4cd5"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Jan 04 17:34:44 2011 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Jan 04 17:34:44 2011 -0800"
      },
      "message": "Suppress the recording sound in the recorded video\n\nbug - 3309194\n\nChange-Id: Ib8fb248943bc22f963d67537bfdbc6056c5a159b\n"
    },
    {
      "commit": "0f01764099d7a65b8921725df3340140f9fc4cd5",
      "tree": "4804d04ee3b4e790731dcb6d90b3433d4945ac29",
      "parents": [
        "e8079d0f6afcb138a0e5882ccbaf93647ea77c5b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 15 19:09:42 2010 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 15 19:09:42 2010 -0800"
      },
      "message": "Fix issue 2712130: Sholes: problem when playing audio while recording over bluetooth SCO.\n\nThe problem is that when an input stream is opened for record over bluetooth SCO, the kernel\nmono audio device should be opened in RW mode to allow further use of this same device by an output stream\nalso routed to bluetooth SCO.\nThis does not happen because of a bug in AudioSystem::isBluetoothScoDevice() that does not return true\nwhen the device is DEVICE_IN_BLUETOOTH_SCO_HEADSET (input device for blurtooth SCO).\n\nChange-Id: Ic78bf324b4a68e65721d763dc7682ce7a8f14f75\n"
    },
    {
      "commit": "e8079d0f6afcb138a0e5882ccbaf93647ea77c5b",
      "tree": "d088895683a8145734d7d02040bf8a2399b060ad",
      "parents": [
        "b3e40847bebc9acd035a1d693885fd14d58beaf2"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Dec 08 15:28:42 2010 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Dec 08 15:37:14 2010 -0800"
      },
      "message": "When INFO_FORMAT_CHANGED event comes in before the renderer was initialized, go back to read from source again\n\nbug - 3264094\n\nChange-Id: I291a9b09b335d0eb4acf91f992e59fc44bc57d01\n"
    },
    {
      "commit": "b3e40847bebc9acd035a1d693885fd14d58beaf2",
      "tree": "4fb4f086e8b4317060ee1c92b44113c67f92e565",
      "parents": [
        "d28b0e7057ea1b85d70f6aa25415655eb67ca126"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Dec 06 15:02:28 2010 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Dec 06 15:05:06 2010 -0800"
      },
      "message": "Fixed a race condition where some recording frames may not be released\n\nbug - 3258924\n\nChange-Id: I4f30d04a713676f5da40e6a7dd861510cc041f9b\n"
    },
    {
      "commit": "d28b0e7057ea1b85d70f6aa25415655eb67ca126",
      "tree": "75c2fc9fccfa83931f7ca5015922aef4de0a59d3",
      "parents": [
        "ed7c671a57f89d389c9d6cd67e0698f160f69916",
        "acd234bba9f048971d66890009eeff9a8db94be3"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Dec 02 10:13:36 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 02 10:13:36 2010 -0800"
      },
      "message": "Merge \"Be conservative in estimating the file size limit.\" into gingerbread"
    },
    {
      "commit": "ed7c671a57f89d389c9d6cd67e0698f160f69916",
      "tree": "db18d745439110927961642e9256101b8ed9ff39",
      "parents": [
        "075a1f660b77fe47b165db1aff97cdd05e300391"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 01 14:25:39 2010 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 01 14:25:39 2010 -0800"
      },
      "message": "Fix issue 2641884: Bluetooth volume is dependent on in call volume.\n\nThe problem is that the code in AudioPolicyManagerBase::checkAndSetVolume() that forces\nvoice volume to max when setting bluetooth SCO volume is not called if the bluetooth stream\nvolume did not actually change. So even if we re apply volumes when switching to bluetooth\ndevice, the volume voice volume is not changed and remains what it was when routed to earpiece\nWhat makes things worse on Passion is that stream volumes are limited when connected to bluetooth\nand their actual value does not change as soon as they exceed the limit threshold.\n\nChange-Id: Id7c317db45b392a1c20dca2859678e3c64a371ed\n"
    },
    {
      "commit": "075a1f660b77fe47b165db1aff97cdd05e300391",
      "tree": "0e02b17b5a8e2803b93293005c3157a0d05a310c",
      "parents": [
        "03b55cc9d3529995925c8df0d4a35269e591188c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Nov 02 12:02:20 2010 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 01 09:45:33 2010 -0800"
      },
      "message": "Fix issue 3142808.\n\nThere is a bug in the way audio policy manager handles A2DP interface suspend/restore\nwhen SCO is used. This bug is not new but has been triggered by a change in the timing\nof the events received by audio policy manager when a call is setup and torn down\nintroduced by commit 164a8f86c7e48992691368c4895709c3bdb835a4.\n\nThe fix consists in grouping the control of A2DP suspended state in a single function\nthat is called systematically when conditions affecting this state are changed:\n- call state change\n- device connection/disconnection\n- change in forced usage.\n\nChange-Id: I46ee2399ee5547b60511fc6cfd32e2720091b0f8\n"
    },
    {
      "commit": "acd234bba9f048971d66890009eeff9a8db94be3",
      "tree": "e7cadaf62d1afeb15a5e776737c3985b08ad7fc1",
      "parents": [
        "03b55cc9d3529995925c8df0d4a35269e591188c"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Nov 30 18:18:08 2010 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Nov 30 18:18:08 2010 -0800"
      },
      "message": "Be conservative in estimating the file size limit.\n\nbug - 3045580\n\nChange-Id: Ifdffa354b9433639c3f246a0eb581ef14af1e797\n"
    },
    {
      "commit": "03b55cc9d3529995925c8df0d4a35269e591188c",
      "tree": "e54e98713d8eaa4b86fcc2aac3241c84c4a1b852",
      "parents": [
        "8cb5a643fe566acb720aab0bde6fead6e75ef8bc",
        "462b1d71866fd53564e15db699eff47ad99915d1"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 30 14:30:00 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 30 14:30:00 2010 -0800"
      },
      "message": "Merge \"DO NOT MERGE Support for \"chunked\" HTTP transfer encoding.\" into gingerbread"
    },
    {
      "commit": "8cb5a643fe566acb720aab0bde6fead6e75ef8bc",
      "tree": "c832a56e33613020d3fdf581df0ea0f30462d842",
      "parents": [
        "09b3581ef7ddba70c5d89d252de3a15d512aa49b",
        "8ba606c3b8a807058c92d95dcd7bcfdbc28147ae"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 30 14:06:26 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 30 14:06:26 2010 -0800"
      },
      "message": "Merge \"DO NOT MERGE Upgrade to the latest version of libwebm to fix YouTube webm playback.\" into gingerbread"
    },
    {
      "commit": "8ba606c3b8a807058c92d95dcd7bcfdbc28147ae",
      "tree": "7e4895a761539c00e017f992b78ac62f334a06d9",
      "parents": [
        "ce0febae177d1816ee7a6750ed9fba52472b9a71"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Oct 28 10:50:47 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 30 13:42:50 2010 -0800"
      },
      "message": "DO NOT MERGE Upgrade to the latest version of libwebm to fix YouTube webm playback.\n\nDO NOT MERGE\nrelated-to-bug: 3141937\n\nChange-Id: Iaf1b0c5d45a6b5bb7624a59747041c27b4dde83b\n"
    },
    {
      "commit": "462b1d71866fd53564e15db699eff47ad99915d1",
      "tree": "282c042e705730ac55e6c64916aa20e40e30c5f7",
      "parents": [
        "09b3581ef7ddba70c5d89d252de3a15d512aa49b"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Nov 18 11:03:48 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 30 13:37:01 2010 -0800"
      },
      "message": "DO NOT MERGE Support for \"chunked\" HTTP transfer encoding.\n\nDO NOT MERGE\n\nChange-Id: I253d48ea69f239a6d3d0bb7e0d31eef5c773a9d6\nrelated-to-bug: 3205131\n"
    },
    {
      "commit": "09b3581ef7ddba70c5d89d252de3a15d512aa49b",
      "tree": "0b199015fa3f564580355088031819c7b775069a",
      "parents": [
        "4d0565de200e61f457e4d97fcfbc4c9ccd81bdad"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 29 15:47:52 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 30 11:46:38 2010 -0800"
      },
      "message": "After seeking display the first new video frame right away without concern for A/V sync. This looks much more responsive to the user.\n\nChange-Id: Ifb1f8c91e95a5cafe30ae1035973316c210b98a5\nrelated-to-bug: 3152363\n"
    },
    {
      "commit": "4d0565de200e61f457e4d97fcfbc4c9ccd81bdad",
      "tree": "7c043fece3ff9b46584213219ea176f2d810f00a",
      "parents": [
        "879e9cb6b4e8b09a5c7d4942ce36125193deadde"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Nov 12 08:57:12 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 30 10:50:25 2010 -0800"
      },
      "message": "DO NOT MERGE - Instead of asserting that ISurface successfully registered buffers, report an error and propagate it up to the java client.\n\nChange-Id: Ibb14e5aff20920da4917d85de38ba3a8ee71d0bd\nrelated-to-bug: 3188835\n"
    },
    {
      "commit": "879e9cb6b4e8b09a5c7d4942ce36125193deadde",
      "tree": "5d62a0440aee987552a01ced8d3ad7d549749c0f",
      "parents": [
        "c2c8868e59bde7f48998e1d89a0d77217bc64767",
        "6b6a736ec71c692c165952fe653a7766075e94bb"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Mon Nov 29 22:56:56 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 29 22:56:56 2010 -0800"
      },
      "message": "Merge \"Visualizer: Fix the conversion from 8-bit sample to 16-bit sample.\" into gingerbread"
    },
    {
      "commit": "c2c8868e59bde7f48998e1d89a0d77217bc64767",
      "tree": "bffc3c9c96072ce21e9c55372b4b39fa8ed991bc",
      "parents": [
        "ce0febae177d1816ee7a6750ed9fba52472b9a71"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Fri Nov 19 15:56:16 2010 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Fri Nov 19 16:20:04 2010 +0800"
      },
      "message": "Improve camera documentation.\n\nbug:3212606\nChange-Id: Iee7106e4665c08a4c75471114010b75d63ac74ce\n"
    },
    {
      "commit": "ce0febae177d1816ee7a6750ed9fba52472b9a71",
      "tree": "6e6283e217fc18d53b63652e1d3fe9da2487919f",
      "parents": [
        "85d9b4225d024bb0d602b48bd6d5219cbebd7b8e"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Nov 08 16:04:27 2010 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Nov 08 16:52:59 2010 -0800"
      },
      "message": "Support extracting thumbnail from rotated video tracks\n\nChange-Id: Ife0a2536aaac5ff1efdf1035b9d2c892773ee16c\n"
    },
    {
      "commit": "85d9b4225d024bb0d602b48bd6d5219cbebd7b8e",
      "tree": "4d9ebf6a8b1ecfe51c312d7f2cfa7b2eda6fe5cf",
      "parents": [
        "aca1fe35480ae76dd6bae167ade40adc955e2d0d"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Nov 04 11:50:27 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Nov 05 17:03:17 2010 -0700"
      },
      "message": "Support post-decode video rotation.\n\nChange-Id: Ia371316e73a57e44610de86adce3eaa560afbf84\n"
    },
    {
      "commit": "aca1fe35480ae76dd6bae167ade40adc955e2d0d",
      "tree": "ed1cb95800d38e5937ae59d01dc60cbdf3803a3a",
      "parents": [
        "ff5bfcf19da45e6bb0136ef818b7c4bf8fd8db3d"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Aug 16 18:39:28 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Nov 05 15:47:52 2010 -0700"
      },
      "message": "Rotation support\n\n- We only support 0, 90, 180, and 270 degree clockwise rotation\n\n- Some players are known to ignore composition matrix in the MP4 file,\n  although this is part of the MP4 file standard.\n  Both QT and YT are supporting the rotation\n\nChange-Id: I1b7f66a801e9d9c49d889c9b06dd6173fa7e76c4\n"
    },
    {
      "commit": "ff5bfcf19da45e6bb0136ef818b7c4bf8fd8db3d",
      "tree": "6570f16d47ea2bd28364eccb3dd0b08353eb125e",
      "parents": [
        "5b6edb79827a910d8e677e35e77bc12fdc7772b9"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Nov 03 19:22:47 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Nov 03 19:22:47 2010 -0700"
      },
      "message": "Revert \"Support rotation in media recorder\"\n\nThis reverts commit f1febe470ac30f8992066cb263c10f58493c4c34.\n"
    },
    {
      "commit": "5b6edb79827a910d8e677e35e77bc12fdc7772b9",
      "tree": "1e6cc110b0ada374d30d740cc2facac87f59c137",
      "parents": [
        "63a0a11e8b3292253b3d3bf3a7f7dc733cf6762f"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Nov 03 17:27:58 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Nov 03 17:49:55 2010 -0700"
      },
      "message": "Support rotation in media recorder\n\no needs to be tested with camera hal and camcorder application\n\nChange-Id: Ie343185c8ad3ec55da8850efbdcf19cf98993232\n"
    },
    {
      "commit": "63a0a11e8b3292253b3d3bf3a7f7dc733cf6762f",
      "tree": "6570f16d47ea2bd28364eccb3dd0b08353eb125e",
      "parents": [
        "64c3bdea8cba454d4404baded584ea0f0611b3ee"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Nov 02 18:43:03 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Nov 02 19:30:01 2010 -0700"
      },
      "message": "DO NOT MERGE\n\nFix premature release of recording frames when physical address or metadata is stored in input video buffers\n\n- bug 3158459\n\nChange-Id: If297189d2a87fc3abfda68c29ac75b490b30a902\n"
    },
    {
      "commit": "6b6a736ec71c692c165952fe653a7766075e94bb",
      "tree": "2000c38c45f45551faa3a78de14f7f7f387b0f80",
      "parents": [
        "64c3bdea8cba454d4404baded584ea0f0611b3ee"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Mon Nov 01 10:56:45 2010 +0800"
      },
      "committer": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Mon Nov 01 10:56:45 2010 +0800"
      },
      "message": "Visualizer: Fix the conversion from 8-bit sample to 16-bit sample.\n\nChange-Id: Ie6d77b0f61a37333e05cdcdb6ef29d6f6c345a9d\n"
    },
    {
      "commit": "64c3bdea8cba454d4404baded584ea0f0611b3ee",
      "tree": "96b7ede041d48ff8932c8e3fedf6ae72a9396c88",
      "parents": [
        "53409d6fe668e695e92479371f0ec162723feed5"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Oct 27 09:06:01 2010 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Oct 27 10:23:59 2010 -0700"
      },
      "message": "Fix off-by-two and other bugs in the visualization code.\nb/3137511\n\nChange-Id: Ic431701e93c025bc417c9742e9af6bb2350c7dd6\n"
    },
    {
      "commit": "53409d6fe668e695e92479371f0ec162723feed5",
      "tree": "a1dc60a6bd38819ab63f41cd80efd72d10d0100d",
      "parents": [
        "b2ee05b6c453b7da24b23139489ad92bb2c79621"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Oct 26 15:01:03 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Oct 26 15:06:44 2010 -0700"
      },
      "message": "Assume that all of the decoded vorbis audio data is valid unless the source indicates otherwise.\n\nChange-Id: Iea88e3f09955d82a9a11fbcc075db8d9c4007490\n"
    },
    {
      "commit": "b2ee05b6c453b7da24b23139489ad92bb2c79621",
      "tree": "c87270874c46e1835b4c825bdd78109006856d3a",
      "parents": [
        "12ac08f2e1ffb74fd4efdc726066db15e6d3d50d"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu Oct 21 12:50:37 2010 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Mon Oct 25 14:56:22 2010 +0800"
      },
      "message": "Remove the FLIP_H/ROT_90 workaround from CameraService.do not merge\n\nNow overlay does flip before rotation.\nbug:3114236\nChange-Id: I1780e56154566435a0ceeb2f101de7ed0a0613cb\n"
    },
    {
      "commit": "12ac08f2e1ffb74fd4efdc726066db15e6d3d50d",
      "tree": "1bf87d26b4f07bb74eabde355b010ee012cada77",
      "parents": [
        "04e410dac8a4e69cff7aaa78c2c0871ce0b027ca",
        "5b6a01e65aa4129a9226667536d1bc1dad5980d8"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Oct 21 20:06:59 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 21 20:06:59 2010 -0700"
      },
      "message": "Merge \"Turn the media time adjustment in file writer back on\" into gingerbread"
    },
    {
      "commit": "5b6a01e65aa4129a9226667536d1bc1dad5980d8",
      "tree": "3cc13ca4e8575aa462cffdb3ae174c35d3801513",
      "parents": [
        "78a1a286f736888ae7af8860b2c424af0d978848"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Oct 21 17:58:14 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Oct 21 18:41:31 2010 -0700"
      },
      "message": "Turn the media time adjustment in file writer back on\n\no This was turned off to unblock the tests on some device\no The adjustment duration is increased to suppress fluctuations observed on some device\n\nbug - 3058745\n\nChange-Id: Iaeeb1c1c52783f5c679305645c995e57b4b2a573\n"
    },
    {
      "commit": "04e410dac8a4e69cff7aaa78c2c0871ce0b027ca",
      "tree": "49747338316aeec63662284d566ce3793593430f",
      "parents": [
        "78a1a286f736888ae7af8860b2c424af0d978848",
        "95b18cb9224f79a781c827e0da45c58a644acece"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Oct 21 16:20:07 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 21 16:20:07 2010 -0700"
      },
      "message": "Merge \"Mirror the preview for front-facing cameras. do not merge\" into gingerbread"
    },
    {
      "commit": "95b18cb9224f79a781c827e0da45c58a644acece",
      "tree": "9c2e62994a4e7e0b151d9ec25bf1f3a36cd857a1",
      "parents": [
        "4769cc92740e3ab58e9263d42553c12bbf79e3be"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Tue Oct 19 17:19:09 2010 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Wed Oct 20 18:29:18 2010 +0800"
      },
      "message": "Mirror the preview for front-facing cameras. do not merge\n\nNow overlay does ROT_90 before FLIP_V or FLIP_H. It should be FLIP_V\nor FLIP_H first. The formula should be changed after overlay is fixed.\n\nbug:3059865\nChange-Id: Ie4366bf7f1fcac7383e8dfc74b1b865997bbbcc6\n"
    },
    {
      "commit": "78a1a286f736888ae7af8860b2c424af0d978848",
      "tree": "3ab0e1e83296e4f4fe2d2a4407f03964f7b31c64",
      "parents": [
        "4769cc92740e3ab58e9263d42553c12bbf79e3be"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Oct 19 21:28:47 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Oct 19 22:59:22 2010 -0700"
      },
      "message": "File writer size estimation improvement\n\no Do not count the reserved space for moov if the meta data size is small\no Do not count the extra 1KB disturbing small file estimation.\no Reduce the default minimum reserved space from 4 KB to 3 KB.\no Estimate the moov size based on both duration AND file size limit is set\n  and set it to the smaller estimated value.\n\nlow risk change\n\nbug - 3111983\n\nChange-Id: I6ac2adb979d8cc12d6b4f1813d000c989add0199\n"
    },
    {
      "commit": "4769cc92740e3ab58e9263d42553c12bbf79e3be",
      "tree": "9d745401de93897dea77649e00a59ee582a5fe35",
      "parents": [
        "f200777290d2e3e8b580c512cc0808eae9790705"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Oct 19 09:34:44 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Oct 19 09:34:44 2010 -0700"
      },
      "message": "If we encounter video stream EOS while seeking we may still need to seek audio.\n\nChange-Id: Ie260942247b6810ca94e86328a3725d75b12181d\nrelated-to-bug: 3108724\n"
    },
    {
      "commit": "f200777290d2e3e8b580c512cc0808eae9790705",
      "tree": "73dc5d30a8d51163f5bf88c3d745b23efd3cd4b7",
      "parents": [
        "b5b39d2c348f54a40fc800c9efec17d7f1e8a486"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Oct 18 15:06:04 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Oct 18 15:06:04 2010 -0700"
      },
      "message": "An attempt to unregister a handler that\u0027s no longer registered should not cause an assertion.\n\nThere are edge cases in which a handler attempts to unregister itself while on another thread a message fails to be delivered to that very handler and causes automatic unregistration. In this case the handler\u0027s good cleanup intentions are thwarted by the CHECK.\n\nChange-Id: I4e41b5e7b619159ecce4856c15cccca031a28b5b\nrelated-to-bug: 3101247\nQA-impact: no(!!!) risk\n"
    },
    {
      "commit": "b5b39d2c348f54a40fc800c9efec17d7f1e8a486",
      "tree": "56565a171d8696a6f9f2cc1c3257acdd8ea894dc",
      "parents": [
        "acc82a3bad22af17008a839d993e3bd7a5d9b5af",
        "f3712f026aad1fc46b1df18d1dba718281e39726"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Oct 18 11:46:44 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 18 11:46:44 2010 -0700"
      },
      "message": "Merge \"For thumbnail extraction make sure we instantiate a decoder that allows access to the framebuffer. Implement the samsung workaround to support this by reconfiguring the decoder.\" into gingerbread"
    },
    {
      "commit": "acc82a3bad22af17008a839d993e3bd7a5d9b5af",
      "tree": "fbf0e52ff4c314d168ccf49d60eee2e0c8a0a54b",
      "parents": [
        "56cfa2376ae87cba730ea7ce4a9e0ca4f0d07627"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 15 11:30:21 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Oct 18 10:39:29 2010 -0700"
      },
      "message": "If the PES packet size exceeds 16-bit range, use a packet size of 0 instead. This is valid for video content according to the specs.\n\nChange-Id: I686320d9d4cd826f43c0813c6ba1dc4949d1115f\n"
    },
    {
      "commit": "f3712f026aad1fc46b1df18d1dba718281e39726",
      "tree": "8bc7bbfef7a223939d093cd5595d4ccfe8fdac5e",
      "parents": [
        "56cfa2376ae87cba730ea7ce4a9e0ca4f0d07627"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Oct 18 09:57:42 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Oct 18 10:16:08 2010 -0700"
      },
      "message": "For thumbnail extraction make sure we instantiate a decoder that allows access to the framebuffer. Implement the samsung workaround to support this by reconfiguring the decoder.\n\nrelated-to-bug: 3106534\nChange-Id: Ie28d72af2f9e93818d1840ac83aa7bc11fa57b3b\n"
    },
    {
      "commit": "56cfa2376ae87cba730ea7ce4a9e0ca4f0d07627",
      "tree": "c5909cd90e35e198a801abf6cff6d924a73b8011",
      "parents": [
        "b10d28f233bb881cc12260c320892e5feb198e9a"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 15 13:31:29 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 15 13:31:29 2010 -0700"
      },
      "message": "Include the framework copy of the OpenMAX headers instead of referencing external/opencore.\n\nChange-Id: I762f59acf5e1f770e4d7c2d89af362bfffebefa6\nrelated-to-bug: 3101573\n"
    },
    {
      "commit": "b10d28f233bb881cc12260c320892e5feb198e9a",
      "tree": "187930b69fae31448522edf8d2e2c351e10796a0",
      "parents": [
        "b9d3038ec950665639e26acd51329ebc800e780d"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 15 13:30:27 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 15 13:30:27 2010 -0700"
      },
      "message": "Check-in of a copy of the Khronos OpenMAX headers formerly included from external/opencore.\n\nChange-Id: Ie2ecf9558d4ee80cb5a2bbe66ad49f2165a7b09c\nrelated-to-bug: 3101573\n"
    },
    {
      "commit": "b9d3038ec950665639e26acd51329ebc800e780d",
      "tree": "d04faaa2cb0d75227b3d53c4529ec7156414e999",
      "parents": [
        "2959a5a5b4d151e14da3abe0289c15693409eb84"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 15 08:38:49 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 15 08:38:49 2010 -0700"
      },
      "message": "Make sure we cache the sampleTable again if using the caching datasource.\n\nQA-impact: This fixes http streaming again which I broke about 2 days ago. The previously observed symptoms were stuttering playback of http streams (think YouTube) after a certain playback position.\n\nChange-Id: I14050e3522ecd62c90d29310efdf508fdd2e87b5\nrelated-to-bug: 3098873\n"
    },
    {
      "commit": "2959a5a5b4d151e14da3abe0289c15693409eb84",
      "tree": "bcdb8b57d72e5d1f8ca30cf79aafde419c610cc9",
      "parents": [
        "a82c3c631a9c0bb721e35d03714715ffe3b0b0c3"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Oct 13 15:12:08 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Oct 13 15:12:08 2010 -0700"
      },
      "message": "Metadata.cpp and Metadata.java had drifted out of sync. This change remedies that.\n\nChange-Id: I48175666857ab0fb1519777bdb6f7f0b6b5cc599\nrelated-to-bug: 3073955\n"
    },
    {
      "commit": "a82c3c631a9c0bb721e35d03714715ffe3b0b0c3",
      "tree": "8ea9541e1f5cdf42314785413f3716f935ae05a3",
      "parents": [
        "f61551f4fc79e7da879802e3974afa9b03ffb5d0",
        "7fbdb0903dfbf70b314a74e64e28fb880cdb9247"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Oct 13 14:25:32 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 13 14:25:32 2010 -0700"
      },
      "message": "Merge \"Attempt to derive the avg. bitrate of the entire stream from metadata.\" into gingerbread"
    },
    {
      "commit": "f61551f4fc79e7da879802e3974afa9b03ffb5d0",
      "tree": "4feb3e5d3d1897681129d5f5c44ff16fe25cfa11",
      "parents": [
        "5cb77e080ced5362b5f047e107327b3cb6ece6c9"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Oct 13 12:15:03 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Oct 13 12:15:03 2010 -0700"
      },
      "message": "Some webcams output rtp streams but never send any rtcp data in violation of\nthe specs. Attempt to use fake timestamps to be able to play these...\n\nChange-Id: Ia7a926616fb764e972955df4acdb59d85cdd93df\nrelated-to-bug: 3087310\n"
    },
    {
      "commit": "7fbdb0903dfbf70b314a74e64e28fb880cdb9247",
      "tree": "fc9511b938ec6183dcf9d41d5f892bee2e8d85de",
      "parents": [
        "5cb77e080ced5362b5f047e107327b3cb6ece6c9"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Oct 12 16:55:11 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Oct 13 10:39:41 2010 -0700"
      },
      "message": "Attempt to derive the avg. bitrate of the entire stream from metadata.\n\nrelated-to-bug: 3093224\nChange-Id: I4726b023373e04468cc12fd64f7fe6ee923add95\n"
    },
    {
      "commit": "5cb77e080ced5362b5f047e107327b3cb6ece6c9",
      "tree": "cd1aeadc0d0dd75c669aa26ece9ce9252e83bdee",
      "parents": [
        "bff07d0b22a5ee2d9f044f6cb5e4be1532017ab0",
        "59b7dc39ea8332d3418a599e51447d7edb612ac4"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Oct 13 09:14:40 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 13 09:14:40 2010 -0700"
      },
      "message": "Merge \"Support for writing to MPEG2 transport stream files.\" into gingerbread"
    },
    {
      "commit": "59b7dc39ea8332d3418a599e51447d7edb612ac4",
      "tree": "30d77dd5cca3f58b3902df86e7df1dab42abc0f2",
      "parents": [
        "2bc940b4f961e588459c83862b2c6bea314a4027"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Oct 12 14:17:45 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Oct 12 16:05:23 2010 -0700"
      },
      "message": "Support for writing to MPEG2 transport stream files.\n\nChange-Id: If3b7a807bc224a4b1cb2236537c3ebdc5aee0d97\n"
    },
    {
      "commit": "bff07d0b22a5ee2d9f044f6cb5e4be1532017ab0",
      "tree": "3377ef036c87095609a0969dbf0b5c93450b8903",
      "parents": [
        "2bc940b4f961e588459c83862b2c6bea314a4027"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Oct 12 11:34:37 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Oct 12 14:32:10 2010 -0700"
      },
      "message": "HTTP Live content that are tagged as complete are now seekable.\n\nChange-Id: I9d0d2f009f883e5baf3e9de8c5c0aa05760e4bde\nrelated-to-bug: 2368598\n"
    },
    {
      "commit": "2bc940b4f961e588459c83862b2c6bea314a4027",
      "tree": "53dd017ef6b9e961b885159a4cbb3d6efecac053",
      "parents": [
        "0dcd837af4169bdb6fb2a0c384722dc4f57433c6"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Oct 11 11:05:52 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Oct 11 11:30:30 2010 -0700"
      },
      "message": "Just in case we\u0027re behind a NAT router/firewall, attempt to poke holes into it for future incoming RTP/RTCP packets to pass through.\n\nChange-Id: Idd47968d4027f357222f19f15eecfd70fdec3282\nrelated-to-bug: 3073813\n"
    },
    {
      "commit": "0dcd837af4169bdb6fb2a0c384722dc4f57433c6",
      "tree": "44e53d1d603e1d52315add06cc998c2e9fbecc7b",
      "parents": [
        "c68a48c474f609df3eeb7d9738675d6ac8835e0a"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 08 15:21:08 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 08 15:25:19 2010 -0700"
      },
      "message": "RTSP seeking is now asynchronous, MediaPlayer is not notified that the seek is complete until it actually is. Ignore seek requests on live streams.\n\nChange-Id: Ie61230cd60dd6c682baf72529100369ad6291189\nrelated-to-bug: 3073955\n"
    },
    {
      "commit": "c68a48c474f609df3eeb7d9738675d6ac8835e0a",
      "tree": "4513bc3b15dc583bbca45db9c67f4d0aba8b1172",
      "parents": [
        "6f3cba53efdd985ab13734c7ad90eb373ae9b9f7"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 08 12:06:27 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 08 12:06:27 2010 -0700"
      },
      "message": "Refactor some more h.264 utility code out into avc_utils. Work around a hardware decoder issue by making sure the first access unit submitted to a decoder at startup or after seek is an IDR.\n\nChange-Id: I61936601e55df7e4c23a8c13087579a4f85bd6e6\n"
    },
    {
      "commit": "6f3cba53efdd985ab13734c7ad90eb373ae9b9f7",
      "tree": "7cc426c49690a424cb2aa9dcbe9bfbe50e0c93a3",
      "parents": [
        "e6d26450e5a01be5b7f1343578e7237e68db7737",
        "70f521de2675ce6eedf4b22beed94ea1289b0f38"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 08 11:16:07 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 08 11:16:07 2010 -0700"
      },
      "message": "Merge \"Disable 10secs forward/backward seeking for rtsp as seek is a very expensive operation there. Decouple the 10sec forward/backward button functionality from seekbar functionality.\" into gingerbread"
    },
    {
      "commit": "e6d26450e5a01be5b7f1343578e7237e68db7737",
      "tree": "cba10f376c16c13bb5008a5511ad3e9e83e36ca5",
      "parents": [
        "cb71fba37c51352d6e980bfe1f3e93ff803d550e",
        "2d511ff0eb4c6127659795b642825c55879a15bc"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 08 10:59:52 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 08 10:59:52 2010 -0700"
      },
      "message": "Merge \"Respect the cropping rectangle when extracting the video dimensions from the sequence parameter set of H.264 streams.\" into gingerbread"
    },
    {
      "commit": "2d511ff0eb4c6127659795b642825c55879a15bc",
      "tree": "5cfaf37477930356da3fd16015bba54d731cc28d",
      "parents": [
        "f4ea1f92bc56a8ffceddba0dbd3979fe0219b13c"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 08 10:38:39 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 08 10:38:39 2010 -0700"
      },
      "message": "Respect the cropping rectangle when extracting the video dimensions from the sequence parameter set of H.264 streams.\n\nChange-Id: Id7f21d5ab8533b4e17ceaa8619a39c27f0306150\n"
    },
    {
      "commit": "70f521de2675ce6eedf4b22beed94ea1289b0f38",
      "tree": "fe477ecc5b9fbec01d41a458cc17bcf867f9809d",
      "parents": [
        "f4ea1f92bc56a8ffceddba0dbd3979fe0219b13c"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 08 10:16:24 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 08 10:16:24 2010 -0700"
      },
      "message": "Disable 10secs forward/backward seeking for rtsp as seek is a very expensive operation there. Decouple the 10sec forward/backward button functionality from seekbar functionality.\n\nChange-Id: I016e79b688774f8ee91ac53216197b5fb9cb41b2\nrelated-to-bug: 3073955\n"
    },
    {
      "commit": "cb71fba37c51352d6e980bfe1f3e93ff803d550e",
      "tree": "d211ba305a4dd96e0fe9b4e3f8c3910f0b84aa05",
      "parents": [
        "80d41229f6207602b298cb3de89af2ee5e776bee",
        "a6f61fc8e3d06373c17f0a38ff600e2b71c414fa"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Oct 08 10:06:22 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 08 10:06:22 2010 -0700"
      },
      "message": "Merge \"Name the writer threads\" into gingerbread"
    },
    {
      "commit": "80d41229f6207602b298cb3de89af2ee5e776bee",
      "tree": "0722c18deebdca1ff04449e4b313905eef57b92d",
      "parents": [
        "bea16187c176837d35e7294f1f14ac195c5d5cad",
        "a9d9dd2425c32f6868c35f49a3e8f29aafba931a"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 08 10:01:37 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 08 10:01:37 2010 -0700"
      },
      "message": "Merge \"Disable the access unit timeout temporarily while a seek operation is in progress.\" into gingerbread"
    },
    {
      "commit": "a9d9dd2425c32f6868c35f49a3e8f29aafba931a",
      "tree": "9afebd98b75d4fda40c7f79c7f6c7a81989d161d",
      "parents": [
        "f4ea1f92bc56a8ffceddba0dbd3979fe0219b13c"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 08 09:04:25 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 08 09:04:25 2010 -0700"
      },
      "message": "Disable the access unit timeout temporarily while a seek operation is in progress.\n\nChange-Id: I116cb76342aae4168f34ebae49ecb2301702a0ea\nrelated-to-bug: 3073955\n"
    },
    {
      "commit": "bea16187c176837d35e7294f1f14ac195c5d5cad",
      "tree": "6a64df89a04c9530a512d2523a9d1560db620de5",
      "parents": [
        "f4ea1f92bc56a8ffceddba0dbd3979fe0219b13c",
        "8c563ed9ca8a863a66965330b5d14bb4b4ab59d4"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Oct 08 08:28:08 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 08 08:28:08 2010 -0700"
      },
      "message": "Merge \"Added getter for session Id to AudioSink\" into gingerbread"
    },
    {
      "commit": "a6f61fc8e3d06373c17f0a38ff600e2b71c414fa",
      "tree": "0199c90919fe72ea0166d8b4a40aeb5d5e073171",
      "parents": [
        "2a4d22d79e927f2245537921e10fc5fda1c47a29"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Oct 07 20:20:59 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Oct 07 20:20:59 2010 -0700"
      },
      "message": "Name the writer threads\n\nChange-Id: I51461c3800ac5850e21ff398e80eb20b562264b3\n"
    },
    {
      "commit": "8c563ed9ca8a863a66965330b5d14bb4b4ab59d4",
      "tree": "b2d2e571aa8618456b27e1cb67a717ca80340e3e",
      "parents": [
        "2a4d22d79e927f2245537921e10fc5fda1c47a29"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 07 18:23:03 2010 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 07 18:23:03 2010 -0700"
      },
      "message": "Added getter for session Id to AudioSink\n\nAdded a method to expose the audio session id at AudioSink interface\nso that the AudioPlayer in stagefright can retrieve it.\n\nAlso:\n- Fixed audio effect send level not being initialized in mediaplayer.\n- Fixed compilation error when LOGV is enabled in mediaplayer JNI\n\nChange-Id: I4bb55454fd63d646e0e677692d737c4843fb05fb\n"
    },
    {
      "commit": "f4ea1f92bc56a8ffceddba0dbd3979fe0219b13c",
      "tree": "8f0773e9d8a4cee272ec1efbdd6dfa41679af9d3",
      "parents": [
        "2a4d22d79e927f2245537921e10fc5fda1c47a29"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Oct 07 16:48:50 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Oct 07 16:52:42 2010 -0700"
      },
      "message": "Increase scratch buffers sizes in mp3 software decoder, this integrates a PV master/opensource patch.\n\nChange-Id: I5a637f1b380e44c94040ec507843d58a1f5a9b61\nrelated-to-bug: 3065605\n"
    },
    {
      "commit": "2a4d22d79e927f2245537921e10fc5fda1c47a29",
      "tree": "1452ec4c157a5f701d4aea84f2107477d5324d94",
      "parents": [
        "2b82e9652ba049e754c2cc74e381282f231d5fbf"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Sep 08 14:32:20 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Oct 07 11:41:43 2010 -0700"
      },
      "message": "Work to support switching transport streams mid-stream and signalling discontinuities to the decoder.\n\nChange-Id: I7150e5e7342e1117c524856b204aadcb763e06ed\nrelated-to-bug: 2368598\n"
    },
    {
      "commit": "2b82e9652ba049e754c2cc74e381282f231d5fbf",
      "tree": "8b4d7249f6a0ae009088918f19d17be00d36ea10",
      "parents": [
        "0bcae473ba1cd1d72e7cef8fbab449db060dc8d7"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Oct 06 16:43:57 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Oct 07 09:19:25 2010 -0700"
      },
      "message": "On this particular device the hardware video decoder spits out buffers that don\u0027t actually contain our video data, so we cannot use them to restore the video frame after suspend/resume.\n\nChange-Id: I1b8fe68c1766299844fe84ebbff49cb8b3e4cc7c\nrelated-to-bug: 3070094\n"
    },
    {
      "commit": "0bcae473ba1cd1d72e7cef8fbab449db060dc8d7",
      "tree": "6ce584158c0eb6cf4b5bc956e976f7c40f26eb39",
      "parents": [
        "b2e3954c94717e43b3dc9b880564f166cfbbc0a2",
        "af59ce2407fa4e6e5d8f1664a4df2daf1badd407"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Oct 05 17:06:16 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 05 17:06:16 2010 -0700"
      },
      "message": "Merge \"Fixed AudioFlinger not always pausing tracks\" into gingerbread"
    },
    {
      "commit": "af59ce2407fa4e6e5d8f1664a4df2daf1badd407",
      "tree": "6a7eacbbcc46026be5fa06535c80e3de357c4e79",
      "parents": [
        "50817931e4cb4ae0019fd13c831a2839349834c5"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Oct 05 14:41:42 2010 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Oct 05 14:41:42 2010 -0700"
      },
      "message": "Fixed AudioFlinger not always pausing tracks\n\nIf the pause request is received before the AudioTrack buffer was\ncompletelly filled and the track ready for mixing, the pause is\nnot executed: the track just underruns and stays in pausing state.\n\nThe fix consists in considering the track ready for mixing immediately\nif pausing.\n\nChange-Id: Ia6cb4703fee2126e41011a6400ea8eeb3a3e5456\n"
    },
    {
      "commit": "b2e3954c94717e43b3dc9b880564f166cfbbc0a2",
      "tree": "3ebd2a7b944856cd2048a05aec0c11b4e639a9ee",
      "parents": [
        "50817931e4cb4ae0019fd13c831a2839349834c5"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Oct 05 10:25:34 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Oct 05 13:53:39 2010 -0700"
      },
      "message": "Make sure to call AudioTrack::stop() instead of AudioTrack::pause() after submitting all samples to AudioTrack to make sure those remaining samples are actually played out.\n\nChange-Id: Id574a0203efcb5e565f1b0fe77869fc33b9a9d56\n"
    },
    {
      "commit": "50817931e4cb4ae0019fd13c831a2839349834c5",
      "tree": "1492e3966d068becf59073b25ab7c23366dbbdeb",
      "parents": [
        "a007e8229fb2be4866c483f9cd6c4af238a2da5e"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Oct 01 16:22:41 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Oct 04 20:10:11 2010 -0700"
      },
      "message": "fix [2835280] Add support for cancelling buffers to ANativeWindow\n\nThere is a new ANativeWindow::cancelBuffer() API that can be used to\ncancel any dequeued buffer, BEFORE it\u0027s been enqueued. The buffer is\nreturned to the list of availlable buffers. dequeue and cancel are not\nmutually thread safe, they must be called from the same thread or\nexternal synchronization must be used.\n\nChange-Id: I86cc7985bace8b6a93ad2c75d2bef5c3c2cb4d61\n"
    },
    {
      "commit": "a007e8229fb2be4866c483f9cd6c4af238a2da5e",
      "tree": "48ef6f33a27a4cdba76218932db8ade197ae190e",
      "parents": [
        "3754a7901b6bed448eaecfbd29a4705b30a6b656"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Oct 04 16:41:53 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Oct 04 16:54:59 2010 -0700"
      },
      "message": "Fixed an issue where the reserved free space in the file writer was larger than intended\n\nThe problem was that even though user does not explicitly request the max file size\nlimit via MediaRecorder.setMaxFileSize(), the file writer sets an implicit file\nsize limit if 32-bit file offset is used on user\u0027s behalf. The reserved free space\nis estimated based on the file size, if the file size limit is set by the user.\n\nThe fix is to add an extra bool to tell the difference between an\nexplit requested file size and an implicit file limit and use that\nto set the estimated moov box size accordingly.\n\nChange-Id: I731aca6c7833aa764ed7b905edb77721577471b3\n"
    },
    {
      "commit": "3754a7901b6bed448eaecfbd29a4705b30a6b656",
      "tree": "41cb42b8bd8be0d6c8368c77982786307cba7070",
      "parents": [
        "83977eb230d829cfe520f55d7977037a904ce548",
        "872a481558350634a3fd5cb67939de288af00ecb"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Oct 04 15:35:40 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 04 15:35:40 2010 -0700"
      },
      "message": "Merge \"Resilent media time stamp adjustment\" into gingerbread"
    },
    {
      "commit": "872a481558350634a3fd5cb67939de288af00ecb",
      "tree": "8b3f5ec0bfa93323084e677dd1aa715e3e1b7d64",
      "parents": [
        "1fd01cbce6edb54334579f89e49a679207204619"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Sun Oct 03 10:59:26 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Oct 04 15:11:19 2010 -0700"
      },
      "message": "Resilent media time stamp adjustment\n\nChange-Id: I13ab87c05f26bb11a3cc9bf8559f98e6ea0752db\n"
    },
    {
      "commit": "83977eb230d829cfe520f55d7977037a904ce548",
      "tree": "e22b71a92ede66fbf60655026135ba5a02e10f7a",
      "parents": [
        "6954535ba64374e4e941cd83019a7af53edfb098"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Oct 04 11:36:39 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Oct 04 11:36:39 2010 -0700"
      },
      "message": "Make sure to finish the preparation phase even EOS occurs before we consider the cache to be completely filled up.\n\nChange-Id: I29143e357fb6ea7b860636100e010f2ea7436798\nrelated-to-bug: 3037389\n"
    },
    {
      "commit": "6954535ba64374e4e941cd83019a7af53edfb098",
      "tree": "a0466610752a3c3807e6d3f06ba302cb17b99013",
      "parents": [
        "1fd01cbce6edb54334579f89e49a679207204619"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Oct 04 11:09:31 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Oct 04 11:09:31 2010 -0700"
      },
      "message": "Don\u0027t retrieve metadata unless necessary for ogg-vorbis ringtone auto-looping.\n\nChange-Id: Iaf5880bb3376f9cbf22aefe198878eaf6f3f08c7\nrelated-to-bug: 3037389\n"
    },
    {
      "commit": "1fd01cbce6edb54334579f89e49a679207204619",
      "tree": "df63ec3344863f107d9105353d466197079cd9c9",
      "parents": [
        "a49c0d09653da20a7194d96fa43b230b2580ba75",
        "d0ea545d8357e7d86ad5f19cb2c6499c91786473"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Oct 01 17:27:51 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 01 17:27:51 2010 -0700"
      },
      "message": "Merge \"Turn off media time adjustment by default\" into gingerbread"
    },
    {
      "commit": "d0ea545d8357e7d86ad5f19cb2c6499c91786473",
      "tree": "19fcb23a99680467103c95f5891a8a3740339340",
      "parents": [
        "44d9848d6656777a18019223e0d35f2fcc67719a"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Oct 01 17:14:23 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Oct 01 17:14:23 2010 -0700"
      },
      "message": "Turn off media time adjustment by default\n\nChange-Id: I1f8021d605d0fd896e0639607a84e3f7c459612e\n"
    },
    {
      "commit": "a49c0d09653da20a7194d96fa43b230b2580ba75",
      "tree": "299bae8c244fda62a15accb97d08941680c89de6",
      "parents": [
        "caf5a483b16c2d123eddcf28241ad71131568033",
        "6466853f05e3f3b050de210490cc0fc855e60bb7"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 01 11:35:17 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 01 11:35:17 2010 -0700"
      },
      "message": "Merge \"Start playing live streams from the start, no the middle...\" into gingerbread"
    },
    {
      "commit": "6466853f05e3f3b050de210490cc0fc855e60bb7",
      "tree": "b3d88697f2ee371f5fc3490850d40199810e3fdd",
      "parents": [
        "6a63a939601645404fd98f58c19cc38ca818d99e"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 01 11:28:44 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 01 11:28:44 2010 -0700"
      },
      "message": "Start playing live streams from the start, no the middle...\n\nChange-Id: Ie01ba1250b51155cb1fb32fc3340189a16c01476\nrelated-to-bug: 2368598\n"
    },
    {
      "commit": "caf5a483b16c2d123eddcf28241ad71131568033",
      "tree": "db423639f9bb1df17bf58a899c39f91449dc4e52",
      "parents": [
        "6a63a939601645404fd98f58c19cc38ca818d99e"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 01 11:19:26 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 01 11:19:26 2010 -0700"
      },
      "message": "Remove development-only code.\n\nChange-Id: Ic2ca0efb631eb779ca157fb01b02aa19a1222c06\nrelated-to-bug: 2368598\n"
    },
    {
      "commit": "6a63a939601645404fd98f58c19cc38ca818d99e",
      "tree": "55a39e29f7b618aabd33ef77c03c8b48c7a1e351",
      "parents": [
        "44d9848d6656777a18019223e0d35f2fcc67719a"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 01 10:51:41 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 01 10:51:41 2010 -0700"
      },
      "message": "Squashed commit of the following:\n\ncommit 46744c7697f29aec71aed8de3c95ce035c284d97\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu Sep 30 16:44:57 2010 -0700\n\n    better separation of access units\n\n    Change-Id: I5a9e2138aed341f0bcf22cfe368a15ca5ea5a73c\n\ncommit d34952ac0feb1ae722ff65824d7353335502219b\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu Sep 30 15:35:01 2010 -0700\n\n    Support for ES packets that do not start on PES packet boundaries.\n\n    Change-Id: I2cf012833948eddfb20b16a1901206cf22ce71e4\n    related-to-bug: 2368598\n\nChange-Id: Ib9329bd6bb7149b5a6e2483788a96b1b158952fc\n"
    },
    {
      "commit": "44d9848d6656777a18019223e0d35f2fcc67719a",
      "tree": "fe71003d3400dcbdfe078f8d8fad1b1fde960b2c",
      "parents": [
        "922855214d0e8ae4159794d7f751f780b3243552"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 30 16:12:31 2010 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 30 17:21:23 2010 -0700"
      },
      "message": "Issue 3032913: improve AudioTrack recovery time\n\nThis issue showed that when an AudioTrack underruns during a too long period\nof time and is therefore disabled by audioflinger mixer, it takes an additional\ndelay of up to 3 seconds to recover.\nThis fix adds a simple mechanism to recover immediately when the client application\nis ready to write data again in the AudioTrack buffer\n\nAlso throttle warnings on record overflows\n\nChange-Id: I8b2c71578dd134b9e60a15ee4d91b70f3799cb3d\n"
    },
    {
      "commit": "922855214d0e8ae4159794d7f751f780b3243552",
      "tree": "3f5eba57ff2dbec100cf4102b53a2afe27d939fa",
      "parents": [
        "dac69110ed1073bf0a9827a3f78698896dd05d97",
        "88cfb59fde78a07ac8797008cf79b22193e983d9"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Tue Sep 28 21:11:27 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 28 21:11:27 2010 -0700"
      },
      "message": "Merge \"AMRNB: use Frame_Type_3GPP defined in frame_type_3gpp.h instead.\" into gingerbread"
    },
    {
      "commit": "88cfb59fde78a07ac8797008cf79b22193e983d9",
      "tree": "7dab8f17fe3cb83e5124a85eed0ab792dc4cc56f",
      "parents": [
        "4a73f3da3501db6e95473a4a653d6319c6d618e2"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Wed Sep 29 11:41:14 2010 +0800"
      },
      "committer": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Wed Sep 29 12:00:18 2010 +0800"
      },
      "message": "AMRNB: use Frame_Type_3GPP defined in frame_type_3gpp.h instead.\n\nThis allows gsmamr_enc.h and gsmamr_dec.h to be included in the same\nfile without conflict definition.\n\nChange-Id: I1c8dac235c122735ba14a1af2fda48c0f8d9f87b\n"
    },
    {
      "commit": "dac69110ed1073bf0a9827a3f78698896dd05d97",
      "tree": "db990d1cf1867854ffbf39585c0ce19e436c56b9",
      "parents": [
        "036fad5034d05beecae19da6da46e1ce7be78e64"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 28 14:09:57 2010 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 28 14:23:39 2010 -0700"
      },
      "message": "Fix several audio effects problems.\n\nFixed the following issues in LVM effect bundle wrapper:\n- memory leaks in EffectCreate() in case effect creation fails at various stages\n- Added saturation when accumulating to output buffer\n- Fixed problems with enabled effects count when an effect is released while enabled\n- Do not allocate temporary buffer for accumulation each time process() is called\n\nFixed the following issues in effects framework (AudioFlinger)\n- Release effect synchronously in the library when deleted from effect chain\n- Do not call the effect process function if no tracks are present in the same\naudio session\n\nChange-Id: Ifbd80a163415cfb3c0a337c12082853ea45d9c91\n"
    },
    {
      "commit": "036fad5034d05beecae19da6da46e1ce7be78e64",
      "tree": "b39d7bbc2bd8ebab9c90d35bd1f9b1c9debc248a",
      "parents": [
        "6fd2b44b156c4ef28e131183f0fe8f7dcecfcc6e",
        "c7d368d990303dc5369c7c61579f88c5059dc8d7"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 28 13:23:26 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 28 13:23:26 2010 -0700"
      },
      "message": "Merge \"Properly flush the AudioTrack/AudioSink on a seek request and make sure that both the mp3 decoder and aac software decoders start fresh after a seek without any dependency on previously decoded content.\" into gingerbread"
    },
    {
      "commit": "c7d368d990303dc5369c7c61579f88c5059dc8d7",
      "tree": "b14a6f51fc145d8f63bfbda1124f4b1b944bbdd8",
      "parents": [
        "ed54ad0f8619ae416b0968ade6248894cbfc4dba"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 28 13:13:38 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 28 13:13:38 2010 -0700"
      },
      "message": "Properly flush the AudioTrack/AudioSink on a seek request and make sure that both the mp3 decoder and aac software decoders start fresh after a seek without any dependency on previously decoded content.\n\nChange-Id: I4909fdf19518dbabb6c340e2a31b50dfe6c5b067\nrelated-to-bug: 3029947\n"
    },
    {
      "commit": "6fd2b44b156c4ef28e131183f0fe8f7dcecfcc6e",
      "tree": "d5313827aae770a8d4cef80b43c7030d8cb1f159",
      "parents": [
        "8211da9eabe28037ebcc23bbfbbe20cb21cb0cdc",
        "ed54ad0f8619ae416b0968ade6248894cbfc4dba"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 28 12:02:35 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 28 12:02:35 2010 -0700"
      },
      "message": "Merge \"Instead of constantly polling the AudioPlayer to see if it reached EOS or finished seeking, initiate the notification from the AudioPlayer when the event happens.\" into gingerbread"
    },
    {
      "commit": "ed54ad0f8619ae416b0968ade6248894cbfc4dba",
      "tree": "87a03bed454558ee3dee7826b9fb7e30fdf707b7",
      "parents": [
        "db6222212528637d8f2afa7f49fc3c8c915bafbe"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 28 11:56:39 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 28 11:56:39 2010 -0700"
      },
      "message": "Instead of constantly polling the AudioPlayer to see if it reached EOS or finished seeking, initiate the notification from the AudioPlayer when the event happens.\n\nChange-Id: I43875b6adaf96d4e982ef3dfc3d6c8f7034ac51d\nrelated-to-bug: 3036592\n"
    }
  ],
  "next": "8211da9eabe28037ebcc23bbfbbe20cb21cb0cdc"
}
