)]}'
{
  "log": [
    {
      "commit": "78b5e82f421bfdf5c1c72bd0ca2fb7f3bc1a45ff",
      "tree": "b3446119a9b6c03dcca98d1d9ee31a83adb8acad",
      "parents": [
        "c524ffda17017d8467a237a1eddfd7e7c03c6617"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 23 14:05:52 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 23 14:05:52 2012 -0700"
      },
      "message": "Revert \"Split libmedia into libmedia and libmedia_native\"\n\nThis reverts commit 0a3edd38df0743dcc7091bb7ebf29e7e7dadc7cb"
    },
    {
      "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": "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": "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": "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"
    },
    {
      "commit": "0e9350254736c4aea154a7a871dd212038050f70",
      "tree": "a3a6f653b383e5767c6ed6b6c47c464099339298",
      "parents": [
        "f67fdc6d8bb31226ffeeecbff6aca610befd0110"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 13 16:09:39 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 13 16:13:17 2012 -0700"
      },
      "message": "Prepare frameworks/native/services/audioflinger\n\nPart of this change will be reverted after the move is complete.\n\nChange-Id: Ie7f6355368258f2b1344f4ef754da9151a06e41d\n"
    },
    {
      "commit": "ad6ec91c0bca37587e28bf72dfc38cde1b90544f",
      "tree": "3bfd1f4840a7230a517284c3c1a35405877545b7",
      "parents": [
        "aa4397f07c43bd83bc3100b749401dc3d15e7622"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Mar 12 23:20:29 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Mar 13 14:54:02 2012 -0700"
      },
      "message": "make sure that lower-case mime and file suffix is used to check against the supported ones\n\nChange-Id: I6a20832f6a2dfb8554dbddef0dee87cc21c05c80\n"
    },
    {
      "commit": "abf0610a8cea021548f2909e1d47d656206f641c",
      "tree": "95c55de02a634a670a92b76eb721023d488c83dc",
      "parents": [
        "36a4d2cc7a44eb42d0d9ef5fe50b6747a7a34cab"
      ],
      "author": {
        "name": "Daniel Lam",
        "email": "dalam@google.com",
        "time": "Thu Feb 23 14:35:13 2012 -0800"
      },
      "committer": {
        "name": "Daniel Lam",
        "email": "dalam@google.com",
        "time": "Tue Mar 13 14:39:28 2012 -0700"
      },
      "message": "SurfaceTexture: Fully refactored from BufferQueue\n\nCleaning up camera and media interactions as part of SurfaceTexture refactoring\n\nChange-Id: Iea2b10ff80b5f01f83ed0902c725df1d3b4c541a\n"
    },
    {
      "commit": "36a4d2cc7a44eb42d0d9ef5fe50b6747a7a34cab",
      "tree": "eec0f805e2e83ed1d720519748527c03affafc29",
      "parents": [
        "5e7616cc0e5493241211333134555d74aec89982",
        "6b74d671a1321a6ecc4a40b6c87beedfecc1ec44"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Mar 13 13:23:07 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 13 13:23:07 2012 -0700"
      },
      "message": "Merge \"Gapless playback, step 1.\""
    },
    {
      "commit": "6b74d671a1321a6ecc4a40b6c87beedfecc1ec44",
      "tree": "44092c52e8439f1991f23601287d424db916c814",
      "parents": [
        "887c5d2ac34d81bde66dadbd7b2ff07501744778"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Feb 28 16:07:44 2012 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Mar 13 13:13:14 2012 -0700"
      },
      "message": "Gapless playback, step 1.\n\nCurrently able to play Ogg Vorbis, PCM WAV and other lossless files seamlessly\nby reusing the initial AudioTrack for subsequent players.\n\nChange-Id: Ie7cf6b9076bdf4f9211574456d192c02c04fecc7\n"
    },
    {
      "commit": "5e7616cc0e5493241211333134555d74aec89982",
      "tree": "e2a972018a13cbf8c2ad6c3d7592dbbb73fec3a8",
      "parents": [
        "e53b9ead781c36e96d6b6f012ddffc93a3d80f0d",
        "6c6b4d0d2b98a7ceee8b697daaf611f8df3254fb"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Mar 13 12:44:54 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 13 12:44:54 2012 -0700"
      },
      "message": "Merge \"Switched to use the header files in /frameworks/native and deleted the duplicate header files in /frameworks/base\""
    },
    {
      "commit": "e53b9ead781c36e96d6b6f012ddffc93a3d80f0d",
      "tree": "4bcde0bc9a797851ec1bee4f630c8c4f0735f623",
      "parents": [
        "b87396f9ebabbb7b47683bceca96cbe635a1ca00"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 12 16:29:55 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 13 11:09:47 2012 -0700"
      },
      "message": "Whitespace and indentation\n\nFix indentation to be multiple of 4.\nMake it easier to search:\n  sp\u003c not sp \u003c to\n  \"switch (...)\" instead of \"switch(...)\" (also \"if\" and \"while\")\nRemove redundant blank line at start or EOF.\nRemove whitespace at end of line.\nRemove extra blank lines where they don\u0027t add value.\n\nUse git diff -b or -w to verify.\n\nChange-Id: I966b7ba852faa5474be6907fb212f5e267c2874e\n"
    },
    {
      "commit": "b87396f9ebabbb7b47683bceca96cbe635a1ca00",
      "tree": "55f96b0ab2ab1de07b981a4ef1f3d740870cecfd",
      "parents": [
        "fd83fbf5ead098070bae674b20e6f87f45ab5d4c",
        "083c271152f2d930f259816d52327ed47e022780"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Mar 13 09:21:37 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 13 09:21:37 2012 -0700"
      },
      "message": "Merge \"Fixing coding style : Indentation\""
    },
    {
      "commit": "fd83fbf5ead098070bae674b20e6f87f45ab5d4c",
      "tree": "943a0945c076afc9536c3ddf96c50475bf9d519e",
      "parents": [
        "aa4397f07c43bd83bc3100b749401dc3d15e7622",
        "5798d4ebf236357a4b13246f40e52b90a34d09a4"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 13 07:16:44 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 13 07:16:44 2012 -0700"
      },
      "message": "Merge \"Clean up assertion checks\""
    },
    {
      "commit": "083c271152f2d930f259816d52327ed47e022780",
      "tree": "9dd4469b45e349fac04859ddf3bb7c92249e0210",
      "parents": [
        "aa4397f07c43bd83bc3100b749401dc3d15e7622"
      ],
      "author": {
        "name": "Insun Kang",
        "email": "insun@google.com",
        "time": "Tue Mar 13 17:17:41 2012 +0900"
      },
      "committer": {
        "name": "Insun Kang",
        "email": "insun@google.com",
        "time": "Tue Mar 13 17:17:41 2012 +0900"
      },
      "message": "Fixing coding style : Indentation\n\nChange-Id: Ia66f92aa74c55719bbc32211c75ea1ebdf828373\n"
    },
    {
      "commit": "6c6b4d0d2b98a7ceee8b697daaf611f8df3254fb",
      "tree": "307356be51d237ee22f88affdc3376270d571be9",
      "parents": [
        "aa4397f07c43bd83bc3100b749401dc3d15e7622"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Mar 12 14:37:53 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Mar 12 21:28:57 2012 -0700"
      },
      "message": "Switched to use the header files in /frameworks/native\nand deleted the duplicate header files in /frameworks/base\n\no related-to-bug: 6044887\n\nChange-Id: I17e0692d9a9b5c8796ded36677c833ca8ab36795\n"
    },
    {
      "commit": "aa4397f07c43bd83bc3100b749401dc3d15e7622",
      "tree": "44ec13ce56037243854454b25072fcc06e63972b",
      "parents": [
        "73f4bc33e0d458933460250a47c64aa868c05f97"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 12 18:13:59 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 12 18:13:59 2012 -0700"
      },
      "message": "Fix bug where mMixerStatus was set to IDLE\n\nChange-Id: I55df1738fb7ba17ba6caeea6a17557526eac17a7\n"
    },
    {
      "commit": "5798d4ebf236357a4b13246f40e52b90a34d09a4",
      "tree": "b9cb82b889bee3c6b32bfa2d2870bd88034b0fdd",
      "parents": [
        "73f4bc33e0d458933460250a47c64aa868c05f97"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 08 12:18:35 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 12 15:56:50 2012 -0700"
      },
      "message": "Clean up assertion checks\n\nUse ALOG_ASSERT instead of assert.\nUse compile-time asserts where appropriate.\nFix typo in an ALOGV.\n\nChange-Id: I58f1c1ffc14319a022c88b5a88b8d0368660da8b\n"
    },
    {
      "commit": "73f4bc33e0d458933460250a47c64aa868c05f97",
      "tree": "556b3eb2a31d5a986ec7213dfac598aa821b2091",
      "parents": [
        "470aa50c36089fbe0427557f7cf4464dd26a1c52"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 09 12:08:48 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 12 15:14:24 2012 -0700"
      },
      "message": "Inline applyVolume() into threadLoop_mix()\n\nAlso the declaration of applyVolume in PlaybackThread was dead.\n\nChange-Id: I4b1a9848d07d3d7f340baea05b17f667c78df868\n"
    }
  ],
  "next": "470aa50c36089fbe0427557f7cf4464dd26a1c52"
}
