)]}'
{
  "log": [
    {
      "commit": "2748ceb1eb0df58c92fd7611cf182e6cffa0f0a3",
      "tree": "50d0070addf6891bd72b2da75fce83bcd827251e",
      "parents": [
        "45659516fd605839cd3f5951c47f8be1beba161a",
        "66809dc49bec6cb6345c74d48d319c2a63c17ac6"
      ],
      "author": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Jun 04 22:28:01 2014 -0500"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Jun 04 22:28:01 2014 -0500"
      },
      "message": "Merge tag \u0027android-4.4.3_r1.1\u0027 into HEAD\n\nAndroid 4.4.3 release 1.1\n\nChange-Id: Ic939fc64cbacba0f0aba987d9d834c7798020dd1\n"
    },
    {
      "commit": "66809dc49bec6cb6345c74d48d319c2a63c17ac6",
      "tree": "e5a07b57875ac19f3e86c64e650cd0e41739c231",
      "parents": [
        "77c5b04437eab6585b9e511c8035487993b4afb7"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Mar 27 16:44:23 2014 -0700"
      },
      "committer": {
        "name": "The Android Automerger",
        "email": "android-build@google.com",
        "time": "Thu Mar 27 19:58:46 2014 -0700"
      },
      "message": "DO NOT MERGE: Revert \"mediaplayer: keep more buffers with the BufferQueue\"\n\nThis reverts commit b635b0e66b257ab442e230bca96afd5105cf6829.\n\nBug: 13655631\n"
    },
    {
      "commit": "77c5b04437eab6585b9e511c8035487993b4afb7",
      "tree": "acf2c5ba89002a15ef82677408f11dabc040adf8",
      "parents": [
        "e1b50834ec9a69661c1802662c1fd08587360381"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Mar 27 16:41:37 2014 -0700"
      },
      "committer": {
        "name": "The Android Automerger",
        "email": "android-build@google.com",
        "time": "Thu Mar 27 19:58:46 2014 -0700"
      },
      "message": "DO NOT MERGE: Revert \"stagefright: allow for minUndequeuedBufs to be one less\"\n\nThis reverts commit a0470879e25394cb85437366fa53ce8055cd556f.\n\nBug: 13655631\n"
    },
    {
      "commit": "e1b50834ec9a69661c1802662c1fd08587360381",
      "tree": "9d244524a113db326aa9e86caab40c49a08248f3",
      "parents": [
        "0370be96e33ea0c8fb4069e704deccce43b7403c",
        "9570a77ad36fa8bc3b58eb831199b0047788658e"
      ],
      "author": {
        "name": "The Android Automerger",
        "email": "android-build@google.com",
        "time": "Tue Mar 25 17:06:57 2014 -0700"
      },
      "committer": {
        "name": "The Android Automerger",
        "email": "android-build@google.com",
        "time": "Tue Mar 25 17:06:57 2014 -0700"
      },
      "message": "merge in klp-mr2-release history after reset to klp-dev\n"
    },
    {
      "commit": "0370be96e33ea0c8fb4069e704deccce43b7403c",
      "tree": "9d244524a113db326aa9e86caab40c49a08248f3",
      "parents": [
        "333ceb4f66ccf790081026f645474e07d832fbdb"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Tue Mar 18 18:15:23 2014 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Mar 25 11:20:25 2014 -0700"
      },
      "message": "DO NOT MERGE: camera: Fix setParameters for Preview FPS single/range values\n\nAs a workaround, duplicate CameraParameters into CameraParameters2 to\nprevent ABI break for some camera HALs that directly link into\nCameraParameters.\n\nCameraParameters2 implements the real fixes needed in the framework,\nwhile CameraParameters is left in to satisfy older camera HALs.\n\nBug: 12609188\nChange-Id: I82ea6f5de2183dd046d4bf5683600c97f37ab4da\n"
    },
    {
      "commit": "9570a77ad36fa8bc3b58eb831199b0047788658e",
      "tree": "b010fd0eb1520d19debd1e90a9a8d71bd0a833a8",
      "parents": [
        "333ceb4f66ccf790081026f645474e07d832fbdb",
        "a0470879e25394cb85437366fa53ce8055cd556f"
      ],
      "author": {
        "name": "The Android Automerger",
        "email": "android-build@google.com",
        "time": "Mon Mar 24 06:00:52 2014 -0700"
      },
      "committer": {
        "name": "The Android Automerger",
        "email": "android-build@google.com",
        "time": "Mon Mar 24 06:00:52 2014 -0700"
      },
      "message": "merge in klp-mr2-release history after reset to klp-dev\n"
    },
    {
      "commit": "333ceb4f66ccf790081026f645474e07d832fbdb",
      "tree": "b010fd0eb1520d19debd1e90a9a8d71bd0a833a8",
      "parents": [
        "f622e2c78407b50806a53a06a89b2b6546420f55",
        "65e20ffc984c541a8119420f917493dd7b703f77"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Mar 21 19:09:48 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 21 19:09:49 2014 +0000"
      },
      "message": "Merge \"DO NOT MERGE: PlaylistFetcher: fix infinite loop when parsing ADTS.\" into klp-dev"
    },
    {
      "commit": "65e20ffc984c541a8119420f917493dd7b703f77",
      "tree": "15d1d92e6b53cd32b1e7036359fe58841ff2d0d1",
      "parents": [
        "a577eefbaca24d1b9ac947daca54be1992888748"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Fri Feb 07 12:26:58 2014 -0800"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Fri Mar 21 19:05:17 2014 +0000"
      },
      "message": "DO NOT MERGE: PlaylistFetcher: fix infinite loop when parsing ADTS.\n\nFirst check for embedded ID3 tag, then bail out if invalid.\n\nBug: 12934795\nChange-Id: I74acebed4bfb2c6ca44dfe936166fdba8510233f"
    },
    {
      "commit": "f622e2c78407b50806a53a06a89b2b6546420f55",
      "tree": "0a4e6bc97cccf6a40d76ef15e88e1a62b8a6e3b5",
      "parents": [
        "a577eefbaca24d1b9ac947daca54be1992888748"
      ],
      "author": {
        "name": "Rachad",
        "email": "rachad@google.com",
        "time": "Mon Feb 10 16:54:46 2014 -0800"
      },
      "committer": {
        "name": "Vineeta Srivastava",
        "email": "vsrivastava@google.com",
        "time": "Fri Mar 21 16:36:35 2014 +0000"
      },
      "message": "Increased recorded MP4 max file size to 4GB\n(more precisely 2^32-1 bytes -- FAT32 max file size)\n\nbug: 11039801\nChange-Id: I6169f798c59d123d02d5fd7afa3b9e645ebdb598\n(cherry picked from commit 1f1f2b1678fd0d038dfc501252dd2b65ecf10cae)\n"
    },
    {
      "commit": "a577eefbaca24d1b9ac947daca54be1992888748",
      "tree": "4abecebedcd012d86fbafc1ec822f36ac13c7cd4",
      "parents": [
        "2853e48c855fc95f2bd7bf9438a878f2a79d75a7",
        "5be9c1daf956c35d37585d21fff5d6b99f506560"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Mar 20 20:48:52 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 20 20:48:52 2014 +0000"
      },
      "message": "am 5be9c1da: am 01eed3c0: am 7a107b85: am 854aa061: am 42ba5806: am 72499628: am 25bab830: Fix build\n\n* commit \u00275be9c1daf956c35d37585d21fff5d6b99f506560\u0027:\n  Fix build\n"
    },
    {
      "commit": "5be9c1daf956c35d37585d21fff5d6b99f506560",
      "tree": "ae3cbacd3b548cc7e3b2c4fbc3e8c90d45d2b7df",
      "parents": [
        "6f65db14e310b513c8943b236a6e61cf27cef4c7",
        "01eed3c0fb951e349d68f4bce818bef22e7925b1"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Mar 20 13:29:33 2014 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 20 13:29:33 2014 -0700"
      },
      "message": "am 01eed3c0: am 7a107b85: am 854aa061: am 42ba5806: am 72499628: am 25bab830: Fix build\n\n* commit \u002701eed3c0fb951e349d68f4bce818bef22e7925b1\u0027:\n  Fix build\n"
    },
    {
      "commit": "01eed3c0fb951e349d68f4bce818bef22e7925b1",
      "tree": "f8ab5f1808ea539cfc77d41ddfb3a62be80f9921",
      "parents": [
        "0e0891f8b49f31e6a28b563f86aae537e66bb6e0",
        "7a107b857e658ba11c0c1fd2325ac91a2c0569a2"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Mar 20 13:18:07 2014 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 20 13:18:07 2014 -0700"
      },
      "message": "am 7a107b85: am 854aa061: am 42ba5806: am 72499628: am 25bab830: Fix build\n\n* commit \u00277a107b857e658ba11c0c1fd2325ac91a2c0569a2\u0027:\n  Fix build\n"
    },
    {
      "commit": "7a107b857e658ba11c0c1fd2325ac91a2c0569a2",
      "tree": "c343516caf66fb2a665705f8520c7a4e2c054688",
      "parents": [
        "6cdc90b5e41374dd665df3ae7283ef0c1f532678",
        "854aa061b1e2d7eaaf8ffa2ead323c1478393c57"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Mar 20 13:13:35 2014 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 20 13:13:35 2014 -0700"
      },
      "message": "am 854aa061: am 42ba5806: am 72499628: am 25bab830: Fix build\n\n* commit \u0027854aa061b1e2d7eaaf8ffa2ead323c1478393c57\u0027:\n  Fix build\n"
    },
    {
      "commit": "854aa061b1e2d7eaaf8ffa2ead323c1478393c57",
      "tree": "4dbc152a7a07fd040cd3851ad9816d2d9cceff5b",
      "parents": [
        "ebc9b47330ab8565f7bdd9b3973a8f75e3206e77",
        "42ba5806c03753a39f85016265173819ac465745"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Mar 20 13:08:17 2014 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 20 13:08:17 2014 -0700"
      },
      "message": "am 42ba5806: am 72499628: am 25bab830: Fix build\n\n* commit \u002742ba5806c03753a39f85016265173819ac465745\u0027:\n  Fix build\n"
    },
    {
      "commit": "42ba5806c03753a39f85016265173819ac465745",
      "tree": "80b7de0359644cc3b961bc848460e6dcbd2cf939",
      "parents": [
        "fb49b8bad468db591f55a7064181372f02ad94a2",
        "72499628a24ccea0befe726de6e2b32176ddf208"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Mar 20 13:04:11 2014 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 20 13:04:11 2014 -0700"
      },
      "message": "am 72499628: am 25bab830: Fix build\n\n* commit \u002772499628a24ccea0befe726de6e2b32176ddf208\u0027:\n  Fix build\n"
    },
    {
      "commit": "72499628a24ccea0befe726de6e2b32176ddf208",
      "tree": "80b7de0359644cc3b961bc848460e6dcbd2cf939",
      "parents": [
        "dfd90c8052a913ed2bbbea1873ee51838d40bfe1",
        "25bab830af062dcaef6f75220066b221fd30957e"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Mar 20 13:00:07 2014 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 20 13:00:07 2014 -0700"
      },
      "message": "am 25bab830: Fix build\n\n* commit \u002725bab830af062dcaef6f75220066b221fd30957e\u0027:\n  Fix build\n"
    },
    {
      "commit": "25bab830af062dcaef6f75220066b221fd30957e",
      "tree": "3d4b7cc83a843df86fab1080596eddb13016cff6",
      "parents": [
        "d434944b00cf83a38019047e0d7db155a15d77f4"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Mar 20 12:32:48 2014 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Mar 20 12:32:48 2014 -0700"
      },
      "message": "Fix build\n\nAs of jb-mr1, need to explicitly include library dependencies. The original\nchange in jb, which the automerger dutyfully merged, did not need this.\n\nChange-Id: I429637e2d01b8084376bb97a02bb091a0ea9eaf7\n"
    },
    {
      "commit": "2853e48c855fc95f2bd7bf9438a878f2a79d75a7",
      "tree": "6dfa3c77406b420f582e0cfc9f42d7f848314d7c",
      "parents": [
        "1faa41704e0b976e546321effcb09a85767d51ba",
        "6f65db14e310b513c8943b236a6e61cf27cef4c7"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Mar 20 18:17:24 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 20 18:17:24 2014 +0000"
      },
      "message": "am 6f65db14: am 0e0891f8: am 6cdc90b5: am ebc9b473: am fb49b8ba: am dfd90c80: am d434944b: am 3bc4f7ea: am 0c271b75: Verify certificates\n\n* commit \u00276f65db14e310b513c8943b236a6e61cf27cef4c7\u0027:\n  Verify certificates\n"
    },
    {
      "commit": "6f65db14e310b513c8943b236a6e61cf27cef4c7",
      "tree": "2a04fb4a673c20e6ffb26af36c886ef2e8d730ee",
      "parents": [
        "27ae268af29b25d85f83aa34e92ac8b7f6c87c6f",
        "0e0891f8b49f31e6a28b563f86aae537e66bb6e0"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Mar 20 11:08:43 2014 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 20 11:08:43 2014 -0700"
      },
      "message": "am 0e0891f8: am 6cdc90b5: am ebc9b473: am fb49b8ba: am dfd90c80: am d434944b: am 3bc4f7ea: am 0c271b75: Verify certificates\n\n* commit \u00270e0891f8b49f31e6a28b563f86aae537e66bb6e0\u0027:\n  Verify certificates\n"
    },
    {
      "commit": "0e0891f8b49f31e6a28b563f86aae537e66bb6e0",
      "tree": "e362e6c968f6db985c142e31744ffc61ad301d17",
      "parents": [
        "00cb884fc870aba4052c8d187a45e4aec50a6b43",
        "6cdc90b5e41374dd665df3ae7283ef0c1f532678"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Mar 20 10:49:15 2014 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 20 10:49:15 2014 -0700"
      },
      "message": "am 6cdc90b5: am ebc9b473: am fb49b8ba: am dfd90c80: am d434944b: am 3bc4f7ea: am 0c271b75: Verify certificates\n\n* commit \u00276cdc90b5e41374dd665df3ae7283ef0c1f532678\u0027:\n  Verify certificates\n"
    },
    {
      "commit": "6cdc90b5e41374dd665df3ae7283ef0c1f532678",
      "tree": "203fce295e8441957dc42d56c8358e622a1a157a",
      "parents": [
        "31d49615007372621ac3fba55e9e3aab48c873f9",
        "ebc9b47330ab8565f7bdd9b3973a8f75e3206e77"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Mar 20 10:31:32 2014 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 20 10:31:32 2014 -0700"
      },
      "message": "am ebc9b473: am fb49b8ba: am dfd90c80: am d434944b: am 3bc4f7ea: am 0c271b75: Verify certificates\n\n* commit \u0027ebc9b47330ab8565f7bdd9b3973a8f75e3206e77\u0027:\n  Verify certificates\n"
    },
    {
      "commit": "ebc9b47330ab8565f7bdd9b3973a8f75e3206e77",
      "tree": "a79d6dddf8862a80408905f7e24741632376f9df",
      "parents": [
        "27b876d4cf78b262854b9f2aec26467f9323d3ad",
        "fb49b8bad468db591f55a7064181372f02ad94a2"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Mar 20 10:27:04 2014 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 20 10:27:04 2014 -0700"
      },
      "message": "am fb49b8ba: am dfd90c80: am d434944b: am 3bc4f7ea: am 0c271b75: Verify certificates\n\n* commit \u0027fb49b8bad468db591f55a7064181372f02ad94a2\u0027:\n  Verify certificates\n"
    },
    {
      "commit": "fb49b8bad468db591f55a7064181372f02ad94a2",
      "tree": "61b9f60e8d12c6d5d2891dc5055af49aa00f3bc6",
      "parents": [
        "9bc40a2cfdd307074ef5c23ad444fc8a782bab84",
        "dfd90c8052a913ed2bbbea1873ee51838d40bfe1"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Mar 20 10:21:14 2014 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 20 10:21:14 2014 -0700"
      },
      "message": "am dfd90c80: am d434944b: am 3bc4f7ea: am 0c271b75: Verify certificates\n\n* commit \u0027dfd90c8052a913ed2bbbea1873ee51838d40bfe1\u0027:\n  Verify certificates\n"
    },
    {
      "commit": "dfd90c8052a913ed2bbbea1873ee51838d40bfe1",
      "tree": "61b9f60e8d12c6d5d2891dc5055af49aa00f3bc6",
      "parents": [
        "98603acbce87c3a451c8e4c26625048363c3f7f7",
        "d434944b00cf83a38019047e0d7db155a15d77f4"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Mar 20 10:16:53 2014 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 20 10:16:53 2014 -0700"
      },
      "message": "am d434944b: am 3bc4f7ea: am 0c271b75: Verify certificates\n\n* commit \u0027d434944b00cf83a38019047e0d7db155a15d77f4\u0027:\n  Verify certificates\n"
    },
    {
      "commit": "d434944b00cf83a38019047e0d7db155a15d77f4",
      "tree": "ad223a08bff12a7cf83dc4804af6cba9abb6d6cd",
      "parents": [
        "36337f8f1c4d7384cb1528205582148c85c69f4d",
        "3bc4f7eaf063201dc85ecc2f7c2bf2b70ab564ed"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Mar 20 10:11:20 2014 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 20 10:11:20 2014 -0700"
      },
      "message": "am 3bc4f7ea: am 0c271b75: Verify certificates\n\n* commit \u00273bc4f7eaf063201dc85ecc2f7c2bf2b70ab564ed\u0027:\n  Verify certificates\n"
    },
    {
      "commit": "3bc4f7eaf063201dc85ecc2f7c2bf2b70ab564ed",
      "tree": "474128b1314cd7deee61dac6997d68a22d5f2a22",
      "parents": [
        "7d72965ff6a4bf9f91213fbdafcd12cfad8334e5",
        "0c271b750f7314e187f8479f478ad9382d9a9045"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Mar 20 10:04:18 2014 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 20 10:04:18 2014 -0700"
      },
      "message": "am 0c271b75: Verify certificates\n\n* commit \u00270c271b750f7314e187f8479f478ad9382d9a9045\u0027:\n  Verify certificates\n"
    },
    {
      "commit": "a0470879e25394cb85437366fa53ce8055cd556f",
      "tree": "64966380d3e178c4092670de4b11d0a43114b221",
      "parents": [
        "b635b0e66b257ab442e230bca96afd5105cf6829"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Mar 19 12:22:01 2014 -0700"
      },
      "committer": {
        "name": "The Android Automerger",
        "email": "android-build@android.com",
        "time": "Wed Mar 19 12:55:49 2014 -0700"
      },
      "message": "stagefright: allow for minUndequeuedBufs to be one less\n\nBug: 13533477\nChange-Id: I909324e3e24f65d8051e0d5474267620efcfc729\n"
    },
    {
      "commit": "1faa41704e0b976e546321effcb09a85767d51ba",
      "tree": "64966380d3e178c4092670de4b11d0a43114b221",
      "parents": [
        "b635b0e66b257ab442e230bca96afd5105cf6829"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Mar 19 12:22:01 2014 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Mar 19 12:39:53 2014 -0700"
      },
      "message": "stagefright: allow for minUndequeuedBufs to be one less\n\nBug: 13533477\nChange-Id: I909324e3e24f65d8051e0d5474267620efcfc729\n"
    },
    {
      "commit": "0c271b750f7314e187f8479f478ad9382d9a9045",
      "tree": "6a605bc71ee0e29300f0acf8494d983473a92207",
      "parents": [
        "6047633622328711cc6b23667c8d6381bae179bf"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Mar 13 14:18:25 2014 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Mar 19 09:58:37 2014 -0700"
      },
      "message": "Verify certificates\n\nb/13418320\n\nCherrypicked from 8a57d24c733b08da846b54d1adf029e606b5a5f3\nhttps://googleplex-android-review.git.corp.google.com/#/c/433309/\n\nChange-Id: I3052dd5f9ec057e700784cd713f6a7dab9ecfe7b\n"
    },
    {
      "commit": "b635b0e66b257ab442e230bca96afd5105cf6829",
      "tree": "ce27a9ac30a219e6895cffddd6c4f9ab873ca19a",
      "parents": [
        "43ca783effd99bba0e6e2dd6fe177a8888578ef8"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Feb 13 15:29:49 2014 -0800"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Mar 19 02:15:24 2014 +0000"
      },
      "message": "mediaplayer: keep more buffers with the BufferQueue\n\nChange OMX buffer allocation policy to allocate\nnBufferCountMin + what is required for the BQ.\n\nFor the BQ, try to allocate 2 additional buffers than\nthe minimum undequeued count.\n\nAlso account for the fact that BQ may return one less\nthan the actual minimum undequeued count.\n\nIn most cases the resulting number of buffers ends up\nbeing the same as with the previous policy, but we\nkeep more buffers with the BQ.\n\nChange-Id: I826db8bf7dd333b620299dba60bf1b81b228275d\nBug: 13170236"
    },
    {
      "commit": "43ca783effd99bba0e6e2dd6fe177a8888578ef8",
      "tree": "943ef354f3544d932b978b977f4525af65d9fa5b",
      "parents": [
        "bd3e2e03f3ab686c52982a9e50cae853128172cf"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Thu Feb 27 12:33:24 2014 -0800"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Mar 19 02:09:58 2014 +0000"
      },
      "message": "httplive: block-by-block fetch, decrypt, and parse ts files.\n\nBug: 12060952\nChange-Id: I695345081fe23961b9d0ef6db264885f914703ec"
    },
    {
      "commit": "bd3e2e03f3ab686c52982a9e50cae853128172cf",
      "tree": "08e6182c089c0377db4b5c0010b30a16d8f2e5ba",
      "parents": [
        "75dcf5101c90e31bbac95694d835b0e8f57ba720"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Mon Mar 17 13:01:41 2014 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Mon Mar 17 13:01:41 2014 -0700"
      },
      "message": "camera2: Fix segfault when using null availability listener\n\nICameraService::addListener / removeListener will now return BAD_VALUE\nif a null listener is used.\n\nBug: 12891434\nChange-Id: I9764110094d8fd42e22fcc8df3ef0e73c1b070e7\n"
    },
    {
      "commit": "75dcf5101c90e31bbac95694d835b0e8f57ba720",
      "tree": "6505dcd6cd450a84554a7d1a520692a5e3f02b36",
      "parents": [
        "70cc5bdc0fca3f67f3602f04152c29323cad99df",
        "8a57d24c733b08da846b54d1adf029e606b5a5f3"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Mar 14 22:27:17 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 14 22:27:17 2014 +0000"
      },
      "message": "Merge \"Verify certificates\" into klp-dev"
    },
    {
      "commit": "8a57d24c733b08da846b54d1adf029e606b5a5f3",
      "tree": "f5eb0f3cd77f6cc612a939c799fcfde24ea77a5e",
      "parents": [
        "6db20dcb54dad932a3ea2e3a5dca41fce5802eb4"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Mar 13 14:18:25 2014 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Mar 13 15:20:19 2014 -0700"
      },
      "message": "Verify certificates\n\nb/13418320\n\nChange-Id: I3052dd5f9ec057e700784cd713f6a7dab9ecfe7b\n"
    },
    {
      "commit": "70cc5bdc0fca3f67f3602f04152c29323cad99df",
      "tree": "a3eec354972f67724f83fc3fa89b7c3eecc655e7",
      "parents": [
        "67a10c522898d8223f5a2d389a846b7e2327148a",
        "7d3044d64294cca6fadd184648a57185e92cf5c6"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Mar 12 20:58:37 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 12 20:58:37 2014 +0000"
      },
      "message": "Merge changes Ic46e3069,Idc92716b into klp-dev\n\n* changes:\n  LiveSession: fix incorrect stream key (subtitle\"s\")\n  M3UParser: trim spaces when parsing comma separated codecs.\n"
    },
    {
      "commit": "67a10c522898d8223f5a2d389a846b7e2327148a",
      "tree": "6679af07c56ab225d3296611b5f7c3c6804b67c1",
      "parents": [
        "cf49a51ff59c3cd228d178d23252ac0d39d5a893",
        "ceeabe15f4e7bc73efdfcafed917202de9d515cb"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Mar 12 20:58:14 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 12 20:58:14 2014 +0000"
      },
      "message": "Merge \"httplive: clear access units before returning from seekTo.\" into klp-dev"
    },
    {
      "commit": "cf49a51ff59c3cd228d178d23252ac0d39d5a893",
      "tree": "8e8ae43c84f8752b567176fe8a9260cbdfa73f10",
      "parents": [
        "c69bc40a347c411751cb082b3eb4a82d976a68ec"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Feb 14 15:26:00 2014 -0800"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Mar 11 22:10:05 2014 +0000"
      },
      "message": "fix codec buffer leak in error handling when timestamp goes backward\n\ndon\u0027t touch codec buffer if we decided to drop a frame with bad pts\n\nBug: 11971963\nChange-Id: I9b4c56210f64258f1be257b14184381a1133e0d6\n(cherry picked from commit b63d2433350d56bda9f3477549086c90bb6d535e)\n"
    },
    {
      "commit": "c69bc40a347c411751cb082b3eb4a82d976a68ec",
      "tree": "ff5c9a55bcbaea04e90ba2e2c999b436287f5155",
      "parents": [
        "1c608ab33acab82d4a87f1abedcc99a623d1b53a",
        "8bd4d16aa5636e98522c07ae31236420788aa749"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Mar 11 22:09:39 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 11 22:09:40 2014 +0000"
      },
      "message": "Merge \"Cap pts gap between adjacent frames to specified value\" into klp-dev"
    },
    {
      "commit": "7d3044d64294cca6fadd184648a57185e92cf5c6",
      "tree": "b73678e2d1c1b1450ef69e509b2f3fd446560ec7",
      "parents": [
        "9f434cfd021f60e26baf589dc34bf3839b832d4d"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Mon Mar 10 17:27:15 2014 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Mar 11 14:08:18 2014 -0700"
      },
      "message": "LiveSession: fix incorrect stream key (subtitle\"s\")\n\nBug: 13402087\nChange-Id: Ic46e3069c6e41f90ead47cae84cbe0123d11002a\n"
    },
    {
      "commit": "9f434cfd021f60e26baf589dc34bf3839b832d4d",
      "tree": "9fa877e66c8a8f21b3d6ffd8558c366b74cff651",
      "parents": [
        "ceeabe15f4e7bc73efdfcafed917202de9d515cb"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Mon Mar 10 17:05:01 2014 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Mar 11 14:07:58 2014 -0700"
      },
      "message": "M3UParser: trim spaces when parsing comma separated codecs.\n\nBug: 13402087\nChange-Id: Idc92716bfefd6d1b0cb371d0d97d990d53288090\n"
    },
    {
      "commit": "ceeabe15f4e7bc73efdfcafed917202de9d515cb",
      "tree": "0a2f06f5ded1328650da00c74b9fa65b3e7b4ab4",
      "parents": [
        "bc69c8ba9a8fc881603669205a56d0ca1b572a95"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Mon Mar 03 15:08:27 2014 -0800"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Mar 11 14:01:32 2014 -0700"
      },
      "message": "httplive: clear access units before returning from seekTo.\n\nBug: 12060952\nChange-Id: I6a69a718c082501003ee9b78a948a2f8bbfbb14e\n"
    },
    {
      "commit": "8bd4d16aa5636e98522c07ae31236420788aa749",
      "tree": "62a6de2d5849abe614ad64ca600ee00b5df6b57c",
      "parents": [
        "bc69c8ba9a8fc881603669205a56d0ca1b572a95"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Jan 10 17:36:57 2014 -0800"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Mar 11 20:58:57 2014 +0000"
      },
      "message": "Cap pts gap between adjacent frames to specified value\n\n- In the scenario of cast mirroring, encoding could be suspended\n  for prolonged periods. Limiting the pts gap to workaround the\n  problem where encoder\u0027s rate control logic produces huge frames\n  after a long period of suspension.\n\n- Repeat last frame a couple more times to get better quality\n  on static scenes.\n\n- Fix the timestamp on repeat frames (it was not set)\n\nBug: 11971963\nChange-Id: I1d68ab3d269874bf3921aa429a985c5f63e428c7\n(cherry picked from commit 94ee4b708acfa941581160b267afb79192b1d816)\n"
    },
    {
      "commit": "1c608ab33acab82d4a87f1abedcc99a623d1b53a",
      "tree": "fe4962889d64e008cbc5077f4d1c4d44596a66e9",
      "parents": [
        "bc69c8ba9a8fc881603669205a56d0ca1b572a95"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Jan 17 16:29:59 2014 -0800"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Mar 11 20:58:04 2014 +0000"
      },
      "message": "save mGraphicBuffer pointer even when we\u0027re suspended\n\nBug: 12609966\nChange-Id: Ifd41fd973876da69039113fcaeacdccf39472b37\n(cherry picked from commit 49270665e7a20cd120724fc388da8b166ff0b4f1)\n"
    },
    {
      "commit": "bc69c8ba9a8fc881603669205a56d0ca1b572a95",
      "tree": "55c526333f2b036d4827170ff7250c99e30feaf3",
      "parents": [
        "6db20dcb54dad932a3ea2e3a5dca41fce5802eb4"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Tue Jan 21 12:15:56 2014 -0800"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Mon Mar 10 20:31:08 2014 +0000"
      },
      "message": "DO NOT MERGE: Camera: delete preview callback when preview size is changed\n\nPreview callback stream is left configured even the preview size is changed.\nThis makes the callback stream unnecessarily configured even in recording mode,\nwhich could cause distorted preview for some devices.\n\nBug: 12210027\nBug: 12591410\nChange-Id: If50cddfe5562e91aec1feb1760eccb82ddb21730"
    },
    {
      "commit": "6db20dcb54dad932a3ea2e3a5dca41fce5802eb4",
      "tree": "295ef5012f98e4b9251f28774cfb3f83710ea197",
      "parents": [
        "2f55c2c03b17795e94b325d402ac5b409e3ba0e8",
        "2048c2292c0466b184fb8f67c91f4d0ab9f5c3f3"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Mar 08 00:29:56 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Mar 08 00:29:56 2014 +0000"
      },
      "message": "Merge \"AudioTrack: When paused, return cached playback position\" into klp-dev"
    },
    {
      "commit": "2f55c2c03b17795e94b325d402ac5b409e3ba0e8",
      "tree": "a175500b5d2276dd12dfdd332b7f9d45ed021af1",
      "parents": [
        "5874615f26a6ba9cda8ba359e5035b21f6e3818b",
        "dcec903589ac651b9f558454392d286c13f743fb"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 07 20:22:38 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 07 20:22:38 2014 +0000"
      },
      "message": "Merge \"Simplify AudioTrack stream end and fix race\" into klp-dev"
    },
    {
      "commit": "dcec903589ac651b9f558454392d286c13f743fb",
      "tree": "e436514f1a63d4b26dad1c142912411c23e60578",
      "parents": [
        "5bc83fc352e5682ecafe61d77062c26ac8db4229"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Sep 20 09:28:56 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 07 11:09:51 2014 -0800"
      },
      "message": "Simplify AudioTrack stream end and fix race\n\nBug: 10994052\nChange-Id: Ib2e38e7a600bcffef8cbc68c1722e40fbbc7ea67\n"
    },
    {
      "commit": "5874615f26a6ba9cda8ba359e5035b21f6e3818b",
      "tree": "9b4d68587084bb252d47d565832ee5bd384fbc89",
      "parents": [
        "5bc83fc352e5682ecafe61d77062c26ac8db4229"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Feb 03 14:33:16 2014 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Mar 07 10:48:07 2014 -0800"
      },
      "message": "Allow for larger codec private data\n\nThis change adds support for multibyte sizes in the ESDS. Previously the\nMatroska extractor only supported single byte sizes, so codec private data\nhad to be less than 108 bytes, and would crash if it was bigger.\nb/12584090\n\nChange-Id: I9edfc2f687187d1e98bcfd2fe56576312435df3e\n"
    },
    {
      "commit": "5bc83fc352e5682ecafe61d77062c26ac8db4229",
      "tree": "f50dfaf51745a4de358b02eeaa41426d34f1f139",
      "parents": [
        "49ea13379fb15ddb73183ebafa3a377342ef932f",
        "be1195a6d5e6dd4299da344cf9905dd6a12dc4ef"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Mar 07 18:22:53 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 07 18:22:53 2014 +0000"
      },
      "message": "Merge \"Fix SIGABRT when playing mp4 file\" into klp-dev"
    },
    {
      "commit": "49ea13379fb15ddb73183ebafa3a377342ef932f",
      "tree": "67f916593db5990acd0ab5bee3d2e5941c98caf8",
      "parents": [
        "e0c3058a1d0953f4c85bfc964926cf5babb7dbac",
        "a1076eb135b74a32e9bdc1aed17aee4374eb41af"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Mar 07 02:35:50 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 07 02:35:50 2014 +0000"
      },
      "message": "Merge changes I787e1c05,I72d3a5e1,I0a5cc65f,I75fc2a25,I2c2be08d, ... into klp-dev\n\n* changes:\n  LiveSession: Use the actual, possibly redirected url as base in the M3U\n  M3UParser: Skip query strings when looking for the last slash in a URL\n  ChromiumHTTPDataSource: Keep track of the redirected URL\n  Initial HLS seamless switch implementation.\n  NuPlayer side support for seamless format switch.\n  LiveSession refactor\n  PlaylistFetcher: Add support for block-by-block decryption.\n  LiveSession: Add support for block-by-block fetchFile.\n"
    },
    {
      "commit": "e0c3058a1d0953f4c85bfc964926cf5babb7dbac",
      "tree": "3ddf04eaa4d8bd8c3cd9f87664bcadc71ef3c1a1",
      "parents": [
        "2613347d74c3f35bc6fda5df1c29c1119c22d432",
        "7e50e1c0c10cba1e27cafe581273adcadf93877d"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Mar 07 02:33:32 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 07 02:33:33 2014 +0000"
      },
      "message": "Merge \"AnotherPacketSource support to get latest buffered MetaData.\" into klp-dev"
    },
    {
      "commit": "2613347d74c3f35bc6fda5df1c29c1119c22d432",
      "tree": "7f97cbfd6f1f9d3183a8b8e0ffbdadae662a6372",
      "parents": [
        "909498b72d740e3151561fd4435ad0a329ec9c6e",
        "933a4d3339ebbcd34a7f97b9e7350ec74b5ec29c"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Mar 07 02:33:08 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 07 02:33:08 2014 +0000"
      },
      "message": "Merge \"Added support to query ACodec whether adaptive playback is enabled.\" into klp-dev"
    },
    {
      "commit": "909498b72d740e3151561fd4435ad0a329ec9c6e",
      "tree": "d9fcf6e8275b790e2ede30a30d4d4dab1afea97b",
      "parents": [
        "2338782d18d9bcc8197c63dbf205332a2a737440",
        "f7e34cfcb9d649989c8e391f23dde782d4931849"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Mar 07 02:32:34 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 07 02:32:34 2014 +0000"
      },
      "message": "Merge \"stagefright: use CODECS field in EXT-X_STREAM-INF as fallback\" into klp-dev"
    },
    {
      "commit": "2338782d18d9bcc8197c63dbf205332a2a737440",
      "tree": "9c3e2776df597444edfe3f5cfd52818b3f1c50ec",
      "parents": [
        "ad21a81af3e7d6b58002c9dce9c3278b6323e4a9",
        "b2be2f2e41d5502d79636b21cbad23f4f983bbd7"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Mar 07 02:32:25 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 07 02:32:25 2014 +0000"
      },
      "message": "Merge \"Fixed misplaced bracket for switch-case block.\" into klp-dev"
    },
    {
      "commit": "ad21a81af3e7d6b58002c9dce9c3278b6323e4a9",
      "tree": "aa95e33909367262856ec40abd57d040f2b2db1a",
      "parents": [
        "b74b209862cbcbab6053cf4a43bbc16940aaafd2",
        "e62d20268de87f63083896b5eef083d541078322"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Mar 07 02:32:09 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 07 02:32:09 2014 +0000"
      },
      "message": "Merge \"stagefright: Fix issue with tracking media format in packet source\" into klp-dev"
    },
    {
      "commit": "b74b209862cbcbab6053cf4a43bbc16940aaafd2",
      "tree": "8c60c5ec50a62f36d0d8a79c4d4ac816cc4618a7",
      "parents": [
        "a11111f9135c98cf4247bbd1a61d7df3053e549e",
        "6708a45ba1b5eacf583d5e80b2075b68940fe0ab"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Mar 07 02:31:50 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 07 02:31:51 2014 +0000"
      },
      "message": "Merge \"stagefright: Fix bugs in playlist fetcher logic\" into klp-dev"
    },
    {
      "commit": "a1076eb135b74a32e9bdc1aed17aee4374eb41af",
      "tree": "f071cede95394ffcdde758cb5dbf8b16be97cb8c",
      "parents": [
        "75d03185ac7be95c700f3f375080989e5de03ef6"
      ],
      "author": {
        "name": "Martin Storsjo",
        "email": "martin@martin.st",
        "time": "Fri Nov 22 17:57:31 2013 +0200"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Mar 06 18:11:27 2014 -0800"
      },
      "message": "LiveSession: Use the actual, possibly redirected url as base in the M3U\n\nThis fixes playback of HLS streams where the M3U playlists use\nrelative paths and the main playlist is opened via a redirect.\n\nBug: 13174301\nChange-Id: I787e1c050daddc566be4c8e3f84803d3f91eec46\n"
    },
    {
      "commit": "75d03185ac7be95c700f3f375080989e5de03ef6",
      "tree": "5bb078ad258d93dbb3e024e575fafb142b229ffa",
      "parents": [
        "e2492dc46f5476e3abc617ee21d74f44198591dd"
      ],
      "author": {
        "name": "Martin Storsjo",
        "email": "martin@martin.st",
        "time": "Fri Nov 22 17:05:05 2013 +0200"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Mar 06 18:11:27 2014 -0800"
      },
      "message": "M3UParser: Skip query strings when looking for the last slash in a URL\n\nBug: 13174301\nChange-Id: I72d3a5e11fef9bbd75b291bc490c9cab1dce58da\n"
    },
    {
      "commit": "2048c2292c0466b184fb8f67c91f4d0ab9f5c3f3",
      "tree": "126fcbfff298dd8e0f8ddb834c93c8850b8654ac",
      "parents": [
        "a11111f9135c98cf4247bbd1a61d7df3053e549e"
      ],
      "author": {
        "name": "Haynes Mathew George",
        "email": "hgeorge@codeaurora.org",
        "time": "Wed Jan 08 13:59:53 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 06 18:00:39 2014 -0800"
      },
      "message": "AudioTrack: When paused, return cached playback position\n\nAn offload output can be re-used between two audio tracks having\nthe same configuration. A timestamp query for a paused track\nwhile the other is running would return an incorrect time.\nTo fix this, cache the playback position on a pause() and return\nthis time when requested until the track is resumed.\n\nBug: 12826612.\nChange-Id: Ia42b8b8fd2ba8993dfcc9abca72da48d71d78d74\n"
    },
    {
      "commit": "be1195a6d5e6dd4299da344cf9905dd6a12dc4ef",
      "tree": "b7bdb8e6224689ad2a745699d5c16e59df93e02e",
      "parents": [
        "880413f7923ec77467243e15dc34d4af4f8064f9"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Nov 25 08:39:56 2013 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Mar 06 17:42:21 2014 -0800"
      },
      "message": "Fix SIGABRT when playing mp4 file\n\nIf the track duration was shorter than the segment duration, the calculated\nencoder padding would be negative, resulting in a crash.\nb/11823061\nhttps://code.google.com/p/android/issues/detail?id\u003d62610\n\nChange-Id: I3989ad88caea38d212b61355c15aec13382c6116\n"
    },
    {
      "commit": "a11111f9135c98cf4247bbd1a61d7df3053e549e",
      "tree": "e0603972793777c7a190dd2a1c3c76336098a064",
      "parents": [
        "ed4d8b28b8ee5a3e4ebc8f73bf4dc86c75a74258",
        "a413dd621966044753a8fa1f57c76d847b6f4bec"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Mar 07 01:40:59 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 07 01:40:59 2014 +0000"
      },
      "message": "Merge changes Id28b35fd,Ie4e64977,I2950f31e into klp-dev\n\n* changes:\n  DO NOT MERGE: Camera: fix focusArea wrong indexing issue\n  DO NOT MERGE: camera2: Fix race with stream deletion during disconnect.\n  DO NOT MERGE: camera2/3: Add protection for still capture path\n"
    },
    {
      "commit": "ed4d8b28b8ee5a3e4ebc8f73bf4dc86c75a74258",
      "tree": "93a6b8673072ca56e0e42e67859a7943915cd016",
      "parents": [
        "880413f7923ec77467243e15dc34d4af4f8064f9",
        "f590f948e6c0fe3c54008dd7802fd513f127792d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Mar 07 01:09:33 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 07 01:09:34 2014 +0000"
      },
      "message": "Merge \"stagefright: do not offload LD-AAC decoding\" into klp-dev"
    },
    {
      "commit": "e2492dc46f5476e3abc617ee21d74f44198591dd",
      "tree": "f7da98c8c6600cd3db8c2f96219626ce8a2ec63e",
      "parents": [
        "777ee5ed736c8f6c3f7d196ea022f7432bfd23e1"
      ],
      "author": {
        "name": "Martin Storsjo",
        "email": "martin@martin.st",
        "time": "Fri Nov 22 18:11:58 2013 +0200"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Mar 06 16:27:19 2014 -0800"
      },
      "message": "ChromiumHTTPDataSource: Keep track of the redirected URL\n\nThis makes the code actually match an existing comment in\nDrmInitialization, which claimed that mURI was the redirected\nURL and not the original one.\n\nBug: 13174301\nChange-Id: I0a5cc65f520f1482ff91320ae78af84a8a681ee3\n"
    },
    {
      "commit": "777ee5ed736c8f6c3f7d196ea022f7432bfd23e1",
      "tree": "90c59cbca76978fb5fc9961cc19f7a21dd5aa499",
      "parents": [
        "0523da8f16557a85395da86ab76be6d8cb771da0"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Thu Feb 20 13:07:26 2014 -0800"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Mar 06 16:27:15 2014 -0800"
      },
      "message": "Initial HLS seamless switch implementation.\n\nBug: 11854054\nChange-Id: I75fc2a258111295039ac13cc37e407df25891dd2\n"
    },
    {
      "commit": "0523da8f16557a85395da86ab76be6d8cb771da0",
      "tree": "41e633ee427fcec6193782b8cd1766089d5e20ed",
      "parents": [
        "6c8495c8f1ccc35db972ee7ac0dbb8baf5843548"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Thu Jan 23 16:18:22 2014 -0800"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Mar 06 16:26:58 2014 -0800"
      },
      "message": "NuPlayer side support for seamless format switch.\n\nAvoid reinstantiating decoder if seamless format switch is supported.\n\nBug: 11854054\nChange-Id: I2c2be08d6da90cc835ec747d04a76db2313dfc7c\n"
    },
    {
      "commit": "6c8495c8f1ccc35db972ee7ac0dbb8baf5843548",
      "tree": "0c2a6ee4cf3288f7797a8c3fa8e22740123ff124",
      "parents": [
        "2cd94583868b775a548233a4f7cd1d988fc6344f"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Fri Feb 14 12:21:50 2014 -0800"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Mar 06 16:26:55 2014 -0800"
      },
      "message": "LiveSession refactor\n\nBug: 11854054\nChange-Id: Ia91dce109835e042f72934376d4838b4cc72cb10\n"
    },
    {
      "commit": "2cd94583868b775a548233a4f7cd1d988fc6344f",
      "tree": "3c61506c66f0f6f5140f4cda1dd4822922b052c8",
      "parents": [
        "822a489e595336be447f47f5c2a051e8fdd1cdff"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Thu Feb 06 14:25:25 2014 -0800"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Mar 06 16:26:49 2014 -0800"
      },
      "message": "PlaylistFetcher: Add support for block-by-block decryption.\n\nBug: 11854054\nChange-Id: Ifd3f3369275889e716b360087b5b60d01635b578\n"
    },
    {
      "commit": "822a489e595336be447f47f5c2a051e8fdd1cdff",
      "tree": "6cfaa5019c19b8a4cec2fd77857a06c5529b228f",
      "parents": [
        "7e50e1c0c10cba1e27cafe581273adcadf93877d"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Thu Feb 06 14:01:30 2014 -0800"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Mar 06 16:26:45 2014 -0800"
      },
      "message": "LiveSession: Add support for block-by-block fetchFile.\n\nBug: 11854054\nChange-Id: I4025ba7fab8fab2e0c720f73894e908fd98a43d8\n"
    },
    {
      "commit": "7e50e1c0c10cba1e27cafe581273adcadf93877d",
      "tree": "fa821ccd7fc24142651b79d757ee0f6fe2243167",
      "parents": [
        "933a4d3339ebbcd34a7f97b9e7350ec74b5ec29c"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Thu Jan 23 14:25:32 2014 -0800"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Mar 06 16:26:37 2014 -0800"
      },
      "message": "AnotherPacketSource support to get latest buffered MetaData.\n\nBug: 11854054\nChange-Id: Ib3b6e0984036082bf3c4eb7901a2b29be52fdd29\n"
    },
    {
      "commit": "933a4d3339ebbcd34a7f97b9e7350ec74b5ec29c",
      "tree": "bd6e305a5ba2d5cb84e6d90779a36b9f0dc457f9",
      "parents": [
        "f7e34cfcb9d649989c8e391f23dde782d4931849"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Thu Jan 23 15:26:43 2014 -0800"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Mar 06 16:26:30 2014 -0800"
      },
      "message": "Added support to query ACodec whether adaptive playback is enabled.\n\nBug: 11854054\nChange-Id: I6b0308aa8550c643706959277e46dad586c37297\n"
    },
    {
      "commit": "f7e34cfcb9d649989c8e391f23dde782d4931849",
      "tree": "3a836aaa2a4940547dd9f116e6fe85907d62940e",
      "parents": [
        "b2be2f2e41d5502d79636b21cbad23f4f983bbd7"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Thu Jan 23 15:00:53 2014 -0800"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Mar 06 16:26:01 2014 -0800"
      },
      "message": "stagefright: use CODECS field in EXT-X_STREAM-INF as fallback\n\nUse the CODECS field in EXT-X-STREAM-INF as a viable fallback for identifying\navailable streams in a variant playlist.\n\nBug: 11854054\nChange-Id: I5011809dc7c56220b023eb1a16f2d6a392ddd6f1\n"
    },
    {
      "commit": "b2be2f2e41d5502d79636b21cbad23f4f983bbd7",
      "tree": "2212d77b4622295440e988f0c06cc57439a9bd26",
      "parents": [
        "e62d20268de87f63083896b5eef083d541078322"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Thu Jan 23 14:16:32 2014 -0800"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Mar 06 16:25:13 2014 -0800"
      },
      "message": "Fixed misplaced bracket for switch-case block.\n\nBug: 11854054\nChange-Id: I66b410e1e19601ad65d8357bda4c0c58e2dc15dc\n"
    },
    {
      "commit": "e62d20268de87f63083896b5eef083d541078322",
      "tree": "fce776fcf4d2eb288e7eae863932ae980c95b128",
      "parents": [
        "6708a45ba1b5eacf583d5e80b2075b68940fe0ab"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Dec 17 14:10:46 2013 -0800"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Mar 06 16:25:11 2014 -0800"
      },
      "message": "stagefright: Fix issue with tracking media format in packet source\n\nMedia format in AnotherPacketSource is now tracked across discontinuities.\nThis fixes a bug where format was set on queueAccessUnit and cleared on\ndequeueAccessUnit, thereby allowing it to remain cleared.\n\nChange-Id: I20975a630443f4a223a2b4344e8244f34b9560b9\nSigned-off-by: Lajos Molnar \u003clajos@google.com\u003e\nBug: 12060952\n"
    },
    {
      "commit": "6708a45ba1b5eacf583d5e80b2075b68940fe0ab",
      "tree": "3d5956682c42074b73f380f12191a70e2d4527f3",
      "parents": [
        "880413f7923ec77467243e15dc34d4af4f8064f9"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Mon Dec 16 10:16:32 2013 -0800"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Mar 06 16:19:38 2014 -0800"
      },
      "message": "stagefright: Fix bugs in playlist fetcher logic\n\n1. Improve start time: start playback as soon as the target duration\nor 10s was buffered.\n2. Select playlist monitor time based on target duration to avoid\ncontinuously missing the boat.\n3. If \"we miss the boat\" we still must request a safe sequence\nnumber (last - 3)\n\nChange-Id: Ie99c360ac67b152ad9af19e9c6e520016f67e4e3\nSigned-off-by: Lajos Molnar \u003clajos@google.com\u003e\nBug: 12060952\n"
    },
    {
      "commit": "880413f7923ec77467243e15dc34d4af4f8064f9",
      "tree": "c7171f3ba21757ed6bfd545bfd0967610f18ab4e",
      "parents": [
        "3b7ddf83db2d11c08116a6476c0f11e71bd72ba4",
        "3c836e7882e88de42e0e600627de433b61e78621"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 06 19:21:49 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 06 19:21:49 2014 +0000"
      },
      "message": "Merge \"stagefright: fix offloading HE-AAC sampling rate.\" into klp-dev"
    },
    {
      "commit": "f590f948e6c0fe3c54008dd7802fd513f127792d",
      "tree": "1bd64930d69158418ac7c54c9d9a9b3a16dab973",
      "parents": [
        "3c836e7882e88de42e0e600627de433b61e78621"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 06 11:51:42 2013 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 06 11:16:08 2014 -0800"
      },
      "message": "stagefright: do not offload LD-AAC decoding\n\nFor now, do not offload LD and ELD AAC decoding because there\nis no way to know if it is supported by the audio DSP implementation.\nThe longer term fix will be to have mapMimeToAudioFormat() use the\naudio object type in track metadata to refine the AAC format and the\naudio HAL list supported AAC profiles.\n\nBug: 11697128.\n\nChange-Id: Iaa88ecf3f4ae42ad48c1b42a9b007dd80eb88147\n"
    },
    {
      "commit": "3b7ddf83db2d11c08116a6476c0f11e71bd72ba4",
      "tree": "3e3ef2a9bdadd3c7df3de6ea47921588b90c7a84",
      "parents": [
        "d812fc012298470a1b8120e6d60a24b0b1d48047"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Feb 07 12:05:34 2014 -0800"
      },
      "committer": {
        "name": "Vineeta Srivastava",
        "email": "vsrivastava@google.com",
        "time": "Thu Mar 06 09:22:51 2014 -0800"
      },
      "message": "set AAC MPEG version to MPEG-2\n\nwifi display play spec only allows MPEG-2 AAC.\n\nBug: 12747927\nChange-Id: Ic96d27ce57f5c8e7da55e43b38f629b5c7333817\n"
    },
    {
      "commit": "3c836e7882e88de42e0e600627de433b61e78621",
      "tree": "8ba46424c182f6d66927b3bd90a1ebfe4c30e3ab",
      "parents": [
        "d812fc012298470a1b8120e6d60a24b0b1d48047"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 06 11:16:54 2013 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 05 18:44:16 2014 -0800"
      },
      "message": "stagefright: fix offloading HE-AAC sampling rate.\n\nFix HE AAC SBR sampling rate reading for explicit\nsignaling.\n\nBug: 11697128.\nChange-Id: Ifec0ab9d48d9293f6774ec1efd9da9445994cb7c\n"
    },
    {
      "commit": "a413dd621966044753a8fa1f57c76d847b6f4bec",
      "tree": "3205bb3eb789cc21cf2b7f5d1344c21d61e86d2b",
      "parents": [
        "6706009fa8294c8cdab1cdab4585f00d42df483e"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Wed Jan 29 08:52:01 2014 -0800"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Mar 05 15:10:43 2014 -0800"
      },
      "message": "DO NOT MERGE: Camera: fix focusArea wrong indexing issue\n\nBug: 12304559\nChange-Id: Id28b35fdd9697c1ec3365f617996801965de8bd0\n"
    },
    {
      "commit": "6706009fa8294c8cdab1cdab4585f00d42df483e",
      "tree": "55fcdca48c005adaa2d25cc3e87715345e31e5ce",
      "parents": [
        "81d754306ecd4a587459015da5168270c2a5c167"
      ],
      "author": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Thu Dec 05 11:00:37 2013 -0800"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Mar 05 14:31:30 2014 -0800"
      },
      "message": "DO NOT MERGE: camera2: Fix race with stream deletion during disconnect.\n\nBug: 11856804\n\n- Shutdown order in Camera2Client allows a stream to be\n  deleted before the corresponding processing thread has\n  quit.  This can result in updates being called on the\n  processor thread without a valid stream.\n\nChange-Id: Ie4e649771f4321498659211f2a37ed89a6d956c4\n"
    },
    {
      "commit": "81d754306ecd4a587459015da5168270c2a5c167",
      "tree": "40e203771b86181b96aaf6022532e7aadf71e238",
      "parents": [
        "85b3013e06e8fe7802fe6259ecac80261e834332"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Tue Nov 26 15:11:05 2013 -0800"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Mar 05 14:29:40 2014 -0800"
      },
      "message": "DO NOT MERGE: camera2/3: Add protection for still capture path\n\nJpeg stream in JpegProcessor could be deleted while process new capture is\nongoing, which unsafe to access a dead consumer endpoint.\nBug: 9316454\nChange-Id: I2950f31ea28d0ba01f08502e2e3ba452bf8bb818\n"
    },
    {
      "commit": "d812fc012298470a1b8120e6d60a24b0b1d48047",
      "tree": "bf3c68ea3a908a0792e766714cd9d54f98ebfb46",
      "parents": [
        "88876fb4eb8365343f2a9ca0e8f53148ca38b845"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Dec 03 09:06:43 2013 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 05 14:10:41 2014 -0800"
      },
      "message": "Increase kFastTrackMultiplier from 1 to 2\n\nBug: 11967381\nChange-Id: Iedec06280aa745d9df5d661f4916940cede9c191\n"
    },
    {
      "commit": "88876fb4eb8365343f2a9ca0e8f53148ca38b845",
      "tree": "7891ad7f6e93d856f4fc8b5184bf2d8c95a84ead",
      "parents": [
        "145b727b4cce8b1b8d161612f30d12bbdfc8d134"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jan 27 18:13:39 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 05 14:07:43 2014 -0800"
      },
      "message": "AudioTrack: fix obtainBuffer timeout calculation\n\nAudioTrack::obtainBuffer() passes a pointer to a timeout\nvariable that has gone out of scope when calling\nClientProxy::obtainBuffer().\n\nSame fix for AudioRecord.\n\nBug: 11968591.\nChange-Id: I5b3d0d86ed2bd8c0412eb2432b1ab519d70efce9\n"
    },
    {
      "commit": "145b727b4cce8b1b8d161612f30d12bbdfc8d134",
      "tree": "96caa4aef35c2d016a89fbf6a8a509fc2aa10906",
      "parents": [
        "281dd4e13309973dbb85bce531f884237e0d8fb0"
      ],
      "author": {
        "name": "Haynes Mathew George",
        "email": "hgeorge@codeaurora.org",
        "time": "Fri Dec 06 11:31:57 2013 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 05 14:05:27 2014 -0800"
      },
      "message": "libstagefright: Delay release of wakelock in TimedEventQueue\n\nDelay release of wakelock in the TimedEventQueue to\nafter an event has been processed.\nThis ensures AP shutdown does not happen while an event\nis ready but hasn\u0027t been processed yet.\n\nBug: 11976087.\nChange-Id: I9bce83b9ff0f2b4d174a53c95e5b0f135b5ccc70\n"
    },
    {
      "commit": "281dd4e13309973dbb85bce531f884237e0d8fb0",
      "tree": "f58a048f67a81b56c07593f727c92a445b249f4b",
      "parents": [
        "abab1c33caf0982c11713e6d64d60105dcbc8ab7"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 20 17:36:01 2013 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 05 14:03:30 2014 -0800"
      },
      "message": "audioflinger: fix static track end detection\n\nIf a static track is not a fast track,\nprepareTracks_l() must rely on framesReady() to\ndetect end of buffer and remove the track from the active\ntrack list.\nFailing to do so results in the track staying active but\nnot processed by the mixer because in underrun. This leaves the\nmix buffer content uninitialized and causes the effect process\nfunction to accumulate its output onto undefined data.\n\nBug: 12013676.\nChange-Id: I4b0819a9d93141ac3307b8786fc6a451dd585220\n"
    },
    {
      "commit": "abab1c33caf0982c11713e6d64d60105dcbc8ab7",
      "tree": "fed18cdc3a9543b56ffeaf73db55d0d20ee937e9",
      "parents": [
        "d0115d8c4db2f337030dea706bc0a434c4a03ed6"
      ],
      "author": {
        "name": "Gaurav Kumar",
        "email": "gaurav.kumar@broadcom.com",
        "time": "Mon Jan 06 10:57:18 2014 +0530"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 05 13:59:28 2014 -0800"
      },
      "message": "AudioMixer: Remove tracks from enabledTracks after reseting outTemp\n\nIf any track goes through AudioMixer::process__genericNoResampling, and\nits getnextbuffer returns NULL, Then that track is removed by AudioMixer\nfrom enabledTracks.\n\nThus if all tracks getnextbuffer return NULL, Then this function doesn\u0027t\nreset outTemp and last buffer in AudioFlinger\u0027s mMixBuffer will be\nrepeated and noise is observed.\n\nRemove tracks from enabledTracks after reseting outTemp to zero, so that\nprocess__genericNoResampling will reset outTemp and noise won\u0027t appear.\n\nBug: 12450065\n\nChange-Id: I28996d425838728955f01eb1a00acf6e6dc2dea1\nSigned-off-by: Gaurav Kumar \u003cgaurav.kumar@broadcom.com\u003e\nSigned-off-by: Pierre Couillaud \u003cpierre@broadcom.com\u003e\n"
    },
    {
      "commit": "d0115d8c4db2f337030dea706bc0a434c4a03ed6",
      "tree": "239450c60bc4cb8519edeb8985dbc601fe51c652",
      "parents": [
        "7e92abeafb184e8a34213d7149592e95a72601b0"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 26 17:16:50 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 05 12:17:54 2014 -0800"
      },
      "message": "update offloaded audio track sampling rate\n\nAudioPlayer must read the sampling rate from offloaded audio sinks\nwhenever a new time position is computed as the decoder can update\nthe sampling rate on the fly.\n\nBug: 12823955.\n\nChange-Id: I997e5248cfd4017aeceb4e11689324ded2a5bc88\n"
    },
    {
      "commit": "7e92abeafb184e8a34213d7149592e95a72601b0",
      "tree": "09ec6f7fdfdc0b9564660f134bd6a460a4480d85",
      "parents": [
        "85b3013e06e8fe7802fe6259ecac80261e834332"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Nov 22 09:29:56 2013 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 05 12:12:01 2014 -0800"
      },
      "message": "audioflinger: fix offload write buffer offset\n\nFix current audio HAL write buffer offset calculation\nwhich assumes that the frame size is a multiple of 2.\n\u0027\nBug: 12823725.\n\nChange-Id: I0195ed5cfef225a6f114e7dd405a02680bb7254e\n"
    },
    {
      "commit": "85b3013e06e8fe7802fe6259ecac80261e834332",
      "tree": "477c3b2bddfc872ba4f012796f0e3a8d5448f059",
      "parents": [
        "50c3157c5a3e0617be77716beff1ae8801d8a72f"
      ],
      "author": {
        "name": "jpadmana",
        "email": "jayashree.r.padmanaban@intel.com",
        "time": "Thu Nov 14 17:20:52 2013 +0530"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 04 16:10:47 2014 -0800"
      },
      "message": "fix deadlock issues that arise when there are simultaneous\neffect control interface calls to proxy and to\nnon sub-effect wrappers(eg., bundlewrapper) from audioflinger\nAlso, return NO_ERROR when CMD_OFFLOAD succeeds\n\nWhenever there are parallel calls to proxy and non sub-effects wrappers,\nsome of the calls are not completed. This is due to deadlock arsing out\nof Proxy waiting for the subeffect call to return and subeffect waiting\nfor proxy to release lock.\nThe call flow is changed to a cleaner and simple one - Proxy gets the\naeli(effect library info) of subeffects during the EffectGetSubEffects()\ncall. Therby, proxy will manage the sub effects by itself rather than\ngoing through effects factory.\n\nChange-Id: If4b259da5776f151c1e81a78a0239d342046d923\nSigned-off-by: jpadmana \u003cjayashree.r.padmanaban@intel.com\u003e\nBug: 12424044\n"
    },
    {
      "commit": "50c3157c5a3e0617be77716beff1ae8801d8a72f",
      "tree": "7b550f2609351c85fc70658220f14e3a5737288e",
      "parents": [
        "e0cd1051ed9fea0629745c29020516ae62298461"
      ],
      "author": {
        "name": "Haynes Mathew George",
        "email": "hgeorge@codeaurora.org",
        "time": "Tue Dec 03 21:26:02 2013 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 04 16:03:12 2014 -0800"
      },
      "message": "audioflinger: check for condition before waiting\n\nAsyncCallbackThread must check for any condition that\nwas already been satisfied before waiting.\n\nBug: 11824817\nChange-Id: I04683a1f355de4f440106cab47fd916aa39d5e35\n"
    },
    {
      "commit": "e0cd1051ed9fea0629745c29020516ae62298461",
      "tree": "03273a98e8fc21f916bd0de1163913c51171b953",
      "parents": [
        "e010f65e6337267cb15f8894c950a3f64370dd36"
      ],
      "author": {
        "name": "Haynes Mathew George",
        "email": "hgeorge@codeaurora.org",
        "time": "Fri Dec 27 16:09:28 2013 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 04 15:58:25 2014 -0800"
      },
      "message": "audioflinger: update track ready condition\n\nSignal track ready if the track isStopping().\n\nBug: 12423190\nChange-Id: I95e14905df10ebf301e398263478c8ca25d7e2ce\n"
    },
    {
      "commit": "e010f65e6337267cb15f8894c950a3f64370dd36",
      "tree": "e631dc8a6690f18c6b977272404abe1df70cc30c",
      "parents": [
        "a4f24ff9b239300b4bb2098c1413c0a60edc2d7e"
      ],
      "author": {
        "name": "Haynes Mathew George",
        "email": "hgeorge@codeaurora.org",
        "time": "Fri Dec 13 15:40:13 2013 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 04 15:36:20 2014 -0800"
      },
      "message": "audioflinger: Fix for a deadlock in track creation\n\nAudioFlinger enters a deadlock (with itself) on trying to free a\nRecordTrack or Track object that failed initialization. Clear this\nbad object from the caller instead.\n\nBug: 12423233\nChange-Id: I926f2beb922a70f6924e593e2bbf1a5b5df85b16\n"
    },
    {
      "commit": "45659516fd605839cd3f5951c47f8be1beba161a",
      "tree": "fceabb31d6b5c326dc35e40d4a6afc2fdeb12f20",
      "parents": [
        "9d393c86267da4a9b58ffe3b715e5617d95c188a"
      ],
      "author": {
        "name": "Praveen Chavan",
        "email": "pchavan@codeaurora.org",
        "time": "Tue Nov 12 02:32:57 2013 -0800"
      },
      "committer": {
        "name": "jeepers007",
        "email": "jstn.haggard@gmail.com",
        "time": "Sat Jan 04 19:43:46 2014 -0800"
      },
      "message": "stagefright: provide a custom key to prefer adaptive playback\n\nProvide a custom key \"prefer-adaptive-playback\" that can be\nset in MediaFormat by java apps or by Native players to\nprefer adaptive-playback over dynamic buffering\n\nChange-Id: Ic02fc9f1d68fd9803ec154498a86e2537efcce85\n"
    },
    {
      "commit": "9d393c86267da4a9b58ffe3b715e5617d95c188a",
      "tree": "c1dd33bce2c21cee7b7f603fdb5f500d4244265c",
      "parents": [
        "58b500eda7e0c444c40e50612e217fdb11c71299"
      ],
      "author": {
        "name": "Gurudatta Bhakte",
        "email": "gurudattax.bhakte@intel.com",
        "time": "Fri Jul 27 19:21:34 2012 +0530"
      },
      "committer": {
        "name": "jeepers007",
        "email": "jstn.haggard@gmail.com",
        "time": "Sat Jan 04 19:43:19 2014 -0800"
      },
      "message": "FLAC coded file does not play (single metadata block files)\n\nFLAC files which has the last metadata block flag set in\nSTREAMINFO were not playing. Sniff of FLAC is modified to\naccomodate this set flag.\n\nChange-Id: I76f216cc2cde6e10958324afbc704fc3e5a0e2bf\nAuthor: Gurudatta Bhakte \u003cgurudattax.bhakte@intel.com\u003e\nSigned-off-by: Gurudatta Bhakte \u003cgurudattax.bhakte@intel.com\u003e\nSigned-off-by: Shuo Gao \u003cshuo.gao@intel.com\u003e\nSigned-off-by: Bruce Beare \u003cbruce.j.beare@intel.com\u003e\nSigned-off-by: Jack Ren \u003cjack.ren@intel.com\u003e\nAuthor-tracking-BZ: 32421\n"
    },
    {
      "commit": "58b500eda7e0c444c40e50612e217fdb11c71299",
      "tree": "7ebc83244692fbf88a4e1c2eb623f0750830b653",
      "parents": [
        "5b6efa8e098d50d88e3183d5f14aad33a9abf87d"
      ],
      "author": {
        "name": "Krishnankutty Kolathappilly",
        "email": "kkolat@codeaurora.org",
        "time": "Wed Nov 06 18:19:28 2013 -0800"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Fri Dec 20 09:04:28 2013 -0500"
      },
      "message": "libstagefright: Fix intermittent pause during tunnel A-V playback\n\n-Media time is used in onVideoEvent for A-V sync. In offload\n playback we only use realtime(time from DSP).\n-Media time should be same as real time. If media time is not\n updated with the real time value A-V sync issues are seen.\n-Update media time to real time value to avoid intermittent pause\n during playback.\n\nCRs-Fixed: 572060\nChange-Id: Ib1123b7554f3508230ca67cd20a68fa32c753057\n"
    },
    {
      "commit": "5b6efa8e098d50d88e3183d5f14aad33a9abf87d",
      "tree": "74a6b04fc23c8d815d960de0043bc8a916f2f92c",
      "parents": [
        "936cd9de3e44756a9156347574d2b260c01b2d93"
      ],
      "author": {
        "name": "Krishnankutty Kolathappilly",
        "email": "kkolat@codeaurora.org",
        "time": "Tue Nov 05 15:08:21 2013 -0800"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Fri Dec 20 09:04:17 2013 -0500"
      },
      "message": "libstagefright: Fix timestamp corruption during offload playback\n\n-Timestamp gets corrupted at EOS of offload playback.\n-This happens because the number of samples played returned from\n HAL could be zero if playback has reached EOS and if compress\n handle is invalid / closed.\n-If HAL has posted EOS  avoid the update of real time and media\n time with the timestamp from HAL.\n\nCRs-Fixed: 570368\nChange-Id: I5ea75f4eda1df0c110bce780e50e3c8ae9b4cd85\n"
    },
    {
      "commit": "936cd9de3e44756a9156347574d2b260c01b2d93",
      "tree": "8bdb13a45e882f5c7e15935398743250fa85d442",
      "parents": [
        "f5e7cc5724fdb06b98c6682b5b3cf936227a1750"
      ],
      "author": {
        "name": "Lorenzo M",
        "email": "djmesias@yahoo.es",
        "time": "Wed Dec 18 12:41:32 2013 +0100"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Fri Dec 20 08:58:31 2013 -0500"
      },
      "message": "stagefright: Fix \"add an extra buffer to ANW\u0027s BUfferQueue\"\n\nOMAP devices, such as maguro, don\u0027t work properly with an extra buffer.\nThis fixes the commit 2bce3e06f60a8d60c81261b0438d0cc6f2bbe7d1.\n\nChange-Id: Id78442831e95b6021ea8b6d3648678db094f4565\n"
    },
    {
      "commit": "f5e7cc5724fdb06b98c6682b5b3cf936227a1750",
      "tree": "9fa6b0d034b0dfd5cd68c12bb4512a0665aa4676",
      "parents": [
        "574d7be550cd6475d1b24f8fac5e73c8292cd3cc"
      ],
      "author": {
        "name": "Praveen Chavan",
        "email": "pchavan@codeaurora.org",
        "time": "Fri Nov 22 12:55:01 2013 -0800"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Fri Dec 20 08:58:20 2013 -0500"
      },
      "message": "stagefright: add an extra buffer to ANW\u0027s BUfferQueue\n\nAdd an extra buffer to ensure video player has a free buffer to\ndequeue rather than wait for the queued buffer to be displayed.\nEnable logs to indicate number of buffers allocated.\n\nNOTE: This is not needed for 30fps content on 60fps panel, But\nmaking this change regardless for all framerates till root-cause\nis identified in SF\n\nChange-Id: Id1048d7a104b2a75613dda8b9cf166e59bc4bb04\n"
    },
    {
      "commit": "574d7be550cd6475d1b24f8fac5e73c8292cd3cc",
      "tree": "a39eb1eff7d08f9c0b7ba8bbdd33e9903ffecfcb",
      "parents": [
        "b5d257e31e992e428f20a43f4cdcde0fa7fb72f8",
        "126a630374323c18cda87cca66e8ed740fb5c54b"
      ],
      "author": {
        "name": "Ricardo Cerqueira",
        "email": "cyanogenmod@cerqueira.org",
        "time": "Fri Dec 06 02:42:19 2013 +0000"
      },
      "committer": {
        "name": "Ricardo Cerqueira",
        "email": "cyanogenmod@cerqueira.org",
        "time": "Fri Dec 06 02:42:19 2013 +0000"
      },
      "message": "Merge tag \u0027android-4.4.1_r1\u0027 into HEAD\n\nAndroid 4.4.1 Release 1\n\nConflicts:\n\tmedia/libmediaplayerservice/StagefrightRecorder.cpp\n\tmedia/libstagefright/AudioSource.cpp\n\tmedia/libstagefright/AwesomePlayer.cpp\n\tmedia/libstagefright/DataSource.cpp\n\tmedia/libstagefright/OMXCodec.cpp\n\tservices/audioflinger/RecordTracks.h\n\tservices/audioflinger/Threads.cpp\n\tservices/audioflinger/Threads.h\n\tservices/audioflinger/Tracks.cpp\n\nChange-Id: Ie17f9030275faae7a0f907b8ccc3195a7657742d\n"
    },
    {
      "commit": "b5d257e31e992e428f20a43f4cdcde0fa7fb72f8",
      "tree": "9f4dcd033aec64e173bbfaf74e5ff9a94942353f",
      "parents": [
        "555e28055910e71b740feb5dd3d3e92e7286db00"
      ],
      "author": {
        "name": "Ricardo Cerqueira",
        "email": "cyanogenmod@cerqueira.org",
        "time": "Wed Dec 04 17:01:37 2013 +0000"
      },
      "committer": {
        "name": "Ricardo Cerqueira",
        "email": "cyanogenmod@cerqueira.org",
        "time": "Wed Dec 04 17:01:37 2013 +0000"
      },
      "message": "stagefright: Don\u0027t enforce 16kHz rate for AMR-WB\n\nThis breaks android.media.cts.MediaRecorderTest#testRecordingAudioInRawFormats,\nwhich tests specifically with 8kHz.\n\nChange-Id: Ibfa54db4b2a82e502268be18f4ea405a41a88bfd\n"
    }
  ],
  "next": "555e28055910e71b740feb5dd3d3e92e7286db00"
}
