)]}'
{
  "log": [
    {
      "commit": "5f44938fe991e19dd694a08c5e8911a9ffa2670b",
      "tree": "6a59b06e43d7f702a99c5d313651f6a7396272a3",
      "parents": [
        "c65002b096c4015e798a0ea685df0119c137b596",
        "87406db29c09e16df8f0d82dd0547d3fb953ab92"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed May 25 21:38:02 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed May 25 21:38:02 2016 +0000"
      },
      "message": "resolve merge conflicts of 823bd74 to lmp-mr1-dev am: 67ca3caf10 am: 6b52fd6b67 am: f4285f22bf\nam: 87406db29c\n\n* commit \u002787406db29c09e16df8f0d82dd0547d3fb953ab92\u0027:\n  MPEG4Extractor: ensure kKeyTrackID exists before creating an MPEG4Source as track.\n\nChange-Id: I6f37992a285efbc2fa08da3b0f6e6f0fecb52b07\n"
    },
    {
      "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": "6d1599db3c2438287922e58ccae42f10904c2948",
      "tree": "d030d299425cfefa70fe3d9b5f4e03cef90c9378",
      "parents": [
        "18fedd0fd651a12843aec36a8fe1d7873a08b78d",
        "5042d77680112a7dc8f72190d2dc320a13d93500"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Tue Mar 22 21:14:41 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Mar 22 21:14:41 2016 +0000"
      },
      "message": "Merge \"NuPlayerStreamListener: NULL and bounds check before memcpy\" into klp-dev am: 4fa31b5 am: 6ee73da am: 9ef3f17 am: 8278e43 am: 093cd05 am: 05cb2d8\nam: 5042d77\n\n* commit \u00275042d77680112a7dc8f72190d2dc320a13d93500\u0027:\n  NuPlayerStreamListener: NULL and bounds check before memcpy\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": "cdc9cf656a8e43875234cb021fffeb4792d7c74e",
      "tree": "bad42e7b44697a72ab67eb72e730d2e7556825d9",
      "parents": [
        "c0d8c35a2d3873ef1d7c7e5c5eaa51f41c1c3a17"
      ],
      "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 11:35:04 2015 -0700"
      },
      "message": "GenericSource: reset mDecryptHandle when mDataSource is cleared.\n\nBug: 25070434\nChange-Id: Ib0eb6a419683a0e686a4f63b82e9300cb1f69484\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": "b41fd0d4929f0a89811bafcc4fd944b128f00ce2",
      "tree": "3c49ad453a8d8c6aa6bef90f0d313af51d01289f",
      "parents": [
        "ceb10ea795d92d889201cd40f5ac6290edf4ded7"
      ],
      "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": "Mon Oct 19 16:14:14 2015 -0700"
      },
      "message": "GenericSource: reset mDrmManagerClient when mDataSource is cleared.\n\nBug: 25070434\nChange-Id: Iade3472c496ac42456e42db35e402f7b66416f5b\n"
    },
    {
      "commit": "216f0177cbfa0d8e911d64fc17ccbb5100ad87b4",
      "tree": "e1de3589261da0456a351592a496af5e199e3843",
      "parents": [
        "ce805c2a0c447dcdd4e649db7415020dbec1100b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Aug 20 18:40:24 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Oct 14 00:26:57 2015 +0000"
      },
      "message": "NuPlayerDecoder: report error in case of audio sink open error.\n\nBug: 21093153.\nChange-Id: I77e03a620b43967991dcee9d6ca01f67c8b7a02e\n(cherry picked from commit 15ce09dddf830d6a6ca097c5ec0a7ec7c35b6b3a)\n"
    },
    {
      "commit": "a5b4642220b810d8f044171c7c05aed0597a1812",
      "tree": "3e4c6f9e508e33cb102998dcb3efff6afb0fa926",
      "parents": [
        "95c3a43ae474f327289670c8fc61a0ec003810af"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Sep 03 15:13:01 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Oct 13 16:03:25 2015 -0700"
      },
      "message": "NuPlayerRenderer: do not send rendering started message when paused\n\nDelay until resume.\n\nBug: 23669269\nChange-Id: I0a805812d80b1aad561425442bca0fc05a05752f\n"
    },
    {
      "commit": "95c3a43ae474f327289670c8fc61a0ec003810af",
      "tree": "ec0798568d9bcb2feb5f56e000f0c885759b8cbe",
      "parents": [
        "106ceacb404fc580984f882a0c17d61aed3aaf7b",
        "b345ddc3c728359166375af6f19367f547bbd613"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Oct 13 22:00:56 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 13 22:00:56 2015 +0000"
      },
      "message": "Merge \"Don\u0027t send OnCompletion events when looping\" into mnc-dr-dev"
    },
    {
      "commit": "106ceacb404fc580984f882a0c17d61aed3aaf7b",
      "tree": "b0d7720ea4360b90100b8c113fca5a1d7a05bf43",
      "parents": [
        "780b766d823040e2d015529e5529c83a008442cc"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Oct 08 13:58:33 2015 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Oct 13 21:47:31 2015 +0000"
      },
      "message": "NuPlayer: reset mAudioEOS and mVideoEOS when renderer is flushed.\n\nBug: 24749881\nChange-Id: I0d3a757262446ac702dfebd464d5e59f1a98eba8\n(cherry picked from commit 3261f0db54e31e652af9bd3b76a8e85174f5ee87)\n"
    },
    {
      "commit": "780b766d823040e2d015529e5529c83a008442cc",
      "tree": "6a804f039d2829d2a1762366d65bbacfbe2f2d37",
      "parents": [
        "b3c483098e1955202ea08f41d468eb78635e86e0",
        "842396584c80d352c9aa7ea249399102155df49b"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Oct 13 21:33:29 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 13 21:33:29 2015 +0000"
      },
      "message": "Merge \"NuPlayerDriver: acquire mLock when needed.\" into mnc-dr-dev"
    },
    {
      "commit": "842396584c80d352c9aa7ea249399102155df49b",
      "tree": "1cfafa590ef0cb2a1af420608bd7fc6c3bc8c9f9",
      "parents": [
        "e5200ea76c5d180b53087ae7825326ec61cc4687"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Oct 06 10:32:32 2015 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Oct 13 21:28:58 2015 +0000"
      },
      "message": "NuPlayerDriver: acquire mLock when needed.\n\nBug: 24338126\nChange-Id: Ic55d1a551c18255423423079b6c2bf045dea6e44\n(cherry picked from commit f3631d2921ee0738f87427848e38873370ef9ec0)\n"
    },
    {
      "commit": "492ccd6f03f83a72dcde6aa1674cc22fd45fc06e",
      "tree": "4945f7454ac413220b1b0a630831af6761e84dd9",
      "parents": [
        "c4c68f63192ae7af09a6158b2e72ca7a1a7f4364"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Oct 13 10:58:07 2015 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Oct 13 21:19:11 2015 +0000"
      },
      "message": "NuPlayerRenderer: always update MediaClock with max media duration.\n\nBug: 24345295\nChange-Id: I868c9c44ea22de98a083432262e485d0f134203f\n(cherry picked from commit d005c5ddb4842369979df7b76f1d0f5f1380fcd9)\n"
    },
    {
      "commit": "b345ddc3c728359166375af6f19367f547bbd613",
      "tree": "c613b70d29a9db29c294cb03bbf3009e7f440fd1",
      "parents": [
        "d805214cec5219eef42346cc136effe89292ac69"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Oct 08 10:00:34 2015 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Oct 13 12:38:13 2015 -0700"
      },
      "message": "Don\u0027t send OnCompletion events when looping\n\nAwesomePlayer never did, and neither should NuPlayer.\n\nBug: 18656047\nChange-Id: Ia9abe42cfe6ea643633cec859e9da770092569bb\n"
    },
    {
      "commit": "82b34505323c095c800f6620a09fd58a17016699",
      "tree": "0de30b915445825291098e07eb3ba44dcd36c4c0",
      "parents": [
        "6d0473ee9faf6a6e245e83088db91cd993e8facb",
        "3f5ff68327b1df21196f18a020aec474a0dd95fe"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Sep 15 17:35:22 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 15 17:35:22 2015 +0000"
      },
      "message": "Merge \"NuPlayerRenderer: Do not drain audio during teardown\" into mnc-dr-dev"
    },
    {
      "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": "f5eb7c6fa2f6acb0fb19df9809d409f21e04ca4c",
      "tree": "7ee31d59d90d4262aa9347cbb7f0d6ed5a8e6404",
      "parents": [
        "2cea090cc76ad85938ac951a9126112684c5763d",
        "7d05308b16a688436331de2e94d89e46d05d8d1d"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Sep 14 15:16:38 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 14 15:16:38 2015 +0000"
      },
      "message": "Merge \"NuPlayerRenderer: Do not deliver audio too soon after stop\" into mnc-dr-dev"
    },
    {
      "commit": "3f5ff68327b1df21196f18a020aec474a0dd95fe",
      "tree": "e649b1493c7f8912cec6b1a7e51e8645b2c17955",
      "parents": [
        "0f05031545e43c8fe49a9dda0cfd9dce202d1ef3"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Sep 11 18:44:56 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Sep 11 18:48:48 2015 -0700"
      },
      "message": "NuPlayerRenderer: Do not drain audio during teardown\n\nBug: 23748678\nChange-Id: I8b65786f25f4524e5e2e9476ecc2a4f4ab3aea9e\n"
    },
    {
      "commit": "27e0350ae57184d5e300f96c8338379f5d3d0fbc",
      "tree": "b0e24c579775fb163924881dfe3ea2e89b8cb017",
      "parents": [
        "e4be7999d8cc689260ee54514cee0da67d9cf7e3",
        "b946648cc63a4d328318b56215214ead575bc54a"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Wed Sep 09 16:11:30 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Sep 09 16:11:30 2015 +0000"
      },
      "message": "am b946648c: Protect data source access with mutex during disconnect\n\n* commit \u0027b946648cc63a4d328318b56215214ead575bc54a\u0027:\n  Protect data source access with mutex during disconnect\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": "4d7ac854c5a45d0e3af3d0af78b5a8c9807cbec6",
      "tree": "e678a66745d69e443bd3396bdfe9cd0fb45e02a3",
      "parents": [
        "cfb252cdb748429789f918c4268fcca1331f6cec"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Aug 31 18:33:14 2015 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Sep 03 01:11:40 2015 +0000"
      },
      "message": "NuPlayerRenderer: avoid divison by zero when sample rate is 0.\n\nAlso close AudioSink when failing to set playback rate.\n\nBug: 23624664\nChange-Id: I5bf8bcca4a21c26fb52821db597d61f7f1273d5c\n"
    },
    {
      "commit": "7665f5886093e1aee07a5266b8c384e5d1186f34",
      "tree": "a21f3b139d6a802e6ad660d07994e5a97c84c364",
      "parents": [
        "5dc3d9928f85580a2351925b5f11ff0189524c39"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Wed Sep 02 10:15:30 2015 -0700"
      },
      "committer": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Wed Sep 02 11:01:56 2015 -0700"
      },
      "message": "nuplayer: let non-offload AudioSink to handle the reconnect when there\u0027s video.\n\nBug: 23707144\nChange-Id: Ie0e2db8dc91a78f82fb935d165aa11abe73697a3\n"
    },
    {
      "commit": "7d05308b16a688436331de2e94d89e46d05d8d1d",
      "tree": "839f104eb7095c751759e6ab692774db32079d47",
      "parents": [
        "5dc3d9928f85580a2351925b5f11ff0189524c39"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Aug 27 16:18:59 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Sep 01 22:18:31 2015 +0000"
      },
      "message": "NuPlayerRenderer: Do not deliver audio too soon after stop\n\nFor non-offloaded audio, do not deliver audio data too soon after stop\nwhen in paused mode.  Otherwise the audio MixerThread will keep the\ntrack playing, instead of inactivating the track.\n\nBug: 23167401\nChange-Id: If376148c742fde2d20dc5d23bf0b894fe378e71a\n(cherry picked from commit b03dcb34cd44d77e5fe1559e72323e03c59931db)\n"
    },
    {
      "commit": "08723d86e9921a3eacca77c79c50839d40ee4f33",
      "tree": "1627cdd3e7c8ca2bdab3917d8a7301bf766f017f",
      "parents": [
        "ec58b2fdbbcaaf2494bcde990cee81f9de8e24bb",
        "5d76e54d2f3b02b52be035e37681fde0caf15eaa"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Aug 28 15:56:54 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 28 15:56:54 2015 +0000"
      },
      "message": "am 5d76e54d: Merge \"NuPlayer: do not create audio decoder if the player is still in shutdown process.\" into mnc-dev\n\n* commit \u00275d76e54d2f3b02b52be035e37681fde0caf15eaa\u0027:\n  NuPlayer: do not create audio decoder if the player is still in shutdown process.\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": "dd6a17649106fd48b0e69703d339bbc5a1ae9a0b",
      "tree": "7f027f1a0e8ec2bec1834c446a0fb1713dd6d078",
      "parents": [
        "3264b251353c37d7efc8ffb6e420dd71b6b62349",
        "c08872f977fc52c015cc17438dd3bd7981dfc0dc"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Aug 18 01:06:43 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 18 01:06:43 2015 +0000"
      },
      "message": "am c08872f9: Merge \"NuPlayerRenderer: handle error when resuming an offloaded track\" into mnc-dev\n\n* commit \u0027c08872f977fc52c015cc17438dd3bd7981dfc0dc\u0027:\n  NuPlayerRenderer: handle error when resuming an offloaded track\n"
    },
    {
      "commit": "f33a302f112f19503e842cacfea1492ae81796b0",
      "tree": "10a9c13444652c1bad0c1e5436790fc438e47f00",
      "parents": [
        "1a4ceb8309ffb6c8ce888891b6e861ae7ca399b8",
        "6d3cd2e22c73e5b554a2c4e34d51616f8737e571"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Fri Aug 14 18:05:23 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 14 18:05:23 2015 +0000"
      },
      "message": "Merge \"RTSPSource::pause mHandler NULL check\" into mnc-dr-dev"
    },
    {
      "commit": "6d3cd2e22c73e5b554a2c4e34d51616f8737e571",
      "tree": "13d0f39c17dd5c2ab1f90a238f8d559e5c64023a",
      "parents": [
        "2ca9865ea0c8124c6cbb48c023aec267d3e78978"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Thu Aug 13 12:09:52 2015 -0700"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Thu Aug 13 12:11:58 2015 -0700"
      },
      "message": "RTSPSource::pause mHandler NULL check\n\nBug: 23151568\nChange-Id: I2dba3e7388b1b84b8b762dbc82c8e5330a158d97\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"
    }
  ],
  "next": "2e3a425dc1bf7baada752926f94e0ce8a7512ec4"
}
