)]}'
{
  "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "4a47e1a47e56fc0b9612c538001e49ebb4ab0e0f",
      "tree": "ced61b7ca996a1d079f2a9bc8b0e0767ef04543b",
      "parents": [
        "f67fdc6d8bb31226ffeeecbff6aca610befd0110",
        "3bed68cb3d43af40475f56211869c40470c1fb4d"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Mar 12 11:21:35 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 12 11:21:35 2012 -0700"
      },
      "message": "Merge \"Extend WAV extractor for multichannel\""
    },
    {
      "commit": "3bed68cb3d43af40475f56211869c40470c1fb4d",
      "tree": "20aff68f80947959986f4c9c192cee5f330f95de",
      "parents": [
        "d69549665d412f1f6ebad48ad8cd05133ada8728"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Mar 09 10:23:23 2012 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Mar 09 16:50:06 2012 -0800"
      },
      "message": "Extend WAV extractor for multichannel\n\nSupport multichannel (more than 2) audio in WAV.\nSupport WAV_EXT format.\n\nChange-Id: If0e6cf28cb3096f4f148ff6583f7e01db8f8a901\n"
    },
    {
      "commit": "18868c5db2f90309c6d11e5837822135e4a0c0fa",
      "tree": "58c7505f59a1a93ab729fc039aa5cb1eaa49652e",
      "parents": [
        "f2015b625cd6bea86da7401e725332c35b90e7cf"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 07 09:15:37 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 09 15:32:22 2012 -0800"
      },
      "message": "Use audio_policy_output_flags_t consistently\n\nThis affects:\n - IAudioFlinger::openOutput\n - AudioTrack::AudioTrack\n - AudioTrack::set\n - apps that call these\n\nChange-Id: I26fb281bac6cb87593d17697bc9cb37a835af205\n"
    },
    {
      "commit": "f2015b625cd6bea86da7401e725332c35b90e7cf",
      "tree": "3ec55cd1f89c6c1ae8ea4614e32c654df9c72869",
      "parents": [
        "5e9ce08417c36aa572c3f18b40ff9335d409b1e9",
        "679ab0b0792846a89162ce41c953819d70030112"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 09 15:23:45 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 09 15:23:45 2012 -0800"
      },
      "message": "Merge \"Use AudioRecord::record_flags consistently\""
    },
    {
      "commit": "5e9ce08417c36aa572c3f18b40ff9335d409b1e9",
      "tree": "23733fada37ed7053fd8ef220205932af5ebaec0",
      "parents": [
        "ca17672e75faf59492527a5b168cc01db8badabb",
        "26d24395b4a7afbbf8d799295c0d89a42f6d44de"
      ],
      "author": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Fri Mar 09 15:15:35 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Mar 09 15:15:35 2012 -0800"
      },
      "message": "am ea374096: am c24f5ba4: am 9a3f3b9d: am 67cf093d: Merge \"stagefright amrwbenc: Simplify the definition of static_vo\"\n\n* commit \u0027ea374096511f92206c264f3f1eb0551a05a34cd5\u0027:\n  stagefright amrwbenc: Simplify the definition of static_vo\n"
    },
    {
      "commit": "ca17672e75faf59492527a5b168cc01db8badabb",
      "tree": "deeb43aa7bc7cf853c7fb60187565e22c11c2b4a",
      "parents": [
        "824ab1a4138faa7a2dda1571282f0938e4b6cc40",
        "5d181e4260c96ae244deb89043b963f69f5834e2"
      ],
      "author": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Fri Mar 09 15:15:32 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Mar 09 15:15:32 2012 -0800"
      },
      "message": "am 3557654c: am 66da3fdc: am 972efafb: am 6db6ea02: Merge changes I00c852e4,Ib31bf028\n\n* commit \u00273557654c95bae7754dcd1951ec10742b895817e2\u0027:\n  stagefright aacenc: Avoid overflows when calculating normFactor\n  stagefright aacenc: Avoid a division by zero\n"
    },
    {
      "commit": "ec431bbd9c7ab07c61290b12d41d9995794e0f61",
      "tree": "8d2a75ba9f4ae8d27d60c0a547beb389d01d8545",
      "parents": [
        "62dac15d10f940b3bdb9f78d79cdc3e793ff63dd",
        "c98c8831388d206f3883767fda3e9c0e5b2e816b"
      ],
      "author": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Fri Mar 09 15:10:08 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Mar 09 15:10:08 2012 -0800"
      },
      "message": "am 9a3f3b9d: am 67cf093d: Merge \"stagefright amrwbenc: Simplify the definition of static_vo\"\n\n* commit \u00279a3f3b9db63e7e109a417c0959b8bc589ab70e04\u0027:\n  stagefright amrwbenc: Simplify the definition of static_vo\n"
    },
    {
      "commit": "62dac15d10f940b3bdb9f78d79cdc3e793ff63dd",
      "tree": "f56030cdfaf13601dc27a1ae3e53a8d94c236351",
      "parents": [
        "6a26abbafe8d9a9c2250afcc037c3db5e9d1b42a",
        "9045f8d6bf6f052b8fa0e34de2d703e8bff75a95"
      ],
      "author": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Fri Mar 09 15:09:58 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Mar 09 15:09:58 2012 -0800"
      },
      "message": "am 972efafb: am 6db6ea02: Merge changes I00c852e4,Ib31bf028\n\n* commit \u0027972efafb90b543eea51aa5b23104d469a1bcc1fb\u0027:\n  stagefright aacenc: Avoid overflows when calculating normFactor\n  stagefright aacenc: Avoid a division by zero\n"
    },
    {
      "commit": "c98c8831388d206f3883767fda3e9c0e5b2e816b",
      "tree": "1a36262a2c596284f809ab217cc2f33f508fd2f3",
      "parents": [
        "9045f8d6bf6f052b8fa0e34de2d703e8bff75a95",
        "dc1696c890698d55aade9dbadf3148c2fac01cd0"
      ],
      "author": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Fri Mar 09 15:06:53 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Mar 09 15:06:53 2012 -0800"
      },
      "message": "am 67cf093d: Merge \"stagefright amrwbenc: Simplify the definition of static_vo\"\n\n* commit \u002767cf093d86539d4f3db7e2a2b168c9a250c0a5b8\u0027:\n  stagefright amrwbenc: Simplify the definition of static_vo\n"
    },
    {
      "commit": "9045f8d6bf6f052b8fa0e34de2d703e8bff75a95",
      "tree": "3abd06cb54a6cac3e4ddfd47089172a47170b8f9",
      "parents": [
        "d1aeb29912c93863a05b8023bc30cd139c97c5f5",
        "1f7e2d9906d25b4e709c247d78537ee826d31051"
      ],
      "author": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Fri Mar 09 15:06:48 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Mar 09 15:06:48 2012 -0800"
      },
      "message": "am 6db6ea02: Merge changes I00c852e4,Ib31bf028\n\n* commit \u00276db6ea02b999e86dfbddd08780eeab0034389f93\u0027:\n  stagefright aacenc: Avoid overflows when calculating normFactor\n  stagefright aacenc: Avoid a division by zero\n"
    },
    {
      "commit": "824ab1a4138faa7a2dda1571282f0938e4b6cc40",
      "tree": "56d2fd0cae458b0a2d7cd0d2ee7547c6827442fb",
      "parents": [
        "d69549665d412f1f6ebad48ad8cd05133ada8728",
        "bdaa29a9bc63d8d0d86879e40286a06655623322"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Mar 09 14:44:13 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 09 14:44:13 2012 -0800"
      },
      "message": "Merge \"Fix memory leak when carrying ABuffer* in AMessages.\""
    },
    {
      "commit": "bdaa29a9bc63d8d0d86879e40286a06655623322",
      "tree": "6bd01eab72f7df5ba9bb5c76eb3f6136bcd638ef",
      "parents": [
        "5aaeb0d64fc98f9b019a4378eb39f0ee49ee6ec4"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Mar 09 14:33:01 2012 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Mar 09 14:33:01 2012 -0800"
      },
      "message": "Fix memory leak when carrying ABuffer* in AMessages.\n\nChange-Id: Icb4770ca238d316e6dd2d89159357a8fdb504ea9\n"
    },
    {
      "commit": "e7d0c712f1c9fa0b0e413b8eb729049995290aee",
      "tree": "dc6cbbe4c89a3a5ae33ca964690e6e7136402f13",
      "parents": [
        "083c154162c88a9f63aeaa10a4b52dd454bda9ff"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Mar 09 10:34:37 2012 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Mar 09 12:27:06 2012 -0800"
      },
      "message": "Improve AudioPlayer position reporting\n\nThe latency was not taken into account when updating mPositionTimeRealUs\ninside of the fillBuffer hook, contrary to what the getRealTimeUsLocked()\nmethod does. This caused the realTimeOffset calculated in the\ngetMediaTimeUs to always be negative, causing the reported position to\nalways be equal to mPositionTimeMediaUs, which is updated infrequently.\nWith this change, the reported position is updated more frequently, allowing\napps to perform smoother UI updates.\n\nChange-Id: I61e05c1a8b53d46b9091afb0d18a6289d13a7a5e\n"
    },
    {
      "commit": "dc1696c890698d55aade9dbadf3148c2fac01cd0",
      "tree": "a2ee84f0f3d80fb879975204b76550af010ba7a1",
      "parents": [
        "1f7e2d9906d25b4e709c247d78537ee826d31051",
        "dc27bc4b2cd4b95a0d7ba5dd34e3be63e1cc0c9d"
      ],
      "author": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Fri Mar 09 08:54:57 2012 -0800"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 09 08:54:59 2012 -0800"
      },
      "message": "Merge \"stagefright amrwbenc: Simplify the definition of static_vo\""
    },
    {
      "commit": "1f7e2d9906d25b4e709c247d78537ee826d31051",
      "tree": "2a600dfd15be257f1ad0cf46490151d0dada75a9",
      "parents": [
        "9f422f59fcb74283fa52c3bfd0a2665ec9ce9e10",
        "dcdfc1ad27cb64bcb51a864b020b846ba22ce2a7"
      ],
      "author": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Fri Mar 09 08:53:39 2012 -0800"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 09 08:53:40 2012 -0800"
      },
      "message": "Merge changes I00c852e4,Ib31bf028\n\n* changes:\n  stagefright aacenc: Avoid overflows when calculating normFactor\n  stagefright aacenc: Avoid a division by zero\n"
    },
    {
      "commit": "679ab0b0792846a89162ce41c953819d70030112",
      "tree": "ecd714f568d940051e492b313f3af5bd5d9b4193",
      "parents": [
        "f3c2e3bd65449b413c378219e08c71bf744cfbf3"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 07 09:04:02 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 08 18:11:55 2012 -0800"
      },
      "message": "Use AudioRecord::record_flags consistently\n\nChange-Id: I6f369a2b99eb515603bc7d5629a07db2b96783fe\n"
    },
    {
      "commit": "a19ffb656616feec70613ba67ddfe15a504a4e76",
      "tree": "4fdde29e9a31aa2ea250b4d2cf2b26bc556d3432",
      "parents": [
        "5e5631bbf2403b8242e77977792318d65362ed91",
        "6374252107fd6539397598195ea6defd5870fafb"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 08 17:45:44 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 08 17:45:44 2012 -0800"
      },
      "message": "Merge \"audio policy: use audio_devices_t when appropriate\""
    },
    {
      "commit": "5e5631bbf2403b8242e77977792318d65362ed91",
      "tree": "081548f972035103b4eb0d0705c224479fced9a8",
      "parents": [
        "f3c2e3bd65449b413c378219e08c71bf744cfbf3",
        "dce4161f7d4d39498f69591e876f5fecdde95833"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Thu Mar 08 16:40:44 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 08 16:40:44 2012 -0800"
      },
      "message": "Merge \"Fix videos app bandwidth accounting for 4G streaming\""
    },
    {
      "commit": "6374252107fd6539397598195ea6defd5870fafb",
      "tree": "ab13f5d0fd4aeaee695d58d7f8f4723d923754ae",
      "parents": [
        "f2eda12fb968829ee6f67e9b45e01eb4e2105c09"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 08 13:42:42 2012 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 08 15:57:09 2012 -0800"
      },
      "message": "audio policy: use audio_devices_t when appropriate\n\nChange-Id: I1b3a5879e81c789fb53d356af3d3a1ee2dca955f\n"
    },
    {
      "commit": "381f475475b11a552a5233c48947cc570c28b1d8",
      "tree": "8720d606e78c4225f90743f1ce517babeb651f89",
      "parents": [
        "b279312a9038b9c5b9b05b31b1b1db86f748efd8",
        "6a26abbafe8d9a9c2250afcc037c3db5e9d1b42a"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Wed Mar 07 16:58:03 2012 -0800"
      },
      "committer": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Wed Mar 07 16:58:03 2012 -0800"
      },
      "message": "resolved conflicts for merge of 532679a5 to master\n\nChange-Id: Id60d047c0e1f288acff97526c016cca632873b6b\n"
    },
    {
      "commit": "b279312a9038b9c5b9b05b31b1b1db86f748efd8",
      "tree": "0ee1b4441fada98495d4430ca5425b60f7187817",
      "parents": [
        "da6dd679c196f1e342ce41ee9839e87309563e13",
        "b81cc8c6f3eec9edb255ea99b6a6f243585b1e38"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 07 16:08:59 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 07 16:08:59 2012 -0800"
      },
      "message": "Merge \"IAudioFlingerClient::ioConfigChanged param2 const\""
    },
    {
      "commit": "f2eda12fb968829ee6f67e9b45e01eb4e2105c09",
      "tree": "1abe299fe12aef49c1c4fb3e3b21fe843e98a365",
      "parents": [
        "a13ad6e84db128eadf23b154d3346f0bb473a5f7",
        "04c1e531b5913c09aa9b2e59e2b8ed9b4d8a4cba"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Mar 07 11:53:21 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 07 11:53:21 2012 -0800"
      },
      "message": "Merge \"Effect for multichannel PCM downmix to stereo\""
    },
    {
      "commit": "04c1e531b5913c09aa9b2e59e2b8ed9b4d8a4cba",
      "tree": "643a1bd10a8e4d0e9a208a3987d41459d6db49d1",
      "parents": [
        "eb7de4504bdb3a0182021ca6f022cccca01dbf1e"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Mar 02 10:59:56 2012 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Mar 07 10:17:19 2012 -0800"
      },
      "message": "Effect for multichannel PCM downmix to stereo\n\nFirst pass at implementing an audio effect whose role is to\n downmix multichannel PCM buffers to stereo.\nThe effect is not handling volume changes.\nThe effect code here handles quad, 4.0, 5.1 and 7.1 input configurations,\n to optimize the most commom configurations, and does not yet handle\n generic multichanel configurations.\n\nChange-Id: I74d04bd961348f3f0e4ae7714b70e620808a0829\n"
    },
    {
      "commit": "b81cc8c6f3eec9edb255ea99b6a6f243585b1e38",
      "tree": "a3cad338817394b18b441bbb3f31853bfd9ed4f5",
      "parents": [
        "f8edf68a1e39da273eafe8c85bdbedc26636c4ec"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 01 09:14:51 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 06 16:43:19 2012 -0800"
      },
      "message": "IAudioFlingerClient::ioConfigChanged param2 const\n\nThe 3rd parameter (param2) to AudioFlingerClient::ioConfigChanged\nis used as an input.  So changed it from void * to const void *.\nIt is then cast to const OutputDescriptor *\nor const audio_stream_type_t * depending on the event.\n\nChange-Id: Ieec0d284f139b74b3389b5ef69c7935a8e5650ee\n"
    },
    {
      "commit": "6556e5bb99bda64f3ab92e8b540fccdd59e9ed8d",
      "tree": "be047ace7a873144a5927ed52352d3cd57d69bf2",
      "parents": [
        "22f9dd98d9c4c3e0e58586cf6a6008ca6ee946e5",
        "db354e58e65592777aa17caa47933e14838b8b35"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 06 10:53:39 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 06 10:53:39 2012 -0800"
      },
      "message": "Merge \"MediaPlayerService: fix AudioSink latency\""
    },
    {
      "commit": "22f9dd98d9c4c3e0e58586cf6a6008ca6ee946e5",
      "tree": "fab85d9d97dadde1495cab326bae501b06fe6293",
      "parents": [
        "56617834920554fc68a818da17b56e0c2ad8f254",
        "d8d6185c978c9b27ca69e7791785e0983ed9e8b8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 06 10:52:18 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 06 10:52:18 2012 -0800"
      },
      "message": "Merge \"AudioTrack: relax check on minimum buffer size\""
    },
    {
      "commit": "56617834920554fc68a818da17b56e0c2ad8f254",
      "tree": "323318e555d12b54d11fa6c776cbad548b663cc3",
      "parents": [
        "70a1577d42c6e222c98f0245e7b81b0e8bc238f7",
        "054a5a69374efae97924c83c2ee7ec7210bf3283"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Mar 06 10:23:58 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 06 10:23:58 2012 -0800"
      },
      "message": "Merge \"Remove unused code - MediaSourceSplitter\""
    },
    {
      "commit": "70a1577d42c6e222c98f0245e7b81b0e8bc238f7",
      "tree": "bf2d871ff28b962409344150193a96f962174773",
      "parents": [
        "eb7de4504bdb3a0182021ca6f022cccca01dbf1e",
        "c236eb8ae848997d47b47371f86c37389eef013e"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 06 08:17:20 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 06 08:17:20 2012 -0800"
      },
      "message": "Merge \"Remove references to sched_policy.h\""
    },
    {
      "commit": "6a26abbafe8d9a9c2250afcc037c3db5e9d1b42a",
      "tree": "11a017ac26b89b7def167dcc619180392feb7489",
      "parents": [
        "d1aeb29912c93863a05b8023bc30cd139c97c5f5",
        "083644fee99d23491554484301943e6a7daf262b"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Mon Mar 05 22:55:49 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Mar 05 22:55:49 2012 -0800"
      },
      "message": "am 4d7bc655: Doc change: String changes for Android Market\n\n* commit \u00274d7bc65538c7cd9fbb1fbbcf22d1da47fcee1219\u0027:\n  Doc change: String changes for Android Market\n"
    },
    {
      "commit": "083644fee99d23491554484301943e6a7daf262b",
      "tree": "917ad825104d1dec0951e6847ad769d1ceb4b123",
      "parents": [
        "21e4b6ed00e814bffc70895847a4944d7a190020"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Fri Jan 27 17:56:49 2012 -0800"
      },
      "committer": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Mon Mar 05 22:02:35 2012 -0800"
      },
      "message": "Doc change: String changes for Android Market\n\nChange-Id: I823812a4fd24021bec906ad856479c92a8d2a759\n"
    },
    {
      "commit": "054a5a69374efae97924c83c2ee7ec7210bf3283",
      "tree": "ccd1e4c1571bf8e00367601743780c15510f4f77",
      "parents": [
        "985ed9a1a22ec7e6e245d3fb8e93d3a23bdc539b"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Mar 05 19:28:02 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Mar 05 19:30:08 2012 -0800"
      },
      "message": "Remove unused code - MediaSourceSplitter\n\nChange-Id: Icf37832a1c234501ee3ff91ff13eece2242425ae\n"
    },
    {
      "commit": "c236eb8ae848997d47b47371f86c37389eef013e",
      "tree": "e62c8a46fa419471f0a1f214e6630b5365d7645b",
      "parents": [
        "cdfc4fcd2a1fd8436700c1197a9ff098ac1f625e"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 05 17:44:04 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 05 17:44:04 2012 -0800"
      },
      "message": "Remove references to sched_policy.h\n\nAs part of scheduling policy cleanup, remove obsolete\nreferences to sched_policy.h and its APIs.\n\nChange-Id: Id957d11dd645cdf9d53dd6c02e568369aef23243\n"
    },
    {
      "commit": "db354e58e65592777aa17caa47933e14838b8b35",
      "tree": "4a04ca6b47a4853f9b397a19b3f4dc84675c8fa7",
      "parents": [
        "d8d6185c978c9b27ca69e7791785e0983ed9e8b8"
      ],
      "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": "Mon Mar 05 17:27:11 2012 -0800"
      },
      "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"
    },
    {
      "commit": "d8d6185c978c9b27ca69e7791785e0983ed9e8b8",
      "tree": "cda49b71e787cf1bcf68671e237389f70706cff3",
      "parents": [
        "985ed9a1a22ec7e6e245d3fb8e93d3a23bdc539b"
      ],
      "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": "Mon Mar 05 17:18:36 2012 -0800"
      },
      "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"
    },
    {
      "commit": "786618ffe881aceb64d65a6a2e2d76ede6e01ec0",
      "tree": "3e88f6c457f47529026207badf835dfa448ec8b8",
      "parents": [
        "e7c795f3300814aa3f26ceb845f29695383c7edc"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Mar 02 14:54:07 2012 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Mar 02 17:26:49 2012 -0800"
      },
      "message": "Add channel mask in AudioSink\n\nAdd support for specifying a channel mask when opening an AudioSink.\n  This parameter does not replace the channel count parameter in order\n  to not have to duplicate the logic to derive a mask from the\n  channel count everywhere an AudioSink is used without a known mask.\n\nA mask of 0 (CHANNEL_MASK_USE_CHANNEL_ORDER) means a mask will\n  be automatically derived from the number of channels.\n\nUpdate existing AudioSink implementations to use the channel mask,\n  and users of AudioSink to specify the mask if available, and\n  CHANNEL_MASK_USE_CHANNEL_ORDER otherwise.\n\nChange-Id: Ifa9bd259874816dbc25ead2b03ea52e873cff474\n"
    },
    {
      "commit": "e7c795f3300814aa3f26ceb845f29695383c7edc",
      "tree": "bf5b20a09d391161de6e987669a75ddc09f8ce22",
      "parents": [
        "4bce61f407d43b216c288a8d7b26fb5519853dba"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Mar 02 09:58:05 2012 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Mar 02 09:58:05 2012 -0800"
      },
      "message": "Correct GUID errors in audio effect configuration\n\nCorrect erroneous spaces that were present in some audio effect GUIDs.\n\nChange-Id: Ide3a1552b2f8976f96ee980f1341f935555656d9\n"
    },
    {
      "commit": "4bce61f407d43b216c288a8d7b26fb5519853dba",
      "tree": "485a3b82a7ef5592821f7d0ecef5458694e57ffe",
      "parents": [
        "79967af7ba8fb2ddd3a106afc0361f3ad836c174",
        "25a9ce1b1fea65341299c262b944825d233006f6"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Mar 01 15:46:19 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 01 15:46:19 2012 -0800"
      },
      "message": "Merge \"Remove hacks that worked around issues in OMX components several releases back.\""
    },
    {
      "commit": "79967af7ba8fb2ddd3a106afc0361f3ad836c174",
      "tree": "2698225f0ca4362d3bb74b799bdd1de6e569e8fe",
      "parents": [
        "6c1f1cb5bd2b22f8b21b78ea020a0b6370f5b9ff",
        "d1aeb29912c93863a05b8023bc30cd139c97c5f5"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Mar 01 15:35:25 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 01 15:35:25 2012 -0800"
      },
      "message": "am 9de7793b: am 4f906362: am 97348431: am 704131cb: Merge changes I46c81dba,If1f40e9c,I652eaaa5\n\n* commit \u00279de7793b425be89889412f3a86466d7b19055c3c\u0027:\n  stagefright aacenc: Use QDADD/QDSUB instructions\n  stagefright aacenc: Remove useless inline asm for simple right shift\n  stagefright aacenc: Use ARMv6 SSAT instruction\n"
    },
    {
      "commit": "6c1f1cb5bd2b22f8b21b78ea020a0b6370f5b9ff",
      "tree": "9f4bce8f4789d27c4ca0c3e0326ad4e03dce103a",
      "parents": [
        "c795b64060c3af9d7961fc1371e4ccfa8ee3e450",
        "769501aad4e1c69af713b27dada849f99db22914"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Mar 01 15:35:23 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 01 15:35:23 2012 -0800"
      },
      "message": "am 715c78b9: am 225eec8d: am f9d4ba77: am 69aae36e: Merge \"stagefright aacenc: Safeguard against overwriting bits\"\n\n* commit \u0027715c78b933f8dec04882ebb73acd61fdd42c6c64\u0027:\n  stagefright aacenc: Safeguard against overwriting bits\n"
    },
    {
      "commit": "25a9ce1b1fea65341299c262b944825d233006f6",
      "tree": "0cd419550547e95ffd84a58f82a97863621c39f7",
      "parents": [
        "f08d7d0ee19c225d5b67fb49046290adfd9ab4bc"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Mar 01 15:17:47 2012 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Mar 01 15:17:47 2012 -0800"
      },
      "message": "Remove hacks that worked around issues in OMX components several releases back.\n\nChange-Id: I89bb3d0be4d2c1824de382aedfdd4f9bd2547dbc\n"
    },
    {
      "commit": "c795b64060c3af9d7961fc1371e4ccfa8ee3e450",
      "tree": "aafa8ecde306b5420e96b7a6e0965d1f1f4c4fa6",
      "parents": [
        "4b77dc28097288cb062fce6bf5de0fb3394877a9"
      ],
      "author": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Wed Feb 22 15:38:35 2012 -0800"
      },
      "committer": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Thu Mar 01 14:41:35 2012 -0800"
      },
      "message": "Switch the way we configure for MediaPlayer retransmission.\n\nThis is a cherry-pick of I6ab07d89b2eeb0650e634b8c3b7a0b36aba4e7dd\nwith merge conflicts addressed by hand and additional changes made in\nresponse to code review feedback.\n\nMove in the direction of a more publishable API for configuring a\nmedia player for retransmission.  It used to be that we used a custom\ninvoke and a modified URL (prefixed with aahTX://).  There are many\nissues with this technique and it was never meant to stand the test of\ntime.\n\nThis CL gets rid of all that.  A new (but currently hidden) method was\nintroduced to the java level MediaPlayer API, called\nsetRetransmitTarget(InetSocketAddress), which allows an app writer to\nset the retransmit target.  For now, this method needs to be called\nbefore a call to setDataSource (which is pretty unusual for the\nMediaPlayer API) because this mid level code uses this as a cue to\ninstantiate an aahTX player instead of relying on the data source to\nselect a player.  When retranmit functionality becomes part of the\nexisting android player implemenation, this\nset-retrans-before-set-data-source behavior can go away, along with\nthe aahTX player itself.\n\nChange-Id: I3b46c5227bbf69acb2f3cc4f93cfccad9777be98\nSigned-off-by: John Grossman \u003cjohngro@google.com\u003e\n"
    },
    {
      "commit": "4b77dc28097288cb062fce6bf5de0fb3394877a9",
      "tree": "8f5b8bfaf308065aef9999dcb1b2950ef8656166",
      "parents": [
        "f08d7d0ee19c225d5b67fb49046290adfd9ab4bc"
      ],
      "author": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Sat Feb 18 17:46:40 2012 -0800"
      },
      "committer": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Thu Mar 01 14:41:35 2012 -0800"
      },
      "message": "LibAAH_RTP: Add support for AAC in MP4.\n\nCherry picked from Ie8298eb9d253fc6ede448da87660a60d23170987 and\nconflicts fixed by hand.\n\nChange-Id: I6f0a59357ba1a3d57caf67d2eb0ade7486723e7b\nSigned-off-by: John Grossman \u003cjohngro@google.com\u003e\n"
    },
    {
      "commit": "afc16d667afa23f5aa00154ccad62f8c45cf5419",
      "tree": "e7a7573397177303112c1809f0087b25c8a30397",
      "parents": [
        "df94a547d8036619d15975873a1ff5736b0f14fe"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 29 15:47:17 2012 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Mar 01 11:30:10 2012 -0800"
      },
      "message": "Instead of hardcoding OMX component names in our code, support\n\na config file instead.\n\nChange-Id: I5835903ab9f1c4a22ccc605ca99ed966767adf57\n"
    },
    {
      "commit": "d1aeb29912c93863a05b8023bc30cd139c97c5f5",
      "tree": "008ba7c1dbf264c945f49d1d7d963e677d9498e9",
      "parents": [
        "769501aad4e1c69af713b27dada849f99db22914",
        "9f422f59fcb74283fa52c3bfd0a2665ec9ce9e10"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Feb 29 15:44:31 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Feb 29 15:44:31 2012 -0800"
      },
      "message": "am 704131cb: Merge changes I46c81dba,If1f40e9c,I652eaaa5\n\n* commit \u0027704131cb7e4f9cc682ea57ed569375f9f289368e\u0027:\n  stagefright aacenc: Use QDADD/QDSUB instructions\n  stagefright aacenc: Remove useless inline asm for simple right shift\n  stagefright aacenc: Use ARMv6 SSAT instruction\n"
    },
    {
      "commit": "769501aad4e1c69af713b27dada849f99db22914",
      "tree": "139c5400dd85eac7f0f21a96d97a1191c9551b69",
      "parents": [
        "279612dd95acc127e41b8a7aa3277f3ffacaa849",
        "de99ee3d507bf1284fdb5d6b84a32f4227f16a6f"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Feb 29 15:44:28 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Feb 29 15:44:28 2012 -0800"
      },
      "message": "am 69aae36e: Merge \"stagefright aacenc: Safeguard against overwriting bits\"\n\n* commit \u002769aae36e900cf7114c5895618747906951a11730\u0027:\n  stagefright aacenc: Safeguard against overwriting bits\n"
    },
    {
      "commit": "e8286332f3817a8b7cc4cfd8f6450a3913533660",
      "tree": "c783132bbe76feacb35e2c8804349c2c15be6745",
      "parents": [
        "848b6a8a4ccff424e382ce5e1d946da6ede580a0",
        "480b46802bef1371d5caa16ad5454fce04769c57"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Feb 29 14:59:08 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 29 14:59:08 2012 -0800"
      },
      "message": "Merge \"Shorten thread names\""
    },
    {
      "commit": "ec539ae64d8a3eadf9115ec7ebe31e4e47788a2e",
      "tree": "4875df8b78a6291ddc002b70c05f170cfac58436",
      "parents": [
        "bc4b08ba67a0245e092aee8f08ba30ef22d421bf",
        "606ee61616efdba4696ae591ad10a4be33d8c946"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Feb 29 14:45:25 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 29 14:45:25 2012 -0800"
      },
      "message": "Merge \"AudioRecord const methods\""
    },
    {
      "commit": "9f422f59fcb74283fa52c3bfd0a2665ec9ce9e10",
      "tree": "f5fe8c26eca24674c88df28f57e2d6b8b3d9c78b",
      "parents": [
        "de99ee3d507bf1284fdb5d6b84a32f4227f16a6f",
        "b8576d5ae50294bb1917b84f366054ebff02a3a6"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Feb 29 14:24:52 2012 -0800"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 29 14:24:52 2012 -0800"
      },
      "message": "Merge changes I46c81dba,If1f40e9c,I652eaaa5\n\n* changes:\n  stagefright aacenc: Use QDADD/QDSUB instructions\n  stagefright aacenc: Remove useless inline asm for simple right shift\n  stagefright aacenc: Use ARMv6 SSAT instruction\n"
    },
    {
      "commit": "de99ee3d507bf1284fdb5d6b84a32f4227f16a6f",
      "tree": "289ec7b4e0f7131ccd9a064eb1e32955463cfb9a",
      "parents": [
        "bc303ed5fd25228b8523adbfcc9c007e73bc04ea",
        "3989d5c21ce6d1f3492c9e5484d610d5d66abd9e"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Feb 29 14:23:38 2012 -0800"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 29 14:23:38 2012 -0800"
      },
      "message": "Merge \"stagefright aacenc: Safeguard against overwriting bits\""
    },
    {
      "commit": "5687da3359c7939dbd982de9fa2e5f19e41ae411",
      "tree": "d576294f7567041ffca6ed4443a0cb3132f55ac0",
      "parents": [
        "41acadea86b763f4cc6f7aeb292f943d4570ac90",
        "c95c2ddcdfc974f42408a377fbe2de51b94a8c94"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 29 09:20:24 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 29 09:20:25 2012 -0800"
      },
      "message": "Merge \"Separate the notion of \"stop\" from that of \"release\", i.e.\""
    },
    {
      "commit": "41acadea86b763f4cc6f7aeb292f943d4570ac90",
      "tree": "c494404370e89ef9d5fce555a91be9e75449b3f9",
      "parents": [
        "0f7affe1716dfd6687262008120ed128df1af214",
        "3254b25e8b0f674ccc2226609e01dd86a600802e"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Feb 28 18:49:34 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 28 18:49:34 2012 -0800"
      },
      "message": "Merge \"Moves TimedTextDriver.h into include/media/stagefright/timedtext.\""
    }
  ],
  "next": "480b46802bef1371d5caa16ad5454fce04769c57"
}
