)]}'
{
  "log": [
    {
      "commit": "135ad07e33d30e5202deb21061a0e3ecf0ffad35",
      "tree": "9779bcb604cc51cba5fd42cc3c53e33c230f5109",
      "parents": [
        "64105f956f15969dbe1ec7319f6caa2a984e588b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 21 06:05:13 2010 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 21 07:05:56 2010 -0700"
      },
      "message": "Fix issue 2667796: [Audio Effect Framework] Effect factory and libraries.\n\nFirst effect factory and effect library API implementation.\nAlso added default effect libraries for reverb and equalizer effects.\nThese libraries are for functional test only and are not fine tuned with\nregard to audio quality. They will probably be replaced by other implementations\nbefore the release.\n\nChange-Id: I6868f8612146ae282c64052765c61a52ec789ec8\n"
    },
    {
      "commit": "c02138636202d606ca4cfec2297e057e9158db7d",
      "tree": "134ba3dac30d27d04e7ca257ffcabaeb7b90e4f3",
      "parents": [
        "af991a9b24865af8b17c6282047638cf00466ea2",
        "528b31476c16aefc4f886bf17b6d8bb4bd21292e"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu May 20 15:01:07 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 20 15:01:07 2010 -0700"
      },
      "message": "Merge \"Update software AVC decoder to no longer require the kWantsNALFragments hack.\" into kraken"
    },
    {
      "commit": "528b31476c16aefc4f886bf17b6d8bb4bd21292e",
      "tree": "01cbe4c2f2c73081cd8eed8b526004ca87ec9594",
      "parents": [
        "cf14f10b7bf39a84205333b87d5c5b7db9598de3"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed May 12 16:30:12 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu May 20 14:44:10 2010 -0700"
      },
      "message": "Update software AVC decoder to no longer require the kWantsNALFragments hack.\n\nChange-Id: I7f1882530a891a57d0cd76cbbd7084ee31c59bd1\n"
    },
    {
      "commit": "af991a9b24865af8b17c6282047638cf00466ea2",
      "tree": "3dc23b7512a1a6ddec1662d5a853f931044a0605",
      "parents": [
        "cf14f10b7bf39a84205333b87d5c5b7db9598de3",
        "7405500bb3b5f8e8e739e344bc9d036c2736fcdf"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu May 20 12:18:39 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 20 12:18:39 2010 -0700"
      },
      "message": "Merge \"Workaround for preview frame rate setting and encoder profile and level settings on passion 1. QCOM camera HAL does not honor the preview frame rate set request. see bug - 2701282 2. QCOM video encoder has lots of 0-length output buffers if the default level setting is changed. see bug - 2660974\" into kraken"
    },
    {
      "commit": "7405500bb3b5f8e8e739e344bc9d036c2736fcdf",
      "tree": "2ca617906bf73108b099c40acc646d1d117fb7e2",
      "parents": [
        "956c553ab0ce72f8074ad0fda2ffd66a0305700c"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu May 20 11:56:06 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu May 20 12:01:29 2010 -0700"
      },
      "message": "Workaround for preview frame rate setting and encoder profile and level settings on passion\n1. QCOM camera HAL does not honor the preview frame rate set request. see bug - 2701282\n2. QCOM video encoder has lots of 0-length output buffers if the default level setting is changed. see bug - 2660974\n\nChange-Id: Id01d94bb77dc242c4712d56a91b0d69a96ba6c2f\n"
    },
    {
      "commit": "cf14f10b7bf39a84205333b87d5c5b7db9598de3",
      "tree": "ff7c34553515179dbd980e5c0010b44b394f7fab",
      "parents": [
        "956c553ab0ce72f8074ad0fda2ffd66a0305700c",
        "8fe7fa8f90e52cab210ec1de861f2d8ac9435968"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu May 20 11:14:37 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 20 11:14:37 2010 -0700"
      },
      "message": "am 3c16154a: am 2723e092: Merge \"Better handling of codec initialization failure in the player and thumbnail extractor. Return a runtime error instead of asserting if the software MPEG4/H.263 decoder fails to initialize.\" into froyo\n\nMerge commit \u00273c16154a3309fe250177d69f3fcd5b6e9a82d1b3\u0027 into kraken\n\n* commit \u00273c16154a3309fe250177d69f3fcd5b6e9a82d1b3\u0027:\n  Better handling of codec initialization failure in the player and thumbnail extractor. Return a runtime error instead of asserting if the software MPEG4/H.263 decoder fails to initialize.\n"
    },
    {
      "commit": "8fe7fa8f90e52cab210ec1de861f2d8ac9435968",
      "tree": "f15953bd8e8aa9d8b58f7c8e47c0e736c6948b98",
      "parents": [
        "c0b42f27a36c96b0ce16ade57c26ff1decb4bb72",
        "139a5d5bd33c9fc7708d0a79f11ee928f7796e6b"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu May 20 11:13:20 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 20 11:13:20 2010 -0700"
      },
      "message": "am 2723e092: Merge \"Better handling of codec initialization failure in the player and thumbnail extractor. Return a runtime error instead of asserting if the software MPEG4/H.263 decoder fails to initialize.\" into froyo\n\nMerge commit \u00272723e09229ce916724861ab90b6b8fc7c9ea9f2e\u0027 into froyo-plus-aosp\n\n* commit \u00272723e09229ce916724861ab90b6b8fc7c9ea9f2e\u0027:\n  Better handling of codec initialization failure in the player and thumbnail extractor. Return a runtime error instead of asserting if the software MPEG4/H.263 decoder fails to initialize.\n"
    },
    {
      "commit": "139a5d5bd33c9fc7708d0a79f11ee928f7796e6b",
      "tree": "18ab9da463636f4eecd524cadd5ddaf5c525f21d",
      "parents": [
        "1edbcb2bb9988cc7cb54a865aaea4613bdd53a9d"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu May 20 10:37:06 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu May 20 10:37:06 2010 -0700"
      },
      "message": "Better handling of codec initialization failure in the player and thumbnail extractor. Return a runtime error instead of asserting if the software MPEG4/H.263 decoder fails to initialize.\n\nChange-Id: I5cba02ee85a41e43c2623053de40f26e2cf2efe4\nrelated-to-bug: 2699505\n"
    },
    {
      "commit": "956c553ab0ce72f8074ad0fda2ffd66a0305700c",
      "tree": "fe111ecd29e01c270246f5f338c56806d6d5b136",
      "parents": [
        "e1f61055b4abb96a86d1ff24b5a7777dfe40fe5f"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri May 14 15:45:22 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed May 19 07:21:25 2010 -0700"
      },
      "message": "Initial software encoder checkins\n\nChange-Id: I27f387db23594e46384c4eb3a0093ce220bb6b60\n"
    },
    {
      "commit": "d1b449aad6c087a69f5ec66b7facb2845b73f1cb",
      "tree": "b16f7d28fdac76c90d66be56161116fe09822992",
      "parents": [
        "ae77ffa16bda593fb3751e41d45327d867f3c8e1"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 14 03:26:45 2010 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon May 17 02:23:47 2010 -0700"
      },
      "message": "Fix issue 2553359: Pandora does not work well with Passion deskdock / Cardock.\n\nThe problem is due to a too big difference between the buffer size used at the hardware interface and at the A2DP interface.\nWhen no resampling occurs we don\u0027t notice problems but the timing is very tight. As soon as resampling is activated, the AudioTrack underruns.\nThis is because the AudioTrack buffers are not resized when moving the AudioTrack from hardware to A2DP output.\nThe AudioTrack buffers are calculated based on a hardware output buffer size of 3072 bytes. Which is much less than the A2DP output buffer size (10240).\n\nThe solution consists in creating new tracks with new buffers in AudioFlinger when the A2DP output is opened\ninstead of just transfering active tracks from hardware output mixer thread to the new A2DP output mixer thread.\nTo avoid synchronization issues between mixer threads and client processes, this is done by invalidating tracks\nby setting a flag in their control block and having AudioTrack release the handle on this track (IAudioTrack)\nand create a new IAudioTrack when this flag is detected next time obtainBuffer() or start() is executed.\n\nAudioFlinger modifications:\n- invalidate the tracks when setStreamOutput() is called\n- make sure that notifications of output opening/closing and change of stream type to output mapping are sent synchronously to client process.\nThis is necessary so that AudioSystem has the new stream to output mapping when the AudioTrack detects the invalidate flag in the client process.\nPreviously their were sent when the corresponding thread loop was executed.\n\nAudioTrack modifications:\n- move frame count calculation and verification from set() to createTrack() so that is is updated every time a new IAudioTrack is created.\n- detect track invalidate flag in obtainBuffer() and start() and create a new IAudioTrack.\n\nAudioTrackShared modifications\n- group all flags (out, flowControlFlag, forceReady...) into a single bit filed to save space.\n\nChange-Id: I9ac26b6192230627d35084e1449640caaf7d56ee\n"
    },
    {
      "commit": "ea10bc6158caa9f595c85a3dc3517d88ee989001",
      "tree": "6514ef7d81dc9272abb2c9cc5b05148f391b9f2d",
      "parents": [
        "a326071ff872d5a197efbf27b9ab6653a90f0734",
        "c0b42f27a36c96b0ce16ade57c26ff1decb4bb72"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri May 14 16:30:29 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri May 14 16:30:29 2010 -0700"
      },
      "message": "am a5cd816c: am eb9128f9: Fix sampleTable instantiation, this makes sure that the sample table refers to the custom datasource that caches the metadata to prevent needless seeking.\n\nMerge commit \u0027a5cd816c720ed87b91a33aa5d000a0d308c74453\u0027 into kraken\n\n* commit \u0027a5cd816c720ed87b91a33aa5d000a0d308c74453\u0027:\n  Fix sampleTable instantiation, this makes sure that the sample table refers to the custom datasource that caches the metadata to prevent needless seeking.\n"
    },
    {
      "commit": "c0b42f27a36c96b0ce16ade57c26ff1decb4bb72",
      "tree": "5b7c9790f0be90552ce9a31e6871f2a3bfbc750a",
      "parents": [
        "4ac3585263ad59def5cf14756347cecab43e6e67",
        "1edbcb2bb9988cc7cb54a865aaea4613bdd53a9d"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri May 14 16:28:09 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri May 14 16:28:09 2010 -0700"
      },
      "message": "am eb9128f9: Fix sampleTable instantiation, this makes sure that the sample table refers to the custom datasource that caches the metadata to prevent needless seeking.\n\nMerge commit \u0027eb9128f9b0ee660504621381fd96f82d5bf8a3fd\u0027 into froyo-plus-aosp\n\n* commit \u0027eb9128f9b0ee660504621381fd96f82d5bf8a3fd\u0027:\n  Fix sampleTable instantiation, this makes sure that the sample table refers to the custom datasource that caches the metadata to prevent needless seeking.\n"
    },
    {
      "commit": "1edbcb2bb9988cc7cb54a865aaea4613bdd53a9d",
      "tree": "962de13061feaa0d428f33f8c94ced16c8bcf343",
      "parents": [
        "a945bfd91aa291fba4d9201ffcb38fce40eab7fe"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri May 14 15:28:51 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri May 14 15:32:21 2010 -0700"
      },
      "message": "Fix sampleTable instantiation, this makes sure that the sample table refers to the custom datasource that caches the metadata to prevent needless seeking.\n\nChange-Id: I576178144ffd753b809e1c4ae269ffc3aa34b511\nrelated-to-bug: 2686604\nQA-Impact: well, ..., everything related to streaming mpeg4/aac content over http\n"
    },
    {
      "commit": "f0ce2fb0c7bf3a414279e5aba61105f3d9025c0e",
      "tree": "4fea53e0f6cd8068d0342828c267fe734925f2f8",
      "parents": [
        "3c0131f02b6f008321608044c53bccce2ac5f6dd"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri May 14 11:48:00 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri May 14 11:48:00 2010 -0700"
      },
      "message": "Detect and handle premature termination of a recording session\n\nChange-Id: Ifb83b19f3e68580345b23efed5d5956fb81baeb8\n"
    },
    {
      "commit": "3c0131f02b6f008321608044c53bccce2ac5f6dd",
      "tree": "cf03faa5dc5f5323fdf16eb1374c12623b6f7961",
      "parents": [
        "d599cd4573b5a2d5914c5040e0565ef866749b77"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu May 13 11:47:36 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri May 14 10:51:12 2010 -0700"
      },
      "message": "Audio/video initial recording time synchronization\n\nChange-Id: Iac58b63d474fe09c1d36ba6ecde91dafbb7fef9a\n"
    },
    {
      "commit": "d599cd4573b5a2d5914c5040e0565ef866749b77",
      "tree": "f7b799092087742c9cfdda8b21a141f9934cf0ae",
      "parents": [
        "2e90514be4c98b5fa6e1df5f2049a5e005a4263d"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue May 11 14:57:02 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri May 14 10:46:56 2010 -0700"
      },
      "message": "Handle recording file size and/or duration limit\n\nChange-Id: Ib9ed1f3ebd8fef550cc130a7ef11f2905fa9aedc\n"
    },
    {
      "commit": "2e90514be4c98b5fa6e1df5f2049a5e005a4263d",
      "tree": "5a46f118a7f05da39b068489b61209ec63f23034",
      "parents": [
        "45df6a2a25ff36606a5301155d8d97e9bf80d00b",
        "4ac3585263ad59def5cf14756347cecab43e6e67"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri May 14 09:46:11 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri May 14 09:46:11 2010 -0700"
      },
      "message": "am 1d628c5d: merge from open-source master\n\nMerge commit \u00271d628c5d3dd7998b29c339292a2dc391015d0782\u0027 into kraken\n\n* commit \u00271d628c5d3dd7998b29c339292a2dc391015d0782\u0027:\n  Accept media files by file extension in case insensitive manner.\n"
    },
    {
      "commit": "4ac3585263ad59def5cf14756347cecab43e6e67",
      "tree": "89ed91b26ca3e58f51278c0c58e77f56f1a766d8",
      "parents": [
        "a945bfd91aa291fba4d9201ffcb38fce40eab7fe",
        "49475772e0d3c38ab1246deac3d5e5bc6c2bb4e6"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri May 14 09:44:36 2010 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri May 14 09:44:36 2010 -0700"
      },
      "message": "merge from open-source master\n\nChange-Id: I934cf85c4673f9ca3a9549c2074907ad572310f4\n"
    },
    {
      "commit": "49475772e0d3c38ab1246deac3d5e5bc6c2bb4e6",
      "tree": "aac540736934978e6e10346ec3331c98de5f713f",
      "parents": [
        "eb839f5f05b7d0c4558bf845816fd3fe6201e15e",
        "fc1c7b940c84793ad262a345af117c482a86acec"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri May 14 09:06:43 2010 -0700"
      },
      "committer": {
        "name": "Android Code Review",
        "email": "code-review@android.com",
        "time": "Fri May 14 09:06:43 2010 -0700"
      },
      "message": "Merge \"Accept media files by file extension in case insensitive manner.\""
    },
    {
      "commit": "65ae665befd929efd1a7d1c9addac41c699f04b2",
      "tree": "caa60fa0487dcfaa5aa965ee33ac857c1b36b122",
      "parents": [
        "7838252956e00518afce33f9591252c5c8f9dbac"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu May 13 12:07:32 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu May 13 12:08:29 2010 -0700"
      },
      "message": "Remove dummy surface in CameraSource\n\nbug - 2680919\n\nChange-Id: Ia0308cf57fd67058b4dd0e042b3ce97f13df475f\n"
    },
    {
      "commit": "7838252956e00518afce33f9591252c5c8f9dbac",
      "tree": "c75466eb0bf56eb46fb468e1066213b0ff6475ca",
      "parents": [
        "f8fb8b856427e9b1c406d516a114a9f37cfea4f2",
        "a945bfd91aa291fba4d9201ffcb38fce40eab7fe"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu May 13 11:18:24 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 13 11:18:24 2010 -0700"
      },
      "message": "am 28fadef2: am 3c78a1b5: Return a runtime error instead of asserting if the AACDecoder is passed an unsupported config.\n\nMerge commit \u002728fadef2ede2d74e9526266e779553bbd1dc66f4\u0027 into kraken\n\n* commit \u002728fadef2ede2d74e9526266e779553bbd1dc66f4\u0027:\n  Return a runtime error instead of asserting if the AACDecoder is passed an unsupported config.\n"
    },
    {
      "commit": "a945bfd91aa291fba4d9201ffcb38fce40eab7fe",
      "tree": "daf784212302922f821dbcf99d85e55697ac610d",
      "parents": [
        "d2333bda49f9d76f1b30b81dfc093d407bc6dbf0"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu May 13 09:15:21 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu May 13 09:19:35 2010 -0700"
      },
      "message": "Return a runtime error instead of asserting if the AACDecoder is passed an unsupported config.\n\nChange-Id: Ie084ed4df5a5d286abd36d9149c2138f8e7ed08a\nrelated-to-bug: 2682221\nQA-impact: none\n"
    },
    {
      "commit": "f8fb8b856427e9b1c406d516a114a9f37cfea4f2",
      "tree": "608f5e3e1a5f2d26004da2dc01aa60e844e94d71",
      "parents": [
        "5cc61b153dabc4e188302e85828c06cf9995b410"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed May 12 18:26:13 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed May 12 18:26:13 2010 -0700"
      },
      "message": "should fix the build\n\nChange-Id: I9957fc43d5fce317479f6c55fb0b9612bff9a495\n"
    },
    {
      "commit": "8229dabcc36a015a6cf11a9b0b2e948ac0476552",
      "tree": "e3e1b775d2e5340dbfce10cfbdb606ef6fa8ad60",
      "parents": [
        "f5ef7f22bbf73ba5c3910096f8f7f84cc6e21039",
        "d2333bda49f9d76f1b30b81dfc093d407bc6dbf0"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed May 12 07:55:48 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 12 07:55:48 2010 -0700"
      },
      "message": "am b003ad17: am e0dc80f8: Merge \"Support for customizable socket-read timeouts through the HTTP response.\" into froyo\n\nMerge commit \u0027b003ad17bffeba7875b9708ffeef2300ef28c916\u0027 into kraken\n\n* commit \u0027b003ad17bffeba7875b9708ffeef2300ef28c916\u0027:\n  Support for customizable socket-read timeouts through the HTTP response.\n"
    },
    {
      "commit": "f5ef7f22bbf73ba5c3910096f8f7f84cc6e21039",
      "tree": "7eda15831da8fc44486086fd4974a9ba3557efa7",
      "parents": [
        "83e5a900e5eccbd2af300c03d24d72365d0c8323",
        "96f52cde23982f668592418a9548045237d5e327"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed May 12 07:55:40 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 12 07:55:40 2010 -0700"
      },
      "message": "am 227e443a: am d6ad7c85: Merge \"Better seek handling and proper reset of the vorbis decoder after a discontinuity (seek)\" into froyo\n\nMerge commit \u0027227e443a43d70b9463b2e685688f73cfb1b72096\u0027 into kraken\n\n* commit \u0027227e443a43d70b9463b2e685688f73cfb1b72096\u0027:\n  Better seek handling and proper reset of the vorbis decoder after a discontinuity (seek)\n"
    },
    {
      "commit": "ef9d0cd72e476a4b7556833fb09505a51b626797",
      "tree": "9f2b89e1e148cc6fd333e8f5fa34f3ddb629dc9c",
      "parents": [
        "7837c17063a4c50bc856ba59418516fdab731de7"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue May 11 11:46:59 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue May 11 13:10:02 2010 -0700"
      },
      "message": "Added initial validation on video/audio encoding parameters before/at start()\n\nChange-Id: I1a40dd247202f70e3e5429d74533d349b88f1d54\n"
    },
    {
      "commit": "d2333bda49f9d76f1b30b81dfc093d407bc6dbf0",
      "tree": "64ae2fa639ef501ef1b6b8e1195020dc80aab53c",
      "parents": [
        "96f52cde23982f668592418a9548045237d5e327",
        "ba7c35717116e4dcb8242644f6ccf07c25c7b251"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue May 11 12:21:14 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 11 12:21:14 2010 -0700"
      },
      "message": "Merge \"Support for customizable socket-read timeouts through the HTTP response.\" into froyo"
    },
    {
      "commit": "ba7c35717116e4dcb8242644f6ccf07c25c7b251",
      "tree": "cabacf8bb7efd7d22fa408c8a3aacc8d476eee87",
      "parents": [
        "adbda96f6a05507788bb4163d7fbe8a95948f0a5"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue May 11 11:10:21 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue May 11 11:10:21 2010 -0700"
      },
      "message": "Support for customizable socket-read timeouts through the HTTP response.\n\nSpecify a response header of \"X-SocketTimeout: 15\" to override the default timeout\nof 5 secs with a timeout of 15 seconds. Specify a negative value to disable the\ntimeout altogether.\n\nChange-Id: I545adf3d8b3f7efe5f8d081a641c6404440a77db\nrelated-to-bug: 2675721\n"
    },
    {
      "commit": "7837c17063a4c50bc856ba59418516fdab731de7",
      "tree": "c8c57f6530ee1b053055ecc6376dcf82d9878a54",
      "parents": [
        "b59c95419c48e6e54071b9e93177bd8f79471eb9"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri May 07 10:26:24 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue May 11 10:36:43 2010 -0700"
      },
      "message": "Output streamable MP4 file during MP4 file recording\n\nWhen the reserved moov box space is not big enough,\nfall back to non-streamable MP4 file.\n\nChange-Id: I93382d037d657a3f3fe2af31e4ea26e1898b4d95\n"
    },
    {
      "commit": "96f52cde23982f668592418a9548045237d5e327",
      "tree": "a5502e0e6b6ca85dab03308a117324261a9caa00",
      "parents": [
        "adbda96f6a05507788bb4163d7fbe8a95948f0a5"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue May 11 10:11:55 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue May 11 10:11:55 2010 -0700"
      },
      "message": "Better seek handling and proper reset of the vorbis decoder after a discontinuity (seek)\n\nChange-Id: I3c76d35da48e0964f7a0fa2816f8573b5e1a9436\nrelated-to-bug: 2674036\nQA-impact: low, only affects ogg-vorbis playback through http\n"
    },
    {
      "commit": "10a49e9d73f16f5f924c4013cba49a6ca4a28bac",
      "tree": "5211f1a7a91a62e05931f389233ec4912924f040",
      "parents": [
        "b1ccb623d9db42c451aa9dd4e8cf0e76b164aa50",
        "be83c9e8c71ce16c0d0e9ed9df525510a49a541b"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon May 10 11:33:25 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 10 11:33:25 2010 -0700"
      },
      "message": "Merge \"Metadata construction optimization\" into kraken"
    },
    {
      "commit": "b1ccb623d9db42c451aa9dd4e8cf0e76b164aa50",
      "tree": "47d13e256ed308eafc7815179266b73835c6e770",
      "parents": [
        "35a055b8bfc6f3cbea409b2897caf936654519cb",
        "ee7ff20e69498ebd53dd9717a0f984188341a75e"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon May 10 09:49:24 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 10 09:49:24 2010 -0700"
      },
      "message": "am 17078510: am d13efb20: Merge \"A new OggExtractor/VorbisDecoder combo to support approximate seeking.\" into froyo\n\nMerge commit \u00271707851090e6512a77247b0c260dd673ef687589\u0027 into kraken\n\n* commit \u00271707851090e6512a77247b0c260dd673ef687589\u0027:\n  A new OggExtractor/VorbisDecoder combo to support approximate seeking.\n"
    },
    {
      "commit": "35a055b8bfc6f3cbea409b2897caf936654519cb",
      "tree": "f2167d55486fd370d24e68aabe1ae37879cde8ec",
      "parents": [
        "d8a30349da270715156d3f658b165481ce10cf71"
      ],
      "author": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Thu May 06 16:36:58 2010 +0800"
      },
      "committer": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Mon May 10 11:21:14 2010 +0800"
      },
      "message": "Support multiple cameras in framework.\n\nChange-Id: I081f0fbdca4b633715ea7c3b3d42f8662d27598a\n"
    },
    {
      "commit": "ee7ff20e69498ebd53dd9717a0f984188341a75e",
      "tree": "2338621414d60b23ec50dd5f28fc413fb957a59e",
      "parents": [
        "f9325834de1ae004212aec2fd03445b4eebfa766"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri May 07 10:35:13 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri May 07 12:01:45 2010 -0700"
      },
      "message": "A new OggExtractor/VorbisDecoder combo to support approximate seeking.\n\nChange-Id: Id5d0c1c8b1adc62896bb5ed951f7b5cfda811e95\nrelated-to-bug: 2654400\n"
    },
    {
      "commit": "be83c9e8c71ce16c0d0e9ed9df525510a49a541b",
      "tree": "c750338bd885690d1d7dd67af96ea3f70ae21eaf",
      "parents": [
        "d8a30349da270715156d3f658b165481ce10cf71"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Apr 20 11:50:11 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu May 06 14:55:33 2010 -0700"
      },
      "message": "Metadata construction optimization\n\n- Potentially much shorter stts box if samples have roughly the same duration\n- Potentially much shorter stsz box if all samples have the same size\n\nChange-Id: I4f7663dd64285070995585a02bb3ba1e1049a0cf\n"
    },
    {
      "commit": "d8a30349da270715156d3f658b165481ce10cf71",
      "tree": "d39118ad2a4370e9e9a0c5cbc7b1e9de56592733",
      "parents": [
        "71ec1d320e61c490bd3fac172f1d1a206a7198e8",
        "f9325834de1ae004212aec2fd03445b4eebfa766"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu May 06 12:43:59 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 06 12:43:59 2010 -0700"
      },
      "message": "am 71bd9fc8: am 100ef9be: Merge \"Disable vorbis seek when streaming from localhost.\" into froyo\n\nMerge commit \u002771bd9fc81e3154b9cad22ca7ff2d9c6ed6fdbe6c\u0027 into kraken\n\n* commit \u002771bd9fc81e3154b9cad22ca7ff2d9c6ed6fdbe6c\u0027:\n  Disable vorbis seek when streaming from localhost.\n"
    },
    {
      "commit": "f9325834de1ae004212aec2fd03445b4eebfa766",
      "tree": "07090328e804d189f1df74e95c9c9b032182ba3e",
      "parents": [
        "77356c37030215a4b8696b7d0af44a724341a0f9",
        "acdd9d0f59c3d8bdc3de80664a609527ec3d21e2"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu May 06 11:27:35 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 06 11:27:35 2010 -0700"
      },
      "message": "Merge \"Disable vorbis seek when streaming from localhost.\" into froyo"
    },
    {
      "commit": "acdd9d0f59c3d8bdc3de80664a609527ec3d21e2",
      "tree": "e75291b6c434b508d278b7f7ccb000863ca1f9df",
      "parents": [
        "3cf4e43cdd391502690c07e08e805aa8ff5db0c0"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu May 06 10:18:05 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu May 06 10:31:57 2010 -0700"
      },
      "message": "Disable vorbis seek when streaming from localhost.\n\nChange-Id: Icda523ae1c89e26482f1c1767fe3a8b9222bb30f\nrelated-to-bug: 2654400\n"
    },
    {
      "commit": "71ec1d320e61c490bd3fac172f1d1a206a7198e8",
      "tree": "0b1c68253ed5b3a862f77333bc756235f3aa50a7",
      "parents": [
        "13aec890216948b0c364f8f92792129d0335f506",
        "77356c37030215a4b8696b7d0af44a724341a0f9"
      ],
      "author": {
        "name": "Dan Bornstein",
        "email": "danfuzz@android.com",
        "time": "Wed May 05 17:52:22 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 05 17:52:22 2010 -0700"
      },
      "message": "am 2a1674b1: am 2d315667: For issue #2651381, allow library prelinking.\n\nMerge commit \u00272a1674b1d00fda68980ec834d6ce61aacd379bc8\u0027 into kraken\n\n* commit \u00272a1674b1d00fda68980ec834d6ce61aacd379bc8\u0027:\n  For issue #2651381, allow library prelinking.\n"
    },
    {
      "commit": "77356c37030215a4b8696b7d0af44a724341a0f9",
      "tree": "0773547a682447511484f5a86986efdf01701cf5",
      "parents": [
        "3cf4e43cdd391502690c07e08e805aa8ff5db0c0"
      ],
      "author": {
        "name": "Dan Bornstein",
        "email": "danfuzz@android.com",
        "time": "Wed May 05 09:37:52 2010 -0700"
      },
      "committer": {
        "name": "Dan Bornstein",
        "email": "danfuzz@android.com",
        "time": "Wed May 05 14:41:41 2010 -0700"
      },
      "message": "For issue #2651381, allow library prelinking.\n\nChange-Id: I119348b55ad0015a286e9c94709977cd1973a7e1\n"
    },
    {
      "commit": "13aec890216948b0c364f8f92792129d0335f506",
      "tree": "73b6a98aa3a58fc4091129448561403098acb218",
      "parents": [
        "aa9ca29395eebfcfa64e070dc71009b99131769f"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Apr 21 16:14:15 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed May 05 11:34:43 2010 -0700"
      },
      "message": "Support audio and video track interleaving in the recorded mp4 file\n\nChange-Id: Ifa27eb23ee265f84fe06773b29b0eb2b0b075b60\n"
    },
    {
      "commit": "aa9ca29395eebfcfa64e070dc71009b99131769f",
      "tree": "0fdacb56082af39b5b42a99e3e143ff702ceea66",
      "parents": [
        "3830a4f133893e6a77a967c84220d7baf9687f23",
        "050b28a593350047845a45a14cc5026221ac1620"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue May 04 14:40:28 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 04 14:40:28 2010 -0700"
      },
      "message": "Merge \"Support AAC recording\" into kraken"
    },
    {
      "commit": "3830a4f133893e6a77a967c84220d7baf9687f23",
      "tree": "f89509fec9d700443a5dbaddfeb5c21334ae9e24",
      "parents": [
        "86f69c1f41dcf4e0826b17ecf7fd71eb353b0782",
        "3cf4e43cdd391502690c07e08e805aa8ff5db0c0"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue May 04 14:30:34 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 04 14:30:34 2010 -0700"
      },
      "message": "am 8ea45aad: am e083d0a2: Merge \"Support for Ogg Vorbis decoding in stagefright.\" into froyo\n\nMerge commit \u00278ea45aad100ee25067b2e83703454c71a968ba4f\u0027 into kraken\n\n* commit \u00278ea45aad100ee25067b2e83703454c71a968ba4f\u0027:\n  Support for Ogg Vorbis decoding in stagefright.\n"
    },
    {
      "commit": "3cf4e43cdd391502690c07e08e805aa8ff5db0c0",
      "tree": "3792432de7d3cf66218e1ed518bfbb32d7d9d4b7",
      "parents": [
        "0b5ba9eeed56a80fed3735f5cd4951477fda79f0"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue May 04 11:46:42 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue May 04 11:58:16 2010 -0700"
      },
      "message": "Support for Ogg Vorbis decoding in stagefright.\n\nSet the magic property media.stagefright.enable-vorbis to true to use the new implementation instead of the standalon vorbis player for file-based playback. HTTP streaming of vorbis content will always go through stagefright.\n\nChange-Id: Ie3843a99fadb22372f89540d0f8d65196e0c2af8\nrelated-to-bug: 2654400\n"
    },
    {
      "commit": "050b28a593350047845a45a14cc5026221ac1620",
      "tree": "118de60bec960d36dd3784439f84e2bc1bba6d9f",
      "parents": [
        "86f69c1f41dcf4e0826b17ecf7fd71eb353b0782"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Apr 22 17:27:04 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon May 03 15:47:41 2010 -0700"
      },
      "message": "Support AAC recording\n\n- Extend the audio recording to AAC format\n- Add support for setting some recording parameters\n- Add stss box to the meta data in the recorded file\n\nChange-Id: I41167bfd9d70ef9cd33906f8437b39c232b6d3b7\n"
    },
    {
      "commit": "c32cd79d9ad4aba7d959b5b3be7361b4715e6f18",
      "tree": "8a3b2842c196b748fd50d633b038ce33c9d6ee1a",
      "parents": [
        "261741e728f2137f12b28df25c25e96acd942de9"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Apr 26 17:48:26 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Apr 28 11:55:47 2010 -0700"
      },
      "message": "Use timestamp from camera driver for CameraSource\n\nChange-Id: I09ddec69997c43b8f17fdd21304c76cb4c5ab8cf\n"
    },
    {
      "commit": "261741e728f2137f12b28df25c25e96acd942de9",
      "tree": "41068d0acc37723315f09cf173b621c390d73259",
      "parents": [
        "add08eb454bbe8b3a0a40d23621c102b72cd005d",
        "0b5ba9eeed56a80fed3735f5cd4951477fda79f0"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Apr 26 11:12:37 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Apr 26 11:12:37 2010 -0700"
      },
      "message": "am 31431b34: am 374aee68: Switch to use software MP3 decoder Hardware MP3 decoder could lead to hang in the Music application, although the chance is very low.\n\nMerge commit \u002731431b34f895862ae13efba30bb5771085572687\u0027 into kraken\n\n* commit \u002731431b34f895862ae13efba30bb5771085572687\u0027:\n  Switch to use software MP3 decoder\n"
    },
    {
      "commit": "0b5ba9eeed56a80fed3735f5cd4951477fda79f0",
      "tree": "eba0e273399f28784bc8e3be6dcb4161bb1893c6",
      "parents": [
        "4bf29cabaa7c94d0c74d5f945df6b51da51ed180"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Apr 26 10:23:30 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Apr 26 10:23:30 2010 -0700"
      },
      "message": "Switch to use software MP3 decoder\nHardware MP3 decoder could lead to hang in the Music application, although the chance is very low.\n\nbug - 2608400\n\nChange-Id: Ia0b5b6521015fc8d3e086117fa914dcc20ace5bd\n"
    },
    {
      "commit": "add08eb454bbe8b3a0a40d23621c102b72cd005d",
      "tree": "33c91150474ff16a6feda9d04e2bb56d938dbaeb",
      "parents": [
        "87d83db7909b9a920b4e417bb240ec11e5441749",
        "4bf29cabaa7c94d0c74d5f945df6b51da51ed180"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Apr 20 16:37:35 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Apr 20 16:37:35 2010 -0700"
      },
      "message": "am 89e28cbe: am 9e609b0d: Merge \"Apparently select() does not immediately return if one of the masked socket descriptors is closed... Stop relying on select for read-with-timeout functionality and use SO_RCVTIMEO socket option instead.\" into froyo\n\nMerge commit \u002789e28cbefaff6ae9499032bb446ae7e72e019466\u0027 into kraken\n\n* commit \u002789e28cbefaff6ae9499032bb446ae7e72e019466\u0027:\n  Apparently select() does not immediately return if one of the masked socket descriptors is closed... Stop relying on select for read-with-timeout functionality and use SO_RCVTIMEO socket option instead.\n"
    },
    {
      "commit": "4bf29cabaa7c94d0c74d5f945df6b51da51ed180",
      "tree": "b364dfaabd616c0dc7730bf09c824d111aab071f",
      "parents": [
        "d2c6894b56a538aa807e20d3ef421807cd55c009"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Apr 20 15:46:28 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Apr 20 15:56:36 2010 -0700"
      },
      "message": "Apparently select() does not immediately return if one of the masked socket descriptors is closed... Stop relying on select for read-with-timeout functionality and use SO_RCVTIMEO socket option instead.\n\nChange-Id: Ic2d4a8f5b6bbf16772fba39377809ec68d249c1f\nrelated-to-bug: 2611257\n"
    },
    {
      "commit": "fdce1ccd7e468f3229de8f4f1616d017465470cb",
      "tree": "70db7cba31e30218aa77fa3458ef062dad0439c1",
      "parents": [
        "4acdadbd8195f4fb21ff4cb72f09f088097ddf3b",
        "d2c6894b56a538aa807e20d3ef421807cd55c009"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Apr 20 14:57:25 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Apr 20 14:57:25 2010 -0700"
      },
      "message": "am 1e1edb2c: am 25dc5f30: Merge \"Don\\\u0027t coalesce more than 250ms worth of encoded data into a single codec input buffer. This currently only applies to the component OMX.TI.AAC.decode, it is the only one to support coalescing in the first place.\" into froyo\n\nMerge commit \u00271e1edb2c7376dbd9ca24bbeefbddbe4221f397a0\u0027 into kraken\n\n* commit \u00271e1edb2c7376dbd9ca24bbeefbddbe4221f397a0\u0027:\n  Don\u0027t coalesce more than 250ms worth of encoded data into a single codec input buffer.\n"
    },
    {
      "commit": "d2c6894b56a538aa807e20d3ef421807cd55c009",
      "tree": "d1e5508667b298b8c7836d6c165cee3337d6e28d",
      "parents": [
        "27fde958c8e8e6a998ec7a28d32b0aad97662dee"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Apr 20 14:26:00 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Apr 20 14:26:00 2010 -0700"
      },
      "message": "Don\u0027t coalesce more than 250ms worth of encoded data into a single codec input buffer.\nThis currently only applies to the component OMX.TI.AAC.decode, it is the only one to support coalescing in the first place.\n\nIn certain edge cases (encoded audio track contains silence), each buffer would turn out to be an amazing 6(!!!) bytes, we\u0027d spend lots and lots of time streaming network data to fill the codec\u0027s buffers of size 6144 bytes with .. silence.\n\nChange-Id: I9f449f310fc64ca384bd02e4a783e33cf5b46fcc\nrelated-to-bug: 2609049\nQA-Impact: streamed (http) playback of aac audio content on Droid.\n"
    },
    {
      "commit": "4acdadbd8195f4fb21ff4cb72f09f088097ddf3b",
      "tree": "21b0618032478f7f9e2faa9734a5ebc642a8c55c",
      "parents": [
        "cbe4b2cb591b5e7a6a25ee4ef85aaa61c537fef0",
        "27fde958c8e8e6a998ec7a28d32b0aad97662dee"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Apr 14 12:11:12 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Apr 14 12:11:12 2010 -0700"
      },
      "message": "am 6852b198: am d3d445b1: Merge \"Use PV_PLAYER to handle RTSP streaming\" into froyo\n\nMerge commit \u00276852b198fbedd9378ed79ca6528a4d6f33b0b677\u0027 into kraken\n\n* commit \u00276852b198fbedd9378ed79ca6528a4d6f33b0b677\u0027:\n  Use PV_PLAYER to handle RTSP streaming\n"
    },
    {
      "commit": "cbe4b2cb591b5e7a6a25ee4ef85aaa61c537fef0",
      "tree": "40445880058f40b9919f93b4edb4e26df2f02610",
      "parents": [
        "53fbf1d2eebd09e14a8995f51c47788670dbab1e"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Apr 14 10:40:28 2010 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Apr 14 10:40:28 2010 -0700"
      },
      "message": "fix unintentional drift\n\nChange-Id: I0bbf3d3f95296a41d71558d8de1ed2ed021f21cf\n"
    },
    {
      "commit": "27fde958c8e8e6a998ec7a28d32b0aad97662dee",
      "tree": "8e54465cfbb6b009d840a3d82aeaf3e11e125561",
      "parents": [
        "b9dbba9285fb406bc6eb87779c8bfc405269b6f2"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Apr 13 21:33:26 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Apr 14 08:57:14 2010 -0700"
      },
      "message": "Use PV_PLAYER to handle RTSP streaming\n\nbug - 2594865\n\nChange-Id: Ice5b89b1d53bbc4da033892fe545bdf51ac7267f\n"
    },
    {
      "commit": "53fbf1d2eebd09e14a8995f51c47788670dbab1e",
      "tree": "850d6c2fbfee87c4a3677563695a5d4336be48ea",
      "parents": [
        "73c30c5236858b72b74727bc627628672553add9",
        "b1c9bd26a3b916d2f6ca7cda1edab92f48da16c8"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Apr 13 16:23:05 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Apr 13 16:23:05 2010 -0700"
      },
      "message": "am c33f583b: am 4f3257cf: am dd684af8: Merge \"Snif more 3GPP file types according to http://www.ftyps.com/3gpp.html\" into froyo\n"
    },
    {
      "commit": "73c30c5236858b72b74727bc627628672553add9",
      "tree": "5b0fe928f22b9f0e62202feb077bee368745e1f1",
      "parents": [
        "2f6ec4c07a830d9c22d4883e77592cf61d37baca",
        "07dd5a5a9cf8ea7c48473874b34d0dc6c5a6c231"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Apr 13 16:05:49 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Apr 13 16:05:49 2010 -0700"
      },
      "message": "am d760afc3: am 30e9c2d4: am db281311: Merge \"Better diagnostics in the stagefright commandline tool, support for playing sine-tones using a filename of \"sine:[samplingrate]\", i.e. sine:44100. Support for playing audio through to the speakers by using \"-o\" in addition\n"
    },
    {
      "commit": "2f6ec4c07a830d9c22d4883e77592cf61d37baca",
      "tree": "0ef5ea62690b030cbd0c0deb6d9712bb11312984",
      "parents": [
        "d84201fcae22b71cfa9f4bca5ef4a4344d04fad5",
        "ea623087e93c6e27ce6284946f94c1d4aff7f91b"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Apr 13 16:05:42 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Apr 13 16:05:42 2010 -0700"
      },
      "message": "am ebaa935e: am 9bb8e65a: am c15f48d7: Merge \"Don\\\u0027t set encoder component role while we query decoders\" into froyo\n"
    },
    {
      "commit": "d84201fcae22b71cfa9f4bca5ef4a4344d04fad5",
      "tree": "9a17e9eb128ecc971e6666ad88448f1303f0eeff",
      "parents": [
        "351ab17847a4697d99d7db2e55d01822d1c0bf25",
        "3fed817bd114f7824d458ca62621417aa71cec84"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Tue Apr 13 16:05:13 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Apr 13 16:05:13 2010 -0700"
      },
      "message": "am 465934d1: am d4c072d3: am b19da8e1: Fix for 2581725. Keep the last frame after resume(), and delete it in the next suspend() or reuse it if no new frame is available.\n"
    },
    {
      "commit": "b1c9bd26a3b916d2f6ca7cda1edab92f48da16c8",
      "tree": "40445880058f40b9919f93b4edb4e26df2f02610",
      "parents": [
        "07dd5a5a9cf8ea7c48473874b34d0dc6c5a6c231",
        "b9dbba9285fb406bc6eb87779c8bfc405269b6f2"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Apr 13 15:42:01 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Apr 13 15:42:01 2010 -0700"
      },
      "message": "am 4f3257cf: am dd684af8: Merge \"Snif more 3GPP file types according to http://www.ftyps.com/3gpp.html\" into froyo\n\nMerge commit \u00274f3257cf4667aa28908c401634db849fd2e516af\u0027 into kraken\n\n* commit \u00274f3257cf4667aa28908c401634db849fd2e516af\u0027:\n  Snif more 3GPP file types according to http://www.ftyps.com/3gpp.html\n"
    },
    {
      "commit": "b9dbba9285fb406bc6eb87779c8bfc405269b6f2",
      "tree": "9809cdf15e3aba93dfd541115d03683bbed4b389",
      "parents": [
        "25801bfe64dff414991fca2f62f16a61ba554357"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Apr 13 15:06:41 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Apr 13 15:09:26 2010 -0700"
      },
      "message": "Snif more 3GPP file types according to http://www.ftyps.com/3gpp.html\n\nbug - 2575956\n\nChange-Id: Iaa79e74d3b0585397a7e833ec45472710fc52fa6\n"
    },
    {
      "commit": "07dd5a5a9cf8ea7c48473874b34d0dc6c5a6c231",
      "tree": "5297c0671092e9911ad730fa69837c7968d7ddbe",
      "parents": [
        "ea623087e93c6e27ce6284946f94c1d4aff7f91b",
        "25801bfe64dff414991fca2f62f16a61ba554357"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Apr 13 12:23:28 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Apr 13 12:23:28 2010 -0700"
      },
      "message": "am 30e9c2d4: am db281311: Merge \"Better diagnostics in the stagefright commandline tool, support for playing sine-tones using a filename of \"sine:[samplingrate]\", i.e. sine:44100. Support for playing audio through to the speakers by using \"-o\" in addition to \"-a\".\" in\n\nMerge commit \u002730e9c2d4db145e02b5312ce29606b03dd78349d3\u0027 into kraken\n\n* commit \u002730e9c2d4db145e02b5312ce29606b03dd78349d3\u0027:\n  Better diagnostics in the stagefright commandline tool, support for playing sine-tones using a filename of \"sine:[samplingrate]\", i.e. sine:44100. Support for playing audio through to the speakers by using \"-o\" in addition to \"-a\".\n"
    },
    {
      "commit": "ea623087e93c6e27ce6284946f94c1d4aff7f91b",
      "tree": "5e75e44dbab170b621f766d3688154586f1bf438",
      "parents": [
        "3fed817bd114f7824d458ca62621417aa71cec84",
        "a13da584aa7da751a7e6ebf00fc1c4e2382af611"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Apr 13 12:20:38 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Apr 13 12:20:38 2010 -0700"
      },
      "message": "am 9bb8e65a: am c15f48d7: Merge \"Don\\\u0027t set encoder component role while we query decoders\" into froyo\n\nMerge commit \u00279bb8e65a7d7dc57fdd7383d64d53414b1aa5cbbc\u0027 into kraken\n\n* commit \u00279bb8e65a7d7dc57fdd7383d64d53414b1aa5cbbc\u0027:\n  Don\u0027t set encoder component role while we query decoders\n"
    },
    {
      "commit": "25801bfe64dff414991fca2f62f16a61ba554357",
      "tree": "88d5200d08e578fa6baf9949a6f6a15b71ec3016",
      "parents": [
        "a13da584aa7da751a7e6ebf00fc1c4e2382af611",
        "a98420e863c374d1f15309467f2a1fc58d979d3b"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Apr 13 12:16:08 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 13 12:16:08 2010 -0700"
      },
      "message": "Merge \"Better diagnostics in the stagefright commandline tool, support for playing sine-tones using a filename of \"sine:[samplingrate]\", i.e. sine:44100. Support for playing audio through to the speakers by using \"-o\" in addition to \"-a\".\" into froyo"
    },
    {
      "commit": "a13da584aa7da751a7e6ebf00fc1c4e2382af611",
      "tree": "3a1f963265cf06506f703222d38690f5bbcbe9f4",
      "parents": [
        "5c117390591da780e1f53c1c9c91c1efdacbc674",
        "5e3cf6cf36feb3b73b8f8c0a8134c46f5bc85094"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Apr 13 12:11:57 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 13 12:11:57 2010 -0700"
      },
      "message": "Merge \"Don\u0027t set encoder component role while we query decoders\" into froyo"
    },
    {
      "commit": "a98420e863c374d1f15309467f2a1fc58d979d3b",
      "tree": "0d441bd1258015fbef734718fe6c8271cd36f060",
      "parents": [
        "81f82c32459029bf0744e28c73f95a7f18cab5ac"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Apr 13 09:58:39 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Apr 13 12:04:05 2010 -0700"
      },
      "message": "Better diagnostics in the stagefright commandline tool, support for playing sine-tones using a filename of \"sine:[samplingrate]\", i.e. sine:44100. Support for playing audio through to the speakers by using \"-o\" in addition to \"-a\".\n\nrelated-to-bug: 2553359\nChange-Id: Ic49eb89feb62474d9513bc21571e0e8fe3a15e0b\n"
    },
    {
      "commit": "3fed817bd114f7824d458ca62621417aa71cec84",
      "tree": "cc4e1b05a1e26c34af8070ed67780b8653e048f7",
      "parents": [
        "c16ea2dbe0cb5ed4189e5ba5451f92bed62a4f4b",
        "5c117390591da780e1f53c1c9c91c1efdacbc674"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Tue Apr 13 11:53:52 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Apr 13 11:53:52 2010 -0700"
      },
      "message": "am d4c072d3: am b19da8e1: Fix for 2581725. Keep the last frame after resume(), and delete it in the next suspend() or reuse it if no new frame is available.\n\nMerge commit \u0027d4c072d3f584db2cf9214c9d813c15d9e646c527\u0027 into kraken\n\n* commit \u0027d4c072d3f584db2cf9214c9d813c15d9e646c527\u0027:\n  Fix for 2581725. Keep the last frame after resume(), and delete it\n"
    },
    {
      "commit": "5e3cf6cf36feb3b73b8f8c0a8134c46f5bc85094",
      "tree": "fc2e608447661cf14a0c9b57dea8194327006165",
      "parents": [
        "b547d09ecc3da8ee300099da8ca7e2826bb6849a"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Apr 13 10:56:59 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Apr 13 10:58:41 2010 -0700"
      },
      "message": "Don\u0027t set encoder component role while we query decoders\n\nbug - 2558515\n\nChange-Id: I29683507d234d963994c782c07508034ea807739\n"
    },
    {
      "commit": "351ab17847a4697d99d7db2e55d01822d1c0bf25",
      "tree": "60b583b9009ba93fcb65d1607f647d7d83bf773b",
      "parents": [
        "b851fc7071d87d7ac24599826d672e22d88f8fa2",
        "c16ea2dbe0cb5ed4189e5ba5451f92bed62a4f4b"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Apr 13 10:33:07 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Apr 13 10:33:07 2010 -0700"
      },
      "message": "am 445a9785: Merge \"don\\\u0027t hardcode \"mSurface\" throughout our source code\" into kraken\n"
    },
    {
      "commit": "5c117390591da780e1f53c1c9c91c1efdacbc674",
      "tree": "a5941c728bcc8479b6c22b802786cf78367da7d4",
      "parents": [
        "81f82c32459029bf0744e28c73f95a7f18cab5ac"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Apr 12 17:13:06 2010 -0700"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Tue Apr 13 09:46:40 2010 -0700"
      },
      "message": "Fix for 2581725. Keep the last frame after resume(), and delete it\nin the next suspend() or reuse it if no new frame is available.\n\nChange-Id: I84286030eaae9061077d6ccb485b7dd53ef05341\n"
    },
    {
      "commit": "c16ea2dbe0cb5ed4189e5ba5451f92bed62a4f4b",
      "tree": "1cd7c7b81cc2e893f22a5311614d0a231a0cb64f",
      "parents": [
        "88b1b1c7331023828108daa57fcea858c7706566",
        "2e5299988b5f5f9165a76938a66d37e46dd48d6b"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Apr 12 18:59:49 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 12 18:59:49 2010 -0700"
      },
      "message": "Merge \"don\u0027t hardcode \"mSurface\" throughout our source code\" into kraken"
    },
    {
      "commit": "b851fc7071d87d7ac24599826d672e22d88f8fa2",
      "tree": "230932ccd4aea4086c54e98a7b99884a84973046",
      "parents": [
        "8e5d52bb00dc34608f2cd123a8387e6b15eb8126",
        "88b1b1c7331023828108daa57fcea858c7706566"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 12 17:25:48 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Apr 12 17:25:48 2010 -0700"
      },
      "message": "am 7853c898: am 248ea4a9: am 5baa5e19: Merge \"Distinguish QCELP audio from mpeg4 audio, ignore QCELP audio tracks since we don\\\u0027t have a decoder for it, ignore potentially malformed metadata for AMR NB and WB tracks.\" into froyo\n"
    },
    {
      "commit": "88b1b1c7331023828108daa57fcea858c7706566",
      "tree": "c57c2e166119865da722644b6ab26410889bc96a",
      "parents": [
        "47acf12ffef0a5db470406b7db788adcc6240786",
        "81f82c32459029bf0744e28c73f95a7f18cab5ac"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 12 17:21:33 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Apr 12 17:21:33 2010 -0700"
      },
      "message": "am 248ea4a9: am 5baa5e19: Merge \"Distinguish QCELP audio from mpeg4 audio, ignore QCELP audio tracks since we don\\\u0027t have a decoder for it, ignore potentially malformed metadata for AMR NB and WB tracks.\" into froyo\n\nMerge commit \u0027248ea4a9f773210a7b7dbd7892e6b865a0f7add3\u0027 into kraken\n\n* commit \u0027248ea4a9f773210a7b7dbd7892e6b865a0f7add3\u0027:\n  Distinguish QCELP audio from mpeg4 audio, ignore QCELP audio tracks since we don\u0027t have a decoder for it, ignore potentially malformed metadata for AMR NB and WB tracks.\n"
    },
    {
      "commit": "2e5299988b5f5f9165a76938a66d37e46dd48d6b",
      "tree": "d7212db7df16d22aaf7d5f1ce43f5706ff58ec30",
      "parents": [
        "47acf12ffef0a5db470406b7db788adcc6240786"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Apr 12 16:22:15 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Apr 12 16:29:36 2010 -0700"
      },
      "message": "don\u0027t hardcode \"mSurface\" throughout our source code\n\nthis is used in a few places to get access to the android.view.Surface\nnative surface. use a macro instead. Also rename the field to mNativeSurface.\n\nChange-Id: I1c6dea14abd6b8b1392c7f97b304115999355094\n"
    },
    {
      "commit": "81f82c32459029bf0744e28c73f95a7f18cab5ac",
      "tree": "7bc1f309ecd5f3d7ce4f3377837ccd3cb7728bbf",
      "parents": [
        "874b55f51c4c062c65aee043ec0f26044b504556"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 12 16:05:57 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 12 16:05:57 2010 -0700"
      },
      "message": "Distinguish QCELP audio from mpeg4 audio, ignore QCELP audio tracks since we don\u0027t have a decoder for it, ignore potentially malformed metadata for AMR NB and WB tracks.\n\nChange-Id: Ic9a9198413431db4ea40bb63b9de91aa8a7183af\nrelated-to-bug: 2587341\n"
    },
    {
      "commit": "8e5d52bb00dc34608f2cd123a8387e6b15eb8126",
      "tree": "824ced1f823d9a5f1c71b339c5df5c60b79c9bfc",
      "parents": [
        "13b9d1eff282c8f2c4cbd07b119d47da553b6be6",
        "47acf12ffef0a5db470406b7db788adcc6240786"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Apr 12 15:32:13 2010 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Apr 12 15:32:13 2010 -0700"
      },
      "message": "manual merge\n\nChange-Id: I9cdacbf1e445e7f6cf06ad03df541a744c242774\n"
    },
    {
      "commit": "47acf12ffef0a5db470406b7db788adcc6240786",
      "tree": "f56c60601bb29b32126b26bf536725f7ced61590",
      "parents": [
        "a3387afbc6dc5db0fd534ab5e3200f46b5a36acd",
        "874b55f51c4c062c65aee043ec0f26044b504556"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 12 14:23:31 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Apr 12 14:23:31 2010 -0700"
      },
      "message": "am 98c5bd55: am 6dbf80d0: Merge \"Fix a race condition in TimedEventQueue, an event may be cancelled while we\\\u0027re waiting for its scheduled time to come in which case we\\\u0027d be removing it from the queue twice.\" into froyo\n\nMerge commit \u002798c5bd5556f32a237d3483fb7298284869e32a40\u0027 into kraken\n\n* commit \u002798c5bd5556f32a237d3483fb7298284869e32a40\u0027:\n  Fix a race condition in TimedEventQueue, an event may be cancelled while we\u0027re waiting for its scheduled time to come in which case we\u0027d be removing it from the queue twice.\n"
    },
    {
      "commit": "874b55f51c4c062c65aee043ec0f26044b504556",
      "tree": "86d4c6cd8ec51091ae4998e326dd20392e983163",
      "parents": [
        "b547d09ecc3da8ee300099da8ca7e2826bb6849a"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 12 13:10:20 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 12 13:15:48 2010 -0700"
      },
      "message": "Fix a race condition in TimedEventQueue, an event may be cancelled while we\u0027re waiting for its scheduled time to come in which case we\u0027d be removing it from the queue twice.\n\nChange-Id: I4e42e318fd5373d1f352f54027d4bf823126266d\nrelated-to-bug: 2585276\n"
    },
    {
      "commit": "a3387afbc6dc5db0fd534ab5e3200f46b5a36acd",
      "tree": "b1aec05ba013b64ef4617a35a941898b3398fde7",
      "parents": [
        "23748a675245149d652b5ede781b4df90fca5d21",
        "b547d09ecc3da8ee300099da8ca7e2826bb6849a"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 12 11:07:54 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Apr 12 11:07:54 2010 -0700"
      },
      "message": "am f0a49f68: am 1d7a8b44: Merge \"Fix a case where the aac hardware decoder is in a transition state and refused a fillbuffer request.\" into froyo\n\nMerge commit \u0027f0a49f68f0edc98fefbe14e3ddcf0d6853519293\u0027 into kraken\n\n* commit \u0027f0a49f68f0edc98fefbe14e3ddcf0d6853519293\u0027:\n  Fix a case where the aac hardware decoder is in a transition state and refused a fillbuffer request.\n"
    },
    {
      "commit": "23748a675245149d652b5ede781b4df90fca5d21",
      "tree": "4c6332d4f123745e5c4c3281067ea99c1b32921d",
      "parents": [
        "a418a932aa9c800c527451ea93ec9a3a06fb7515",
        "548e31844937b37518fbb62ff69e9ff1f794183b"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 12 11:05:22 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 12 11:05:22 2010 -0700"
      },
      "message": "Merge \"I accidentally broken passion encoding while working around problems with the sholes encoder.\" into kraken"
    },
    {
      "commit": "a418a932aa9c800c527451ea93ec9a3a06fb7515",
      "tree": "df936b82732ab9743b535c48db1d713863dc78dc",
      "parents": [
        "88951e54c25b0cc58f78b48ffefa451cf87a8942",
        "ebe87f32e442c9a8fb2931632311d6c5a126eddb"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 12 11:05:09 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 12 11:05:09 2010 -0700"
      },
      "message": "Merge \"Remove unnecessary lock from AMRWriter.\" into kraken"
    },
    {
      "commit": "88951e54c25b0cc58f78b48ffefa451cf87a8942",
      "tree": "739a75873269c29ddd67e982119c9782ad697582",
      "parents": [
        "d5d0dbeadc2b5d172a9e6007c063b8d1366696e0",
        "03b268eac37ca2589bfff0bf58daf79d29cc14f4"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 12 11:04:57 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 12 11:04:57 2010 -0700"
      },
      "message": "Merge \"Various fixes to enable recording on passion and nexus1.\" into kraken"
    },
    {
      "commit": "d5d0dbeadc2b5d172a9e6007c063b8d1366696e0",
      "tree": "aa70c16588e8adcd0c7d69c7cd9da201a775b409",
      "parents": [
        "a5e4677f76b2e6596c2fd6351788ecf82ae9c448",
        "fe774a9c3ffe12979e182563b0e922ffc0ad20ef"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 12 11:04:46 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 12 11:04:46 2010 -0700"
      },
      "message": "Merge \"Remove legacy NO_OPENCORE code bypass from MediaPlayerService.\" into kraken"
    },
    {
      "commit": "b547d09ecc3da8ee300099da8ca7e2826bb6849a",
      "tree": "3124d2e26bc31d41b140089239e71771acb3f123",
      "parents": [
        "f018aa38b808f2e5c6e6b2dc0b29406caa793c65",
        "7110385b31c7bc65c8a923a09689ebb0c4a1e07a"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 12 11:02:27 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 12 11:02:27 2010 -0700"
      },
      "message": "Merge \"Fix a case where the aac hardware decoder is in a transition state and refused a fillbuffer request.\" into froyo"
    },
    {
      "commit": "7110385b31c7bc65c8a923a09689ebb0c4a1e07a",
      "tree": "a2c54b90b8a29c72c1e2128cb9390ee22510d944",
      "parents": [
        "465d5a7f3517f11aaa819c8ae982e113ad5ec479"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 12 10:20:12 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 12 10:20:12 2010 -0700"
      },
      "message": "Fix a case where the aac hardware decoder is in a transition state and refused a fillbuffer request.\n\nChange-Id: I4cabd18709c29db0a2763a01cc86525ba0b0aeb7\nrelated-to-bug: 2575976\n"
    },
    {
      "commit": "f018aa38b808f2e5c6e6b2dc0b29406caa793c65",
      "tree": "ca1bd0b1a35deb1fcd8525dd29179d2da67467cb",
      "parents": [
        "0a0583f9a6dd7fb0b72b7e072da4d55f8597c7ed",
        "9dcda21086608a52a579ac8254991fdde686823a"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 12 10:11:32 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 12 10:11:32 2010 -0700"
      },
      "message": "Merge \"Ignore corrupt aac audio frames and substitute silence.\" into froyo"
    },
    {
      "commit": "9dcda21086608a52a579ac8254991fdde686823a",
      "tree": "28fb9d2311ffbdd3d51a5ed4d0f1f47b97268196",
      "parents": [
        "465d5a7f3517f11aaa819c8ae982e113ad5ec479"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 12 09:57:05 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 12 09:57:05 2010 -0700"
      },
      "message": "Ignore corrupt aac audio frames and substitute silence.\n\nChange-Id: I544f98a5c00d912061db7921fc4518435209b168\nrelated-to-bug: 2575976\n"
    },
    {
      "commit": "0a0583f9a6dd7fb0b72b7e072da4d55f8597c7ed",
      "tree": "648f6b20fd697dcdc7ae70dc80dae952ae6f1c7b",
      "parents": [
        "465d5a7f3517f11aaa819c8ae982e113ad5ec479"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 12 09:41:12 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 12 09:41:12 2010 -0700"
      },
      "message": "Start sending out buffering updates earlier (after preparation has completed) instead of only after playback has started.\n\nChange-Id: Ieaa90cc9b54bd56963aa5f4daced2ba243801acf\nrelated-to-bug: 2585913\n"
    },
    {
      "commit": "548e31844937b37518fbb62ff69e9ff1f794183b",
      "tree": "b798d4fe9e04678fb79db04ec4b22e731821f013",
      "parents": [
        "ebe87f32e442c9a8fb2931632311d6c5a126eddb"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Apr 09 14:25:46 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Apr 09 14:25:46 2010 -0700"
      },
      "message": "I accidentally broken passion encoding while working around problems with the sholes encoder.\n\nChange-Id: Id91b837ed17083cb21efb08e1c1ab9cc3ff3fa8f\n"
    },
    {
      "commit": "ebe87f32e442c9a8fb2931632311d6c5a126eddb",
      "tree": "ef19cacaa3d207b78061e41803593d56de3bdf94",
      "parents": [
        "03b268eac37ca2589bfff0bf58daf79d29cc14f4"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Mar 23 14:33:02 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Apr 09 13:49:39 2010 -0700"
      },
      "message": "Remove unnecessary lock from AMRWriter.\n\nChange-Id: Ia02966d936dd8cbb31e92051578a3fa816885710\n"
    },
    {
      "commit": "03b268eac37ca2589bfff0bf58daf79d29cc14f4",
      "tree": "dfb5d0de728a4faa531efc77e66093b48e4ac4f9",
      "parents": [
        "fe774a9c3ffe12979e182563b0e922ffc0ad20ef"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Mar 19 11:43:15 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Apr 09 13:47:58 2010 -0700"
      },
      "message": "Various fixes to enable recording on passion and nexus1.\n\nChange-Id: I75a461c9882e2449082ad754ee7b231c1ceec039\n"
    },
    {
      "commit": "fe774a9c3ffe12979e182563b0e922ffc0ad20ef",
      "tree": "2d345e603f5e4803a9003496712098ef457b0cb0",
      "parents": [
        "6e4f79aa417cf7ef9dcf3f4a36ee671886f7f40e"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 05 13:25:12 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Apr 09 13:44:28 2010 -0700"
      },
      "message": "Remove legacy NO_OPENCORE code bypass from MediaPlayerService.\n\nChange-Id: I72db73c91673e0d7f1090e3b033ae915337dc16e\n"
    },
    {
      "commit": "32f8c1cf4ab2abdd902535fc44a6549ba6f0ff33",
      "tree": "971adb7851bd659e0bc87a8b41e3c3b73adf231d",
      "parents": [
        "1ab1e4ec459ab549f79a98693a67f241861450be",
        "bebd11b5a406bc4243cb7bd55f6849841bf911a7"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Apr 09 07:01:58 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 09 07:01:58 2010 -0700"
      },
      "message": "Merge \"Support for ID3 V2.4 tags.\" into froyo"
    },
    {
      "commit": "bebd11b5a406bc4243cb7bd55f6849841bf911a7",
      "tree": "e7062dbb95ab0403d0fa96b31c13044976e1dea3",
      "parents": [
        "dac4ee72bac87388a1495e098f39d73168c8078f"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 08 14:01:33 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 08 14:09:54 2010 -0700"
      },
      "message": "Support for ID3 V2.4 tags.\n\nChange-Id: I74ee02451bdfd7e50f0d5ff6fa5da5147b683e4c\nrelated-to-bug: 2581869\n"
    },
    {
      "commit": "1ab1e4ec459ab549f79a98693a67f241861450be",
      "tree": "c3ceed64835a67ae60549ed3ad3608d85926d469",
      "parents": [
        "d8c76856c6d52dcd11a90124dafef0af99956e15"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 08 09:17:01 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 08 10:09:35 2010 -0700"
      },
      "message": "Refactor connection/redirection code, support redirects on reconnection.\n\nChange-Id: Id2517568000e028b01553c06a4893813a6883168\nrelated-to-bug: 2580785\n"
    },
    {
      "commit": "d8c76856c6d52dcd11a90124dafef0af99956e15",
      "tree": "f9ef2f8539358e4d08e4d3a0edc79be3612ed8cb",
      "parents": [
        "dac4ee72bac87388a1495e098f39d73168c8078f"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 08 07:51:20 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 08 07:51:20 2010 -0700"
      },
      "message": "Increase the size of the pages used in CachingDataSource (total amount of memory used remains the same) to compensate for reduced locality of audio/video data requests. Also fixes a mistaken trailing \"\\r\\n\" in the range header and better error handling on http connection.\n\nChange-Id: Ic9a6ef204362bc9afdc61e081c76bc62e5ef92ad\nrelated-to-bug: 2580785\n"
    },
    {
      "commit": "dac4ee72bac87388a1495e098f39d73168c8078f",
      "tree": "59902b5757b00e061e66235144e7a5e4773ee427",
      "parents": [
        "80eb61776f136c316f45ce4187a8bafedf9b3e88"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Apr 07 10:24:35 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Apr 07 10:35:18 2010 -0700"
      },
      "message": "Report the requested seek time while seek is in progress.\n\nChange-Id: I862bfb801701f9ce54dede51c492e4eb37591894\nrelated-to-bug: 2576102\n"
    },
    {
      "commit": "80eb61776f136c316f45ce4187a8bafedf9b3e88",
      "tree": "93ebc50e44b40bbc6991793ee7641f519c1c4a87",
      "parents": [
        "b514a24eac5d9f5a3a9cdb3b7319918c39198769"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Apr 06 14:36:23 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Apr 06 14:36:23 2010 -0700"
      },
      "message": "Partial revert of previous change to improve hardware AAC decoder performance, increasing the input buffer size so dramatically accidentally broke streaming performance.\n\nChange-Id: I14e9fbc1fdff61bcf89218d83cb1d2e3d6eb8438\nrelated-to-bug: 2574491\n"
    },
    {
      "commit": "b514a24eac5d9f5a3a9cdb3b7319918c39198769",
      "tree": "0b451724c6d90b68341baf990ec42a934336c51a",
      "parents": [
        "fcdfad530df30d0e7fe21a7a463a3fe369ed325a",
        "7f498b90a4300ef9badf14d202b0a67c26e20931"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Apr 02 14:03:46 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 02 14:03:46 2010 -0700"
      },
      "message": "Merge \"Coalesce multiple encoded AAC frames into a single input buffer on this particular OMX codec to increase throughput significantly.\" into froyo"
    },
    {
      "commit": "7f498b90a4300ef9badf14d202b0a67c26e20931",
      "tree": "d8a6e393474ba981bf4a577585c9cfcfcddec250",
      "parents": [
        "a17a1347ffe281fc70633ba8dc98f6cf49ac06ff"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Apr 02 12:49:54 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Apr 02 12:55:31 2010 -0700"
      },
      "message": "Coalesce multiple encoded AAC frames into a single input buffer on this particular OMX codec to increase throughput significantly.\n\nChange-Id: I90c7db6656a53339c5d454336548c4f00d0d9064\nrelated-to-bug: 2548426\n"
    }
  ],
  "next": "fcdfad530df30d0e7fe21a7a463a3fe369ed325a"
}
