)]}'
{
  "log": [
    {
      "commit": "48a0bfa6f731386f2794ff36d6677d56e98fc6ea",
      "tree": "36deb7b4e31a25a8a4b313de8ffdecd1d8ae9aaa",
      "parents": [
        "cc0df657cdc8316c2b816c562f269be1706f00ea",
        "49dd5cf3469cd755321f8ec10013ad4fcfaf723d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jun 14 08:43:56 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jun 14 08:43:56 2012 -0700"
      },
      "message": "am 49dd5cf3: Merge \"Log track name on obtain/releaseBuffer warnings\" into jb-dev\n\n* commit \u002749dd5cf3469cd755321f8ec10013ad4fcfaf723d\u0027:\n  Log track name on obtain/releaseBuffer warnings\n"
    },
    {
      "commit": "0c9d26d187017f7fb028ab52a0fbc6395142faa4",
      "tree": "35fd2f6babef082b85058fd27a69bda048687295",
      "parents": [
        "b4ea1ab821d652cb080910d4081f5f1318597a90"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu May 31 14:35:01 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jun 13 15:12:42 2012 -0700"
      },
      "message": "Log track name on obtain/releaseBuffer warnings\n\nThis should help diagnose problems by allowing us to correlate\nthe logs with the dumpsys media.audio_flinger output.\n\nChange-Id: I8c7c592b4f87d13b0f29c66ce7a2f301a0f063c9\n"
    },
    {
      "commit": "ea5008d8abfdf1479b4efa266cdb7c842d168aa9",
      "tree": "d963ca5cf87c18f8d14d6c1cce77edb9f56c96ac",
      "parents": [
        "98e2e030231ce99a4796d34d39a7517078d6735e",
        "28ed2f93324988767b5658eba7c1fa781a275183"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jun 08 10:28:45 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jun 08 10:28:45 2012 -0700"
      },
      "message": "am 28ed2f93: Reduce underruns in screen off, esp. with EQ\n\n* commit \u002728ed2f93324988767b5658eba7c1fa781a275183\u0027:\n  Reduce underruns in screen off, esp. with EQ\n"
    },
    {
      "commit": "28ed2f93324988767b5658eba7c1fa781a275183",
      "tree": "07ba39f61d41aa6ff2af76dc2c9122a102c92059",
      "parents": [
        "a4f7e0e9a0e92a063f1b3a08988cf46e2cf1fa94"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jun 07 10:17:54 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jun 08 10:09:22 2012 -0700"
      },
      "message": "Reduce underruns in screen off, esp. with EQ\n\nAdd MonoPipe APIs to specify setpoint.\nUse screen state to configure pipe setpoint.\nFix a long-standing bug where pipe sleep time was excessive,\n  which interacted poorly with governor and low clock frequencies.\n  Now it deducts the elapsed time since last write(),\n  which was significant when there was EQ and low clock frequency.\n\nBug: 6618373\nChange-Id: I6f3b0072c2244aeb033ef0795ad164491a164ff5\n"
    },
    {
      "commit": "cba7b32d8f2c47632313f54118ed3733b4b02cc8",
      "tree": "b24101645accdc9067e7970ef22f3d934bda8edf",
      "parents": [
        "cf0bf78c28cf25c30c42c784c1dc5bc094e6035d"
      ],
      "author": {
        "name": "Kei Takahashi",
        "email": "KeiA.Takahashi@jp.sony.com",
        "time": "Wed Jan 18 17:10:19 2012 +0900"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed May 23 14:44:06 2012 -0700"
      },
      "message": "Add a new API on DRM Framework for streaming\n\nIn case of DRM streaming, decrypt session can start just after\nreceiving the header, and it doesn\u0027t need to wait for the entire\ncontent. However, current API of DRM framework only accepts file\nhandle or URI. With this new API, DRM session can start\nwithout waiting for the entire content.\n\nChanges are made by SEMC and Sony.\n\nChange-Id: I74375fe127df636067f1c300ea91654ba3d1aa3c\n"
    },
    {
      "commit": "bc098410be55f9d96f394b3981a0c482b83859b6",
      "tree": "45681d846f6862d558b04be1a4b36bb4a2b4c54f",
      "parents": [
        "a6490c65f93e1cbe969fba499978e8d64214108a"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue May 22 12:55:03 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue May 22 12:55:03 2012 -0700"
      },
      "message": "Tell surface flinger that we want to protect output buffers from being\n\nsent to HDMI (without HDCP) and push a few black frames on IDLE-\u003eLOADED\nsimilar to OMXCodec\u0027s behaviour.\n\nChange-Id: Iea6055a115151ca881220a70a31af6ade2c58cb3\nrelated-to-bug: 6537187\n"
    },
    {
      "commit": "88ba895b5ddd8b3da364c3ceacdb698224ee746f",
      "tree": "e667815a58c7c30d94040ebcf20c5ab3cf53ff53",
      "parents": [
        "cd28dc10d49c359566c69d48a29a6f0d3eefa6d9",
        "a99a5bca365277271915cbaeea811ad87131270d"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu May 17 09:40:55 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 17 09:40:55 2012 -0700"
      },
      "message": "Merge \"Stop extrapolating audio time from the anchor if we\u0027re paused or reached eos.\" into jb-dev"
    },
    {
      "commit": "50a9908f987fd5a73d8a95d6fe46b530386cdc86",
      "tree": "9f9444db2cdb8dac16daa9527f8888b169a0ca81",
      "parents": [
        "09effe3813dcdec19c6767bf754cc3834e816937",
        "8c460498c028888c533ab442be12b6d4b669b965"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue May 15 17:24:27 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 15 17:24:27 2012 -0700"
      },
      "message": "Merge \"Speed up stsz box write in MPEG4Writer\" into jb-dev"
    },
    {
      "commit": "8c460498c028888c533ab442be12b6d4b669b965",
      "tree": "f821306b7a59d4dcc9116f1948f193c78f5ad413",
      "parents": [
        "5d3d12bf58da5b48b1edb7c20b5d1edec0773f75"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue May 15 10:43:30 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue May 15 16:14:25 2012 -0700"
      },
      "message": "Speed up stsz box write in MPEG4Writer\n\nWith this patch, the write time for 30+ minutes recording session is reduced from 10+ seconds down to around 2-3 seconds.\n\nrelated-to-bug: 6435176\n\nChange-Id: I83b705cea42d8de798e7032c770c5c7b033e267e\n"
    },
    {
      "commit": "a99a5bca365277271915cbaeea811ad87131270d",
      "tree": "717917aace94780ef8ec47d57e1eb9d86be78dd3",
      "parents": [
        "18793d77792e12f5f63e67f721bc238b6dc497a1"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue May 15 15:57:59 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue May 15 16:05:02 2012 -0700"
      },
      "message": "Stop extrapolating audio time from the anchor if we\u0027re paused or reached eos.\n\nChange-Id: I55903ba625d9c075a9a6e7bcd5ff95d450b915b2\nrelated-to-bug: 6479613\n"
    },
    {
      "commit": "c2d6427f693f1847100c8f4b9a4aff6c1a12bb29",
      "tree": "b3be5a079cf848bae0c1af96a249c42671390a74",
      "parents": [
        "2986460984580833161bdaabc7f17da1005a8961"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue May 15 15:38:27 2012 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue May 15 15:47:29 2012 -0700"
      },
      "message": "Move CameraParameters header to join rest of camera library.\n\nCameraParameters was moved over to frameworks/native before\nframeworks/av was created, since it is referenced by HAL\nimplementations. Move it to frameworks/av to keep it together with its\nimplementation.\n\nBug: 6500863\nChange-Id: If1a3b7768bedeb825729c3cdd55e8fcea04b7369\n"
    },
    {
      "commit": "2986460984580833161bdaabc7f17da1005a8961",
      "tree": "bd8aa210c0faee61dc45e23479e29cfc85f313c2",
      "parents": [
        "dfa29ab13647f22b30b2de34d4830c9e815bf120"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 08 18:57:51 2012 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon May 14 17:20:12 2012 -0700"
      },
      "message": "Fix issues with synchronous record start.\n\n- Added a timeout in case the trigger event is never fired.\n- Extend AudioRecord obtainBuffer() timeout in case of\nsynchronous start to avoid spurious warning.\n- Make sure that the event is triggered if the track is\ndestroyed.\n- Reject event if the triggering track is in an incompatible state.\n\nAlso fix a problem when restoring a static AudioTrack after\na mediaserver crash.\n\nBug 6449468.\n\nChange-Id: Ib36e11111fb88f73caa31dcb0622792737d57a4b\n"
    },
    {
      "commit": "e4451a91a61a341014f5eff61db356156c3ecb37",
      "tree": "e08424d79d2b0c341b51a180065faac801465463",
      "parents": [
        "44f84ded62bffd5f04e0f5961e8304427a7b9f34"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon May 14 15:55:48 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon May 14 15:55:48 2012 -0700"
      },
      "message": "Smoothen audio \"real\" time by compensating with system_time()\n\nfor the delay since the last buffer submission to the audio sink.\n\nChange-Id: Ib1a8672f96ba8bbef07d23372f1076fbb1f0bdcc\nrelated-to-bug: 6479613\n"
    },
    {
      "commit": "7cf0de49dbdcb2da7d9bf9421f58adf442dfeaea",
      "tree": "5b5b9ccdccfca5733ea98d7592868d9b8719e61c",
      "parents": [
        "7d5805669dea851e70115c494154a2d26b8dc39e",
        "3a2633008be4a92fbca6e76c057f86e220558197"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri May 11 15:39:36 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 11 15:39:36 2012 -0700"
      },
      "message": "Merge \"Remove unused VideoSourceDownSampler class\" into jb-dev"
    },
    {
      "commit": "3a2633008be4a92fbca6e76c057f86e220558197",
      "tree": "64aa2de3dd08bae08930da1e10e66bbe565688d3",
      "parents": [
        "240d8a84dec9f9482257a8037457a1d63193b7ff"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri May 11 14:50:16 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri May 11 14:53:22 2012 -0700"
      },
      "message": "Remove unused VideoSourceDownSampler class\n\nChange-Id: I2faf5962ff4cc366c688ef5bb27f53596f08fe0a\nrelated-to-bug: 6484217\n"
    },
    {
      "commit": "eb61431af13741aa8b7e57a39f69bba5a6c190dc",
      "tree": "160d4951d23a4ee5cb7d7880df3afb923dad4eb6",
      "parents": [
        "240d8a84dec9f9482257a8037457a1d63193b7ff"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu May 10 16:43:19 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri May 11 10:12:45 2012 -0700"
      },
      "message": "Increase AAC software decoder\u0027s buffer count. Refactor how clients\n\nof ACodec get notified about codec buffers and buffer ids.\n\nChange-Id: I962f873262dae7aa7b43f5f68a6d60268282f91e\nrelated-to-bug: 6478823\n"
    },
    {
      "commit": "af9e6a17d7038b411b61a3cb0669694058511a05",
      "tree": "1c6aed890adfd410be4710d5f6be462964ed89b3",
      "parents": [
        "c3798d7e97cb11076310f06163417c0631cce04e",
        "7541ff5d83a3e77cb533841a0326a241550b95d9"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu May 10 14:38:10 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 10 14:38:10 2012 -0700"
      },
      "message": "Merge \"Properly connect/disconnect to/from the native window in MediaCodec.\" into jb-dev"
    },
    {
      "commit": "7541ff5d83a3e77cb533841a0326a241550b95d9",
      "tree": "7ead109f66a97f4290ce58948b90703374d99ad3",
      "parents": [
        "c150ca7dda844891fa684f6898da7f7e0c40329d"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu May 10 10:54:15 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu May 10 10:54:15 2012 -0700"
      },
      "message": "Properly connect/disconnect to/from the native window in MediaCodec.\n\nChange-Id: Ib5bf90a3b81fca8ff2346235bc28a2bd0bc7bfb1\nrelated-to-bug: 6472161\n"
    },
    {
      "commit": "2f74ef3cdc192f817ee1121f41765f0852c1d81e",
      "tree": "a088a328c59fc8fba57269e9b0dc899eb5182b35",
      "parents": [
        "c150ca7dda844891fa684f6898da7f7e0c40329d"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Apr 30 10:38:58 2012 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed May 09 18:50:18 2012 -0700"
      },
      "message": "OMX IL wrapper for FLAC encoder\n\nAdd wrapper around libFLAC for FLAC encoding in OpenMAX IL.\n\nDeclare FLAC encoder in OMX component roles.\n\nBug 5525503\n\nChange-Id: I19bbce41c216870669d09365693f4ea89f8bc0f7\n"
    },
    {
      "commit": "8ee516a515c70a492c395b67ce12e19e7d159804",
      "tree": "ae968718f25cd7972a03c00e7496a6deb225fc1f",
      "parents": [
        "a62bde0a391f65a418d77c46e6ba468433d81dba"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue May 08 11:21:26 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue May 08 11:26:22 2012 -0700"
      },
      "message": "Submit codec specific data automatically\n\nif it is contained in the format passed to MediaCodec::configure.\n\nChange-Id: I8ef6755e8389ec47b44a9c70904ea6c03a00f4f2\nrelated-to-bug: 6364139\n"
    },
    {
      "commit": "9806555d3930be43e11106281dee354820ac1c88",
      "tree": "b5aa448cc0bfede361540f45b97c81ad398a9df4",
      "parents": [
        "6a3969cc3bcbfc84dbcc27aa726eb96bc03a830b"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu May 03 11:33:01 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu May 03 11:47:08 2012 -0700"
      },
      "message": "Respect channel mask in ACodec and NuPlayer.\n\nRefactor conversion from MetaData into AMessage while we\u0027re at it.\n\nChange-Id: I5479129836ea4316e8de28cf1b472bf19e3ac4ab\nrelated-to-bug: 6439076\n"
    },
    {
      "commit": "4f6eed0d1c7972a983c075bdcf03089569e13fe1",
      "tree": "6eebbc397b99bf33e8c9991fada609d86d144caf",
      "parents": [
        "27431de020e535c31365884316f656bc60b4fe4f"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Apr 30 14:38:12 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue May 01 10:30:58 2012 -0700"
      },
      "message": "Impl for supporting two video scaling modes\n\no allows the video scaling mode to change at any time\no also remove the scaling mode logic in OMXCodec.cpp\n\no related-to-bug: 5454345\n\nChange-Id: I6f1714eb0c2774591ce650d56c1e779b8afd085f\n"
    },
    {
      "commit": "4c9cd95b27a638701be2ffa1713273ba2f624770",
      "tree": "c7f5f7820aa39c965706b7ea504d9b53f5147688",
      "parents": [
        "0c0abd4ad26971b5fba94734137fe0bb1a590ab6",
        "f60c660f048d5f5e2458cff243c20400d73757a7"
      ],
      "author": {
        "name": "Dave Burke",
        "email": "daveburke@google.com",
        "time": "Mon Apr 30 12:45:27 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 30 12:45:27 2012 -0700"
      },
      "message": "Merge \"Added support for HE-AAC recording\" into jb-dev"
    },
    {
      "commit": "8b71241ce7353731ab75322c46e090ee35014a33",
      "tree": "afc21859dae503e57aa5a3cc777512800d1fd64e",
      "parents": [
        "83faee053cfd4251dbb591b62039f563ffdac399"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Apr 27 09:33:24 2012 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Apr 30 09:40:47 2012 -0700"
      },
      "message": "Fix mono gapless playback for decoders that output stereo\n\nThe old AAC decoder always outputs stereo, even for mono source material, so we\nneed to use the number of channels of the output when calculating the number of\nbytes to skip, not the number of channels in the source.\nThis makes OMXCodec skip the right amount of data, and prevents NuPlayer from\nwriting half a frame and then asserting when the AudioSink doesn\u0027t accept it.\nAlso move use of the SkipCutBuffer from NuPlayer to ACodec, so that it also\nworks when using the new Java APIs, and make SkipCutBuffer derive from RefBase.\nb/774846\n\nChange-Id: I34df9fea3e6730617eae559afaa556f4085ef0a0\n"
    },
    {
      "commit": "f60c660f048d5f5e2458cff243c20400d73757a7",
      "tree": "b2bf22e36da46fd25979df618f8661b4b0510dad",
      "parents": [
        "83faee053cfd4251dbb591b62039f563ffdac399"
      ],
      "author": {
        "name": "Dave Burke",
        "email": "daveburke@google.com",
        "time": "Sat Apr 28 21:58:22 2012 -0700"
      },
      "committer": {
        "name": "Dave Burke",
        "email": "daveburke@google.com",
        "time": "Mon Apr 30 09:18:24 2012 -0700"
      },
      "message": "Added support for HE-AAC recording\n\nFixed bug in decoder related to sample rates / channel counts\nMade decoder follow Fraunhofer pattern\nLog if bitrate not available\nBug: 6275957\n\nChange-Id: I47a8e29358fa4a88ebc73fe02d46a2bfb96c64fe\n"
    },
    {
      "commit": "9d07855aaff8a6b502a3ab058002cdd4a278b965",
      "tree": "4b9eebadf7b227b51814f02b6d38bc48e27a3da6",
      "parents": [
        "940335776b6d4eb91b13c4e56bc20bed3ac0011b"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Apr 25 16:00:45 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 26 10:44:39 2012 -0700"
      },
      "message": "NuMediaExtractor API to unselect tracks and finer control over seeking.\n\nChange-Id: I44d5a2b01d34b771bb0ff48b12829e33314c2374\nrelated-to-bug: 6276111\n"
    },
    {
      "commit": "aeb8fd460ed87d032b3fb8bb61e21eb542ce0f5b",
      "tree": "f8b459d895acef1717c96cb7133675dda3e458b7",
      "parents": [
        "e0fa467e1150c65a7b1b1ed904c579b40f97c9df"
      ],
      "author": {
        "name": "Dave Burke",
        "email": "daveburke@google.com",
        "time": "Thu Apr 19 00:14:27 2012 -0700"
      },
      "committer": {
        "name": "Dave Burke",
        "email": "daveburke@google.com",
        "time": "Wed Apr 25 22:02:58 2012 -0700"
      },
      "message": "Add Fraunhofer AAC encoder with AAC-ELD support.\n\nChange-Id: I6cd499d257d72f50a5b508bed97796a591a51506\n"
    },
    {
      "commit": "e370bb62b89d2f2980f519392010ea08a24c558e",
      "tree": "1b6f05a3447497841b259f00f03af2150e165c61",
      "parents": [
        "e4f70a7ea72c2a9fca60e6b64a258604e9333580"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Apr 25 14:24:30 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Apr 25 14:28:29 2012 -0700"
      },
      "message": "Bump up the max number of items in an AMessage, remove overly stringent\n\nCHECK() limiting us to just audio/* or video/* tracks.\n\nrelated-to-bug: 6399405\nChange-Id: I9bdaf7e709665ecc22da8839c8b16c081dbf4535\n"
    },
    {
      "commit": "c1d8115e8a0bdaeb2b723d395b9a85a02c90c933",
      "tree": "09339f44279672f1bfa79cbb9c667830f17ae9a4",
      "parents": [
        "1dc28b794587be22c90a97070d928f94586db638"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Apr 24 12:48:18 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Apr 24 14:45:25 2012 -0700"
      },
      "message": "Make sure OMXCodec and ACodec both accept more than 2 channels of audio\n\nand fill in the OMX channel mask properly.\n\nChange-Id: I915950a0b252142b9eb3277cf7c6e0d9f5875305\n"
    },
    {
      "commit": "a636433cbd09c0708b85f337ef45c0cdef3bcb4d",
      "tree": "8a629f33d648d1ddd8b79305f02763c539fef7cd",
      "parents": [
        "9adb12830ac2da72c91b842d24725ced6d236b16"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Apr 19 09:35:04 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Apr 23 16:54:41 2012 -0700"
      },
      "message": "Use C APIs instead of C++ APIs for policy\n\nThe C++ APIs are going away.\n\nNote: we use tid \u003d\u003d 0 which is not supported yet by the C APIs,\ndo not submit this until that is added.\n\nChange-Id: I0e90789e6c81c69f2544e899c52421ea5d1342be\n"
    },
    {
      "commit": "dc7431e70b4b030b5f42d0dfc3ef244d4f583dd2",
      "tree": "74201c84c06f59e3c431e90449abd19a4c2f798e",
      "parents": [
        "0818e739bdbcf16f6dfb21d507002ceaaf664ee4"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 23 11:21:47 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 23 11:21:47 2012 -0700"
      },
      "message": "Make sure NuMediaExtractor is thread safe.\n\nChange-Id: If261c4d87d5569a0d7cfd75afe311803a6ce0109\n"
    },
    {
      "commit": "a08f041125c7688aa33aef1b229278641ae1c375",
      "tree": "e1c13206d012859067d44f8b2e776383f28962e0",
      "parents": [
        "3463fa2799a14631222c15245ac1ad85d19b77ca",
        "3acbd053c842e76e1a40fc8a0bf62de87eebf00f"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Sun Apr 22 14:54:57 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Apr 22 14:54:57 2012 -0700"
      },
      "message": "Merge \"Configure policy of mediaserver threads\""
    },
    {
      "commit": "3acbd053c842e76e1a40fc8a0bf62de87eebf00f",
      "tree": "1d6dcc01039a1af770131c6b427efa27a2e5755f",
      "parents": [
        "f853499c6a088ef8506cacbb3ccdffa87e0cec3e"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Feb 28 10:39:56 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Sun Apr 22 14:50:01 2012 -0700"
      },
      "message": "Configure policy of mediaserver threads\n\nChange-Id: Ifd825590ba36996064a458f64453a94b84722cb0\n"
    },
    {
      "commit": "3463fa2799a14631222c15245ac1ad85d19b77ca",
      "tree": "2afbae74238a6d8c15e7bae869c1e88a3b5ce091",
      "parents": [
        "f853499c6a088ef8506cacbb3ccdffa87e0cec3e",
        "a0a98ca6ec9b599af79a597cb7c5350b61a77624"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sun Apr 22 13:25:56 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Apr 22 13:25:56 2012 -0700"
      },
      "message": "Merge \"Made AudioRecord a subclasss of RefBase\""
    },
    {
      "commit": "a0a98ca6ec9b599af79a597cb7c5350b61a77624",
      "tree": "1cd1d5c29575765d0978eae823d6a2245aed51d1",
      "parents": [
        "21e8c50bd13ebe44f3088e26c9c6df0e163c469c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 20 16:40:28 2012 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 20 16:40:28 2012 -0700"
      },
      "message": "Made AudioRecord a subclasss of RefBase\n\nMade AudioRecord a subclass of RefBase to allow using strong\nreferences and solve concurrency issues.\n\nIssue 6254582.\n\nChange-Id: Ic1f3845958f477e8b2d23d3d25bf0f666addcb3b\n"
    },
    {
      "commit": "f853499c6a088ef8506cacbb3ccdffa87e0cec3e",
      "tree": "dcb35fbedd788b5269c121c08532ecaad755046c",
      "parents": [
        "fc554559032e394de1b28b918efb8ba9f72162fd",
        "1948eb3ea6eee336e8cdab9b0c693f93f5f19993"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 20 16:17:38 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 20 16:17:38 2012 -0700"
      },
      "message": "Merge \"Add support for deep audio buffers\""
    },
    {
      "commit": "1948eb3ea6eee336e8cdab9b0c693f93f5f19993",
      "tree": "448eed49a4ba18fb1ab4f2fb1b2c0d5cef6d242f",
      "parents": [
        "21e8c50bd13ebe44f3088e26c9c6df0e163c469c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 13 16:50:19 2012 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 20 14:17:02 2012 -0700"
      },
      "message": "Add support for deep audio buffers\n\nAllow AudioSink to use deep audio buffering when the\nsource is audio only and its duration is more than\na certain threshold.\nThis helps improve battery life but implies higher\naudio latency.\n\nChange-Id: Ie79915b61c370292f05aabda9779356570e03cbb\n"
    },
    {
      "commit": "a53d87c7b1428fe02f535c31dafd64cb1362fde9",
      "tree": "91d1c0a816d28e2b4103522753119ae0b7b5a3e5",
      "parents": [
        "8d6086781c79620ce6133df7bd27f0efdee6b4e6"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 19 16:25:20 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 19 16:53:42 2012 -0700"
      },
      "message": "Add the ability to query the amount of cached data to NuMediaExtractor.\n\nChange-Id: I0966270a2bd36698330beaa03f47d02fc6a40c44\nrelated-to-bug: 6364341\n"
    },
    {
      "commit": "8d6086781c79620ce6133df7bd27f0efdee6b4e6",
      "tree": "e69c38010ec52f70406054c1dc8152d44c2a94c3",
      "parents": [
        "1345ef0f49f83f37953e6d30616611a92294144a",
        "5b8987e7de9d04b09153f329c680d2316cdb44ec"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 19 13:51:16 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 19 13:51:16 2012 -0700"
      },
      "message": "Merge \"Allow propagation of error information and description from the CryptoPlugin to\""
    },
    {
      "commit": "5b8987e7de9d04b09153f329c680d2316cdb44ec",
      "tree": "2b08e1f8abd0d4b869ce8923b1462530b916a7eb",
      "parents": [
        "fd9e14bc28f377065e43ec6833d754ca151b3941"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 19 12:52:20 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 19 12:53:59 2012 -0700"
      },
      "message": "Allow propagation of error information and description from the CryptoPlugin to\n\nthe higher layers.\n\nChange-Id: I9f434ad55cdf575803c208bedf47b607baff2330\nrelated-to-bug: 6365261\n"
    },
    {
      "commit": "eee7f9dd0d3410877dd58a14c4b80aacbeb32d72",
      "tree": "5b9a77f68e00cdb3cd8090cda4628f9033ae175f",
      "parents": [
        "fd9e14bc28f377065e43ec6833d754ca151b3941",
        "692ac36c4b6a09fed5113a4f45f00a041665a769"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Apr 19 10:36:16 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 19 10:36:16 2012 -0700"
      },
      "message": "Merge \"Make timed text source type explicit in TimedTextDriver\""
    },
    {
      "commit": "2d359a85ef5b72f1cb47df227b44fe4f3c5fbd60",
      "tree": "50cbb5bf04e41f33392563ca8847aaec8311cd3d",
      "parents": [
        "324c81a9f45614cb1d924ba0bcecddc120b2d69f",
        "3476de62fb10e76412452ef4c6bd71936c9f7db1"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Apr 19 09:08:43 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 19 09:08:43 2012 -0700"
      },
      "message": "Merge \"Add support for scaling mode parameter\""
    },
    {
      "commit": "08ad5efcef90e24db2863c0f85972ed05fe848a2",
      "tree": "f2eff3f033d360ac8043ba4f6ffa2d11520bebee",
      "parents": [
        "9bd23229fdec1657398abc682ccccfce1c95f8aa"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu Apr 19 12:35:00 2012 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu Apr 19 12:53:56 2012 +0800"
      },
      "message": "Remove new camera connect API.\n\nApplications are not resumed under the lock screen now.\nThis API is not needed anymore.\n\nbug:5584464\nChange-Id: I115daf6b647348617ec0fc05b626878c945b9b29\n"
    },
    {
      "commit": "3476de62fb10e76412452ef4c6bd71936c9f7db1",
      "tree": "9c814922fd33670a7cdd23c9597cbd19ad5e1ef9",
      "parents": [
        "fbe308d428e42fe249ec317f76e3d11feb3264d5"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Sun Apr 15 17:15:07 2012 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 18 18:27:39 2012 -0700"
      },
      "message": "Add support for scaling mode parameter\n\nSupport VISUALIZER_PARAM__SCALING_MODE parameter.\n\nModify process() function to use new volume scaling parameter,\n used to set whether captured values are maximized by current\n headroom in the buffer (default existing behaviora) or left\n as is and thus affected by volume.\n\nModify AudioEffect to allow subclasses to override the following\n events: control status changed, enable status changed, command\n executed.\nIn Visualizer class (a subclass of AudioEffect), reset the\n scaling mode and capture size on the actual effect\n as cached when control is regained.\n This will allow the effect to be properly\n configured whenever Visualizers with different scaling\n modes or capture sizes are released (e.g. from java\n release() method).\n\nChange-Id: I05cb9f925a296dceca91bafa9fe294ef2b2c2bd5\n"
    },
    {
      "commit": "692ac36c4b6a09fed5113a4f45f00a041665a769",
      "tree": "ef8feed68e5caaa9523a0dba8cfbe0fc6659e49d",
      "parents": [
        "52bef17f5953cd07b1655a3371d833f4de01caae"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Apr 18 17:01:53 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Apr 18 17:06:21 2012 -0700"
      },
      "message": "Make timed text source type explicit in TimedTextDriver\n\no related-to-bug: 5542712\n\nChange-Id: Ifdc730e616336e8b16783e8a5766f27df62a0592\n"
    },
    {
      "commit": "0ca3cf94c0dfc173ad7886ae162c4b67067539f6",
      "tree": "bc156e7822e663626b78ec2ad09ef3970fbb48c5",
      "parents": [
        "ee685f6d19a6cc3b0bf02e69eb5dea11a2aeb601"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 18 09:24:29 2012 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 18 15:04:46 2012 -0700"
      },
      "message": "rename audio policy output flags\n\nChange-Id: I27c46bd1d1b2b5f96b87af7d05b951fef18a1312\n"
    },
    {
      "commit": "f69e53033f23f9f70fcdb28a3c2e650de0147459",
      "tree": "3654454a30b35e3060d6aef8bec5e56bb8696af6",
      "parents": [
        "97b5d0d5b5ef766eb5dd680d05a5d199662d4ae0"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Apr 18 12:22:58 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Apr 18 12:22:58 2012 -0700"
      },
      "message": "Some refactoring and cleanup of now obsolete crypto fields.\n\ncodec commandline tool no longer supports decryption.\n\nChange-Id: I7b10be6524631b20ac5d361d47949b00addf4a93\n"
    },
    {
      "commit": "52bef17f5953cd07b1655a3371d833f4de01caae",
      "tree": "e0e800e83a0f1befa071fd215bf331155367d675",
      "parents": [
        "f7ffb8bf0a58037f0bc9662c5275005a4e539948",
        "eec46abb88dcc50621fd2d3f17a6b8d24fd07a19"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Apr 17 19:32:13 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 17 19:32:13 2012 -0700"
      },
      "message": "Merge \"Fix for multiple audio/timed track feature implementation - part one\""
    },
    {
      "commit": "eec46abb88dcc50621fd2d3f17a6b8d24fd07a19",
      "tree": "0b3e4cfec4f7f76a99bc82907c205253fb7c2ebe",
      "parents": [
        "25736fd247ba757feefe15d3071f7e747c64fea4"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Apr 11 17:56:22 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Apr 16 12:08:10 2012 -0700"
      },
      "message": "Fix for multiple audio/timed track feature implementation - part one\n\no getTrackInfo now returns all tracks, rather than just the timed text tracks.\no the index of the track info is kept to the same as the track index if the\n  track is not from an external source\no correctly maps the selectTrack() and unselectTrack() calls to the right\n  track index\n\no TODO:\n  1) note that the selectTrack() and unselectTrack() only works for timed text\n  track at present; 2) the lock is timed text specific\n\no related-to-bug: 6110705\n\nChange-Id: Ib1feeef2184bc992930ace0d1197b6c00a2636d7\n"
    },
    {
      "commit": "a98db787397633155fd71b06ecaa765a7ad20cf2",
      "tree": "312df209f64c9ed371bb7855ca6243352207fd62",
      "parents": [
        "b388e531613730572067e193b6b66afb5d042233",
        "918c7652b9a38c02e26c0c46541cea82070c0e43"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 16 11:11:02 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 16 11:11:02 2012 -0700"
      },
      "message": "Merge \"Change NuMediaExtractor\u0027s API to support different kinds of data sources.\""
    },
    {
      "commit": "db9b87e30a2ffe71554150e33066738ab134bc3c",
      "tree": "fe8e9e337a167f7a79823a66e66fa8d1a2e0b6f9",
      "parents": [
        "1803c3ae573e5fa3f3a1abe24ae802e30e5d5495",
        "613c8ae1b7a2b4f43b33a72dc2fff0bc8b7d4c6f"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Apr 13 13:49:37 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 13 13:49:37 2012 -0700"
      },
      "message": "Merge \"Add external timed text source using a passed file descriptor\""
    },
    {
      "commit": "613c8ae1b7a2b4f43b33a72dc2fff0bc8b7d4c6f",
      "tree": "e301e98ae7b69f611ce9d3a9d0ab57c556ecb8cc",
      "parents": [
        "d2469c3fe382203eb7cd5060c94ed204bec98116"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Apr 13 13:02:57 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Apr 13 13:08:57 2012 -0700"
      },
      "message": "Add external timed text source using a passed file descriptor\n\no Also fixed a minor issue where the file length should be of type off64_t rather than size_t\n\no related-to-bug: 5542712\n\nChange-Id: I35fd8ceea0bc75e553b7f4a99932cf58ea560c4e\n"
    },
    {
      "commit": "918c7652b9a38c02e26c0c46541cea82070c0e43",
      "tree": "5ac94f452e54c8027bd3e67b773a62b047349d56",
      "parents": [
        "1803c3ae573e5fa3f3a1abe24ae802e30e5d5495"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Apr 13 11:16:48 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Apr 13 11:51:05 2012 -0700"
      },
      "message": "Change NuMediaExtractor\u0027s API to support different kinds of data sources.\n\nChange-Id: I080aa2ce28300a72a85751509334dbdc491936c6\nrelated-to-bug: 6276111\n"
    },
    {
      "commit": "5892e3e173f20e01956f318ae7dce43d46c5fc1d",
      "tree": "dafebc2a4cff31fe8788df3f70eba9192aff34c0",
      "parents": [
        "b34364269683363ca54aeed4952937cf37da7e06"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 12 13:05:44 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 12 13:15:48 2012 -0700"
      },
      "message": "Add metadata keys to communicate encrypted fragments and associated info.\n\nChange-Id: I90a27c9bbe649328b88144b161c420916673846f\nrelated-to-bug: 6275919\n"
    },
    {
      "commit": "2d531e1b5865d61d5ca25d77d53017b1ad180efa",
      "tree": "f5b15fd8836013c8fa568596aaada9e823d0b7db",
      "parents": [
        "d2469c3fe382203eb7cd5060c94ed204bec98116",
        "bdddc659a941afdb7f4958f582c6901c07246097"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Apr 10 18:53:56 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 10 18:53:56 2012 -0700"
      },
      "message": "Merge \"Refactored SurfaceMediaSource\""
    },
    {
      "commit": "bdddc659a941afdb7f4958f582c6901c07246097",
      "tree": "37423f7b734d26e086328f1f9b337e1499c026b8",
      "parents": [
        "3f502bfc6d04d08369cf147284c5c4c2ac7c9a0e"
      ],
      "author": {
        "name": "Daniel Lam",
        "email": "dalam@google.com",
        "time": "Fri Mar 30 16:04:43 2012 -0700"
      },
      "committer": {
        "name": "Daniel Lam",
        "email": "dalam@google.com",
        "time": "Mon Apr 09 22:58:28 2012 -0700"
      },
      "message": "Refactored SurfaceMediaSource\n\nSurfaceMediaSource takes advantage of BufferQueue to avoid\nduplicated code.\n\nChange-Id: I5e60b8eca21e6c3cf728d363cd8f3786125182d1\n"
    },
    {
      "commit": "4b75a9c8b93a90749bc5d22912ad0d96c12f4ecf",
      "tree": "ae217f5c50a37349dce944c5d8a065a8740c88a9",
      "parents": [
        "3f502bfc6d04d08369cf147284c5c4c2ac7c9a0e"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Apr 06 11:06:28 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Apr 06 12:16:27 2012 -0700"
      },
      "message": "New API to support submitting encrypted buffers to the decoder.\n\nChange-Id: I69dd60e43078c4211c6123cf6e0ce90e676bf873\nrelated-to-bug: 6275919\n"
    },
    {
      "commit": "f15cb4472aaca54c13f8250e4c7872470c4bed83",
      "tree": "975cf1b8f7e6f505358836940d03069b92d1b48d",
      "parents": [
        "a4c5a550e2a3bc237179b8684e51718e05894492",
        "8f883be3bd1fffd4e30bc7298c34085a4055be2b"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Apr 04 10:17:01 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 04 10:17:01 2012 -0700"
      },
      "message": "Merge \"frameworks/av/media portion of removing YouTube specific error codes\""
    },
    {
      "commit": "a4c5a550e2a3bc237179b8684e51718e05894492",
      "tree": "be7b6d154763ed772738a0126d10e6317920767d",
      "parents": [
        "1a9ed11a472493cac7f6dfcbfac2064526a493ed"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 29 10:12:40 2012 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 04 08:44:57 2012 -0700"
      },
      "message": "audio policy: load audio hw modules.\n\nAudio HW modules are now loaded upon request from audio policy manager\naccording to the configuration in audio_policy.conf.\nRemoved hard coded HW module loading by AudioFlinger at init time.\nAdded methods to IAudioFlinger and AudioPolicyInterface\nto control the loading of audio HW modules.\nAdded methods to open an output or input stream on a specific hw module.\n\nChange-Id: I361b294ece1a9b56b2fb39cc64259dbb73b804f4\n"
    },
    {
      "commit": "1a9ed11a472493cac7f6dfcbfac2064526a493ed",
      "tree": "5f4a3c6856f294b3c0371afd87df96277215107b",
      "parents": [
        "290ca3a767a974ce9d041e5bcb0c69153f7851d5"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 20 18:36:01 2012 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 03 16:53:25 2012 -0700"
      },
      "message": "audio policy: add configuration file\n\nremoved outputs to stream mapping cache in audio system: the output for a\ngiven stream type must always be queried from audio policy manager as the cache\nis not always updated fast enough by audioflinger callback.\n\nremoved AudioFlinger::PlaybackThread::setStreamValid() not used anymore if\nstream to output mapping is not cached.\n\nChange-Id: Ieca720c0b292181f81247259c8a44359bc74c66b\n"
    },
    {
      "commit": "8f883be3bd1fffd4e30bc7298c34085a4055be2b",
      "tree": "bf827e7e33a3094d61978b9020e6522cb5ffd731",
      "parents": [
        "b4c0c4b800332fe55c60aa328ece8d849cee3a4d"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Tue Apr 03 16:11:51 2012 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Tue Apr 03 16:11:51 2012 -0700"
      },
      "message": "frameworks/av/media portion of removing YouTube specific error codes\n\nChange-Id: Id0d84d3aaaf340cd5287611c9dc7cb8d11466772\nrelated-to-bug: 5883949\n"
    },
    {
      "commit": "1bd139a2a68690e80398b70b27ca59550fea0e65",
      "tree": "e3be78f22aa021c4e372409128775c2093d46dae",
      "parents": [
        "d22da88fd555f1262357c7dcdeface8445e3a012"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Apr 03 14:19:20 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Apr 03 14:19:20 2012 -0700"
      },
      "message": "New Crypto services talking to the new crypto \"HAL\".\n\nChange-Id: I69ed31e7a8b4d69d1209d2d516f94d258f072566\nrelated-to-bug: 6275919\n"
    },
    {
      "commit": "4a446bd090efb36ce06ae8966d42357fd5472715",
      "tree": "36860e04f75412175c9780d1bff0d9ab8bb04e20",
      "parents": [
        "73d227557ba5192735356bacab9f77b44980793b",
        "69829f3bd09ee4e6be49fee8795c5df24c4da70e"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Apr 03 08:29:44 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 03 08:29:44 2012 -0700"
      },
      "message": "Merge \"Add a few more APIs to MediaCodecList.\""
    },
    {
      "commit": "69829f3bd09ee4e6be49fee8795c5df24c4da70e",
      "tree": "ea8e438b08c8bbd6f50bae88a0528280728f643c",
      "parents": [
        "deeb1282621f3177ad667360b40eef8e4fedb298"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Mar 30 13:02:09 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 02 15:18:44 2012 -0700"
      },
      "message": "Add a few more APIs to MediaCodecList.\n\nChange-Id: I5ac193cd40c82bbcd87c1e55003b78102e8d4674\n"
    },
    {
      "commit": "2d6486f9112a6f0d23f17eaaad94bac62e16caab",
      "tree": "72c98b32d9865c49038dac2189dd13b410eef511",
      "parents": [
        "dca856f5cb849b8feab2d24f3248f25d887211ee",
        "edf47a8cba2d1d8985b64bf4a4fac661ba34f35a"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Apr 02 11:25:14 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 02 11:25:14 2012 -0700"
      },
      "message": "Merge \"Update AudioParameter\""
    },
    {
      "commit": "dca856f5cb849b8feab2d24f3248f25d887211ee",
      "tree": "7310d419fe1dd1805cfe4d07aaeeae17de938d4e",
      "parents": [
        "49a692c3a659aee0a065304d1f845ee1290687ca",
        "4a4a0959bca78e03e3c3f486ba17829c28314d8c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Apr 02 11:19:11 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 02 11:19:11 2012 -0700"
      },
      "message": "Merge \"AudioTrack client fast policy\""
    },
    {
      "commit": "4110c101c3d0dd8dbc44c8d2d0edd3e2e7d6652f",
      "tree": "7bb39d31afac7348bb91093cc0e1c2d9aa49cba2",
      "parents": [
        "a1472d9883e35edd280201c8be3191695007dfd4"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Mar 29 09:31:28 2012 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Apr 02 09:19:03 2012 -0700"
      },
      "message": "Add gapless playback support for NuPlayer\n\nThis makes NuPlayer use a SkipCutBuffer when needed, and adds a new\nAudioSink method to retrieve the number of frames written so far, so\nNuPlayerRenderer can calculate how much data it can write without blocking.\nAlso make some more methods const.\n\nChange-Id: Id7d253ad8a7b85e9a84ca2baafbe32817b16c744\n"
    },
    {
      "commit": "4a4a0959bca78e03e3c3f486ba17829c28314d8c",
      "tree": "5fbfe5302ca28741483ae64d0ccf2630830f167e",
      "parents": [
        "a1472d9883e35edd280201c8be3191695007dfd4"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 19 11:38:14 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Apr 02 07:34:39 2012 -0700"
      },
      "message": "AudioTrack client fast policy\n\nChange-Id: I42ce691df3f586ac061b62237f35a263a0116f1f\n"
    },
    {
      "commit": "edf47a8cba2d1d8985b64bf4a4fac661ba34f35a",
      "tree": "b97857a666d64b1633ba6598db61158010de4cc8",
      "parents": [
        "a1472d9883e35edd280201c8be3191695007dfd4"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Sun Apr 01 13:49:17 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Sun Apr 01 13:49:17 2012 -0700"
      },
      "message": "Update AudioParameter\n\nUse definitions for AUDIO_PARAMETER_STREAM_* from \u003chardware/audio.h\u003e\ninstead of repeating these constants.\n\nString constants are const char * const.\n\nChange-Id: I1c9ebe0bc9c827d719d3181aea55251c6db28ec4\n"
    },
    {
      "commit": "40a1da57d21bbc883630e7a854a279685fe1fa61",
      "tree": "6155cbbdaa553b0672f27fb298a6fc0f9ac3eb2c",
      "parents": [
        "42c56b364a0fcd93568f85b63d52a871a756184c",
        "a011e35b22f95f558d81dc9c94b68b1465c4661d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Mar 30 16:00:16 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 30 16:00:16 2012 -0700"
      },
      "message": "Merge \"implemented synchronous audio capture\""
    },
    {
      "commit": "a011e35b22f95f558d81dc9c94b68b1465c4661d",
      "tree": "3f8c46c8c7e30f36c3b629174a26bc4ca2a860b2",
      "parents": [
        "b4c0c4b800332fe55c60aa328ece8d849cee3a4d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 29 15:51:43 2012 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 29 19:50:49 2012 -0700"
      },
      "message": "implemented synchronous audio capture\n\nAdded the infrastructure to support the synchronization of playback and\ncapture actions on specific events.\nThe first requirement for this feature is to synchronize the audio capture\nstart with the full rendering of a given audio content.\nThe applications can further be extended to other use cases\n(synchronized playback start...) by adding new synchronization events and\nnew synchronous control methods on player or recorders.\n\nAlso added a method to query the audio session from a ToneGenerator.\n\nChange-Id: I51f1167290d9cafdf2fbcdf9e4785156973af44c\n"
    },
    {
      "commit": "df7e6ea0c755fb95a77d21010105e3a2eac69ff8",
      "tree": "eddde11859c63816d83f985f3480ac3ec46bcfc3",
      "parents": [
        "ecdd39c5af016e2fa57cbfd837aa670b706dabd3"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Mar 29 17:12:13 2012 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Mar 29 17:12:13 2012 -0700"
      },
      "message": "reduce IPCs in BufferQueue\n\nChange-Id: I1f8c32a771a411476d225adc62d1f07c24f39a3e\n"
    },
    {
      "commit": "cb5b766bb0a3ed992998a5bd66de0ee1d2223b81",
      "tree": "e4d3d93e823d0c5c691549d9966f7660de1373df",
      "parents": [
        "559bf2836f5da25b75bfb229fec0d20d540ee426"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Mar 28 16:38:37 2012 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Mar 29 09:28:47 2012 -0700"
      },
      "message": "Add ABuffer support to SkipCutBuffer\n\nAdd support for ABuffer to SkipCutBuffer, and make it (re)allocate an\nappropriately sized buffer when needed, rather then relying on the\ncaller to tell it ahead of time how big the buffers are going to be.\n\nChange-Id: I8b5c9ba5dd2fc13ef8870b7d4fe93a1bfdc7a626\n"
    },
    {
      "commit": "559bf2836f5da25b75bfb229fec0d20d540ee426",
      "tree": "d7dd708b17eeca96a3e5d8bcc25a51ff3d1b5d0d",
      "parents": [
        "b0b2b4d890cf3bfb274797a759642b4e733343d7"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Mar 28 10:29:14 2012 -0700"
      },
      "committer": {
        "name": "Anatol Pomozov",
        "email": "anatol.pomozov@gmail.com",
        "time": "Wed Mar 28 12:07:41 2012 -0700"
      },
      "message": "AV Android make files changes\n\no plus a few file relocation: ActivityManager.cpp/h, SoundPool.h, etc\no remove some runtime dependencies to libandroid, libandroid_runtime, etc\n\nChange-Id: I047a47c5fb361dd5cf85cd98798c39f629a75d10\n"
    },
    {
      "commit": "5a5491c17d74bd2c80cf451c6ddbba22d5d5f08a",
      "tree": "af90de36d219d425d5eac27a8159f3c608851ece",
      "parents": [
        "4116807a35a27abf635bf6199ed9ad8703c9e94d",
        "00a10e8eb39526df06779e0cdb6e6871752934d7"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Mar 26 16:51:22 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 26 16:51:22 2012 -0700"
      },
      "message": "Merge \"Use a status_t return type for GL functors\""
    },
    {
      "commit": "00a10e8eb39526df06779e0cdb6e6871752934d7",
      "tree": "0436b46c52a7118707958a170ff601abdadaa998",
      "parents": [
        "ef36d496477d1e2ae99c3cd43eee5cf7e82b0883"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Mar 26 16:45:05 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Mar 26 16:45:05 2012 -0700"
      },
      "message": "Use a status_t return type for GL functors\n\nWebView needs more fine-grained control over the behavior of the\nframework upon execution of the display lists. The new status_t\nallows WebView to requests its functor to be re-executed directly\nwithout causing a redraw of the entire hierarchy.\n\nChange-Id: I97a8141dc5c6eeb6805b6024cc1e76fce07d24cc\n"
    },
    {
      "commit": "15147270aa1c56503902b424f946389294875665",
      "tree": "921f7bb25e8b743485ccc62bc6ee5ddaa345fb54",
      "parents": [
        "b14f18245d64b38aae1c02db79b2ad516d69891c",
        "ed3e3e046840d5bf1ca84a8c0cc097425e89d6d6"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Mar 26 11:43:06 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 26 11:43:06 2012 -0700"
      },
      "message": "Merge \"Provisional support for secure decryption of media streams.\""
    },
    {
      "commit": "ed3e3e046840d5bf1ca84a8c0cc097425e89d6d6",
      "tree": "99d5bb3a2f48f9a3ba3eaaf17e630b589e97bef1",
      "parents": [
        "cc1110dc92e53e9cc0afbb043e6ef8295bd9c5d5"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Mar 26 11:13:27 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Mar 26 11:24:04 2012 -0700"
      },
      "message": "Provisional support for secure decryption of media streams.\n\nChange-Id: Ib3982a9c960bfdb0cb7e1b174440b141b194cfbe\n"
    },
    {
      "commit": "131c36ef343a604e9aee10c830ebe9c55a743379",
      "tree": "67c436447533b4074c1823865550ca1885bb33e7",
      "parents": [
        "1f08900408927bd2b3bef59aaa15ab68ec765c06",
        "2e66a7896c9a9da3a15fc6cff9be28b4174d8719"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 26 11:23:49 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 26 11:23:49 2012 -0700"
      },
      "message": "Merge \"reorganize SoundPool and JetPlayer code.\""
    },
    {
      "commit": "2e66a7896c9a9da3a15fc6cff9be28b4174d8719",
      "tree": "bc6d8e86ae45de8f4b1a36eda9d11f774bde9bea",
      "parents": [
        "ef36d496477d1e2ae99c3cd43eee5cf7e82b0883"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 26 10:47:22 2012 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 26 10:54:41 2012 -0700"
      },
      "message": "reorganize SoundPool and JetPlayer code.\n\nReorganize SoundPool and JetPlayer code to be ready for the\ncreation of libmedia_native.\n\nSplit SoundPool between libsoundpool (JNI) and libmedia(sound pool implementation).\nRemove dependencies on nativehelper/jni.h from JetPlayer.\n\nChange-Id: I130c6014173b714329929dd82c5dfb70b757a610\n"
    },
    {
      "commit": "cc1110dc92e53e9cc0afbb043e6ef8295bd9c5d5",
      "tree": "6f8e74838af9af9701f9e4cbabb45a827ba30ad2",
      "parents": [
        "b83d38feeeb88a8a2a6219e1fca2480b5a14fb0d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 19 12:07:35 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 26 07:25:48 2012 -0700"
      },
      "message": "Add TRACK_FAST for IAudioFlinger::createTrack\n\nCurrently not implemented by client or server\n\nChange-Id: Ib11dda57db3eeb871bcc7b546e340078776875f5\n"
    },
    {
      "commit": "b83d38feeeb88a8a2a6219e1fca2480b5a14fb0d",
      "tree": "7e1392f0427d0300d8140ef0a6c18dc32f393831",
      "parents": [
        "8f7f7ad54c698cb57a2a369cf1ae5b917853917b",
        "a075db4ff9b086ac2885df77bb6da0869293df92"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 26 07:16:37 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 26 07:16:37 2012 -0700"
      },
      "message": "Merge \"IAudioFlinger::createTrack and openRecord flags\""
    },
    {
      "commit": "8f7f7ad54c698cb57a2a369cf1ae5b917853917b",
      "tree": "50bad78e439f16ab5502bf6ee1ee53d6c5b18534",
      "parents": [
        "f500abaa4a1456dfb0a269b9ca97d8e27562c09c"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Sat Mar 24 15:15:01 2012 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Sat Mar 24 15:35:17 2012 -0700"
      },
      "message": "remove jni.h include from IOMX.h\n\njni.h is not used in IOMX.h and is not available in pdk builds,\nremove it.\n\nChange-Id: I9bc8fd70f617942712d9f684c6fc927bf18be753\n"
    },
    {
      "commit": "be9b24b86d2c84f2dc45bb8c8d1578b55cbd151d",
      "tree": "06bf4f1d019a2a4a3972e2ef7df64fb4d053318e",
      "parents": [
        "ef36d496477d1e2ae99c3cd43eee5cf7e82b0883"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Mar 23 16:15:19 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Sat Mar 24 10:15:18 2012 -0700"
      },
      "message": "Fixed missing return value from a method should have returned status_t\n\nChange-Id: I83ad2735eaf8a8dfa5f8f29f30aec1311b3222de\n"
    },
    {
      "commit": "a411f779465504ff3e1a59c8ffa43d18385852b8",
      "tree": "a152f05bd2b5dd70ee5bfaa261fcbdeb5ee6d8ac",
      "parents": [
        "a98478bfbcc0f7fb4b164d3dce40ca96df75667d",
        "291f4d505aff81969e6666049d3cc3446f836af2"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 22 11:06:49 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 22 11:06:49 2012 -0700"
      },
      "message": "Merge \"Remove enforceFrameCount\""
    },
    {
      "commit": "a98478bfbcc0f7fb4b164d3dce40ca96df75667d",
      "tree": "44a6ad7c4a9fb330ebdf560a2d8f446b43278498",
      "parents": [
        "898b11f2aeaaa2bed84d963a3fcfd3b229e00b99"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Mar 21 13:36:07 2012 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Mar 22 10:06:03 2012 -0700"
      },
      "message": "Support gapless playback for mp3 and m4a\n\nGapless playback for appropriately tagged mp3 and m4a files.\nCurrently this is implemented in OMXCodec, which most players\nuse, but should be easy to support in other players as well by\nusing the SkipCutBuffer utility class.\n\nChange-Id: I748c669adc1cfbe5ee9a7dea2fad945d48882551\n"
    },
    {
      "commit": "291f4d505aff81969e6666049d3cc3446f836af2",
      "tree": "f2ad96c1acfb08c190148f8f12a7f86825cd7728",
      "parents": [
        "ccf89b54f973f11082150d02ed957f7e967fbc8b"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 19 12:16:56 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 21 15:41:02 2012 -0700"
      },
      "message": "Remove enforceFrameCount\n\nIt was only used to decide whether to issue a warning.\nThe warning was issued the first time track was created but\nnot at re-creation.  Now it is a verbose message every time,\nnot a warning since it happens all the time with key clicks on A2DP.\n\nChange-Id: I9d39f53c0a7eb84b666e55b1b76ff830cf8f37ba\n"
    },
    {
      "commit": "2f694b3ef6af235e7ba850d57538eece9f136499",
      "tree": "2430918606f606e50b15b83b019480238ab5c762",
      "parents": [
        "4949c36978b844f65abf84027e1cf2dcf82c1184",
        "feba11fd788c99b0b63e0bce724730817688d82f"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Mar 21 15:12:44 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 21 15:12:44 2012 -0700"
      },
      "message": "Merge \"Add MetaData::dumpToLog\""
    },
    {
      "commit": "feba11fd788c99b0b63e0bce724730817688d82f",
      "tree": "60cdb535b8e065dca3bac358c300f5e973aa7066",
      "parents": [
        "f6e7ad1543ce19f05600d9414360c74c83e467bb"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Mar 21 12:27:00 2012 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Mar 21 15:00:27 2012 -0700"
      },
      "message": "Add MetaData::dumpToLog\n\nUtility method for dumping the content of a MetaData object to the log.\n\nChange-Id: I2d91b991e1d9fed2215e8995a73c2b1854205074\n"
    },
    {
      "commit": "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": "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": "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": "a075db4ff9b086ac2885df77bb6da0869293df92",
      "tree": "2496dbf3d7fbb569b843780535bcea450157eb25",
      "parents": [
        "1746929ddc7592ab397c402724a61352e45df093"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 06 11:22:44 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 19 09:04:23 2012 -0700"
      },
      "message": "IAudioFlinger::createTrack and openRecord flags\n\ncreateTrack and openRecord don\u0027t need the \"old\" flags parameter,\nwhich was either audio_policy_output_t or audio_in_acoustics_t\nshifted left by 16 bits.  But they do need \"new\" flags, which\nare defined by the application use case.  Initially, the only\napplication use case flag is timed output, but others are planned.\n\nFor output, the audio_policy_output_t flags are passed to\nAudioSystem::getOutput, which returns an audio_io_handle_t, and that\nhandle is then passed to createTrack. So createTrack doesn\u0027t need the\nold flags parameter.\n\nFor input, the audio_in_acoustics_t flags are passed to\nAudioSystem::getInput, which returns an audio_io_handle_t, and that\nhandle is then passed to openRecord. So openRecord doesn\u0027t need the\nold flags parameter.\n\nChange-Id: I18a9870911846cca69d420c19fe6a9face2fe8c4\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": "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": "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": "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": "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": "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 \"\"\""
    }
  ],
  "next": "b4d307481960b6b348fae4b4e8edefd003c3d36c"
}
