)]}'
{
  "log": [
    {
      "commit": "bf5b3b29e31b293313788d7464cfb258ac0da803",
      "tree": "1e3e016a1f7268688be59047be835a17609977f8",
      "parents": [
        "b3e12a4d15a329821979bf287c49a9630486e23f"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Jul 30 17:57:39 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Aug 10 17:38:19 2012 -0700"
      },
      "message": "Let getOriginalMimeType() take a fd passed from drm java applications\n\nThis patch enables the drm framework to avoid opening files directly.\nAs a result, the drm framework no longer needs the sdcard read permision.\n\no related-to-bug: 6426185\n\nChange-Id: Ib176c35ef4b1a1a405e8e954f19a7985266f2510\n"
    },
    {
      "commit": "b3e12a4d15a329821979bf287c49a9630486e23f",
      "tree": "b79b0ca57e79e2ee19f09b150f9a60e397af24d7",
      "parents": [
        "751fa786aa9599c694219085601f9f5ebe96a516",
        "3ca352c4cd01f6df3b691f835efc68a5771e724e"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Aug 10 15:34:06 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 10 15:34:06 2012 -0700"
      },
      "message": "am 3ca352c4: am 24893fef: Merge \"MPEG2TSWriter: Write a proper CRC in PAT and PMT\"\n\n* commit \u00273ca352c4cd01f6df3b691f835efc68a5771e724e\u0027:\n  MPEG2TSWriter: Write a proper CRC in PAT and PMT\n"
    },
    {
      "commit": "3ca352c4cd01f6df3b691f835efc68a5771e724e",
      "tree": "8cc59347af40bd76345e794b934e4b9ee0483751",
      "parents": [
        "31a593b901eeb924ae5214962c628397dd0197f2",
        "24893fef8e0f816a8a21749fa3eb9eed9173a0fd"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Aug 10 15:32:40 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 10 15:32:40 2012 -0700"
      },
      "message": "am 24893fef: Merge \"MPEG2TSWriter: Write a proper CRC in PAT and PMT\"\n\n* commit \u002724893fef8e0f816a8a21749fa3eb9eed9173a0fd\u0027:\n  MPEG2TSWriter: Write a proper CRC in PAT and PMT\n"
    },
    {
      "commit": "24893fef8e0f816a8a21749fa3eb9eed9173a0fd",
      "tree": "3a5b5cc9b025e90a8a077059937b6ea2e228a9ad",
      "parents": [
        "2001d2ac01e36c13c1abda5f73b6404cba2648e1",
        "983995747ed3adaf25035c433df1ccbaa056a898"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Aug 10 15:26:43 2012 -0700"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 10 15:26:44 2012 -0700"
      },
      "message": "Merge \"MPEG2TSWriter: Write a proper CRC in PAT and PMT\""
    },
    {
      "commit": "751fa786aa9599c694219085601f9f5ebe96a516",
      "tree": "6b8ea38fa25a0cce13ae5d00ded028be74307cc6",
      "parents": [
        "fcfc61da927e98d18cdcb53da8fa0a8a32ee1422",
        "31a593b901eeb924ae5214962c628397dd0197f2"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Aug 10 12:44:04 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 10 12:44:04 2012 -0700"
      },
      "message": "am 31a593b9: am 2001d2ac: Merge \"MPEG2TSWriter: Write proper continuity counters for PAT and PMT\"\n\n* commit \u002731a593b901eeb924ae5214962c628397dd0197f2\u0027:\n  MPEG2TSWriter: Write proper continuity counters for PAT and PMT\n"
    },
    {
      "commit": "31a593b901eeb924ae5214962c628397dd0197f2",
      "tree": "34fb25043d531d318bd192a18adaef975ab725be",
      "parents": [
        "ff4c64d6b1b58494a1b15f1a664e5c421d095d15",
        "2001d2ac01e36c13c1abda5f73b6404cba2648e1"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Aug 10 09:26:41 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 10 09:26:41 2012 -0700"
      },
      "message": "am 2001d2ac: Merge \"MPEG2TSWriter: Write proper continuity counters for PAT and PMT\"\n\n* commit \u00272001d2ac01e36c13c1abda5f73b6404cba2648e1\u0027:\n  MPEG2TSWriter: Write proper continuity counters for PAT and PMT\n"
    },
    {
      "commit": "2001d2ac01e36c13c1abda5f73b6404cba2648e1",
      "tree": "86b30b2d16b17aa5129743633b9d5fbcc9b2dae3",
      "parents": [
        "c64a178711bf7bb9b71d65a47156b34083311392",
        "d4e5af6bc0a012e8d43975ca8b5627631333920d"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Aug 10 09:03:54 2012 -0700"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 10 09:03:55 2012 -0700"
      },
      "message": "Merge \"MPEG2TSWriter: Write proper continuity counters for PAT and PMT\""
    },
    {
      "commit": "e983aa4ff4d80af7702888e230b9aaa93a7b7e57",
      "tree": "09e62e3a573248dd1a3c7b2dae082810f16dfe79",
      "parents": [
        "f6a3576006f3fbe7d87ab49c1ebf292be5ddaa24",
        "51af4af2414cdaaf0185b971a41fc0b4f8c0b7e4"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Aug 08 14:08:28 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 08 14:08:28 2012 -0700"
      },
      "message": "am 51af4af2: am e28df5b9: Merge \"Store correct time stamps in recorded mp4 files\"\n\n* commit \u002751af4af2414cdaaf0185b971a41fc0b4f8c0b7e4\u0027:\n  Store correct time stamps in recorded mp4 files\n"
    },
    {
      "commit": "51af4af2414cdaaf0185b971a41fc0b4f8c0b7e4",
      "tree": "3e7a2ca1401597ed506a8725e8a0934a28404024",
      "parents": [
        "ef62009372d050b431939835d4e2c5ee77da8831",
        "e28df5b996af3480b457c7a9908dbb9d52ad8d7c"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Aug 08 14:04:18 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 08 14:04:18 2012 -0700"
      },
      "message": "am e28df5b9: Merge \"Store correct time stamps in recorded mp4 files\"\n\n* commit \u0027e28df5b996af3480b457c7a9908dbb9d52ad8d7c\u0027:\n  Store correct time stamps in recorded mp4 files\n"
    },
    {
      "commit": "e671207115fac3914134c61b336d5fa0242c68ca",
      "tree": "466cda101e1528b81bf72c228d7060c33788dedf",
      "parents": [
        "28620ee3e9926ef07f0b4cb3e22b156b812e2d7e"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Jun 26 10:56:14 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Aug 07 13:08:15 2012 -0700"
      },
      "message": "Make sure codec names and corresponding quirks are returned together.\n\nPreviously they were returned in separate vectors and only one of them was sorted if\nsoftware codecs were preferred, leaving the quirks no longer matching the codec name\nat the same index.\n\nChange-Id: Id3f1e6f9f7f8c9cc4b6ebfb86a203b4d59de8604\nrelated-to-bug: 6737884\n"
    },
    {
      "commit": "a6ee7bc5f9524c220377e37f6525e2d46c69b75b",
      "tree": "a400db737ac5e0c2bb7961fef314bbb975656eef",
      "parents": [
        "8da4cd7d706d9f551bf2d08cd8b61907a10cd38d"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Aug 06 22:02:27 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Aug 06 22:03:28 2012 -0700"
      },
      "message": "Remove obsolete hack for TI specific code\n\no related-to-bug: 6566886\n\nChange-Id: I39aad214cbf7b748a95a9d22db50cd8f421931e6\n"
    },
    {
      "commit": "a3b71fa5235b758d5f9ea00b9c58fbfd707fb9dd",
      "tree": "74897f534787e1da1855a4b87f6de0aa3de278ac",
      "parents": [
        "36cdfb185877a7f573621d19ed2b2e1cac13d62e",
        "840667883fd09d44015716d79bc3ac4d60edc0f0"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Aug 03 14:16:33 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 03 14:16:33 2012 -0700"
      },
      "message": "Merge \"experimental support for fragmented mp4 playback in nuplayer\" into jb-mr1-dev"
    },
    {
      "commit": "840667883fd09d44015716d79bc3ac4d60edc0f0",
      "tree": "cb55492dbe3ca64b2ab9ba2f5a3bb6d0a0bcf650",
      "parents": [
        "9cb20d4a41eb84bfab7f9f0d0829393f378583f4"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Aug 16 09:34:26 2011 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Aug 03 13:57:32 2012 -0700"
      },
      "message": "experimental support for fragmented mp4 playback in nuplayer\n\ncherry picked from change 170999\n\nChange-Id: I407775f0290154ad4961134839a15c9f296424c0\n"
    },
    {
      "commit": "983cf231ab2d176a14595cdae46ff1b0c239af47",
      "tree": "01942a13a082e2116f8df5dbaca1a902ac52a299",
      "parents": [
        "15d7245ed2193e4956ea87998321cbc16a3b0a46"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Aug 01 16:39:55 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Aug 02 17:06:05 2012 -0700"
      },
      "message": "Dynamically configure the number of video buffers used by camera source, if supported\n\no related-to-bug: 6920805\n\nChange-Id: I413bb50954cc84e32ed40bcb713842dc7b58e2b6\n"
    },
    {
      "commit": "0dff606f42292b8a31b9eee842877f9875279dab",
      "tree": "84529f95eacfe525e3ecbc0d9a6f4b49fb0c737b",
      "parents": [
        "c9729ca1cb1760da836e293e3ed7a82f769f3e07"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Aug 01 19:32:46 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Aug 02 14:01:25 2012 -0700"
      },
      "message": "Allocate buffers before calling start on its source in OMXCodec::start() for encoder case\n\no This makes it possible to configure the source to use the same number of input buffers\n  as requested by the video encoder, before the source starts. As a result, hardcoded\n  number of video buffers for camera source, for instance, can be avoided.\n\no related-to-bug: 6920805\n\nChange-Id: I13d2c308dce34967768cd407f02988e92ef10a89\n"
    },
    {
      "commit": "c9729ca1cb1760da836e293e3ed7a82f769f3e07",
      "tree": "7e080db5914465b3f739f68ae9a21cef94646c9f",
      "parents": [
        "6472badc497a9e748411f8c8c9ed5d83ef335a85"
      ],
      "author": {
        "name": "Insun Kang",
        "email": "insun@google.com",
        "time": "Tue Jul 24 14:44:06 2012 +0900"
      },
      "committer": {
        "name": "Insun Kang",
        "email": "insun@google.com",
        "time": "Thu Aug 02 11:56:07 2012 +0900"
      },
      "message": "Unifying TimedTextDriver\u0027s resume() and start().\n\n(cherry picked from gtv bb23a2b7e06c59f56e353fd4a2a66a9b8179d425)\n\nChange-Id: If5f14549fa315c34e32d6fed7c1ea09deabceb63\n"
    },
    {
      "commit": "bb6bc8491fe819f96e1902e56694715cb110ce94",
      "tree": "276e8c9aac3e7838ed61cdbda857ae27947975e9",
      "parents": [
        "2f0632f12cd02b0350918720443c888b48f4417b"
      ],
      "author": {
        "name": "Insun Kang",
        "email": "insun@google.com",
        "time": "Tue Jul 10 15:53:44 2012 +0900"
      },
      "committer": {
        "name": "Insun Kang",
        "email": "insun@google.com",
        "time": "Thu Aug 02 11:56:07 2012 +0900"
      },
      "message": "Adds resume() function\n\no Revived resume() function to fix pause/resume bug. (Bug: 6663740)\no Mannually cherry-picked from GTV change.\n(commit: ad1197226d1c6745959f0e469f510ca06f99489f)\n\nChange-Id: I77ac90085fb1f1d2e7eb706642978a4fa4d28b49\n"
    },
    {
      "commit": "5a81ad893eada20c32596be53dabe203b99bec3c",
      "tree": "f499f67ddf2abb203f952c84c83f8d9cb017c415",
      "parents": [
        "25f0d7ba1987de61c75f8c68b19de48e0ad9736c"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Jul 31 14:41:35 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Jul 31 14:46:38 2012 -0700"
      },
      "message": "Allows MediaMetadataRetriever to retrieve video rotation angle\n\no related-to-bug: 6872687\n\nChange-Id: I34e74b0756f8269edefdf3a25d8806c76fd1e2f8\n"
    },
    {
      "commit": "efcdf187baab9ec29e12adcf85e63fe3e6d5aa4d",
      "tree": "d85166122a684b6020e166d4e3bb005c5285db13",
      "parents": [
        "ffb829430ff20ccd6c13e6ed894f2373b2d93939"
      ],
      "author": {
        "name": "Johannes Carlsson",
        "email": "johannes.carlsson.x@sonymobile.com",
        "time": "Thu Mar 08 11:06:13 2012 +0100"
      },
      "committer": {
        "name": "Johan Redestig",
        "email": "johan.redestig@sonymobile.com",
        "time": "Mon Jul 30 14:52:08 2012 +0200"
      },
      "message": "Store correct time stamps in recorded mp4 files\n\nAccording to the specification (ISO_IEC_14496-12_2008 page 17, 19 and\n21) the time is \"in seconds since midnight, Jan. 1, 1904, in UTC time\"\nwhich is not the same as Unix epoch time. This is already correctly\nhandled in MPEG4Extractor.cpp when reading files.\n\nThe specification also supports 64 bit timestamps which would make\nit a bit more future proof, but unfortunately it seems like support\nfor this in players are poor (tested both Windows media player and\nQuicktime player).\n\nChange-Id: I102d728f098b8b0a21013956f017b0c4f2d69112\n"
    },
    {
      "commit": "5d464eb0b8cffb994a754ff108795e858a882414",
      "tree": "e5d78a91a03a1895cc03cfeb89c26aac49d15a9e",
      "parents": [
        "0ec23ce0d1ff79566c402bc30df3074f6e25a22b"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jun 22 17:19:53 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jul 27 14:58:43 2012 -0700"
      },
      "message": "Swap the order of creating IAudioTrack and thread\n\nSimplifies the error recovery in case IAudioTrack fails.\n\nChange-Id: I6aee41a2ac747a5689fb4836b04174e6107bf32f\n"
    },
    {
      "commit": "0ec23ce0d1ff79566c402bc30df3074f6e25a22b",
      "tree": "8925eca2b9f4b9bccb7fa4d032ab80070179912d",
      "parents": [
        "e4e2a37dbe2a4d923232305549101f779a2e3638"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jul 10 12:56:08 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jul 27 14:54:48 2012 -0700"
      },
      "message": "Clean up start() parameters\n\nDocument where int is used instead of AudioSystem::sync_event_t\n  (probably because of a header file dependency).\nTrackBase::start() and RecordTrack::start() don\u0027t need default parameters.\n\nChange-Id: I82f4a4d078be900f3aa4bd926697e32f5ed68ec8\n"
    },
    {
      "commit": "58e5aa34f01d663654d8bafad65db1dda42161ff",
      "tree": "706a80113457f48feae3eab9f8720bcc3da2b397",
      "parents": [
        "1d491ff06f4b9c90ff24fe953b90d0843eaf1c04"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jun 20 14:08:14 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 25 14:43:19 2012 -0700"
      },
      "message": "effect_descriptor_t const correctness\n\nChange-Id: Iad008f20d35a18acf500f773900164552fd0c19e\n"
    },
    {
      "commit": "68ea6cab354a635ea848bc2b5cf172d7a215a057",
      "tree": "7493493a0cd877fbb77432e4ea8601286b1da020",
      "parents": [
        "e78d5c7bfda1e80223436df3faeb4a9e2e719bcf",
        "f6d9696bf1db133d16dd8981380e1bfbd2e0bc70"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Jul 20 18:40:30 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 20 18:40:30 2012 -0700"
      },
      "message": "Merge \"Camera: Add OPAQUE pixel format to CameraParameters\""
    },
    {
      "commit": "c374dae535b83d9b499dd9fe8f9dabdb8b0ac9fd",
      "tree": "9e854a53f611c1a6a08c7ac507037c9fcf49c3c9",
      "parents": [
        "33e6e35b03a726e35203e97550f32154c91d5f13"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Jul 19 19:18:06 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Jul 20 15:28:25 2012 -0700"
      },
      "message": "Added a callback to signal when the rendering of the video frame just occurred\n\nChange-Id: Ifbd78606ffc33483aecebf02cb18e0e52af9624d\nrelated-to-bug: 6851811\n"
    },
    {
      "commit": "f6d9696bf1db133d16dd8981380e1bfbd2e0bc70",
      "tree": "9599fa0f762f48aaffb17429f4b885236734d07b",
      "parents": [
        "ea682976030a3930f6ee49b33b7e21abfc68174a"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Jul 18 17:50:46 2012 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Jul 18 17:53:39 2012 -0700"
      },
      "message": "Camera: Add OPAQUE pixel format to CameraParameters\n\nThis is only used to support recording with HAL 2 in the\nKEY_VIDEO_FRAME_FORMAT parameter, and is not exposed to applications.\n\nBug: 6243944\nChange-Id: I5976a748d199ae98189bd03af5bbd9e18cbd6bf0\n"
    },
    {
      "commit": "955e78180ac6111c54f50930b0c4c12395e86cf7",
      "tree": "b4c12804643f73e9acbbf1db58f5ffa7e0bd7bc7",
      "parents": [
        "ea682976030a3930f6ee49b33b7e21abfc68174a"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Feb 21 10:32:45 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jul 17 18:06:19 2012 -0700"
      },
      "message": "AudioRecord locking\n\nFix race conditions for EVENT_MARKER and EVENT_NEW_POS callbacks.\nMarker and new position update fields are protected by lock.\n\ngetSampleRate() doesn\u0027t need a lock because it reads from shared memory\ncontrol block.\n\nEnforce that the parameter passed with EVENT_MARKER and EVENT_NEW_POS\ncannot not be changed by the callback handler, and will not change during\nthe call by another thread.\n\nSession ID should never change; log if it does.\n\nChange-Id: Ia2c63cf1a71b10bb06c37981bd76437f83fffa91\n"
    },
    {
      "commit": "28b76b334f92a15a2be3cc9e2f7d229a3275d1ac",
      "tree": "c605d3e995f4b6be55dd4b10e1c998b059990d0d",
      "parents": [
        "fd4e20c226eca185fc789de761beae64855bfbbb"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jul 03 17:24:41 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jul 17 11:31:59 2012 -0700"
      },
      "message": "Use audio_channel_mask_t for channel mask\n\nChange-Id: I1c1896da48983aa9f1462a4b471f910498816f60\n"
    },
    {
      "commit": "dcda3b325f465aa6ec2be11db1c56c8a5e867f33",
      "tree": "0f7709ccea7f3c3cb5a63747adb7d5bfb82e194a",
      "parents": [
        "2bdb2f25861f3a3ac9cf3b7af561975fc9b9eead",
        "d64cd233eef39430561c1e1df423336a199cc5d7"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jul 16 08:27:30 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 16 08:27:30 2012 -0700"
      },
      "message": "Merge \"AudioRecord::stop() return void\""
    },
    {
      "commit": "2bdb2f25861f3a3ac9cf3b7af561975fc9b9eead",
      "tree": "58b79b403e5ec36812aa8ef233cb404b2fcd7341",
      "parents": [
        "1ea6d23396118a9cfe912b7b8a4e6f231e318ea2",
        "190313ec68e81c10d200ff3c20ac152cf90760d6"
      ],
      "author": {
        "name": "Edwin Wong",
        "email": "edwinwong@google.com",
        "time": "Fri Jul 13 17:54:32 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jul 13 17:54:32 2012 -0700"
      },
      "message": "am 190313ec: am 65e8d62a: Merge \"Fixed sample video corrupted in MediaCodec mode.\" into jb-dev\n\n* commit \u0027190313ec68e81c10d200ff3c20ac152cf90760d6\u0027:\n  Fixed sample video corrupted in MediaCodec mode.\n"
    },
    {
      "commit": "d64cd233eef39430561c1e1df423336a199cc5d7",
      "tree": "34f6adda18ee4c4f2d1dea9ea4dbf0c84c2d0bfe",
      "parents": [
        "68337edf595a0c345ba4b8adcd4f1e541a1d7eb7"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Feb 21 10:21:23 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jul 13 15:55:04 2012 -0700"
      },
      "message": "AudioRecord::stop() return void\n\nlike AudioTrack::stop()\n\nChange-Id: Iab62f4665151345f1ad5874c97a21d1a331f0154\n"
    },
    {
      "commit": "190313ec68e81c10d200ff3c20ac152cf90760d6",
      "tree": "7a0a8e099c9a90c42cb84b65d8462c7186e6b3cf",
      "parents": [
        "ffb829430ff20ccd6c13e6ed894f2373b2d93939",
        "65e8d62a5b243518795cdafa498df4a49baf6940"
      ],
      "author": {
        "name": "Edwin Wong",
        "email": "edwinwong@google.com",
        "time": "Fri Jul 13 15:12:24 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jul 13 15:12:24 2012 -0700"
      },
      "message": "am 65e8d62a: Merge \"Fixed sample video corrupted in MediaCodec mode.\" into jb-dev\n\n* commit \u002765e8d62a5b243518795cdafa498df4a49baf6940\u0027:\n  Fixed sample video corrupted in MediaCodec mode.\n"
    },
    {
      "commit": "68337edf595a0c345ba4b8adcd4f1e541a1d7eb7",
      "tree": "121fce48f2765c8d13ecbc84dcf06c44d62096b4",
      "parents": [
        "9cca4c6d976d2d4127286e9eaa54d1b99880c25c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jul 12 09:05:58 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jul 13 14:49:12 2012 -0700"
      },
      "message": "AudioRecord client threading cleanup\n\nRename ClientRecordThread to AudioRecordThread to be more similar to\nAudioTrack naming.\n\nOnly create the thread once, and use resume() and pause() for start()\nand stop().  This will allow us to have a known client callback thread\ntid that we can pass to AudioFlinger before start().\n\nmActive:\nMade mActive a bool not int.\nmActive is protected by mLock; volatile is meaningless.\nFixed a few places where mActive was accessed without a lock:\n - stopped()\n - processAudioBuffer()\nThese aren\u0027t used internally, so no need for _l() versions.\n\nChange-Id: I4b8a5c90f3a22d3894b344564cb1c5aef4f1fda2\n"
    },
    {
      "commit": "fa2b8f243eb048fb2b8e5a14356190f69eb31a36",
      "tree": "d54232d4c61bf767677bcee2373069c4969301c1",
      "parents": [
        "4221e2813f7a307936036e62b6a63bbda23005ee"
      ],
      "author": {
        "name": "Edwin Wong",
        "email": "edwinwong@google.com",
        "time": "Tue Jul 10 20:01:13 2012 -0700"
      },
      "committer": {
        "name": "Edwin Wong",
        "email": "edwinwong@google.com",
        "time": "Fri Jul 13 13:05:56 2012 -0700"
      },
      "message": "Fixed sample video corrupted in MediaCodec mode.\n\nChange-Id: I50c5660072d40f6e297e58fd026ea04c89d6a70a\nrelated-to-bug: 6732061\n"
    },
    {
      "commit": "5f0033d27b75fead593ed7ca2b86f5b6f5adf6cc",
      "tree": "e12cae6d070d56571a5ce2160199b4a54edd0f7a",
      "parents": [
        "1879fff068422852c1483dcf8365c2ff0e2fadfc",
        "d4070955e28ae62aa4be1657f9d32acde104bb86"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jul 13 07:20:47 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 13 07:20:47 2012 -0700"
      },
      "message": "Merge \"Remove dead code in libmedia\""
    },
    {
      "commit": "1879fff068422852c1483dcf8365c2ff0e2fadfc",
      "tree": "f374fae563e2854ce20b4da16e9cae0d883aecd7",
      "parents": [
        "bf04a5d7f287fc712e0ed91849dc85c90c1e182d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 11 15:36:59 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jul 12 13:43:08 2012 -0700"
      },
      "message": "Add tid parameter to IAudioFlinger::openRecord\n\nNot yet implemented\n\nChange-Id: I35523fb15ad71727ecc9f4bb870f07e4b7397dc4\n"
    },
    {
      "commit": "d4070955e28ae62aa4be1657f9d32acde104bb86",
      "tree": "4e289a66bb82da52f8e0e1c1691b35f1309d9f35",
      "parents": [
        "39c54f68804c1ce5c85ec588f3c2c63447a807b4"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jul 12 11:03:31 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jul 12 11:09:09 2012 -0700"
      },
      "message": "Remove dead code in libmedia\n\nChange-Id: I7d8201590cda29c9fa99662a4fdba222091febfe\n"
    },
    {
      "commit": "bf04a5d7f287fc712e0ed91849dc85c90c1e182d",
      "tree": "f9fd2ffd8df5a02c9c9373f5362da76204e5a676",
      "parents": [
        "39c54f68804c1ce5c85ec588f3c2c63447a807b4"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jul 12 09:07:11 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jul 12 09:36:34 2012 -0700"
      },
      "message": "Simplify AudioRecord::getInputFramesLost()\n\nThis also fixes a benign race in reading mActive without a lock.\n\nChange-Id: I19e953d4f275e5c266ca1ca3fece7b6c02ad1707\n"
    },
    {
      "commit": "254af180475346b6186b49c297f340c9c4817511",
      "tree": "bee0e313aaa97645167e86f4678e513ab38d1c99",
      "parents": [
        "4d2132c866228eaef563e8141ebf06aa25ee9ff7"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jul 03 14:59:05 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jul 10 10:05:31 2012 -0700"
      },
      "message": "Use audio_channel_mask_t more places\n\nUse it in AudioSystem::getOutput(), AudioSystem::getInput(),\nIAudioPolicyService::getOutput(), IAudioPolicyService::getInput(),\nand various other places in AudioFlinger.\n\nNot done: AudioTrack and OutputDescriptor.\n\nChange-Id: I70e83455820bd8f05dafd30c63d636c6a47cd172\n"
    },
    {
      "commit": "983995747ed3adaf25035c433df1ccbaa056a898",
      "tree": "560ae326126ee657e50d7ff36119760b1992936e",
      "parents": [
        "d4e5af6bc0a012e8d43975ca8b5627631333920d"
      ],
      "author": {
        "name": "Paul Fariello",
        "email": "fariello@archos.com",
        "time": "Mon Jan 23 17:21:33 2012 +0100"
      },
      "committer": {
        "name": "Martin Storsjo",
        "email": "martin@martin.st",
        "time": "Tue Jul 10 13:36:14 2012 +0300"
      },
      "message": "MPEG2TSWriter: Write a proper CRC in PAT and PMT\n\nChange-Id: I6ec8039b176878da6f02691194d96b0a1e894055\n"
    },
    {
      "commit": "d4e5af6bc0a012e8d43975ca8b5627631333920d",
      "tree": "4fa273c0f4f7969c375f9ea0d9fe8b651a77cfd7",
      "parents": [
        "ffb829430ff20ccd6c13e6ed894f2373b2d93939"
      ],
      "author": {
        "name": "Paul Fariello",
        "email": "fariello@archos.com",
        "time": "Mon Jan 23 17:24:35 2012 +0100"
      },
      "committer": {
        "name": "Martin Storsjo",
        "email": "martin@martin.st",
        "time": "Tue Jul 10 13:34:15 2012 +0300"
      },
      "message": "MPEG2TSWriter: Write proper continuity counters for PAT and PMT\n\nChange-Id: If94e31e51c563867db6d2376ad771f9751416084\n"
    },
    {
      "commit": "dd8104cc5367262f0e5f13df4e79f131e8d560bb",
      "tree": "46c95f24576ec352d7d5d363606db9a46a44e9c3",
      "parents": [
        "f1da96d8cf60842538e00a9c950cc451f7da2c10"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jul 02 12:42:44 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jul 03 10:24:45 2012 -0700"
      },
      "message": "Use audio_channel_mask_t more consistently\n\nIn IAudioFlinger::createTrack() and IAudioFlinger::openRecord(),\ndeclare input parameter to use correct type audio_channel_mask_t.\n\nIn IAudioFlinger::getInputBufferSize(), input parameter is now channel mask\ninstead of channel count.\n\nRemove unused IAudioFlinger::channelCount(audio_io_handle_t).\n\nIn AudioRecord::getMinFrameCount() and AudioSystem::getInputBufferSize(),\ninput parameter is channel mask instead of channel count.\n\nChange-Id: Ib2f1c29bea70f016b3cfce83942ba292190ac965\n"
    },
    {
      "commit": "0dc6d5ef45c0721c76f0e55354ff80371d795e5d",
      "tree": "bb761a26a5536983ae84a5b6f1e5defa6fd33a8e",
      "parents": [
        "9ee836fc8cf54d26e1e0819d1467d4d39bb9295c",
        "02e84eaff54414e9f10c0f605152728a682c6874"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jun 25 17:28:11 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 25 17:28:11 2012 -0700"
      },
      "message": "Merge \"AudioRecord comments\""
    },
    {
      "commit": "02e84eaff54414e9f10c0f605152728a682c6874",
      "tree": "9e9cfa5e54197ce0a2f60328b1fa17bf3c1d0271",
      "parents": [
        "624a7fcb377f2a40109c16de5109ae8ea1f67a69"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jun 25 13:45:12 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jun 25 15:42:37 2012 -0700"
      },
      "message": "AudioRecord comments\n\nGroup the private fields according to how they are used\n\nChange-Id: I7ce3d0939510c10f34bd91a55f6e03afc8e7d43c\n"
    },
    {
      "commit": "20010053daabfa43fcfe781bbf004473b4c08538",
      "tree": "f34948205baac68d57000467e9877a0041249d33",
      "parents": [
        "624a7fcb377f2a40109c16de5109ae8ea1f67a69"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jun 22 13:43:51 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jun 25 13:51:10 2012 -0700"
      },
      "message": "Remove acoustics from AudioSystem::getInput()\n\nChange-Id: I29fb3ee5664c1f0ee0409c1bb2be087ecca637db\n"
    },
    {
      "commit": "624a7fcb377f2a40109c16de5109ae8ea1f67a69",
      "tree": "9082c6373d7a8c904183ba745697938ca30fda68",
      "parents": [
        "70be725da4d8aafb94d47c1962e897ecd5fdf823"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jun 21 16:24:00 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jun 25 10:03:30 2012 -0700"
      },
      "message": "Use audio_channel_mask_t in AudioRecord\n\nChange-Id: I9e1b918b2635d961604a4a9d88eb1c7179a167a7\n"
    },
    {
      "commit": "70be725da4d8aafb94d47c1962e897ecd5fdf823",
      "tree": "ccd550d401bdc8f73f04c0f08cd128216ff713aa",
      "parents": [
        "868a6a357018e5872e064b7a13a9b891e2078962"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jun 21 16:24:14 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jun 25 09:47:01 2012 -0700"
      },
      "message": "Remove unused AudioRecord::channels()\n\nIt was declared but never implemented or called.\n\nChange-Id: If5846147fcbd7f6d4187971e2044dd6fd3252b42\n"
    },
    {
      "commit": "868a6a357018e5872e064b7a13a9b891e2078962",
      "tree": "66888ef3311ea9973ef85f31abc130a35e7d6392",
      "parents": [
        "46ec58976b3c04a99ce6e7eda2531543bfb151c7"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jun 21 16:22:09 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jun 25 09:31:55 2012 -0700"
      },
      "message": "Include what you use\n\nChange-Id: I12ef9367d05dbe069c037b1b4acd6347a8cf3ece\n"
    },
    {
      "commit": "46ec58976b3c04a99ce6e7eda2531543bfb151c7",
      "tree": "722768dbc41135d0a95fe302fd791051f6bda1f1",
      "parents": [
        "a4b06651f65d2c4f4d5840e7f879fb3ae5cfaa82",
        "f92eec53f886f43e4374a36195be55f2a7bbcf36"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jun 25 08:35:48 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 25 08:35:48 2012 -0700"
      },
      "message": "Merge \"Remove AudioRecord record_flags\""
    },
    {
      "commit": "e6cb412b677966c25b424766dc6ceb2787d49caa",
      "tree": "6bfbcf0b8cdfa231f5638b2e9eca58c271e48123",
      "parents": [
        "5ca15ccf7336d5aa5a7b563742757fa37092eb48",
        "33e28dd3c033641f4db9d1b99c7c88d6d08c61f7"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Fri Jun 22 15:20:48 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jun 22 15:20:48 2012 -0700"
      },
      "message": "am 33e28dd3: Merge \"SurfaceMediaSource: keep refs to current buffers\" into jb-dev\n\n* commit \u002733e28dd3c033641f4db9d1b99c7c88d6d08c61f7\u0027:\n  SurfaceMediaSource: keep refs to current buffers\n"
    },
    {
      "commit": "2cd25a9056cc150b9fd3ac9b0bca37a1334ffd47",
      "tree": "47ec6f6b47b28af67095707b65bbfef4d7dd0dbe",
      "parents": [
        "eb15716b59020f342df62bce5b293f0603b94861"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Fri Jun 22 14:42:00 2012 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Fri Jun 22 14:43:59 2012 -0700"
      },
      "message": "SurfaceMediaSource: keep refs to current buffers\n\nThis change fixes a bug in SurfaceMediaSource where it would not keep a\nreference to all of the Gralloc buffers that the video encoder is currently\nusing.\n\nBug: 6655597\nChange-Id: Ifd99976cc7ae57ed724bbf2bbcff357a39497391\n"
    },
    {
      "commit": "f92eec53f886f43e4374a36195be55f2a7bbcf36",
      "tree": "e6db36a4f5ffb47782d0614f1defc783fcb436c0",
      "parents": [
        "a43787a8cc513715543fb5c80c7c464e2cd51b6e"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 07 08:16:36 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jun 22 13:49:03 2012 -0700"
      },
      "message": "Remove AudioRecord record_flags\n\nChange-Id: I021ddcc1bcb63132a4597d13e3d09db2a5f2c628\n"
    },
    {
      "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"
    }
  ],
  "next": "a98db787397633155fd71b06ecaa765a7ad20cf2"
}
