)]}'
{
  "log": [
    {
      "commit": "87406db29c09e16df8f0d82dd0547d3fb953ab92",
      "tree": "719fa99948609975d92184f4b54525d3890c98d2",
      "parents": [
        "63a4f82181744b6a6ca82226489a9138ef7823fb",
        "f4285f22bfe47791a1d21eaa28a4afce23f47c8d"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed May 25 21:32:51 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed May 25 21:32:51 2016 +0000"
      },
      "message": "resolve merge conflicts of 823bd74 to lmp-mr1-dev am: 67ca3caf10 am: 6b52fd6b67\nam: f4285f22bf\n\n* commit \u0027f4285f22bfe47791a1d21eaa28a4afce23f47c8d\u0027:\n  MPEG4Extractor: ensure kKeyTrackID exists before creating an MPEG4Source as track.\n\nChange-Id: I71b691a769641d3e3137b4fd954d784d073b9074\n"
    },
    {
      "commit": "f4285f22bfe47791a1d21eaa28a4afce23f47c8d",
      "tree": "bd6ac79bed27c9c5c02f7a939b48efac11f6e696",
      "parents": [
        "e83713c1987c929af2ed704e1a395a334606fad0",
        "6b52fd6b673c44afc6fe57e85ef8b6994ea84659"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed May 25 21:26:10 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed May 25 21:26:10 2016 +0000"
      },
      "message": "resolve merge conflicts of 823bd74 to lmp-mr1-dev am: 67ca3caf10\nam: 6b52fd6b67\n\n* commit \u00276b52fd6b673c44afc6fe57e85ef8b6994ea84659\u0027:\n  MPEG4Extractor: ensure kKeyTrackID exists before creating an MPEG4Source as track.\n\nChange-Id: I0e66a037649b0000c90c91b40af6eb587362c00b\n"
    },
    {
      "commit": "67ca3caf10929022b2b742b49a88ff1238d3bbe7",
      "tree": "8249df6d200d28dfa42e485214c8e3907d78160b",
      "parents": [
        "4223af4708e4524375385efe13f7ddebfd71ffcf",
        "823bd745b44803e9caea051aabc1a173af57c6db"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed May 25 14:10:26 2016 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed May 25 14:10:26 2016 -0700"
      },
      "message": "resolve merge conflicts of 823bd74 to lmp-mr1-dev\n\nChange-Id: Id8f856591eb2a49bf151a9caa6e15f69e6887e4c\n"
    },
    {
      "commit": "e31eeb4cc65e6b0c98d8476cb89f746ddb79a1b0",
      "tree": "f946935cf5d5e0428a821831cc61b12bba6b4bd3",
      "parents": [
        "cbe776167a52a43f6acbafd3278e662840a256c2"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Aug 28 10:35:35 2015 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed May 25 03:48:11 2016 +0000"
      },
      "message": "MPEG4Extractor: ensure kKeyTrackID exists before creating an MPEG4Source as track.\n\nGenericSource: return error when no track exists.\n\nSampleIterator: make sure mSamplesPerChunk is not zero before using it as divisor.\n\nBug: 21657957\nBug: 23705695\nBug: 22802344\nBug: 28799341\nChange-Id: I7664992ade90b935d3f255dcd43ecc2898f30b04\n(cherry picked from commit 0386c91b8a910a134e5898ffa924c1b6c7560b13)\n"
    },
    {
      "commit": "5042d77680112a7dc8f72190d2dc320a13d93500",
      "tree": "4469158950934c5fdebc66b948761b91450e5408",
      "parents": [
        "e00b888d4f87688fd92d4d23fc049614aef90c2f",
        "05cb2d88206227dca9f77d4aaaa47699fb6c70d2"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Tue Mar 22 21:11:39 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Mar 22 21:11:39 2016 +0000"
      },
      "message": "Merge \"NuPlayerStreamListener: NULL and bounds check before memcpy\" into klp-dev am: 4fa31b5 am: 6ee73da am: 9ef3f17 am: 8278e43 am: 093cd05\nam: 05cb2d8\n\n* commit \u002705cb2d88206227dca9f77d4aaaa47699fb6c70d2\u0027:\n  NuPlayerStreamListener: NULL and bounds check before memcpy\n"
    },
    {
      "commit": "05cb2d88206227dca9f77d4aaaa47699fb6c70d2",
      "tree": "f6a02731f76b6918622527fe37780f1629101918",
      "parents": [
        "9eedbf45eeaad2717b6f3b0fba53b264f691eef3",
        "093cd05cb8c505975c678c0ecb1042f798e6416a"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Tue Mar 22 21:08:28 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Mar 22 21:08:28 2016 +0000"
      },
      "message": "Merge \"NuPlayerStreamListener: NULL and bounds check before memcpy\" into klp-dev am: 4fa31b5 am: 6ee73da am: 9ef3f17 am: 8278e43\nam: 093cd05\n\n* commit \u0027093cd05cb8c505975c678c0ecb1042f798e6416a\u0027:\n  NuPlayerStreamListener: NULL and bounds check before memcpy\n"
    },
    {
      "commit": "8278e439fb12da29b0144d1830d886dc0629a3ce",
      "tree": "20d553fb906fa902995c80afd45fe4a784987310",
      "parents": [
        "7840f059175ee89235567845cc151fb6de1a1b24",
        "9ef3f1714381dd903bd4a1f978c8fb0cc8e15c81"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Tue Mar 22 21:02:14 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Mar 22 21:02:14 2016 +0000"
      },
      "message": "Merge \"NuPlayerStreamListener: NULL and bounds check before memcpy\" into klp-dev am: 4fa31b5 am: 6ee73da\nam: 9ef3f17\n\n* commit \u00279ef3f1714381dd903bd4a1f978c8fb0cc8e15c81\u0027:\n  NuPlayerStreamListener: NULL and bounds check before memcpy\n"
    },
    {
      "commit": "9ef3f1714381dd903bd4a1f978c8fb0cc8e15c81",
      "tree": "ffb61c7e1843e17c55e4290d6ce280616048f0f0",
      "parents": [
        "d82ca561cb58280640c51bb53a416f5f79278c3c",
        "6ee73dabbf1774517d5d4afcefad4e9f71c6df9b"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Tue Mar 22 20:59:08 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Mar 22 20:59:08 2016 +0000"
      },
      "message": "Merge \"NuPlayerStreamListener: NULL and bounds check before memcpy\" into klp-dev am: 4fa31b5\nam: 6ee73da\n\n* commit \u00276ee73dabbf1774517d5d4afcefad4e9f71c6df9b\u0027:\n  NuPlayerStreamListener: NULL and bounds check before memcpy\n"
    },
    {
      "commit": "6ee73dabbf1774517d5d4afcefad4e9f71c6df9b",
      "tree": "060ff333c25da911aa43129253fe4b78dacc9f31",
      "parents": [
        "4a9d762d2539fd2108803741da4366500253c564",
        "4fa31b5d858e11df241d6518cb06eea5b0adb3d6"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Tue Mar 22 20:56:01 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Mar 22 20:56:01 2016 +0000"
      },
      "message": "Merge \"NuPlayerStreamListener: NULL and bounds check before memcpy\" into klp-dev\nam: 4fa31b5\n\n* commit \u00274fa31b5d858e11df241d6518cb06eea5b0adb3d6\u0027:\n  NuPlayerStreamListener: NULL and bounds check before memcpy\n"
    },
    {
      "commit": "88b3147ea116911285cdbbea422e67e1c69b355e",
      "tree": "1e5c40b558e90e9bf9fb5ca9b4077e62ee317de8",
      "parents": [
        "1595f8ac7ab412e81e0565e1347edaeedf9f2832"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Fri Mar 18 14:34:57 2016 -0700"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Fri Mar 18 17:02:51 2016 -0700"
      },
      "message": "NuPlayerStreamListener: NULL and bounds check before memcpy\n\nBug: 27533704\nChange-Id: I992a7709b92b1cbc3114c97bec48a3fc5b22ba6e\n"
    },
    {
      "commit": "fe2d80d385d71be73ba6ac0f5c98de1b524bf12f",
      "tree": "3a1bae295270156825ede5bc72c45690490e527e",
      "parents": [
        "8f283a894dfe2d5c7d987cd62f0498c46a0ff90d",
        "83487187ab549d0966791a60a92d49d77e47f071"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Dec 08 22:55:18 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Dec 08 22:55:18 2015 +0000"
      },
      "message": "DO NOT MERGE nuplayer: do not use cached source for wvm content am: 91a23ed95c\nam: 83487187ab\n\n* commit \u002783487187ab549d0966791a60a92d49d77e47f071\u0027:\n  DO NOT MERGE nuplayer: do not use cached source for wvm content\n"
    },
    {
      "commit": "91a23ed95cda558a3c31e8ef34f420924f4d6d7d",
      "tree": "ed64b9310a0d8384650949af575ce7e74a5bed23",
      "parents": [
        "92edb173a725a1e648b926545e27110fef27a16a"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Feb 19 16:39:59 2015 -0800"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Dec 04 17:51:54 2015 +0000"
      },
      "message": "DO NOT MERGE nuplayer: do not use cached source for wvm content\n\nbug: 18730095, 25563255\nChange-Id: Ibd4f54907949daae1d095fa0922050310d16698f\n(cherry picked from commit fc6cfd8343ae8919e85ec22efed9df626fe8854b)\n"
    },
    {
      "commit": "fd72a5b9e1b7d36d8afb116b8e08c28ad444c188",
      "tree": "efba41c92e0e58ebd643dbe672147c879ac014a3",
      "parents": [
        "ddb3d77dad1766708fdb18cc48e60a663ee8e2e1",
        "000321c7ee8c2a0e489d41b9a5f8bad93bdd89b2"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Oct 22 23:37:42 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Oct 22 23:37:42 2015 +0000"
      },
      "message": "GenericSource: reset mDecryptHandle when mDataSource is cleared. am: 09c291c838 am: 313358c747 am: 92b6cd8da9 am: 7b5564e251\nam: 000321c7ee\n\n* commit \u0027000321c7ee8c2a0e489d41b9a5f8bad93bdd89b2\u0027:\n  GenericSource: reset mDecryptHandle when mDataSource is cleared.\n"
    },
    {
      "commit": "000321c7ee8c2a0e489d41b9a5f8bad93bdd89b2",
      "tree": "6112019db06f1b36ecaaffb6c0033d3619ef0a6b",
      "parents": [
        "adadada4f00eaf44bbc616be7a7d30010750560e",
        "7b5564e251680275d810b5c34b5d9a3caebff0fb"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Oct 22 20:22:26 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Oct 22 20:22:26 2015 +0000"
      },
      "message": "GenericSource: reset mDecryptHandle when mDataSource is cleared. am: 09c291c838 am: 313358c747 am: 92b6cd8da9\nam: 7b5564e251\n\n* commit \u00277b5564e251680275d810b5c34b5d9a3caebff0fb\u0027:\n  GenericSource: reset mDecryptHandle when mDataSource is cleared.\n"
    },
    {
      "commit": "92b6cd8da9052e17710945604cd45098ebfb25e0",
      "tree": "73ff66c06401095bb8d9fc83f21a16e99a0165bc",
      "parents": [
        "3fcddfd23adc88116c8fe5ea593626bfce0b75bd",
        "313358c747b54bbdcbff97636546e0304f6f4947"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Oct 22 20:17:03 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Oct 22 20:17:03 2015 +0000"
      },
      "message": "GenericSource: reset mDecryptHandle when mDataSource is cleared. am: 09c291c838\nam: 313358c747\n\n* commit \u0027313358c747b54bbdcbff97636546e0304f6f4947\u0027:\n  GenericSource: reset mDecryptHandle when mDataSource is cleared.\n"
    },
    {
      "commit": "09c291c838bc74bb7c10c22f7232abb946cad8ff",
      "tree": "e58cf3da585391a370ef02ed7940c5e6d6149607",
      "parents": [
        "224858e719d045c8554856b12c4ab73d2375cf33"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Oct 22 11:35:04 2015 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Oct 22 20:04:05 2015 +0000"
      },
      "message": "GenericSource: reset mDecryptHandle when mDataSource is cleared.\n\nBug: 25070434\nChange-Id: Ib0eb6a419683a0e686a4f63b82e9300cb1f69484\n(cherry picked from commit cdc9cf656a8e43875234cb021fffeb4792d7c74e)\n"
    },
    {
      "commit": "ddb3d77dad1766708fdb18cc48e60a663ee8e2e1",
      "tree": "c6191d8c23c247095d1b2857e48e9072e592382f",
      "parents": [
        "e20b0eb88c7593c13105b47ce383113fad247d85",
        "adadada4f00eaf44bbc616be7a7d30010750560e"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Oct 21 20:54:52 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Oct 21 20:54:52 2015 +0000"
      },
      "message": "GenericSource: reset mDrmManagerClient when mDataSource is cleared. am: 224858e719 am: 69c8e36da7 am: 3fcddfd23a am: e01ba47052\nam: adadada4f0\n\n* commit \u0027adadada4f00eaf44bbc616be7a7d30010750560e\u0027:\n  GenericSource: reset mDrmManagerClient when mDataSource is cleared.\n"
    },
    {
      "commit": "adadada4f00eaf44bbc616be7a7d30010750560e",
      "tree": "d5800551c89e2c4fa4e9ec90bbf3e38a2ae1a8fc",
      "parents": [
        "8fbf202f7b9fa461f07b49470c2a6afe39ca6afd",
        "e01ba470525155c1c36e53d242a12a778069a5bc"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Oct 21 20:51:56 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Oct 21 20:51:56 2015 +0000"
      },
      "message": "GenericSource: reset mDrmManagerClient when mDataSource is cleared. am: 224858e719 am: 69c8e36da7 am: 3fcddfd23a\nam: e01ba47052\n\n* commit \u0027e01ba470525155c1c36e53d242a12a778069a5bc\u0027:\n  GenericSource: reset mDrmManagerClient when mDataSource is cleared.\n"
    },
    {
      "commit": "3fcddfd23adc88116c8fe5ea593626bfce0b75bd",
      "tree": "28331f56a33d25a0a9b019baf0c0112cb5e5fbae",
      "parents": [
        "699e9b0749bda03d12d6aaea9632b28d2bd9e6fb",
        "69c8e36da7137730f4789a0d27d983b40d1f2917"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Oct 21 20:44:29 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Oct 21 20:44:29 2015 +0000"
      },
      "message": "GenericSource: reset mDrmManagerClient when mDataSource is cleared. am: 224858e719\nam: 69c8e36da7\n\n* commit \u002769c8e36da7137730f4789a0d27d983b40d1f2917\u0027:\n  GenericSource: reset mDrmManagerClient when mDataSource is cleared.\n"
    },
    {
      "commit": "224858e719d045c8554856b12c4ab73d2375cf33",
      "tree": "7aae8271a085e360ad615823d09a2d293bec2649",
      "parents": [
        "8565726f5775a6db97a394aa18a1f6b0e1ce69b7"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Oct 19 16:14:14 2015 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Oct 21 16:07:31 2015 +0000"
      },
      "message": "GenericSource: reset mDrmManagerClient when mDataSource is cleared.\n\nBug: 25070434\nChange-Id: Iade3472c496ac42456e42db35e402f7b66416f5b\n(cherry picked from commit b41fd0d4929f0a89811bafcc4fd944b128f00ce2)\n"
    },
    {
      "commit": "421977ae5117403dd481424fab48850d31f239e8",
      "tree": "7cf1a117a81c31f952a07f03b186abf1107a4f88",
      "parents": [
        "becceb1136e7eb01db7dd865cb98a57117212879",
        "c53328a55427224dd42534d2b500728e38a83ca2"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Mon Sep 14 19:46:50 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Sep 14 19:46:50 2015 +0000"
      },
      "message": "am c53328a5: am 67f36a8e: resolved conflicts for 76b704e3 to lmp-mr1-dev\n\n* commit \u0027c53328a55427224dd42534d2b500728e38a83ca2\u0027:\n  DO NOT MERGE: Protect data source access with mutex during disconnect\n"
    },
    {
      "commit": "67f36a8e6130f5c22ab177b0d29f5705e86daca2",
      "tree": "0c22425637efc13275435df057e6bfa2c0beb48b",
      "parents": [
        "d021f7e5686074771981a6386b59e803160a1073",
        "76b704e3872a7e17362c398e7b898b0d635e0f2d"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Mon Sep 14 14:56:20 2015 +0900"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Mon Sep 14 11:02:49 2015 -0700"
      },
      "message": "resolved conflicts for 76b704e3 to lmp-mr1-dev\n\nChange-Id: I843f6b4080b06581c52683ab4af5261e974cd7af\n"
    },
    {
      "commit": "f3eb82683a80341f5ac23057aab733a57963cab2",
      "tree": "b0d65bc29abd7c55df8e8a38135fec58b894686a",
      "parents": [
        "2b63b91b84c75afdef4213aa11b0dcc8e7d735a3"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Wed Sep 02 14:02:47 2015 -0700"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Tue Sep 08 12:00:17 2015 -0700"
      },
      "message": "DO NOT MERGE: Protect data source access with mutex during disconnect\n\nBug: 23658148\nChange-Id: Ic37cac7b5d166143e0b77e9919b0aaef486e4fdd\n"
    },
    {
      "commit": "b946648cc63a4d328318b56215214ead575bc54a",
      "tree": "3461186a8b9900f419df126c4b29eed5f1dfad22",
      "parents": [
        "c336136d8a86a8a95047949955a9bb749af247ab"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Wed Sep 02 14:02:47 2015 -0700"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Tue Sep 08 11:59:30 2015 -0700"
      },
      "message": "Protect data source access with mutex during disconnect\n\nBug: 23658148\nChange-Id: Ic37cac7b5d166143e0b77e9919b0aaef486e4fdd\n"
    },
    {
      "commit": "566da808857c2c26e191ce18aba5abe97746fe1a",
      "tree": "f94fb86a338646b710b9a86f76acca0e7a270361",
      "parents": [
        "3a124eb05e7ef3056ebc1abc7390e8371dd52112"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Aug 27 13:59:30 2015 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Aug 27 13:59:30 2015 -0700"
      },
      "message": "NuPlayer: do not create audio decoder if the player is still in shutdown process.\n\nBug: 23350795\nChange-Id: I46b02cf31d7d4447806910a9ecd8c3bda05f2f5b\n"
    },
    {
      "commit": "97c9f4fd7bc31e2968d816402659ba1c64f10b42",
      "tree": "96e726b7cfeac443b961a0f6cc3abb3a866d0e5a",
      "parents": [
        "fa8ebb45fd850f56ca1bf64fbed3ac11e10c7d3d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Aug 11 18:04:14 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Aug 12 01:12:26 2015 +0000"
      },
      "message": "NuPlayerRenderer: handle error when resuming an offloaded track\n\nMake sure that an offloaded audio track is torn down if\nstart() returns an error in onResume().\nThis makes sure that a track invalidated due to a potential\naudio path change while paused is re created on the correct\noutput.\n\nBug: 22256441.\nChange-Id: I6c7bfec6e7322415daffc0451bab46d0c558522a\n"
    },
    {
      "commit": "6b7d2ed40c4e7f7bac824c44795e2cd83459844c",
      "tree": "eefcfb24321cce42cb0f4f025513e3cde4757e20",
      "parents": [
        "7db7948908b21ca2d878d6882cdf1a23a121182f"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Aug 10 15:11:54 2015 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Aug 10 15:53:57 2015 -0700"
      },
      "message": "NuPlayer: set video surface directly when NuPlayer has not started yet.\n\nBug: 22119956\nChange-Id: Ie174f4fc495ab8418993ff7887aaa6ae721c6008\n"
    },
    {
      "commit": "27b71aa74b6ddfb45a5508dcaa90c5065a12500b",
      "tree": "54d29a4176dbe6c6b615956dafd5ecc455c8f106",
      "parents": [
        "d24b430c3fc82e9288e9072971c9a185a18abd89",
        "1a5c859016e743779e4db25855390b3ce523cd48"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Wed Aug 05 21:39:05 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 05 21:39:05 2015 +0000"
      },
      "message": "Merge \"NuPlayer:seek handling on kWhatAudioTearDown\" into mnc-dev"
    },
    {
      "commit": "1a5c859016e743779e4db25855390b3ce523cd48",
      "tree": "d457520647e05164e177ee0cdc96522733ae5bea",
      "parents": [
        "f09d59b9c03d3ac3523517ea587e7587e669b6a4"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Tue Aug 04 18:07:44 2015 -0700"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Wed Aug 05 13:20:18 2015 -0700"
      },
      "message": "NuPlayer:seek handling on kWhatAudioTearDown\n\nRestart from previous seek time on kWhatAudioTearDown if mRenderer\ndidn\u0027t supply a useful positionUs.\n\nBug: 22662968\nChange-Id: Ic21957f676ba25fb92694f71093bed60b630390b\n"
    },
    {
      "commit": "7c3c275b4d0100eec36f7b66637a7aace7971466",
      "tree": "7fcd01c703060898c9355d99615afff7b13c7958",
      "parents": [
        "a7d36c184562cc15b2d665ff25c485fefdcfbabd"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Jul 28 15:11:14 2015 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Jul 29 15:44:30 2015 -0700"
      },
      "message": "stagefright: disable automatic experiments\n\nallow manually-enabled experiments only in eng and userdebug builds\n\nBug: 20894667\nChange-Id: Ie6c93e9482a84ed3aaf6aa0abd909f14cfea4e9b\n"
    },
    {
      "commit": "e1d701902765c710398133025cfeee3ea8b6d280",
      "tree": "9c603e6de41377f9af9196296f0c9d0a454522aa",
      "parents": [
        "70c1f74f3d4c43b67949f3e742195d60f4677462"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Thu Jul 23 17:54:13 2015 -0700"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Fri Jul 24 09:45:29 2015 -0700"
      },
      "message": "NuPlayerRenderer: prepareForMediaRenderingStart_l on en/disable offload audio\n\nBug: 22662910\nChange-Id: I8fb4a9fce801295a4b251e27965aef048d217da6\n"
    },
    {
      "commit": "68845c14ebf2c7282800b1abffde38d8e9a57aab",
      "tree": "c4e924999d0ed48ae4c1a08d44777cbc5b161906",
      "parents": [
        "f8f669d7a727e4ad5505cd85741f4d50dbaffbf9"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Tue Jul 21 09:50:48 2015 -0700"
      },
      "committer": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Tue Jul 21 19:04:41 2015 -0700"
      },
      "message": "libmediaplayerservice: propagate caller pid to MediaCodec.\n\nBug: 22630317\nChange-Id: I0337d74f4ef04bf96f2de83f33d98d0d7da47c12\n"
    },
    {
      "commit": "9febc8a664d25eaa699134682aa455ab4d7f62a2",
      "tree": "7997a6576bc3bf4741fb784c13cbd0576e548dd0",
      "parents": [
        "08dc42c46c942ff316a69be1cf74f3c60cf53e7f",
        "8d237a5ce1e3c1dbc1d538f47e68cff2cc52d799"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Fri Jul 17 16:24:33 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 17 16:24:34 2015 +0000"
      },
      "message": "Merge \"RTSP: clear data/eos status before returning from seek\" into mnc-dev"
    },
    {
      "commit": "a3725d7b0cb79ddb49f81cba00a0164d8e645acd",
      "tree": "ab69a0b30bc50d0d19cae8bc265663afe3f08d61",
      "parents": [
        "bc24bb8a552097e7975d0c16fad80158b542ba62"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Jul 01 16:47:22 2015 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Jul 16 17:23:36 2015 -0700"
      },
      "message": "stagefright: MediaSync: use VideoFrameScheduler\n\nMove VideoFrameScheduler to libstagefright as part of this change.\n\nBug: 22234976\nChange-Id: Ib23fb52399cb700a1dcf789e8486b94a3edf9d95\n"
    },
    {
      "commit": "8d237a5ce1e3c1dbc1d538f47e68cff2cc52d799",
      "tree": "3e77dfb6324d3a7bf390d6c6e6c576b897ad8cd5",
      "parents": [
        "11addc1d922efa0bf12e261481bba11024c7c7ab"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Mon Jul 13 17:59:36 2015 -0700"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Thu Jul 16 14:34:03 2015 -0700"
      },
      "message": "RTSP: clear data/eos status before returning from seek\n\nThe original RTSP seek implementation involves pausing and restarting\na session. This change clears data/eos status after an rtsp session\nis paused for a seek, and delays the seek to return after data/eos\nstatus are cleared.\n\nBug: 22207372\nChange-Id: I1bdf65653f90436f7ee5d7fe85eeadc1598a0d56\n"
    },
    {
      "commit": "6712ae1e1cd4e68c6f43ea3396c30a3633d8bd8c",
      "tree": "ca01e039a81aeec617b160fb9938b96c6b858d3d",
      "parents": [
        "1bc88814f530bf67e425cfb8cea0f2b8dce3c03f",
        "da4252f86b1b730827053f015acec43b9c61fd37"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Jul 15 21:46:18 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 15 21:46:18 2015 +0000"
      },
      "message": "Merge \"NuPlayer: fix handling of teardown event during flushing or shutting down.\" into mnc-dev"
    },
    {
      "commit": "da4252f86b1b730827053f015acec43b9c61fd37",
      "tree": "b477bed3c40d49a1d1ebc9c3fabc6ecf92fff26c",
      "parents": [
        "7f4e78fedf1dbcd175a52b17d46a658218ed7453"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Jul 14 18:15:28 2015 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Jul 15 12:21:28 2015 -0700"
      },
      "message": "NuPlayer: fix handling of teardown event during flushing or shutting down.\n\nBug: 22481669\nChange-Id: I9114c16c081fd7907508e9c776607d653ae18612\n"
    },
    {
      "commit": "1bc88814f530bf67e425cfb8cea0f2b8dce3c03f",
      "tree": "6c642e16897de47cd787ad56485489f87715d2d3",
      "parents": [
        "7f4e78fedf1dbcd175a52b17d46a658218ed7453",
        "fcf044a9c5624395d24eb6181e67163ce169458b"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Jul 15 01:31:30 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 15 01:31:30 2015 +0000"
      },
      "message": "Merge \"NuPlayer: pull more video buffers in advance in GenericSource\" into mnc-dev"
    },
    {
      "commit": "fcf044a9c5624395d24eb6181e67163ce169458b",
      "tree": "19a4b1e23b34fbf68b0cf1a861f476607d9113d9",
      "parents": [
        "54c0659b9efa72d11997c590c4d377c44789c7fd"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Jul 14 15:58:51 2015 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Jul 14 18:28:36 2015 -0700"
      },
      "message": "NuPlayer: pull more video buffers in advance in GenericSource\n\npull 4 video buffers at a time, and start pulling when we\u0027re down\nto 1 buffers to avoid starving the decoder.\n\nbug: 22320866\nChange-Id: I10914dc092f3830ecb6296e2d9ebf9064ff7a5dc\n"
    },
    {
      "commit": "495151d3f4c5f92f1d162efb32b636521c105df5",
      "tree": "27320a1e9d59b148c4f502fca5554867eed49c2e",
      "parents": [
        "51d12c26628ab37b0fd58e08b6905652f8763225",
        "e4d18c7f84186b935ac569d5919059c455edd390"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Jul 14 18:31:34 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 14 18:31:35 2015 +0000"
      },
      "message": "Merge \"NuPlayer: determine audio mode before instantiating audio decoder.\" into mnc-dev"
    },
    {
      "commit": "e4d18c7f84186b935ac569d5919059c455edd390",
      "tree": "4b104c794772cc5461b08d8ffecee669b8b1720a",
      "parents": [
        "4b33e0838fdb1b5e545449add02005916b512c99"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Jul 13 17:58:11 2015 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Jul 14 11:04:40 2015 -0700"
      },
      "message": "NuPlayer: determine audio mode before instantiating audio decoder.\n\nBug: 22460159\nChange-Id: I334c6dc5e1163a462155d251eaa985ff5e3858e6\n"
    },
    {
      "commit": "a7c2db7226b23dfe6ad0c7c1cccc073dab2f97bd",
      "tree": "fb6fff7f27ba212cba20fe9ac8f1565f259b75ad",
      "parents": [
        "df31e36a225e3f036be379f4542d7d4992c7af4c",
        "a81c6229638a4db56752dd77a6610e0f0971e877"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Jul 14 00:23:36 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 14 00:23:37 2015 +0000"
      },
      "message": "Merge \"nuplayer: use codec-\u003esetSurface when possible to avoid seeking\" into mnc-dev"
    },
    {
      "commit": "db350735e14c13c4fc1094768bfbbad4dab8ef2c",
      "tree": "cad630fd478f7b104eeff82bc29ca643ce69d0b1",
      "parents": [
        "4b33e0838fdb1b5e545449add02005916b512c99",
        "3b0cd26dbb0ce37d220db9ff0fa8172a7ef1c5cb"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Jul 14 00:10:04 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 14 00:10:04 2015 +0000"
      },
      "message": "Merge \"NuPlayerRenderer: clear first audio anchor time only when audio is flushed.\" into mnc-dev"
    },
    {
      "commit": "a81c6229638a4db56752dd77a6610e0f0971e877",
      "tree": "b43408970894d5a5979ed0087ab1ee213144ac7c",
      "parents": [
        "4b33e0838fdb1b5e545449add02005916b512c99"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Jul 10 19:17:45 2015 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Mon Jul 13 16:33:59 2015 -0700"
      },
      "message": "nuplayer: use codec-\u003esetSurface when possible to avoid seeking\n\nBug: 22414719\nChange-Id: I0442e12af960f86a0fc090b4a469c62ba638a1a0\n"
    },
    {
      "commit": "3b0cd26dbb0ce37d220db9ff0fa8172a7ef1c5cb",
      "tree": "a2f9a1f6811588457f03b6e423bcc91782bfa8a6",
      "parents": [
        "11addc1d922efa0bf12e261481bba11024c7c7ab"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Jul 13 11:28:10 2015 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Jul 13 11:30:00 2015 -0700"
      },
      "message": "NuPlayerRenderer: clear first audio anchor time only when audio is flushed.\n\nBug: 22228075\n\nChange-Id: I5914d7cfd2fb9c7ca5279964b530a404b20c8764\n"
    },
    {
      "commit": "c6e58419e00e6d04882a885101510e667d9c043a",
      "tree": "02fab38217bf8bab27909b697a3e2fc883ba1efe",
      "parents": [
        "11addc1d922efa0bf12e261481bba11024c7c7ab"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Jul 10 18:04:55 2015 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Jul 10 18:04:55 2015 -0700"
      },
      "message": "NuPlayer: seek to current position when changing video surface and audio decoder exists.\n\nBug: 22228075\nChange-Id: I8b233319f48d2d0a49b44063cd895dc94949a489\n"
    },
    {
      "commit": "0c61a0d78f5f093f47826d770111cd455a19beb4",
      "tree": "11a2d98615eba4558295754012b0f94e8f0462d9",
      "parents": [
        "29b7cec9a248828d2371bc8758d819308d0e84a4"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Mon Jul 06 15:09:10 2015 -0700"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Tue Jul 07 11:43:04 2015 -0700"
      },
      "message": "NuPlayer: disable pre-start preview for audio only sources\n\nBug: 22117876\nChange-Id: I0e00ff8f081d80946cbd19028f1f786c1b8268f3\n"
    },
    {
      "commit": "9d66d7f78284268272fefcb92697002169c62717",
      "tree": "6e92d81f8f89b2d4d452cf4ae6b4968be10368ce",
      "parents": [
        "ab1b39c6328cd5471d164890e46bb54315b4c542",
        "9da0ce44f228408d73a4dea0be972c785095dccc"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Jun 12 18:25:23 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 12 18:25:24 2015 +0000"
      },
      "message": "Merge \"stagefright: post audio EOS in NuPlayerRenderer if getPosition fails\" into mnc-dev"
    },
    {
      "commit": "9da0ce44f228408d73a4dea0be972c785095dccc",
      "tree": "0d439822ec091a1fd48d72a0ddfc757e6b465e66",
      "parents": [
        "3a20d29ff09ca2568cb904415625cc44db37edb0"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Jun 11 17:18:58 2015 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Jun 12 11:03:52 2015 -0700"
      },
      "message": "stagefright: post audio EOS in NuPlayerRenderer if getPosition fails\n\nbug: 20071480\nChange-Id: I81f2a1fea0daa694a61be7f4a6d70d6847e9f183\n"
    },
    {
      "commit": "67c2c94aa9d387bb7dc47514d62deeb66d486210",
      "tree": "77924dbf80672de139a114fa1dcf491eed1b93d1",
      "parents": [
        "cd644a3f7bd16b25a6fd202ce3eb8c7138572712"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Jun 11 10:46:54 2015 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Jun 11 10:46:54 2015 -0700"
      },
      "message": "NuPlayerDriver: add more logging.\n\nChange-Id: Ib80a42b4e46b4e2bea02d9a002228a058d1fa211\n"
    },
    {
      "commit": "3a20d29ff09ca2568cb904415625cc44db37edb0",
      "tree": "3393ff0050150d5b20a8aa827b83dbea93bd53ad",
      "parents": [
        "e1e5d7a3d3d4d6d644e6c731f977422e004140d5"
      ],
      "author": {
        "name": "Praveen Chavan",
        "email": "pchavan@codeaurora.org",
        "time": "Thu May 21 08:47:34 2015 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Jun 10 16:48:59 2015 -0700"
      },
      "message": "NuPlayer: print player stats at the end of playback\n\nPrint stats at the end of playback if the shell\nproperty persist.debug.sf.stats is set\n\nChange-Id: Ie4250bf86b12af75c16f108ca09ad02b3e44fd29\n"
    },
    {
      "commit": "e1e5d7a3d3d4d6d644e6c731f977422e004140d5",
      "tree": "687a0b028303a6560b09701e1a7689fd9291fa9b",
      "parents": [
        "4a4265e9fc4e72d069eb2de37c8484d67fd3a9fc"
      ],
      "author": {
        "name": "Praveen Chavan",
        "email": "pchavan@codeaurora.org",
        "time": "Tue May 19 19:09:48 2015 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Jun 10 16:48:59 2015 -0700"
      },
      "message": "NuPlayer: Enhance dumpsys statistics\n\nAccount for dropped output-frames (rather than input-frames)\nin percentage dropped frames.\nPrint mime and component name for each active track\n\nChange-Id: I3491d336c696d8ed0fd1503b80afe1df47c787c8\n"
    },
    {
      "commit": "3ab25457385dceb07205fc8ead86d7fb9e307588",
      "tree": "1fc1a7eca36e1c1e2d98f53442bfc8c8c4c0026e",
      "parents": [
        "356f08476db6191cdcbad20caf69d7bd642a09b2"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Jun 10 09:37:47 2015 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Jun 10 12:02:01 2015 -0700"
      },
      "message": "NuPlayerRenderer: discard pending kWhatDrainAudioQueue message when AudioSink is opened in callback mode.\n\nBug: 21723010\nChange-Id: Iddab8c1cbdf87714aa53315feba064fe101d8f98\n"
    },
    {
      "commit": "416d4a8ad177a48bcb25aa3a32c4bdfaf6227014",
      "tree": "18998e59b19d82e3d5829b2844edeb8cc9c4be28",
      "parents": [
        "f49b5150f87c98c389a334c3af5a9a586d40ee8f",
        "df809479696725faf5d3424b11fa8a07bd94cb5e"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Jun 09 21:27:02 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 09 21:27:03 2015 +0000"
      },
      "message": "Merge \"NuPlayerRenderer: change log from ALOGW to ALOGV when audio sink reports WOULD_BLOCK on writing.\" into mnc-dev"
    },
    {
      "commit": "df809479696725faf5d3424b11fa8a07bd94cb5e",
      "tree": "fa2bc613ea64fe4ea404a05965b4c2765eb06d63",
      "parents": [
        "9cf332ca156132931da397bae94b89debb40de10"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Jun 09 11:21:13 2015 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Jun 09 14:07:35 2015 -0700"
      },
      "message": "NuPlayerRenderer: change log from ALOGW to ALOGV when audio sink reports WOULD_BLOCK on writing.\n\nBug: 21726662\nChange-Id: I4aa63df7f21e06473594dda30a935e0f1cb745ac\n"
    },
    {
      "commit": "005e9d0300fc326a076ec17b7fa6dd4f51568f55",
      "tree": "d9995f9aa6e174e73211e862526be8b13e5cec66",
      "parents": [
        "85e48142f726770d3b65caa1f29d8b98f8d5db6b"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sun May 31 23:16:07 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jun 03 22:42:14 2015 -0700"
      },
      "message": "NuPlayer: Allow audio drain to fill buffer when paused\n\nIf a pause lasts more than a few seconds, the audio device\nenters standby.  When the audio device comes out of standby,\nit typically requests a large amount of data to fill its buffers\n(especially severe for deep buffer PCM mode).\n\nTo avoid a glitch, continue to fill the buffer (until no more data\ncan be written) when paused.\n\nAlso, we do not start the audio sink if we are paused to avoid\naudio playback in video preview mode.\n\nBug: 19062223\nBug: 21198655\nChange-Id: Ifb3f181d5e810283381b65f2af16a4c71df0b04f\n"
    },
    {
      "commit": "85e48142f726770d3b65caa1f29d8b98f8d5db6b",
      "tree": "e20152866b7021c28085caf329fa91c7abbe13e8",
      "parents": [
        "288da02b1f074f9f3c191f1838f135d4633b3d34"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sun May 31 23:04:15 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jun 03 22:42:03 2015 -0700"
      },
      "message": "NuPlayer: Allow audio callback to fill buffer when paused\n\nIf a pause lasts more than a few seconds, the audio device\nenters standby.  When the audio device comes out of standby,\nit typically requests a large amount of data to fill its buffers\n(especially severe for deep buffer PCM mode).\n\nTo avoid a glitch, continue to service the audio callback\nwhen paused.\n\nAlso, we do not start the audio sink if we are paused to avoid\naudio playback in video preview mode.\n\nBug: 19062223\nBug: 21198655\nChange-Id: I987337a87e6c875aeb381df8ad37c7139c42dc72\n"
    },
    {
      "commit": "288da02b1f074f9f3c191f1838f135d4633b3d34",
      "tree": "71f3b4ba081022cabab6ea25e06c201e690e1024",
      "parents": [
        "179652ee2a508361df1aa18e99000373886f0816"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sun May 31 22:55:59 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jun 03 22:41:22 2015 -0700"
      },
      "message": "NuPlayer: Add audio deep buffer configuration\n\nDisabled for video streams now.\nEnabled by property media.stagefright.audio.deep 1\n\nBug: 21198655\nChange-Id: I03f3b43091f950637d46779e2e74c1321b2cd268\n"
    },
    {
      "commit": "179652ee2a508361df1aa18e99000373886f0816",
      "tree": "cab9a40399ab43231c8a9b9fc00985b2efaf600c",
      "parents": [
        "a7f03353d5f172016f324e2a01f301cca6794152"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sun May 31 22:49:46 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jun 03 22:26:44 2015 -0700"
      },
      "message": "NuPlayer: Add audio sink buffer configuration\n\nProperty media.stagefright.audio.sink (in milliseconds)\nAlso change the default buffer size for PCM playback to 500 ms.\n\nBug: 21198655\nChange-Id: I5781288f59bf08fbecd9263a26c919570b58be0f\n"
    },
    {
      "commit": "a0b397133bfce8a62198dfac9a2b970c8b20bcc5",
      "tree": "5af9ba6903997316c7f6db55919cc6f52982190f",
      "parents": [
        "0eafa9d8ee4069aa709ff85ceffe94d12995956d"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sun May 31 22:40:49 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jun 03 13:55:14 2015 -0700"
      },
      "message": "NuPlayer: Add audio callback mode for PCM audio.\n\nDisabled for now. Enabled by property media.stagefright.audio.cbk 1\n\nBug: 21198655\nChange-Id: I8f117b089fe019009f1615908d33720a93e1b21e\n"
    },
    {
      "commit": "0a62c1948cede8f99eaed1ba55f4880380a4f3ee",
      "tree": "d566c6c305b431f82bec92d3dfcfcb9372820bd7",
      "parents": [
        "96de55f3e47d41c9ff6356e4e710a5733eda5aa3",
        "02cb98d726b97d8e6dbb9c6c60d32a3cedc7f82d"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Wed May 27 20:24:58 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 27 20:24:58 2015 +0000"
      },
      "message": "Merge \"libmediaplayerservice: get isStreaming info from source.\" into mnc-dev"
    },
    {
      "commit": "02fc5e3f8af41052dcb961f85e34fe109d38a3bb",
      "tree": "25b4209aad139fcc0f8bd127290d21d9a0e5d769",
      "parents": [
        "92d824426e4621c2e8dfdd4e0f00d19c35d3c481"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed May 27 11:20:41 2015 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed May 27 11:20:41 2015 -0700"
      },
      "message": "GenericSource should report -1 instead of 0 for unknown duration\n\nIf the underlying source never reported a duration, GenericSource\nwould report a duration of 0. The right value to return is -1.\n\nBug: 21391417\nChange-Id: Ie53045f819727b0ac79ed6719991724c069d7650\n"
    },
    {
      "commit": "02cb98d726b97d8e6dbb9c6c60d32a3cedc7f82d",
      "tree": "20eeb0b56c675dba4aef74860a4669da14dad4e7",
      "parents": [
        "6374077319a2d060eefe5f4bf425aed37f90c5d0"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Wed May 27 11:02:54 2015 -0700"
      },
      "committer": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Wed May 27 11:02:54 2015 -0700"
      },
      "message": "libmediaplayerservice: get isStreaming info from source.\n\nBug: 19061436\nChange-Id: I0fc0d6207b0d3297d64aadab3e81448e3f3fa1de\n"
    },
    {
      "commit": "0a7989f5691f161fff97dd550eb602e44a6e6185",
      "tree": "79fd65829976dd4efa997ca8e65aa7cc3c2fb968",
      "parents": [
        "c5648e09bdacc0882aa55525cc1aad6d09794e11",
        "faeb0f291330134dc4468359a36e099aae508449"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Fri May 22 18:41:38 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 22 18:41:38 2015 +0000"
      },
      "message": "Merge \"libmediaplayerservice: try to open audio sink in offload mode in error.\" into mnc-dev"
    },
    {
      "commit": "faeb0f291330134dc4468359a36e099aae508449",
      "tree": "028333c0801e03826c4162cb35880236eaae3b3b",
      "parents": [
        "8eddd88568fe4da0ca0ceab5072bc488827f01b5"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Thu May 21 12:20:21 2015 -0700"
      },
      "committer": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Fri May 22 10:36:31 2015 -0700"
      },
      "message": "libmediaplayerservice: try to open audio sink in offload mode in error.\n\nBug: 19061432\nBug: 21370108\nChange-Id: Iaa757555ef37fd1ac87b6e2d5a9969bb58cc5ebc\n"
    },
    {
      "commit": "1061c9c29cfdeb3b2a307a4ee4cda2cd197b48e6",
      "tree": "5bcead6931b691612bce6a40f94ab8382c081be9",
      "parents": [
        "2232aee25e4df7d04446912e8ad9e9dc44d8ec16"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue May 19 16:02:17 2015 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu May 21 11:51:03 2015 -0700"
      },
      "message": "mediaplayer: display one frame when seek is called before start.\n\nBug: 18608164\nChange-Id: I83252421278aeeb1c1611138994bfdaf86d7a363\n"
    },
    {
      "commit": "856f37a8b62bb3732d4a92b0278672819720b3f1",
      "tree": "b15e9d618d3ac493e4f11fa90cf6a17d3acd474a",
      "parents": [
        "9706bfe34c41c923fc1c4b39e97a8845556ca902",
        "6301a5e94de3659b4e6e4910394861830f8ebfb7"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue May 19 22:42:44 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 19 22:42:45 2015 +0000"
      },
      "message": "Merge \"mediaplayer: handle decoder error when NuPlayerDecoder gets a NULL buffer from MediaCodec.\" into mnc-dev"
    },
    {
      "commit": "5a8422a0bb54ad74bab9bf1b2d38cd2d4f0843b8",
      "tree": "59b673d72dbfaf35cbfe7647b1f4b0b166f0216e",
      "parents": [
        "6471747c2fedd4106df608a263af474e345d41ba",
        "8f291bc99e92015ebb959654a73c87e98bd46958"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Tue May 19 21:31:31 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 19 21:31:32 2015 +0000"
      },
      "message": "Merge \"libmediaplayerservice: queue discontinuity when seek to eos.\" into mnc-dev"
    },
    {
      "commit": "8f291bc99e92015ebb959654a73c87e98bd46958",
      "tree": "bb124330ab704cd36ad9e1dbe2f3b1d393d55574",
      "parents": [
        "9ba21b9418d10ddcc39f08901e24fbf43d82b2bc"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Tue May 19 10:11:53 2015 -0700"
      },
      "committer": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Tue May 19 10:13:34 2015 -0700"
      },
      "message": "libmediaplayerservice: queue discontinuity when seek to eos.\n\nBug: 19063416\nChange-Id: I23d1a3788006a0d68effa01fe9ee1d92fe06739c\n"
    },
    {
      "commit": "6301a5e94de3659b4e6e4910394861830f8ebfb7",
      "tree": "950978b311b1012b758fbc1df49982b354157bf6",
      "parents": [
        "4a95e69406aa2e9896d865962d6d947ebbdac6fc"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed May 13 13:15:18 2015 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon May 18 11:46:26 2015 -0700"
      },
      "message": "mediaplayer: handle decoder error when NuPlayerDecoder gets a NULL buffer from MediaCodec.\n\nMediaCodec could send out message of input buffer available right before it hits an error and clears its buffers.\n\nBug: 14433407\nChange-Id: I32494f4cb2a8537fac12449fd68a74c021f5c9e1\n"
    },
    {
      "commit": "4a95e69406aa2e9896d865962d6d947ebbdac6fc",
      "tree": "8dff7a9f6eaae119d20e70560418653725dfbc2a",
      "parents": [
        "88063ca54bc064fedb836fa020b699f8c61ce6ed",
        "2984080a97d6d43f640029b58930a28e58b8754a"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Sat May 16 00:52:10 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat May 16 00:52:10 2015 +0000"
      },
      "message": "Merge \"mediaplayer: remove unused parameter needNotify in NuPlayer::performSeek.\" into mnc-dev"
    },
    {
      "commit": "2984080a97d6d43f640029b58930a28e58b8754a",
      "tree": "9f4f08f4a9d92d2cf1151a11d2319aac96254104",
      "parents": [
        "24fdd7a48ad8ef66f1e91567a9f7f4d8f89faa7f"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri May 15 17:11:38 2015 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri May 15 17:11:38 2015 -0700"
      },
      "message": "mediaplayer: remove unused parameter needNotify in NuPlayer::performSeek.\n\nChange-Id: I5ee4c3ba968a2ac52266cda0425d1a709e5c0fb2\n"
    },
    {
      "commit": "89cf8946e8d61ce32b83fdc2bb3274a562bf76cf",
      "tree": "9534c38220269c1e2d64b87b8b11b79dae160434",
      "parents": [
        "e28159ba94a7fa6711c2f1e459413ccce9f065ab",
        "055404ea1309d4cbc5d313332b026f86bd6f0da1"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Fri May 15 18:54:21 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 15 18:54:22 2015 +0000"
      },
      "message": "Merge \"HTTPLiveSource: fix non timed id3 track selection\" into mnc-dev"
    },
    {
      "commit": "055404ea1309d4cbc5d313332b026f86bd6f0da1",
      "tree": "6d09c7670510fa7055db77399fb1ddcb9292e9fd",
      "parents": [
        "804a77d1045c6c4023f73a0975a09025b2e8eef2"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Fri May 15 10:12:21 2015 -0700"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Fri May 15 11:09:38 2015 -0700"
      },
      "message": "HTTPLiveSource: fix non timed id3 track selection\n\nNon timed id3 track selection generates INVALID_OPERATION when performed\non the last track.\n\nThe buggy logic reads:\n\nif (not last track) {\n  // non-timed-id3 related work\n} else if (has timed id3) {\n  // timed id3 related work\n} // last track but non timed id3 not handled\n\nIt should read:\n\nif (has no timed id3 || not last track) {\n  // non-timed-id3 track related work\n} else {\n  // timed id3 related work\n}\n\nBug: 21195284\nChange-Id: I2ddb5d8e2a1ecba4cc071c7ee14c6697fe8e220d\n"
    },
    {
      "commit": "27ea08e3811dc8057685258af52a7d40474eba16",
      "tree": "aaf53cd4ed244f3d375dca4dd57e6346eac3a6c2",
      "parents": [
        "a540058ec00b6d147f40a7cdcf6f47acbd70f6c9"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue May 12 14:50:35 2015 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue May 12 14:50:35 2015 -0700"
      },
      "message": "mediaplayer: get/set PlaybackRate only when AudioSink has been opened.\n\nChange-Id: I676567fc029b9f82d039990e629374bd48168cec\n"
    },
    {
      "commit": "e5e9a0df67ae23d16bf48e4a8fd652684434a3b6",
      "tree": "d62d2d9b56d6fba9c8acb7948ca6561b041d8401",
      "parents": [
        "f52b2284405ec1d8941334718f580157417f9d60",
        "8a048338d9291b2db1b3a325fff58cb1aa69f04d"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu May 07 22:42:17 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 07 22:42:18 2015 +0000"
      },
      "message": "Merge \"nuplayer: fixes for subtitle pause/resume\" into mnc-dev"
    },
    {
      "commit": "8a048338d9291b2db1b3a325fff58cb1aa69f04d",
      "tree": "02bb0051275a15fb99377bfa9e06b9b3d0071599",
      "parents": [
        "32fa6d0e65dbf956e253a1006e9419dce2fe75c9"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed May 06 15:16:28 2015 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed May 06 18:28:40 2015 -0700"
      },
      "message": "nuplayer: fixes for subtitle pause/resume\n\n- pause after the current block when select track\n- ignore metadata timestamps as they\u0027re too sparse\n- use smaller range when searching for next segment to prevent\n  resumeUntil from downloading too much data\n\nbug: 20500732\nChange-Id: Ibda57a39ec86efd96a8dd0db95adeb92d076697a\n"
    },
    {
      "commit": "2e3a425dc1bf7baada752926f94e0ce8a7512ec4",
      "tree": "bb6e5f3c85fdab812cf43d9f5c41554d4ce05e25",
      "parents": [
        "464c7e085b68dd63ce8cdbb2c389d3827f8d586a"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Wed May 06 10:21:15 2015 -0700"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Wed May 06 11:29:58 2015 -0700"
      },
      "message": "NuPlayer: parcel placeholder mime in track info if not provided by source\n\nBug: 20853994\nChange-Id: Iaf30e84ec78297099e6888070e7e779237b2d69f\n"
    },
    {
      "commit": "c8a70d340f0ce610dfb8bd44d833708269484e99",
      "tree": "415bcab4144b5d405420fa8f6ca35ec858896b63",
      "parents": [
        "78d9a2e77e8ee153945d93624b01f0525f979299"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Wed Apr 29 16:26:34 2015 -0700"
      },
      "committer": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Mon May 04 16:26:08 2015 -0700"
      },
      "message": "nuplayer: get playback frame rate from video track meta instead of file meta.\n\nBug: 20481562\nChange-Id: Ifb4b89cce5bc810f3f411c27ba61c996a488a1c0\n"
    },
    {
      "commit": "0247f0db93a828f0754a6d2d278cb08c6609cf26",
      "tree": "83c7a816892699eb183627255054c70d9b3eef6b",
      "parents": [
        "939270353bff5bc7497b0c77e203520b997268c9",
        "9e7ed3315298b42db485963b182a572e9ab42f9f"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Sat May 02 00:26:06 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat May 02 00:26:07 2015 +0000"
      },
      "message": "Merge \"mediaplayer: flush audio sink when renderer is flushed.\" into mnc-dev"
    },
    {
      "commit": "9e7ed3315298b42db485963b182a572e9ab42f9f",
      "tree": "aaf3b6c0025a9bb509b8a5dfc4a6570080013569",
      "parents": [
        "457e82586d51c6d360ce4feb4c1dff1a31dcb8d3"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri May 01 16:35:43 2015 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri May 01 17:22:46 2015 -0700"
      },
      "message": "mediaplayer: flush audio sink when renderer is flushed.\n\nBug: 17488729\nChange-Id: Ie56018367cb6aec1749ca148e94173e6c5864b27\n"
    },
    {
      "commit": "1de1e25cba872bd4c077c2e394f8ca9c70b65856",
      "tree": "7f01e01b5a3731a9c345684e38755d97e6a67f19",
      "parents": [
        "31de88566257d5546cf4eee9064d96926a4b0c24"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Apr 30 18:18:34 2015 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Apr 30 18:53:52 2015 -0700"
      },
      "message": "stagefright: remove NativeWindowWrapper\n\nNow that Surface and SurfaceTextureClient are the same and Surface,\nit does not add value.\n\nBug: 19489395\nChange-Id: I016ecd1cf5cc51ce6244b6fa34ecd75f84e3db01\n"
    },
    {
      "commit": "94ce218596a88cc6d37098cce4e17e68f7405603",
      "tree": "4e455974cb284aac3d1119ad2df5c6480c55c90a",
      "parents": [
        "3a474aa67fc31505740526dd249d96204c08bf79",
        "755106eb9cff51dc4eda45d8cefc4306df308845"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Fri May 01 00:31:29 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 01 00:31:30 2015 +0000"
      },
      "message": "Merge \"GenericSource: reply mime information for *all* track types\" into mnc-dev"
    },
    {
      "commit": "3a474aa67fc31505740526dd249d96204c08bf79",
      "tree": "4db784ee57ffad037fa2ded86d0fd8b3a40173d5",
      "parents": [
        "a8df0b716bdfda1e10790e6f7297eeff83d2e52a"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Apr 24 17:10:07 2015 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Apr 30 16:56:10 2015 -0700"
      },
      "message": "stagefright: support setting/getting playback/sync config in MediaSync\n\nBug: 18249558\nBug: 19666434\nBug: 20057497\nChange-Id: I5868b17423d7c20cfaf4a399f3eb67bfba440605\n"
    },
    {
      "commit": "755106eb9cff51dc4eda45d8cefc4306df308845",
      "tree": "468855e3ac3118e6a3b71bcbd1ca560bf34b0008",
      "parents": [
        "f105b28e94c50802cab61ec4cdf4986e9dd3c097"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Thu Apr 30 14:36:45 2015 -0700"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Thu Apr 30 16:18:18 2015 -0700"
      },
      "message": "GenericSource: reply mime information for *all* track types\n\nBug: 20729923\nChange-Id: I65a8aedf089cfa4756fc9de433949c1b4bd416ce\n"
    },
    {
      "commit": "8db8813d39e3c8b5fbd580dfc3062830744afd63",
      "tree": "e2573de1c55ee05a5c075153835cebaeadecb4eb",
      "parents": [
        "5e95559255d1abd62c78b308731ebe3991186e94"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Wed Apr 22 13:51:35 2015 -0700"
      },
      "committer": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Mon Apr 27 21:20:31 2015 +0000"
      },
      "message": "DO NOT MERGE libmediaplayerservice: set priority and operating rate for the codec used by nuplayer.\n\nBug: 20481562\nChange-Id: I9806414962352fbcda726f8274f1cd348c961de0\n(cherry picked from commit f19f5d716b39a5d9dc1abdcd5a16a7aaf1b1ab8b)\n"
    },
    {
      "commit": "bb6635d0aa35d6d31ec7de7c0d957720983fdc55",
      "tree": "b4e21defce1e51deb55186c9747ccf49786edb7b",
      "parents": [
        "a739165147bd58f7396d605fed1dfa8b68aaf6a8",
        "5abbd3dcbb0bb32a3d4b90dddbcf90458967eb6f"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Apr 24 17:22:36 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 24 17:22:36 2015 +0000"
      },
      "message": "Merge \"HLS: make disconnect faster to prevent ANR\""
    },
    {
      "commit": "5abbd3dcbb0bb32a3d4b90dddbcf90458967eb6f",
      "tree": "a56ccf00558ad454c1e2da546c449e506cc3b9bc",
      "parents": [
        "04f07fd61022dac46ddda9c815d65bc3d3278b84"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Apr 20 16:03:00 2015 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Apr 23 18:45:44 2015 -0700"
      },
      "message": "HLS: make disconnect faster to prevent ANR\n\ndisconnect HTTP connection when we absolutely won\u0027t resume\n\nbug: 19890444\nChange-Id: Idee36b48741f6f8eb1d65bca32156e9e18349c67\n"
    },
    {
      "commit": "f8bd851cc652501239a8e3759b21890dfa2afdea",
      "tree": "895659041fb0a778e00999b056d79395ad617fcf",
      "parents": [
        "38ad9c7d19a0699065b078a0e8dd7ece3d055bf7"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Thu Apr 23 16:39:18 2015 -0700"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Thu Apr 23 18:22:24 2015 -0700"
      },
      "message": "Copy sei offset/size during ABuffer/MediaBuffer conversion\n\nBug: 20537676\nChange-Id: I0bd11527ccd022c39d94b7877df81de4da1b14a6\n"
    },
    {
      "commit": "81636761bead03f13b4ed9320a7f25ce1354f1ae",
      "tree": "310928bec3d9bfffae1bfc88f0cb1c744b843373",
      "parents": [
        "ea44f41bb142555e747cc11382296e94af99d312"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Apr 21 09:33:47 2015 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Apr 21 10:04:13 2015 -0700"
      },
      "message": "HLS: remove no more than 10% of bandwidth history at a time\n\n- fix a \u0027possible video time jump\u0027 after seek, don\u0027t update\n  renderer anchor time for 0-sized audio buffers\n\n- fix another \u0027possible video time jump\u0027 caused by some states\n  not reset in mStreams\n\n- bandwidth estimator changes to not remove more than 10%\n  of total transfer duration at a time to avoid jumping up\n  too quickly\n\nbug: 20267388\nrelated-to-bug: 19864613\nrelated-to-bug: 20138395\n\nChange-Id: I8812332cd1e26bf562acfaf086fd679a3549debc\n"
    },
    {
      "commit": "dfe5c4217d440740b47567e05c73018b44d183cd",
      "tree": "997b52c95517b9ac922eda2ba3402714c7c78122",
      "parents": [
        "f65f03bcc8b09820f81b90d8c0d3da6b66546aaf",
        "3b032b3865fd93173aadca0591eeea32853206f9"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Sat Apr 18 00:05:12 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Apr 18 00:05:12 2015 +0000"
      },
      "message": "Merge \"NuPlayer: queue a deferred scan sources when flushing during scan\""
    },
    {
      "commit": "6d339f1f764bbd32e3381dae7bfa7c6c575bb493",
      "tree": "3b29d455c9f3ac73327a0117d2bc18d8b199a265",
      "parents": [
        "ee4e1b1a63758941460ae79a064249d3a5189443"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Apr 17 16:15:53 2015 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Apr 17 16:16:27 2015 -0700"
      },
      "message": "libmediaplayerservice: fix warnings, make warnings errors, use clang\n\nChange-Id: I1b2f6b65c5abbc366068a60b8909104f31b94228\n"
    },
    {
      "commit": "3b032b3865fd93173aadca0591eeea32853206f9",
      "tree": "fdc80def5b8a99b7360230497758a973e5eacbc2",
      "parents": [
        "2170233c49e50f3986cdc4f726016d6003cb5b8e"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Apr 17 15:49:06 2015 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Apr 17 15:53:17 2015 -0700"
      },
      "message": "NuPlayer: queue a deferred scan sources when flushing during scan\n\nalso refactor code to move scheduleRequestBuffers to decoder base.\n\nbug: 20267388\nChange-Id: I48f16adc6b4d4008f8fcda8b3b01c595ad199f8b\n"
    },
    {
      "commit": "ee4e1b1a63758941460ae79a064249d3a5189443",
      "tree": "d27f03a73170da9cce96b6eae5b2ecd874eace22",
      "parents": [
        "2170233c49e50f3986cdc4f726016d6003cb5b8e"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Apr 17 13:46:19 2015 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Apr 17 13:46:43 2015 -0700"
      },
      "message": "stagefright: warnings be gone, some are now errors, use clang\n\nChange-Id: I81f438ae444f04c12ae27ae4ef6d073033de172c\n"
    },
    {
      "commit": "2170233c49e50f3986cdc4f726016d6003cb5b8e",
      "tree": "177f9549d93188931db2ba9cde44a9b953ec641d",
      "parents": [
        "bfb03d2486e3c5dd21120bf403d68fa36323b102",
        "d3c28f66a48dd450f5f6d8a3ba92a40132bc45de"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Apr 17 18:45:59 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 17 18:46:00 2015 +0000"
      },
      "message": "Merge \"NuPlayerDriver: Maintain the timeStamp after seek\""
    },
    {
      "commit": "d3c28f66a48dd450f5f6d8a3ba92a40132bc45de",
      "tree": "263dec7b22e9f6080c3feb78fa73fea54e63a022",
      "parents": [
        "3d66eb4128aebef31bb0fa44c4d53d6122294a26"
      ],
      "author": {
        "name": "Haynes Mathew George",
        "email": "hgeorge@codeaurora.org",
        "time": "Fri Apr 10 16:47:16 2015 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Apr 17 11:43:11 2015 -0700"
      },
      "message": "NuPlayerDriver: Maintain the timeStamp after seek\n\n While offload playback is going on, if user pause\n and seeks to new position before offload tear-down,\n on resume playback starts from old time-stamp.\n\n Once tear-down happens NuPlayer loses updated time-stamp\n so while resuming it resumes playback with stale time-stamp.\n Make sure the updated time-stamp is maintained in\n NuPlayerDriver which is used while starting the playback\n after resume.\n\nauthored-by: Sharad Sangle \u003cassangle@codeaurora.org\u003e\nChange-Id: Ie125cf0fab1b0a237e67e43b0e5b4a704483ef99\n"
    },
    {
      "commit": "0852843d304006e3ab333081fddda13b07193de8",
      "tree": "f60be26aad988e89bc135a86f6e4ae8853c69a49",
      "parents": [
        "3d66eb4128aebef31bb0fa44c4d53d6122294a26"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Wed Apr 08 09:06:54 2015 -0700"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Thu Apr 16 19:01:15 2015 -0700"
      },
      "message": "stagefright: initial timed id3 support in hls\n\nChange-Id: I00a8a786b3f4b74742c34770edd94e937abe20a8\n"
    },
    {
      "commit": "c224ec53a17994fa97ab2f29304647c9f195c51c",
      "tree": "6086a1cf5720b82e7dc25b7ecd60af39d66c738d",
      "parents": [
        "f2326ac96366ec4d05f470cc4a0b407e7805bab7",
        "99f31604136d66ae10e20669fb6b5716f342bde0"
      ],
      "author": {
        "name": "Chris Watkins",
        "email": "watk@google.com",
        "time": "Thu Apr 16 17:06:37 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 16 17:06:42 2015 +0000"
      },
      "message": "Merge \"Unhide the android.media.[Media]DataSource interface.\""
    },
    {
      "commit": "99f31604136d66ae10e20669fb6b5716f342bde0",
      "tree": "20e64f4f26533b37b087ce8656b1040b8189e24f",
      "parents": [
        "2f33dbc6ca08d45efea2df775c158e2a11e07ab6"
      ],
      "author": {
        "name": "Chris Watkins",
        "email": "watk@google.com",
        "time": "Fri Mar 20 13:06:33 2015 -0700"
      },
      "committer": {
        "name": "Chris Watkins",
        "email": "watk@google.com",
        "time": "Wed Apr 15 17:12:22 2015 -0700"
      },
      "message": "Unhide the android.media.[Media]DataSource interface.\n\nThis allows apps to implement MediaDataSource, which is modeled on\nstagefright\u0027s DataSource, to supply media data to the framework. This\nwas already implemented for MediaExtractor, but it was renamed from\nDataSource.\n\nMediaExtractor, MediaPlayer and MediaMetadataRetriever each have a new\noverload: #setDataSource(android.media.MediaDataSource)\n\nOnly NuPlayer supports this new data source.\n\nThe change introduces:\n * IDataSource:        The binder interface for DataSource.\n * JMediaDataSource:   The native counterpart to the java interface. It\n                       implements IDataSource.\n * CallbackDataSource: A stagefright DataSource that wraps an\n                       IDataSource.\n\nChange-Id: Ib3c944b49cc8a792c8eb9c85e5015c07f298ebc1\n"
    },
    {
      "commit": "43cc944ecdc1634dccd92a1aad559f0caa13b53c",
      "tree": "c13828bb2144bbd42a3435bcfd46bb6961778e64",
      "parents": [
        "7233234a32d22d2ffb63ed4e92df339458047887"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Apr 15 13:38:38 2015 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Apr 15 13:41:31 2015 -0700"
      },
      "message": "fix NuPlayerDecoder discontinuity handling with async mode\n\nbug: 20234224\n\nChange-Id: I317b52b089f1e1432255100ef5f36322a231a399\n"
    }
  ],
  "next": "7bef0e14010d2527ac4f8abe26e13fe24c918ed1"
}
