)]}'
{
  "log": [
    {
      "commit": "a98478bfbcc0f7fb4b164d3dce40ca96df75667d",
      "tree": "44a6ad7c4a9fb330ebdf560a2d8f446b43278498",
      "parents": [
        "898b11f2aeaaa2bed84d963a3fcfd3b229e00b99"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Mar 21 13:36:07 2012 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Mar 22 10:06:03 2012 -0700"
      },
      "message": "Support gapless playback for mp3 and m4a\n\nGapless playback for appropriately tagged mp3 and m4a files.\nCurrently this is implemented in OMXCodec, which most players\nuse, but should be easy to support in other players as well by\nusing the SkipCutBuffer utility class.\n\nChange-Id: I748c669adc1cfbe5ee9a7dea2fad945d48882551\n"
    },
    {
      "commit": "898b11f2aeaaa2bed84d963a3fcfd3b229e00b99",
      "tree": "282215a72d7ba3ba6d23d2de7ccb6c6fc07d425d",
      "parents": [
        "2f694b3ef6af235e7ba850d57538eece9f136499",
        "c524ffda17017d8467a237a1eddfd7e7c03c6617"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 22 07:14:27 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 22 07:14:27 2012 -0700"
      },
      "message": "Merge \"Split libmedia into libmedia and libmedia_native\""
    },
    {
      "commit": "c524ffda17017d8467a237a1eddfd7e7c03c6617",
      "tree": "f474647ebc3c87fe7aee804d558a3cfbd38fcfe3",
      "parents": [
        "ccf89b54f973f11082150d02ed957f7e967fbc8b"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 21 09:08:11 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 21 15:45:29 2012 -0700"
      },
      "message": "Split libmedia into libmedia and libmedia_native\n\nThis is still in the old location\n\nChange-Id: Ic1be549b5b607cfd519cb4cecc581624510a4ee1\n"
    },
    {
      "commit": "2f694b3ef6af235e7ba850d57538eece9f136499",
      "tree": "2430918606f606e50b15b83b019480238ab5c762",
      "parents": [
        "4949c36978b844f65abf84027e1cf2dcf82c1184",
        "feba11fd788c99b0b63e0bce724730817688d82f"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Mar 21 15:12:44 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 21 15:12:44 2012 -0700"
      },
      "message": "Merge \"Add MetaData::dumpToLog\""
    },
    {
      "commit": "feba11fd788c99b0b63e0bce724730817688d82f",
      "tree": "60cdb535b8e065dca3bac358c300f5e973aa7066",
      "parents": [
        "f6e7ad1543ce19f05600d9414360c74c83e467bb"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Mar 21 12:27:00 2012 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Mar 21 15:00:27 2012 -0700"
      },
      "message": "Add MetaData::dumpToLog\n\nUtility method for dumping the content of a MetaData object to the log.\n\nChange-Id: I2d91b991e1d9fed2215e8995a73c2b1854205074\n"
    },
    {
      "commit": "4949c36978b844f65abf84027e1cf2dcf82c1184",
      "tree": "4b02e7986837f7ccf07c1e5df733fbd1ad9e541f",
      "parents": [
        "d2d24d8c0d36305bc89ab1626ed58e3aa9af41bb",
        "5d2f8ba30c24ea597d54468cda01c7ec5f6a0e66"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Mar 21 10:16:55 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 21 10:16:55 2012 -0700"
      },
      "message": "Merge \"Parse gapless info from mp4 files\""
    },
    {
      "commit": "5d2f8ba30c24ea597d54468cda01c7ec5f6a0e66",
      "tree": "72b132fe5d63a0bceb5d5499aeed8475864c9e2e",
      "parents": [
        "f6e7ad1543ce19f05600d9414360c74c83e467bb"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Mar 20 10:05:06 2012 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Mar 21 09:50:53 2012 -0700"
      },
      "message": "Parse gapless info from mp4 files\n\nChange-Id: I4c83d4e12e996dc29708268e68a4bb74b368c6f3\n"
    },
    {
      "commit": "d2d24d8c0d36305bc89ab1626ed58e3aa9af41bb",
      "tree": "0da87ace16edf4a3b992ca9a9934d34b73450ebd",
      "parents": [
        "bcd5944578ee3c8803243ed60334f817968fe603",
        "ad9c8528feedd06542c817de3e094534c59ed847"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Mar 21 09:09:04 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Mar 21 09:09:04 2012 -0700"
      },
      "message": "am fcf2f4b1: am 98e1b541: Reconcile with ics-mr1-release\n\n* commit \u0027fcf2f4b17338501d8498a2a16eb832445b293e8f\u0027:\n"
    },
    {
      "commit": "ad9c8528feedd06542c817de3e094534c59ed847",
      "tree": "c33b192e00e226495066be24aa9df36212378d72",
      "parents": [
        "0ff7b8ee7f619f54464d5d3002769c746f6062a9",
        "044773292b82db6575b2234962564b5706aa1cf3"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Mar 21 09:06:34 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Mar 21 09:06:34 2012 -0700"
      },
      "message": "am 98e1b541: Reconcile with ics-mr1-release\n\n* commit \u002798e1b541f271e92b9dc25d54e275c28102746b04\u0027:\n"
    },
    {
      "commit": "044773292b82db6575b2234962564b5706aa1cf3",
      "tree": "8e3233b2ef42a094d31d6eea8befbe8daceef9e5",
      "parents": [
        "0f5591d80245500b98f2d8d7477248a30a7b0473",
        "bd98366df5cac3b7ea5b3cecde5fcb4d2731a145"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Mar 21 09:00:43 2012 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Mar 21 09:00:43 2012 -0700"
      },
      "message": "Reconcile with ics-mr1-release\n\nChange-Id: Id19190393a665dd1b07c073970925758aa383691\n"
    },
    {
      "commit": "bcd5944578ee3c8803243ed60334f817968fe603",
      "tree": "0da87ace16edf4a3b992ca9a9934d34b73450ebd",
      "parents": [
        "c5c49398584f2399af905a931e556ed6e0a29cd4",
        "0ff7b8ee7f619f54464d5d3002769c746f6062a9"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Mar 21 08:29:33 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Mar 21 08:29:33 2012 -0700"
      },
      "message": "am a4a09465: am 35a8f94d: Reconcile with ics-mr1-release\n\n* commit \u0027a4a09465569d0f4cce36f089fa02d5ef9b95db81\u0027:\n  Fix 5960562: Show emergency button on PukUnlock screen\n"
    },
    {
      "commit": "c5c49398584f2399af905a931e556ed6e0a29cd4",
      "tree": "0da87ace16edf4a3b992ca9a9934d34b73450ebd",
      "parents": [
        "ccf89b54f973f11082150d02ed957f7e967fbc8b",
        "f99590187e2e3f1cf6f093063170edec269cac5d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 21 08:29:18 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 21 08:29:18 2012 -0700"
      },
      "message": "Merge \"Clean up Track constructor\""
    },
    {
      "commit": "0ff7b8ee7f619f54464d5d3002769c746f6062a9",
      "tree": "c33b192e00e226495066be24aa9df36212378d72",
      "parents": [
        "da394bb36de36c52db24fe6b6250d1c623aa5626",
        "b6bf4cc62db7835fcdaa6243d5bf975a18a4fcd1"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Mar 21 08:26:56 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Mar 21 08:26:56 2012 -0700"
      },
      "message": "am 35a8f94d: Reconcile with ics-mr1-release\n\n* commit \u002735a8f94da6a8a3a6757e5663bfcbcd044f72a92a\u0027:\n  Fix 5960562: Show emergency button on PukUnlock screen\n"
    },
    {
      "commit": "b6bf4cc62db7835fcdaa6243d5bf975a18a4fcd1",
      "tree": "c33b192e00e226495066be24aa9df36212378d72",
      "parents": [
        "9d7b4c074205609271f61e1a4741ac0c524a1795",
        "bd98366df5cac3b7ea5b3cecde5fcb4d2731a145"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Mar 21 08:23:03 2012 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Mar 21 08:23:03 2012 -0700"
      },
      "message": "Reconcile with ics-mr1-release\n\nChange-Id: I10d78e60e39606f85cfa6fc7e9a7da14db0eeb0a\n"
    },
    {
      "commit": "ccf89b54f973f11082150d02ed957f7e967fbc8b",
      "tree": "b3446119a9b6c03dcca98d1d9ee31a83adb8acad",
      "parents": [
        "63c1faa8dea7feb90255d31ef2a133d8f2818844",
        "5c94b6c7689a335e26a86e8a0d04b56dc627738e"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 21 08:19:04 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 21 08:19:04 2012 -0700"
      },
      "message": "Merge \"AudioMixer can be configured for fewer max tracks\""
    },
    {
      "commit": "63c1faa8dea7feb90255d31ef2a133d8f2818844",
      "tree": "973c66b51e7e85b6ea753b5643f7d99c66d82dde",
      "parents": [
        "7153494670bdac8b650cb10b8b1838651e0ca418",
        "17a736c3e1d062d7fc916329eb32aef8935614af"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 21 07:24:21 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 21 07:24:21 2012 -0700"
      },
      "message": "Merge \"Update comments\""
    },
    {
      "commit": "7153494670bdac8b650cb10b8b1838651e0ca418",
      "tree": "94c6c21f7100bdb9aefc82bb0c6d77482742a455",
      "parents": [
        "a26ff6f22f4e86d09514c2819237bd9748455018",
        "ea7939a079b3600cab955760839b021326f8cfc3"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 21 07:22:40 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 21 07:22:40 2012 -0700"
      },
      "message": "Merge \"Whitespace\""
    },
    {
      "commit": "a26ff6f22f4e86d09514c2819237bd9748455018",
      "tree": "e50bf0801eeb218e579448016aa69c548b1c0187",
      "parents": [
        "903626bd3cf03920f2ca8ce8ce5cca2874d5e02d",
        "a03567676e8766828ff970b87e13bc4c97b23473"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 21 07:21:21 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 21 07:21:21 2012 -0700"
      },
      "message": "Merge \"new doesn\u0027t fail on Android\""
    },
    {
      "commit": "903626bd3cf03920f2ca8ce8ce5cca2874d5e02d",
      "tree": "4e423f1d508eb65b0df732ba6776316c0597e299",
      "parents": [
        "9a5f413a21b320fea0607e653bc75b1a4f0e7a2e",
        "da394bb36de36c52db24fe6b6250d1c623aa5626"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 20 19:35:56 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Mar 20 19:35:56 2012 -0700"
      },
      "message": "am d58b6cd1: am cbc90453: am 14958e21: Merge \"audioflinger: fix issue with camcorder and A2DP\" into ics-mr1\n\n* commit \u0027d58b6cd1e3fdf3deb5147daec556fe424a568732\u0027:\n"
    },
    {
      "commit": "9a5f413a21b320fea0607e653bc75b1a4f0e7a2e",
      "tree": "4e423f1d508eb65b0df732ba6776316c0597e299",
      "parents": [
        "65b5a46b4387e064d1bfb2ae9e8a1aa523b20f41",
        "f607e2e488ad0438bf6d4a4cd841ba1f902206c7"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 20 19:35:53 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Mar 20 19:35:53 2012 -0700"
      },
      "message": "am a48285c4: am 165ee4c5: am 14958e21: Merge \"audioflinger: fix issue with camcorder and A2DP\" into ics-mr1\n\n* commit \u0027a48285c4f22ffc43f1771ebd1ff35dcec48db2c7\u0027:\n  audioflinger: fix issue with camcorder and A2DP\n"
    },
    {
      "commit": "65b5a46b4387e064d1bfb2ae9e8a1aa523b20f41",
      "tree": "12746c7982c8db11d3de41edea7d7da9e55e289f",
      "parents": [
        "286df86540d638e30359642068f1022c583e823e",
        "eb47ddf8e410b2848e86e2be5ba442d82aa36362"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 20 19:35:41 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Mar 20 19:35:41 2012 -0700"
      },
      "message": "am 044e7503: am eaa08d35: am 2a0d685e: Merge \"MediaPlayerService: fix AudioSink latency\" into ics-mr1\n\n* commit \u0027044e7503ccdcd81adb69b5218b3b92ede47b005a\u0027:\n"
    },
    {
      "commit": "286df86540d638e30359642068f1022c583e823e",
      "tree": "12746c7982c8db11d3de41edea7d7da9e55e289f",
      "parents": [
        "e9ddbf9466a64e211e518efa2f2058f8bbb4d513",
        "bfc4cdf402546278f0835f94c7990b42a0566bb0"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 20 19:24:33 2012 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 20 19:24:33 2012 -0700"
      },
      "message": "resolved conflicts for merge of ec94ecad to master\n\nChange-Id: I13bc9671cc1ef02bede7e83253aa8a005367fa0c\n"
    },
    {
      "commit": "e9ddbf9466a64e211e518efa2f2058f8bbb4d513",
      "tree": "12746c7982c8db11d3de41edea7d7da9e55e289f",
      "parents": [
        "efbdae278103028aa981eebd5e328aa8e3cb54f3",
        "bae00e73c6d1d87cc5fd42b50f95d1d9572162ea"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Mar 20 18:53:29 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 20 18:53:29 2012 -0700"
      },
      "message": "Merge \"Handling end times of subtitles.\""
    },
    {
      "commit": "bae00e73c6d1d87cc5fd42b50f95d1d9572162ea",
      "tree": "23f0936dc8ce1c2167fbba1b9f1c2d9de7044f7e",
      "parents": [
        "1bb8e81b066a2311fd238fc6dae8f026e33ed99e"
      ],
      "author": {
        "name": "Insun Kang",
        "email": "insun@google.com",
        "time": "Wed Mar 14 08:16:35 2012 +0900"
      },
      "committer": {
        "name": "Insun Kang",
        "email": "insun@google.com",
        "time": "Wed Mar 21 10:44:04 2012 +0900"
      },
      "message": "Handling end times of subtitles.\n\nChange-Id: Ic19ec8980d0a2bf9f265d375cd56e638a2460af8\n"
    },
    {
      "commit": "efbdae278103028aa981eebd5e328aa8e3cb54f3",
      "tree": "23d8a2963d0eb3aac82513735141ab9a547816cb",
      "parents": [
        "59a142337b023ecdef4e0ec2768cee289af34b39",
        "c7c8375bad086263ca1e14d08e03a69e4a3b1651"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 20 18:20:33 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Mar 20 18:20:33 2012 -0700"
      },
      "message": "am eb99cacc: am b388138f: resolved conflicts for merge of 3fe7ee65 to ics-mr1-plus-aosp\n\n* commit \u0027eb99caccd7165385fc83b0175c6d176c990f179b\u0027:\n"
    },
    {
      "commit": "59a142337b023ecdef4e0ec2768cee289af34b39",
      "tree": "23d8a2963d0eb3aac82513735141ab9a547816cb",
      "parents": [
        "4dceed6d2a13ff88942d01a4e99daab9b3aaca9f",
        "e341547e2931b4aae4681053491ba5ccbab06e6f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 20 18:20:31 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Mar 20 18:20:31 2012 -0700"
      },
      "message": "am 04353390: resolved conflicts for merge of 393dd03e to ics-scoop-plus-aosp\n\n* commit \u002704353390722b9195434cc86af4414004eff058e8\u0027:\n  AudioTrack: relax check on minimum buffer size\n"
    },
    {
      "commit": "5c94b6c7689a335e26a86e8a0d04b56dc627738e",
      "tree": "05dcb7c6007c923a4f3ef04371e62834940a66b0",
      "parents": [
        "6da08fc33642b832d1cde2e46815a5fd67dd0016"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 20 17:01:29 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 20 17:27:10 2012 -0700"
      },
      "message": "AudioMixer can be configured for fewer max tracks\n\nChange-Id: I371b17cef071d083eecf35cd3627a3adff907a33\n"
    },
    {
      "commit": "f99590187e2e3f1cf6f093063170edec269cac5d",
      "tree": "6eebb059b54519d1208ca349e63fc4cf452bc4d5",
      "parents": [
        "6da08fc33642b832d1cde2e46815a5fd67dd0016"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 19 11:14:37 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 20 17:15:12 2012 -0700"
      },
      "message": "Clean up Track constructor\n\nThe \u0027thread\u0027 parameter can never be NULL.\nUse constructor initialization list when possible.\nMake more members const.\nOnly put the relevant code under \"if (mCblk !\u003d NULL)\".\nAdd comment about track name leak.\n\nChange-Id: Ib963390a69bed1999638cc982a759edd1d5f4712\n"
    },
    {
      "commit": "4dceed6d2a13ff88942d01a4e99daab9b3aaca9f",
      "tree": "23d8a2963d0eb3aac82513735141ab9a547816cb",
      "parents": [
        "f6e7ad1543ce19f05600d9414360c74c83e467bb",
        "2ee367e444e7b62e02bde8a2e47603a9ad342c6e"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 20 14:01:39 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 20 14:01:39 2012 -0700"
      },
      "message": "Merge \"Add libmedia_native\""
    },
    {
      "commit": "f6e7ad1543ce19f05600d9414360c74c83e467bb",
      "tree": "dd27bc21d9890b038d0789685aa4c314f39198e9",
      "parents": [
        "6da08fc33642b832d1cde2e46815a5fd67dd0016",
        "092406a2568316bbe5ed1ec6335e6f1d128ebf8e"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Mar 20 10:08:52 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 20 10:08:52 2012 -0700"
      },
      "message": "Merge \"Move COM tag parsing to constructor\""
    },
    {
      "commit": "092406a2568316bbe5ed1ec6335e6f1d128ebf8e",
      "tree": "8d4d9cc825dfec85704d1e8f966662261f9a3031",
      "parents": [
        "b636abde14f2612ea236257846b9ab15d87d4623"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Mar 20 09:48:02 2012 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Mar 20 09:48:02 2012 -0700"
      },
      "message": "Move COM tag parsing to constructor\n\nChange-Id: Icfcf05655ca98ccccad4f94834770c2f4098a764\n"
    },
    {
      "commit": "6da08fc33642b832d1cde2e46815a5fd67dd0016",
      "tree": "71497d4c025e37113e7844566bfb06ece7c0d8fe",
      "parents": [
        "fa6494d086e697543efa3d16440647e14ea09f30",
        "b636abde14f2612ea236257846b9ab15d87d4623"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Mar 20 09:15:05 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 20 09:15:05 2012 -0700"
      },
      "message": "Merge \"Parse mp3 encoder padding/delay\""
    },
    {
      "commit": "b636abde14f2612ea236257846b9ab15d87d4623",
      "tree": "2aa58e136a7d4cf3f00ebdbcdffc49f0ddef35ca",
      "parents": [
        "9e50385f34676d8fcb3b473ec4c9f5c388a4c887"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Mar 19 13:49:43 2012 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Mar 20 08:46:11 2012 -0700"
      },
      "message": "Parse mp3 encoder padding/delay\n\nGet the mp3 encoder padding and delay from a XING frame or iTunSMPB tag.\n\nChange-Id: Icde598c8857d7e7c187a718f478ee9799d6a1b8a\n"
    },
    {
      "commit": "fa6494d086e697543efa3d16440647e14ea09f30",
      "tree": "39df5e3d5fdff528f8fa8ab364b07dde2b90fc75",
      "parents": [
        "1bb8e81b066a2311fd238fc6dae8f026e33ed99e",
        "8e0792bb55a604ffcd4aa90fdb4419d8b3c6ad24"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Mon Mar 19 19:25:56 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 19 19:25:56 2012 -0700"
      },
      "message": "Merge \"Do not set camera preview display if the surface is null.\""
    },
    {
      "commit": "ea7939a079b3600cab955760839b021326f8cfc3",
      "tree": "570fb56838735a46a28e28a4f083d763f758ea24",
      "parents": [
        "eb76ff27c13386eb5a2dad73b1a8366f80eb0ff7"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 14 12:56:26 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 19 17:53:33 2012 -0700"
      },
      "message": "Whitespace\n\nFix indentation, and add blank lines in key places for clarity\n\nChange-Id: I57a0a8142394f83203161aa9b8aa9276abf3ed7c\n"
    },
    {
      "commit": "2ee367e444e7b62e02bde8a2e47603a9ad342c6e",
      "tree": "95649f9b430efcb58ffd0dad50ea44f4ab038eb3",
      "parents": [
        "1746929ddc7592ab397c402724a61352e45df093"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 19 17:36:25 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 19 17:36:25 2012 -0700"
      },
      "message": "Add libmedia_native\n\nChange-Id: I3ac357c78fb89f108d15c6e5b9fa317de0e9fb9a\n"
    },
    {
      "commit": "1bb8e81b066a2311fd238fc6dae8f026e33ed99e",
      "tree": "b532516a844ab20331120a4d6f7777c27c36548c",
      "parents": [
        "1746929ddc7592ab397c402724a61352e45df093",
        "b12153e36ae5e514d96c77d660b327d1a8f5000f"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 19 16:21:04 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 19 16:21:04 2012 -0700"
      },
      "message": "Merge \"Add libmedia_native\""
    },
    {
      "commit": "17a736c3e1d062d7fc916329eb32aef8935614af",
      "tree": "7fb73e48de8641ce6ad7b65fb4204bc60cd3e5f0",
      "parents": [
        "1746929ddc7592ab397c402724a61352e45df093"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Feb 14 08:52:15 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 19 14:12:01 2012 -0700"
      },
      "message": "Update comments\n\nChange-Id: I327663a020670d0a72ff57bd0b682e2ce0528650\n"
    },
    {
      "commit": "a03567676e8766828ff970b87e13bc4c97b23473",
      "tree": "0bb2f382b1ee44d8c38d5dadf0b45d7962889836",
      "parents": [
        "1746929ddc7592ab397c402724a61352e45df093"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 19 10:38:51 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 19 10:50:57 2012 -0700"
      },
      "message": "new doesn\u0027t fail on Android\n\nChange-Id: I5079a3bf31097dd0807b2d806d5f8d3cff2077ab\n"
    },
    {
      "commit": "da394bb36de36c52db24fe6b6250d1c623aa5626",
      "tree": "c33b192e00e226495066be24aa9df36212378d72",
      "parents": [
        "f607e2e488ad0438bf6d4a4cd841ba1f902206c7",
        "0f5591d80245500b98f2d8d7477248a30a7b0473"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 19 08:38:45 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Mar 19 08:38:45 2012 -0700"
      },
      "message": "am cbc90453: am 14958e21: Merge \"audioflinger: fix issue with camcorder and A2DP\" into ics-mr1\n\n* commit \u0027cbc90453248bd3f9a11fdbc07e544d4a39592934\u0027:\n"
    },
    {
      "commit": "f607e2e488ad0438bf6d4a4cd841ba1f902206c7",
      "tree": "c33b192e00e226495066be24aa9df36212378d72",
      "parents": [
        "eb47ddf8e410b2848e86e2be5ba442d82aa36362",
        "9d7b4c074205609271f61e1a4741ac0c524a1795"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 19 08:37:48 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Mar 19 08:37:48 2012 -0700"
      },
      "message": "am 165ee4c5: am 14958e21: Merge \"audioflinger: fix issue with camcorder and A2DP\" into ics-mr1\n\n* commit \u0027165ee4c53da462b1b6d131e25456dade51c18496\u0027:\n  audioflinger: fix issue with camcorder and A2DP\n"
    },
    {
      "commit": "9d7b4c074205609271f61e1a4741ac0c524a1795",
      "tree": "c33b192e00e226495066be24aa9df36212378d72",
      "parents": [
        "7d372bd9a6dd7c2174519a8c575011109a949ebb",
        "4ade00863737a82bb41f289a6a40893ceefca43e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 19 08:34:56 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Mar 19 08:34:56 2012 -0700"
      },
      "message": "am 14958e21: Merge \"audioflinger: fix issue with camcorder and A2DP\" into ics-mr1\n\n* commit \u002714958e21c12f922d7501d32c3bec05109eb342d5\u0027:\n  audioflinger: fix issue with camcorder and A2DP\n"
    },
    {
      "commit": "0f5591d80245500b98f2d8d7477248a30a7b0473",
      "tree": "8e3233b2ef42a094d31d6eea8befbe8daceef9e5",
      "parents": [
        "2661809ffd8a026c9cebc716c93f96d0a7aaa70e",
        "4ade00863737a82bb41f289a6a40893ceefca43e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 19 08:34:44 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Mar 19 08:34:44 2012 -0700"
      },
      "message": "am 14958e21: Merge \"audioflinger: fix issue with camcorder and A2DP\" into ics-mr1\n\n* commit \u002714958e21c12f922d7501d32c3bec05109eb342d5\u0027:\n  audioflinger: fix issue with camcorder and A2DP\n"
    },
    {
      "commit": "4ade00863737a82bb41f289a6a40893ceefca43e",
      "tree": "8e3233b2ef42a094d31d6eea8befbe8daceef9e5",
      "parents": [
        "ca0928da9afc905e62e4bdd0e283d223db786978",
        "89d94e79dad032fb18ddc655e6068e4231d3f0aa"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 19 08:32:35 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 19 08:32:35 2012 -0700"
      },
      "message": "Merge \"audioflinger: fix issue with camcorder and A2DP\" into ics-mr1"
    },
    {
      "commit": "1746929ddc7592ab397c402724a61352e45df093",
      "tree": "1911bbd03adeac6bb6e8fa91de3ee1833a40e401",
      "parents": [
        "eb76ff27c13386eb5a2dad73b1a8366f80eb0ff7",
        "ab334fd351ae5a0e18903da123d63e565b536874"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 19 07:31:58 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 19 07:31:58 2012 -0700"
      },
      "message": "Merge \"audio_channel_in/out_mask_from_count\""
    },
    {
      "commit": "8e0792bb55a604ffcd4aa90fdb4419d8b3c6ad24",
      "tree": "941e6c4f15c24ce375ab3f4a191bbbc2a438c12f",
      "parents": [
        "d64f3a376536a993fe6d81730b8b7b738500435e"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Wed Mar 14 17:25:57 2012 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Mon Mar 19 13:54:15 2012 +0800"
      },
      "message": "Do not set camera preview display if the surface is null.\n\nMediaRecorder.setPreviewDisplay() is not required if applications\nuse MediaRecorder.setCamera(). Besides, this causes a problem when\napps use Camera.setPreviewTexture. Camera service thinks the\nsurface texture from Camera.setPreviewTexture and the surface from\nMediaRecorder.setPreviewDisplay are different.\n\nbug:5988937\n\nChange-Id: Ia345705b6679ef349db6e354feaa3cc0fe8bcd8c\n"
    },
    {
      "commit": "89d94e79dad032fb18ddc655e6068e4231d3f0aa",
      "tree": "efb718faffa2573a33f203cadfa99f180dbf170c",
      "parents": [
        "083644fee99d23491554484301943e6a7daf262b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Mar 16 20:37:59 2012 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Mar 16 20:37:59 2012 -0700"
      },
      "message": "audioflinger: fix issue with camcorder and A2DP\n\nSome audio HALs do not support well a device selection of 0 (no device)\nreceived on an input stream.\n\nThis can happen because of a problem in the audioflinger code that handles\nthe forwarding of the output device selection to the record thread for use by\nthe pre processing modules that need it. If the output device is 0 (meaning\nno op, which happens when stopping playback over A2DP) audioflinger could not\ndetect it was an output device selection and would forward it to the input\nstream (see AudioFlinger::setParameters() and RecordThread::checkForNewParameters_l().\n\nIssue 6179641.\n\nChange-Id: Idae534521866538e0d12ba259a2834f402a922e2\n"
    },
    {
      "commit": "bd98366df5cac3b7ea5b3cecde5fcb4d2731a145",
      "tree": "e2a0729f661bba857c42a1996339b18111a8c41b",
      "parents": [
        "ca0928da9afc905e62e4bdd0e283d223db786978",
        "1be92616b4794ad09ae84a8ea5fa703dac035745"
      ],
      "author": {
        "name": "The Android Automerger",
        "email": "android-build@android.com",
        "time": "Fri Mar 16 19:32:33 2012 -0700"
      },
      "committer": {
        "name": "The Android Automerger",
        "email": "android-build@android.com",
        "time": "Fri Mar 16 19:32:33 2012 -0700"
      },
      "message": "merge in ics-mr1-release history after reset to ics-mr1\n"
    },
    {
      "commit": "eb47ddf8e410b2848e86e2be5ba442d82aa36362",
      "tree": "ea63205b10fdcc3ad58434ced3204ae940e6f3f6",
      "parents": [
        "bfc4cdf402546278f0835f94c7990b42a0566bb0",
        "7d372bd9a6dd7c2174519a8c575011109a949ebb"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Mar 16 17:29:43 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Mar 16 17:29:43 2012 -0700"
      },
      "message": "am eaa08d35: am 2a0d685e: Merge \"MediaPlayerService: fix AudioSink latency\" into ics-mr1\n\n* commit \u0027eaa08d35154b0b9d62098c80c75f2deeadf72b9e\u0027:\n"
    },
    {
      "commit": "bfc4cdf402546278f0835f94c7990b42a0566bb0",
      "tree": "ea63205b10fdcc3ad58434ced3204ae940e6f3f6",
      "parents": [
        "c7c8375bad086263ca1e14d08e03a69e4a3b1651",
        "2661809ffd8a026c9cebc716c93f96d0a7aaa70e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Mar 16 17:27:09 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Mar 16 17:27:09 2012 -0700"
      },
      "message": "am b1853f70: am 2a0d685e: Merge \"MediaPlayerService: fix AudioSink latency\" into ics-mr1\n\n* commit \u0027b1853f706371b5050cd8184f5c33955c2f5ae36a\u0027:\n  MediaPlayerService: fix AudioSink latency\n"
    },
    {
      "commit": "7d372bd9a6dd7c2174519a8c575011109a949ebb",
      "tree": "ea63205b10fdcc3ad58434ced3204ae940e6f3f6",
      "parents": [
        "9c450b31c18d0995ded7aae7552a0db36654c62e",
        "ca0928da9afc905e62e4bdd0e283d223db786978"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Mar 16 17:26:24 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Mar 16 17:26:24 2012 -0700"
      },
      "message": "am 2a0d685e: Merge \"MediaPlayerService: fix AudioSink latency\" into ics-mr1\n\n* commit \u00272a0d685ed62ff7a5e5a40be0748860c092165984\u0027:\n  MediaPlayerService: fix AudioSink latency\n"
    },
    {
      "commit": "c7c8375bad086263ca1e14d08e03a69e4a3b1651",
      "tree": "8ec033794cd34cfcf513f4bf6b50754c73bf881f",
      "parents": [
        "e341547e2931b4aae4681053491ba5ccbab06e6f",
        "9c450b31c18d0995ded7aae7552a0db36654c62e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Mar 16 17:26:15 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Mar 16 17:26:15 2012 -0700"
      },
      "message": "am b388138f: resolved conflicts for merge of 3fe7ee65 to ics-mr1-plus-aosp\n\n* commit \u0027b388138ff2986d6883fa9331fa91ae5e18ae81a0\u0027:\n"
    },
    {
      "commit": "e341547e2931b4aae4681053491ba5ccbab06e6f",
      "tree": "8ec033794cd34cfcf513f4bf6b50754c73bf881f",
      "parents": [
        "51011e8de5a37b3912ab0c40e407b60e64a908ee",
        "9a55cd24e8b1175b604ba098e6b3a090591c93a3"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Mar 16 17:22:34 2012 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Mar 16 17:22:34 2012 -0700"
      },
      "message": "resolved conflicts for merge of 393dd03e to ics-scoop-plus-aosp\n\nChange-Id: Ib6af53957780a09e59d663206b956a39fe883d6a\n"
    },
    {
      "commit": "9c450b31c18d0995ded7aae7552a0db36654c62e",
      "tree": "8ec033794cd34cfcf513f4bf6b50754c73bf881f",
      "parents": [
        "0fce406301b24dafb98dff8f9cab3873e5398728",
        "de61a78a1c7903efac9d26a2de0fd8db14cd7760"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Mar 16 17:19:25 2012 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Mar 16 17:19:25 2012 -0700"
      },
      "message": "resolved conflicts for merge of 3fe7ee65 to ics-mr1-plus-aosp\n\nChange-Id: Ia7e1cd869779e9f512e840b768f5b43992c8a122\n"
    },
    {
      "commit": "eb76ff27c13386eb5a2dad73b1a8366f80eb0ff7",
      "tree": "46270768942852d3a2787b08fee4a23b5d0a57bb",
      "parents": [
        "a673ba75ab58aaf380ca2420b1d63d3639cf1960",
        "f5e376fb8f2c30f82b7548241ca6b24f92ff8914"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Mar 16 15:19:30 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 16 15:19:30 2012 -0700"
      },
      "message": "Merge \"Report an error instead of waiting for EOS indefinitely in sf2.\""
    },
    {
      "commit": "2661809ffd8a026c9cebc716c93f96d0a7aaa70e",
      "tree": "e2a0729f661bba857c42a1996339b18111a8c41b",
      "parents": [
        "9a55cd24e8b1175b604ba098e6b3a090591c93a3",
        "ca0928da9afc905e62e4bdd0e283d223db786978"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Mar 16 15:01:03 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Mar 16 15:01:03 2012 -0700"
      },
      "message": "am 2a0d685e: Merge \"MediaPlayerService: fix AudioSink latency\" into ics-mr1\n\n* commit \u00272a0d685ed62ff7a5e5a40be0748860c092165984\u0027:\n  MediaPlayerService: fix AudioSink latency\n"
    },
    {
      "commit": "9a55cd24e8b1175b604ba098e6b3a090591c93a3",
      "tree": "f284ea35888e521853d8c7a04705ab0e11a2b738",
      "parents": [
        "fd588e27e3f95e0d251ff212dda8c1de853bf4f7",
        "de61a78a1c7903efac9d26a2de0fd8db14cd7760"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Mar 16 15:01:01 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Mar 16 15:01:01 2012 -0700"
      },
      "message": "am 3fe7ee65: Merge \"AudioTrack: relax check on minimum buffer size\" into ics-mr1\n\n* commit \u00273fe7ee651db0aae9485ead227c89db1e24b9e245\u0027:\n  AudioTrack: relax check on minimum buffer size\n"
    },
    {
      "commit": "f5e376fb8f2c30f82b7548241ca6b24f92ff8914",
      "tree": "4f807ca65d21cd7205c0c93b5f31de1e110ae2e0",
      "parents": [
        "49f306f863b14f8bfc3b405ebfd3a2fb2b403c15"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Mar 16 13:19:20 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Mar 16 13:19:20 2012 -0700"
      },
      "message": "Report an error instead of waiting for EOS indefinitely in sf2.\n\nChange-Id: Id7bcfb90a3b6a61f0df8bd8f39ea4ffa3c433d87\n"
    },
    {
      "commit": "a673ba75ab58aaf380ca2420b1d63d3639cf1960",
      "tree": "dc0c470c796b8bbe54d4cb6e09924d2c844a1936",
      "parents": [
        "6469edeeac6079b118e8f81252116c40574c9841",
        "c5255ac5b1bd313dcb50159566163b24dce7483f"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Mar 16 13:15:53 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 16 13:15:53 2012 -0700"
      },
      "message": "Merge \"ACodec is a little more aggressive in its error checking now.\""
    },
    {
      "commit": "ca0928da9afc905e62e4bdd0e283d223db786978",
      "tree": "e2a0729f661bba857c42a1996339b18111a8c41b",
      "parents": [
        "de61a78a1c7903efac9d26a2de0fd8db14cd7760"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 05 17:27:11 2012 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Mar 16 12:25:31 2012 -0700"
      },
      "message": "MediaPlayerService: fix AudioSink latency\n\nThe AudioSink latency is currently cached when the associated AudioTrack\nis created. However, the AudioTrack latency can change if the AudioTrack is moved\nfrom one output stream to another.\nThe AudioPlayer must also periodically update its view of the latency\nas it is needed to compensate the real audio time used for A/V sync.\n\nThis fixes an A/V sync problem seen when switching A2DP on and off while\nplaying a video.\n\nChange-Id: I28b24049ca114e1af3e24791dcc900f463536ba4\n\nConflicts:\n\n\tmedia/libmediaplayerservice/MediaPlayerService.cpp\n"
    },
    {
      "commit": "de61a78a1c7903efac9d26a2de0fd8db14cd7760",
      "tree": "f284ea35888e521853d8c7a04705ab0e11a2b738",
      "parents": [
        "083644fee99d23491554484301943e6a7daf262b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 05 17:06:40 2012 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Mar 16 12:22:07 2012 -0700"
      },
      "message": "AudioTrack: relax check on minimum buffer size\n\nCurrent AudioTrack implementation enforces that the requested audio\nbuffer size is at least corresponding the audio latency.\nThis requirement is too strong and leads to problems with current\nstagefright and AudioSink implementations when playing over output\nstreams with long latency.\n\nUltimately, the AudioSink design should be changed to specify a minimum\nbuffer size in time or frames units but not in buffer count units.\n\nChange-Id: I8ba603956f92ac49143a8249572665aa548f2f0f\n\nConflicts:\n\n\tmedia/libmedia/AudioTrack.cpp\n"
    },
    {
      "commit": "c5255ac5b1bd313dcb50159566163b24dce7483f",
      "tree": "49f2e815570219a3cf541032dba3e4ac857aca09",
      "parents": [
        "49f306f863b14f8bfc3b405ebfd3a2fb2b403c15"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Mar 16 12:00:18 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Mar 16 12:00:18 2012 -0700"
      },
      "message": "ACodec is a little more aggressive in its error checking now.\n\nUpdate components to do the right thing.\n\nChange-Id: Ibfbad3f53effc16368cca4a0e978d01d54d08a1d\n"
    },
    {
      "commit": "b12153e36ae5e514d96c77d660b327d1a8f5000f",
      "tree": "fbfe8dc937f925b7075786b969522fb9012ae69b",
      "parents": [
        "6469edeeac6079b118e8f81252116c40574c9841"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 16 11:42:24 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 16 11:51:30 2012 -0700"
      },
      "message": "Add libmedia_native\n\nChange-Id: Ib8cff8abd73723b793f08da99ad59549f219e0e7\n"
    },
    {
      "commit": "6469edeeac6079b118e8f81252116c40574c9841",
      "tree": "a6882849f43e6853ae821a48999e18d4ff25a7bb",
      "parents": [
        "0893d312070143e45c630d4a212df187b99a0e3e",
        "ded61aa958278147b5a150c189f86d025165f095"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Mar 16 11:38:38 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 16 11:38:38 2012 -0700"
      },
      "message": "Merge \"Remove obsolete software codec header files and amr encoders.\""
    },
    {
      "commit": "ded61aa958278147b5a150c189f86d025165f095",
      "tree": "c7c1f15595be728b0fc9ad49e0c05b84710ea19a",
      "parents": [
        "49f306f863b14f8bfc3b405ebfd3a2fb2b403c15"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Mar 16 10:53:50 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Mar 16 11:01:11 2012 -0700"
      },
      "message": "Remove obsolete software codec header files and amr encoders.\n\nChange-Id: Ifbdf252ee312c9cb5ab29498f1e06dae8f23faf7\n"
    },
    {
      "commit": "0893d312070143e45c630d4a212df187b99a0e3e",
      "tree": "fc1e280247b293dcb9b748546ff0ce95a01c60f5",
      "parents": [
        "19dd09bcab75e23afa08ded1caece433266d3c23",
        "9e50385f34676d8fcb3b473ec4c9f5c388a4c887"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Mar 16 10:11:13 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 16 10:11:13 2012 -0700"
      },
      "message": "Merge \"Skip XING/VBRI frame when decoding\""
    },
    {
      "commit": "19dd09bcab75e23afa08ded1caece433266d3c23",
      "tree": "17afbbc91a865e9809f87fa7f067d8079e7db272",
      "parents": [
        "ce40e081de3ecb5aa1c49d98775c99975710aed2",
        "51011e8de5a37b3912ab0c40e407b60e64a908ee"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@android.com",
        "time": "Fri Mar 16 10:06:49 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Mar 16 10:06:49 2012 -0700"
      },
      "message": "am 97824b70: am aa1bd6de: am d8cc1421: am 42c6d163: Merge \"Add empty libmedia_native in old location\"\n\n* commit \u002797824b706d8865b50faf2f09d0cf969bec0874e3\u0027:\n  Add empty libmedia_native in old location\n"
    },
    {
      "commit": "51011e8de5a37b3912ab0c40e407b60e64a908ee",
      "tree": "f02155b4b4b7496617f64ea266515cebf60f12ab",
      "parents": [
        "26d24395b4a7afbbf8d799295c0d89a42f6d44de",
        "0fce406301b24dafb98dff8f9cab3873e5398728"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@android.com",
        "time": "Fri Mar 16 10:03:54 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Mar 16 10:03:54 2012 -0700"
      },
      "message": "am aa1bd6de: am d8cc1421: am 42c6d163: Merge \"Add empty libmedia_native in old location\"\n\n* commit \u0027aa1bd6dec676ab81e14ca428427d2b8c627c83fa\u0027:\n  Add empty libmedia_native in old location\n"
    },
    {
      "commit": "0fce406301b24dafb98dff8f9cab3873e5398728",
      "tree": "f02155b4b4b7496617f64ea266515cebf60f12ab",
      "parents": [
        "ec431bbd9c7ab07c61290b12d41d9995794e0f61",
        "f281c227ee4b5732df3af8c7d4f43ab0e65cabfd"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@android.com",
        "time": "Fri Mar 16 10:01:28 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Mar 16 10:01:28 2012 -0700"
      },
      "message": "am d8cc1421: am 42c6d163: Merge \"Add empty libmedia_native in old location\"\n\n* commit \u0027d8cc14211a3d5597d6b5807d6c79a4631e36ba2d\u0027:\n  Add empty libmedia_native in old location\n"
    },
    {
      "commit": "ce40e081de3ecb5aa1c49d98775c99975710aed2",
      "tree": "d7f1998e3d770239450b63b58b0dbf1d6c4db84b",
      "parents": [
        "7c5afe93c9ca2f9f3958663bc3fa9649ec2f5331",
        "cc3190bcd4bd9321a68fb726b055c45b35229ec1"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Mar 16 09:57:23 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 16 09:57:23 2012 -0700"
      },
      "message": "Merge \"Remove obsolete OMXComponentBase class\""
    },
    {
      "commit": "cc3190bcd4bd9321a68fb726b055c45b35229ec1",
      "tree": "efebb9e50bbb4e0b61607ad11927afc390c4a8b1",
      "parents": [
        "49f306f863b14f8bfc3b405ebfd3a2fb2b403c15"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Mar 16 08:23:32 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Mar 16 08:46:36 2012 -0700"
      },
      "message": "Remove obsolete OMXComponentBase class\n\nChange-Id: I701ff5a57b0ab49cc772c4f82d03b5005e54ec6f\n"
    },
    {
      "commit": "9e50385f34676d8fcb3b473ec4c9f5c388a4c887",
      "tree": "c8a2f02e79d48b8505b40eb8df6784583af75e09",
      "parents": [
        "5102400104ce1f0a6de7bf913381a91e4f18a22a"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Mar 16 07:56:42 2012 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Mar 16 08:36:30 2012 -0700"
      },
      "message": "Skip XING/VBRI frame when decoding\n\nDon\u0027t send the XING/VBRI frame to the decoder, as it will result in\nextra data being output. Also clean up the XING seeker code a bit.\n\nChange-Id: I714a94180edae9bedc1bc0c96bf382fe6f928ac6\n"
    },
    {
      "commit": "7c5afe93c9ca2f9f3958663bc3fa9649ec2f5331",
      "tree": "9feedb389b7a89aed380d5b603355f7359a07d3d",
      "parents": [
        "49f306f863b14f8bfc3b405ebfd3a2fb2b403c15"
      ],
      "author": {
        "name": "Insun Kang",
        "email": "insun@google.com",
        "time": "Thu Mar 15 23:04:43 2012 +0900"
      },
      "committer": {
        "name": "Insun Kang",
        "email": "insun@google.com",
        "time": "Fri Mar 16 16:00:48 2012 +0900"
      },
      "message": "Fix a bug in MediaPlayer\u0027s addExternalSource().\n\nChange-Id: I035cbfb7acccc7ff88d659861ece7d0f61314fda\n"
    },
    {
      "commit": "f281c227ee4b5732df3af8c7d4f43ab0e65cabfd",
      "tree": "9b75029e21bda1650f229bbbf582c68142a0dada",
      "parents": [
        "c98c8831388d206f3883767fda3e9c0e5b2e816b",
        "2ae5a73d4994bd294ee17b8bfb8d722ef9a2564a"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@android.com",
        "time": "Thu Mar 15 22:09:38 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 15 22:09:38 2012 -0700"
      },
      "message": "am 42c6d163: Merge \"Add empty libmedia_native in old location\"\n\n* commit \u002742c6d163aaf5170ac23a4d1e5baadddd0fb71406\u0027:\n  Add empty libmedia_native in old location\n"
    },
    {
      "commit": "49f306f863b14f8bfc3b405ebfd3a2fb2b403c15",
      "tree": "d7c29856e1529b3337e5a2093fa1553c8818a3df",
      "parents": [
        "2f70d9f89a0461cafdbd84a3d8d65062f420d77a",
        "2fd2440d0175ca3e196b01b7541a9e0d4ed9a694"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu Mar 15 21:23:24 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 15 21:23:24 2012 -0700"
      },
      "message": "Merge \"Add a new camera open API that allows taking the ownership.\""
    },
    {
      "commit": "2ae5a73d4994bd294ee17b8bfb8d722ef9a2564a",
      "tree": "25d8161f745d381d599e728f11b30d708caae8e6",
      "parents": [
        "dc1696c890698d55aade9dbadf3148c2fac01cd0"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@android.com",
        "time": "Thu Mar 15 12:53:43 2012 -0700"
      },
      "committer": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Thu Mar 15 15:32:20 2012 -0700"
      },
      "message": "Add empty libmedia_native in old location\n\nSubmitting this first, in the old location, will allow early testing of\nthe build for all the dependent projects.  Then those projects will not\nneed to be updated atomically when libmedia_native is moved.\n\nChange-Id: I31ab315e53970986d18a4e3b1673e31460f6a3f1\n"
    },
    {
      "commit": "ab334fd351ae5a0e18903da123d63e565b536874",
      "tree": "9bcc5a6151326d9ca345f9dfac0d9d68d48e73b4",
      "parents": [
        "3c5bbaee376d235404f267fbe1693d1960bfaaef"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 14 12:56:06 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 15 13:15:27 2012 -0700"
      },
      "message": "audio_channel_in/out_mask_from_count\n\nand avoid ambiguous term \"channels\" where it might be confusing\nas to whether it is a channel mask or channel count\n\nChange-Id: I744fa08ccb6001a98c97bd638d2c9d56836c4234\n"
    },
    {
      "commit": "2f70d9f89a0461cafdbd84a3d8d65062f420d77a",
      "tree": "1d407ae056784288c236fe0af1ed7ec946c3ade0",
      "parents": [
        "3c5bbaee376d235404f267fbe1693d1960bfaaef",
        "54cb278c03dc72b7a1ba1ac6f7ecb1ee6939acb6"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Mar 15 10:34:00 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 15 10:34:00 2012 -0700"
      },
      "message": "Merge \"Move CameraParameters.h to frameworks/native.\""
    },
    {
      "commit": "3c5bbaee376d235404f267fbe1693d1960bfaaef",
      "tree": "290c02706bcc042c1b4d7366cf39e24d789b0474",
      "parents": [
        "cbcd6e869dd41158076e742a31c1ee410fc0c713",
        "33b383948e8f270bff30378476f00dce289004eb"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 15 07:53:54 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 15 07:53:54 2012 -0700"
      },
      "message": "Merge \"Remove dependency on audio_* location\""
    },
    {
      "commit": "2fd2440d0175ca3e196b01b7541a9e0d4ed9a694",
      "tree": "d87e4314688e65f4c53f04021c8452051d4b31eb",
      "parents": [
        "cbcd6e869dd41158076e742a31c1ee410fc0c713"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu Feb 23 19:01:00 2012 -0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu Mar 15 14:50:48 2012 +0800"
      },
      "message": "Add a new camera open API that allows taking the ownership.\n\nThe purpose is to let face unlock always get the camera\nsuccessfully. What happened was the camera applications may\nhave opened the camera in onResume under the lock screen.\nThis API lets face unlock take the camera from the camera\napplication. A new permission will be added, so other\napplicatoins won\u0027t be able to take the camera from the face\nunlock.\n\nbug:5584464\n\nChange-Id: Ib3d9dcbc2161815b68db42327dc01148453704c6\n"
    },
    {
      "commit": "cbcd6e869dd41158076e742a31c1ee410fc0c713",
      "tree": "ca11dbcb2453661a440691a1e0e67e3cd1ddb92a",
      "parents": [
        "213744c53992ba183809b30980f57d25dc8bd967",
        "f9d660a5e0196240add5daf0199f128d471e592c"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Mar 14 17:45:18 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 14 17:45:18 2012 -0700"
      },
      "message": "Merge \"Defines MediaPlayer APIs to support multiple audio/video/timedtext tracks.\""
    },
    {
      "commit": "54cb278c03dc72b7a1ba1ac6f7ecb1ee6939acb6",
      "tree": "5425f8e5e77ea79703b183664b448b04171ef2f4",
      "parents": [
        "d64f3a376536a993fe6d81730b8b7b738500435e"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Mar 14 17:14:19 2012 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Mar 14 17:14:19 2012 -0700"
      },
      "message": "Move CameraParameters.h to frameworks/native.\n\nCameraParameters.h is indirectly required to implement the Camera\nHAL. Move it to frameworks/native.\n\nBug: 6171735\nChange-Id: I1bf4db228333be16fc7caa3c51280a9495293011\n"
    },
    {
      "commit": "213744c53992ba183809b30980f57d25dc8bd967",
      "tree": "80550f092c7e6f42c6ac0de9ee37868cf33a6fba",
      "parents": [
        "dfaf549e3e310bc22444f4404b19f4907b24c286",
        "5102400104ce1f0a6de7bf913381a91e4f18a22a"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Mar 14 16:58:13 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 14 16:58:13 2012 -0700"
      },
      "message": "Merge \"Fix Xing seeking when TOC[0] \u003d\u003d 0\""
    },
    {
      "commit": "33b383948e8f270bff30378476f00dce289004eb",
      "tree": "a42eeb76674395b36611da694166ddd4144a0fa8",
      "parents": [
        "dfaf549e3e310bc22444f4404b19f4907b24c286"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 13 15:59:35 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 14 16:44:34 2012 -0700"
      },
      "message": "Remove dependency on audio_* location\n\nChange-Id: I4bc66115fcb9ba22b057bd72db3f561dcb18a0d8\n"
    },
    {
      "commit": "5102400104ce1f0a6de7bf913381a91e4f18a22a",
      "tree": "86f010b63e2b92e398e766387191175257777d69",
      "parents": [
        "8e5b72c39cf0e4d4bec6f843bb54f6409b073c64"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Mar 14 16:40:11 2012 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Mar 14 16:42:09 2012 -0700"
      },
      "message": "Fix Xing seeking when TOC[0] \u003d\u003d 0\n\nA file purchased from the Amazon mp3 store had two 0 entries at the\nstart of the TOC (presumably because there was a lot of silence at\nthe beginning, which compresses well), which made TOC based seeking\nthink the TOC was not valid.\nb/6170518\n\nChange-Id: Ie7135b4af06ebb925f63a374be780cf3a9404347\n"
    },
    {
      "commit": "f9d660a5e0196240add5daf0199f128d471e592c",
      "tree": "f67d9d6c7d7e22e8cedefaae1bf0e7a4872deda5",
      "parents": [
        "dfaf549e3e310bc22444f4404b19f4907b24c286"
      ],
      "author": {
        "name": "Insun Kang",
        "email": "insun@google.com",
        "time": "Thu Feb 16 20:28:27 2012 +0900"
      },
      "committer": {
        "name": "Insun Kang",
        "email": "insun@google.com",
        "time": "Thu Mar 15 08:36:52 2012 +0900"
      },
      "message": "Defines MediaPlayer APIs to support multiple audio/video/timedtext\ntracks.\n\no Newly introduced APIs are (MediaPlayer):\n  getTrackInfo() / addExternalSource() / enableTrack() / disableTrack().\n\no Timed text tracks are supported only, for now.\n\no TODOs:\n - Define the audio/video behavior for enableTrack and disableTrack.\n - Refactoring AwesomePlayer / TimedTextDriver so that all types of\n   track index can be managed in the correct order and be ready for\n   supporting audio/video tracks.\n   (MediaExtractor and MediaSource for text file might be necessary.)\n\nChange-Id: Idb85e1b3f2ed49a64f377d05472dd6663ce94e07\n"
    },
    {
      "commit": "dfaf549e3e310bc22444f4404b19f4907b24c286",
      "tree": "645d0b309dc35779259bf948ec26d9b6205a828c",
      "parents": [
        "3b229ed97c0dfc85a8cf881341e29e595e0edea7",
        "190a46f7c84e160386610c0c4cecb9767fb5503b"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 14 16:28:38 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 14 16:28:38 2012 -0700"
      },
      "message": "Merge \"AudioFlinger playback thread CPU measurement in Hz\""
    },
    {
      "commit": "190a46f7c84e160386610c0c4cecb9767fb5503b",
      "tree": "f3e534d11f6444178b04442a94b2dfdefea7c7dd",
      "parents": [
        "e53b9ead781c36e96d6b6f012ddffc93a3d80f0d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 06 11:27:10 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 14 16:03:01 2012 -0700"
      },
      "message": "AudioFlinger playback thread CPU measurement in Hz\n\nLog statistics on CPU usage in Hz in addition to wall clock time\n\nUse CPU statistics for all playback threads, not just MIXER\n(but they are disabled by default by a compile-time debug macro).\n\nThreadCpuUsage library:\n - Move statistics out of the library and leave that up to the caller\n - Add API to determine a CPU\u0027s frequency\n\nChange-Id: Ia1011123146e641fcf210ef26e78ae2b4d3b64ad\n"
    },
    {
      "commit": "3b229ed97c0dfc85a8cf881341e29e595e0edea7",
      "tree": "7e0fce33031b6f1c312c8e2bed8a42bfafc5643f",
      "parents": [
        "7734b0297330ab45c114c3d129152b14ffeb26cd",
        "612bbb57c59397a540e96f06bdd16e437a583af5"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 14 15:30:05 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 14 15:30:05 2012 -0700"
      },
      "message": "Merge \"audioflinger: more info in dumpsys\""
    },
    {
      "commit": "612bbb57c59397a540e96f06bdd16e437a583af5",
      "tree": "9f8a71b42b3e7cfea724a73035cc41c856fa852d",
      "parents": [
        "27e52c70cf02ee5f7f6b49df80674c5fbf8a7a2e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 14 15:03:26 2012 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 14 15:04:54 2012 -0700"
      },
      "message": "audioflinger: more info in dumpsys\n\nAdded TID and io handle to AudioFlinger threads dump.\n\nChange-Id: Ib1a856f3bad55c73e4c395b5e59d57435f4b9a4c\n"
    },
    {
      "commit": "7734b0297330ab45c114c3d129152b14ffeb26cd",
      "tree": "c2a92d22d37950007ef913c0eb655e9157187be8",
      "parents": [
        "8e5b72c39cf0e4d4bec6f843bb54f6409b073c64",
        "d3cee2f0f649c01e1153d593cbe723887b8e0ba0"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 14 13:57:03 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 14 13:57:03 2012 -0700"
      },
      "message": "Merge \"Break circular dependency on media player service\""
    },
    {
      "commit": "8e5b72c39cf0e4d4bec6f843bb54f6409b073c64",
      "tree": "db5db6697bf2a34fd3ebf117269bf4c5ffe7f03f",
      "parents": [
        "d191213ab0146526541913f3fed2d5aa95f58899",
        "0e9350254736c4aea154a7a871dd212038050f70"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 14 13:56:25 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 14 13:56:25 2012 -0700"
      },
      "message": "Merge \"Prepare frameworks/native/services/audioflinger\""
    },
    {
      "commit": "d191213ab0146526541913f3fed2d5aa95f58899",
      "tree": "a016c5591605a25a4ca1e43f3c439592f8c02789",
      "parents": [
        "27e52c70cf02ee5f7f6b49df80674c5fbf8a7a2e",
        "b4d307481960b6b348fae4b4e8edefd003c3d36c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 14 13:54:21 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 14 13:54:21 2012 -0700"
      },
      "message": "Merge \"Use correct syntax for #include \u003c\u003e \"\"\""
    },
    {
      "commit": "27e52c70cf02ee5f7f6b49df80674c5fbf8a7a2e",
      "tree": "ee478a3f921519b7a79b194b8142124697c7b474",
      "parents": [
        "75979dc147c4d2f832730da2e9b68d93ce892ba3",
        "ad6ec91c0bca37587e28bf72dfc38cde1b90544f"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Mar 14 10:43:22 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 14 10:43:22 2012 -0700"
      },
      "message": "Merge \"make sure that lower-case mime and file suffix is used to check against the supported ones\""
    },
    {
      "commit": "75979dc147c4d2f832730da2e9b68d93ce892ba3",
      "tree": "b26fb398fb90419a003547ec3a08157440acc48b",
      "parents": [
        "edc8a8e6054d67b22ec27d62f0abfdafafd66b76",
        "35250664455c9642cc14d3831b663880637a7d70"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Mar 14 10:43:18 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 14 10:43:18 2012 -0700"
      },
      "message": "Merge \"Fixed a buffer overflow bug in DrmPassthruPlugin\""
    },
    {
      "commit": "edc8a8e6054d67b22ec27d62f0abfdafafd66b76",
      "tree": "f1ad88f6932c7e3baac397511ad4ec33c2b672ab",
      "parents": [
        "abf0610a8cea021548f2909e1d47d656206f641c",
        "0a38af09ebbacdc9aa0d5ecb24e2f0484bf4f191"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Mar 14 10:43:12 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 14 10:43:12 2012 -0700"
      },
      "message": "Merge \"Turned off log spamming from DrmPassthruPlugin\""
    },
    {
      "commit": "35250664455c9642cc14d3831b663880637a7d70",
      "tree": "5235afea54b20fde679fe3f4b1ac8c7442a4376f",
      "parents": [
        "aa4397f07c43bd83bc3100b749401dc3d15e7622"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Mar 13 19:20:55 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Mar 13 19:23:23 2012 -0700"
      },
      "message": "Fixed a buffer overflow bug in DrmPassthruPlugin\n\nChange-Id: I8df2a90409c9266a094a1a0904a5ff76ec483d16\n"
    },
    {
      "commit": "0a38af09ebbacdc9aa0d5ecb24e2f0484bf4f191",
      "tree": "bb23c2fbbdd3ed276b0eba5237bfc0762b3a2b16",
      "parents": [
        "aa4397f07c43bd83bc3100b749401dc3d15e7622"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Mar 13 18:54:16 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Mar 13 18:54:16 2012 -0700"
      },
      "message": "Turned off log spamming from DrmPassthruPlugin\n\nChange-Id: I2cecdba49cf044d2aafd8aa404d27df311cad401\n"
    },
    {
      "commit": "d3cee2f0f649c01e1153d593cbe723887b8e0ba0",
      "tree": "f8cd7dbe368775e022fb139895a8a35c0c7b95d2",
      "parents": [
        "e53b9ead781c36e96d6b6f012ddffc93a3d80f0d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 13 17:55:35 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 13 17:55:35 2012 -0700"
      },
      "message": "Break circular dependency on media player service\n\nBug: 6165157\nChange-Id: I3c85bbcaf31f3cb9a009e273f7b6284015eb3bd8\n"
    },
    {
      "commit": "b4d307481960b6b348fae4b4e8edefd003c3d36c",
      "tree": "d357f30c9cf6541cbe3de6de7cc71a860f66c80b",
      "parents": [
        "f67fdc6d8bb31226ffeeecbff6aca610befd0110"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 13 14:46:23 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 13 16:14:19 2012 -0700"
      },
      "message": "Use correct syntax for #include \u003c\u003e \"\"\n\nChange-Id: I943137108668ae66f8eba18dafe069a7951bcd8f\n"
    }
  ],
  "next": "0e9350254736c4aea154a7a871dd212038050f70"
}
