)]}'
{
  "log": [
    {
      "commit": "f01e3127b4fb1d35570c2a081dcf7743c059dbab",
      "tree": "14f99df22307e9ce54d553c44576a47ba6ded194",
      "parents": [
        "f719b86b628797339567a81c76bfdea1a81e557a"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Oct 18 11:49:44 2018 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Oct 18 11:49:44 2018 -0700"
      },
      "message": "MediaPlayer2: support start position of data source\n\nTest: cts\nBug: 112549021\nChange-Id: I4062fab27aff101223cfb3924841c8e7c3afa6ce\n"
    },
    {
      "commit": "7398ca0f5376305762a9ed06f5fd7ddc0bb7d626",
      "tree": "cb97fe8f19abb579f3e0a511520376f8f19523f4",
      "parents": [
        "b5be68edecd62d8edbf86fd4858d1ceb81a74b6c"
      ],
      "author": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Mon Oct 15 10:25:12 2018 -0700"
      },
      "committer": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Mon Oct 15 12:01:56 2018 -0700"
      },
      "message": "setVolume() function using single input\nTest: run CTS\n\nChange-Id: I758d2754ffda29b433b847d8517e8c9937f4a482\n"
    },
    {
      "commit": "303bd2da085cf1a8509041c1a0bfbc984e8f9a5d",
      "tree": "349f747b921610e7e1e814a8c347ec2c4eb484e8",
      "parents": [
        "5e0659c82240821cfa6766d33cca438a5f09ef32"
      ],
      "author": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Fri Sep 28 12:52:49 2018 -0700"
      },
      "committer": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Wed Oct 03 18:04:51 2018 -0700"
      },
      "message": "Erase bufferCount in audio output.\n\nTest: Build and run on phone\n\nChange-Id: I8fd62b5ac1f343d6b397b3221c1285b22bf8cd06\n"
    },
    {
      "commit": "1a45cef93b8df626bed1d19e8830148627151d8b",
      "tree": "587b513b65aa846272c520c290a919a57cfa3a77",
      "parents": [
        "66b4c2c74829721f7e12de810b936e5e323a51dd",
        "ec94086752cb0b6cf29abcad841d6e8c69f77f74"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Wed Oct 03 15:51:21 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Oct 03 15:51:21 2018 -0700"
      },
      "message": "Merge \"nuplayer2: Fix two use-after-frees\" am: b6eac609bc am: baa7ec9b3e\nam: ec94086752\n\nChange-Id: Iaf7180c6ea33befb4fa6eafb946be4d14f876fa0\n"
    },
    {
      "commit": "ec94086752cb0b6cf29abcad841d6e8c69f77f74",
      "tree": "f96bf31b3dfe9729cb4f164235091fd1b8aeae0b",
      "parents": [
        "7b8cad4e2458ecfa2e8dc8ddd5fbc8cf44346713",
        "baa7ec9b3e310ddc77d0d4e79d1f30b67d013ad7"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Wed Oct 03 15:45:12 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Oct 03 15:45:12 2018 -0700"
      },
      "message": "Merge \"nuplayer2: Fix two use-after-frees\" am: b6eac609bc\nam: baa7ec9b3e\n\nChange-Id: Idf13fe90334462de5f30b04f25b1e0a7c1dc8709\n"
    },
    {
      "commit": "23256e444364ca08407833f475393a151d825d79",
      "tree": "def85757935db4627154cb98a4f84985d3118e00",
      "parents": [
        "21d312e7187ca9d7399f0ec6cae189cc1c5651c9"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Wed Oct 03 11:18:34 2018 -0700"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Wed Oct 03 19:02:10 2018 +0000"
      },
      "message": "nuplayer2: Fix two use-after-frees\n\n- std::ostringstream::c_str returns a string by value, so we can\u0027t\n  immediately call c_str() on it and assign that to a variable.\n- DrmUUID::arrayToHex returns a String8 by value. Similar \"can\u0027t just\n  call string() and assign that to a variable\".\n\nBoth caught by our static analyzer.\n\nBug: None\nTest: Ran the analyzer again\n\nChange-Id: Ia9e0b2b00ee5150225dd487f3611a3893946fa4b\n"
    },
    {
      "commit": "1b9c75e70f0a61931ad9af8fe9da808b07f28c6f",
      "tree": "276b62e43f5541fd8fd08ae500aa876721846b22",
      "parents": [
        "cadb93ccb6d598179c8c074e3fef9eba9b1119bd",
        "612a7cc33a493ec5a07aba3473818edc54ce4dec"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Oct 02 22:55:51 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 02 22:55:51 2018 +0000"
      },
      "message": "Merge \"Remove libmediadrm from Mediaplayer2 dependencies\""
    },
    {
      "commit": "f441367a5fde9d08788797c4daccd717ce1a7609",
      "tree": "84cf2c95915f7a123b51c66bc4afa49648304273",
      "parents": [
        "b5adce511dba0b4b87c70905134b09a596eb2529",
        "2a3363ad85d82a8dfa89573d0d84898cb8bb8727"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Oct 01 14:47:13 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 01 14:47:13 2018 +0000"
      },
      "message": "Merge \"C-ify MediaTrack\""
    },
    {
      "commit": "2a3363ad85d82a8dfa89573d0d84898cb8bb8727",
      "tree": "3e9be93220d9925d70e82a416211bdece2d9b341",
      "parents": [
        "f7f463120abca9a0050f3e82b0ebd222410e141b"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Sep 13 13:15:30 2018 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Sep 28 16:07:44 2018 -0700"
      },
      "message": "C-ify MediaTrack\n\nAdd C-API replacement for MediaTrack in extractor plugins.\nMove MediaTrack from libmediaextractor.so to libmedia.so\n\nBug: 111407253\nTest: CTS, manual\n\nChange-Id: I3407e903fe41a2d7b7233538808281fce318c27a\n"
    },
    {
      "commit": "6376cd5767f85e7f094dbee387c2c345c1e2e664",
      "tree": "c33eb2f7cc9ac15cae55f0fcab9963582c4f7b32",
      "parents": [
        "f0941797537ee31027e6c6e9600eb3fd939b7ea8"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Sep 26 11:42:55 2018 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Sep 26 11:42:55 2018 -0700"
      },
      "message": "MediaPlayer2: allow prepared-\u003epause\n\nTest: cts\nBug: 112549021\nChange-Id: I3ead79f5c2441c01b80483e454d34e559129727e\n"
    },
    {
      "commit": "612a7cc33a493ec5a07aba3473818edc54ce4dec",
      "tree": "21870bf033fd8308b2edb9ab977056b13ad9c5ca",
      "parents": [
        "3237d6b595d577aafb7a41ac07cf053d67a42d5a"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Mon Sep 24 16:25:09 2018 -0700"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Mon Sep 24 23:48:28 2018 +0000"
      },
      "message": "Remove libmediadrm from Mediaplayer2 dependencies\n\nBug: 109928575\nChange-Id: Ib8fe26d0df91c4aec15b0edabb0e21967ba66fb5\n"
    },
    {
      "commit": "64389ec22a60ba87108f981d4a024aee8cb612b9",
      "tree": "7d40f93c11746508bef8309d5bbc81cfb36b3655",
      "parents": [
        "9e99a1bf3e95685237f5f5571b1c772cc9e5ef5f",
        "700a7c2bfd96bb09e2e5ad2dfdeddbc668039b2c"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Sep 19 19:57:19 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 19 19:57:19 2018 +0000"
      },
      "message": "Merge \"MediaPlayer2: fix setPlaybackParams\""
    },
    {
      "commit": "727fed5147bf33898839c9ad3af08f6e3a78882b",
      "tree": "37432e24ce64f8fd6b62e9bb3f09f10dcd0aabc4",
      "parents": [
        "ea055e6dab6bcbf9bf90711d602bcf59395f0d59",
        "2501816cbe37515bedf600b341f86a371f1c11eb"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Sep 19 02:05:27 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 19 02:05:27 2018 +0000"
      },
      "message": "Merge \"Move files to libmedia2_jni_core\""
    },
    {
      "commit": "700a7c2bfd96bb09e2e5ad2dfdeddbc668039b2c",
      "tree": "e25272a17dac30c2dd5123e41943f429352d565d",
      "parents": [
        "4622878b8f7f47f6b9ae41135f9a6d909a5fccdf"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Sep 14 18:04:35 2018 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Sep 14 18:04:35 2018 -0700"
      },
      "message": "MediaPlayer2: fix setPlaybackParams\n\nTest: testSetPlaybackParamsSpeeds\nBug: 112549021\nChange-Id: I9b4bf607e01c421a0f912f4d38b80086ae6c3da7\n"
    },
    {
      "commit": "2501816cbe37515bedf600b341f86a371f1c11eb",
      "tree": "5cef82d5b349720b1eb6f9b4d291a2ee06f74d53",
      "parents": [
        "5f3ff7e38fc46096e828839b28c06bfa111eb25f"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Thu Sep 13 22:07:34 2018 -0700"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Fri Sep 14 21:06:05 2018 +0000"
      },
      "message": "Move files to libmedia2_jni_core\n\nBug: 109928575\nTest: compiles\nChange-Id: I1ecd7dbad7f39a5c2e62b9aa409ded8ffe30f596\n"
    },
    {
      "commit": "581779dae6a35fbaec11e09174a4c99946a696e0",
      "tree": "3d17b16ab9524746711a63ea5fffd7e5bb2349e4",
      "parents": [
        "8b5eeb77158a44d3362dfdc8df30ea09c9d6d72f",
        "790249b0bca033bf0e15d532fc38a5e583b4f030"
      ],
      "author": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Fri Sep 14 05:18:41 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 14 05:18:41 2018 +0000"
      },
      "message": "Merge \"Fixed a typo error.\""
    },
    {
      "commit": "8b5eeb77158a44d3362dfdc8df30ea09c9d6d72f",
      "tree": "fbdb09b7df2d9e5d8c4b7803dfc57473c0c4c482",
      "parents": [
        "f783424b1ad040f6437ed83ffb690e8ec5c793ec",
        "3bc9597fda7cc1031e0e10296a7ccb5037732d25"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Sep 13 18:04:36 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Sep 13 18:04:36 2018 -0700"
      },
      "message": "Merge \"Suppress implicit-fallthrough warnings in nuplayer*.\" am: daba8f4f19 am: 4eabdc1237\nam: 3bc9597fda\n\nChange-Id: Ie45ea20d706e5c43d09b30be3e71021c207b771e\n"
    },
    {
      "commit": "3bc9597fda7cc1031e0e10296a7ccb5037732d25",
      "tree": "eebc7de682c7a94a7de7eae16d98b572a2484ab5",
      "parents": [
        "fd9ed407e0986dabd2c74958462d466fec14446b",
        "4eabdc123701200b91ca48602458ad254e3b0703"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Sep 13 17:58:16 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Sep 13 17:58:16 2018 -0700"
      },
      "message": "Merge \"Suppress implicit-fallthrough warnings in nuplayer*.\" am: daba8f4f19\nam: 4eabdc1237\n\nChange-Id: I814792ed988e4dfdb077ff121ccf360bd779e593\n"
    },
    {
      "commit": "790249b0bca033bf0e15d532fc38a5e583b4f030",
      "tree": "033e3dcf2bcefd1ddd5997fddbad6fedad9623dc",
      "parents": [
        "6689f2e894a99838c03c737ea7f0409aa2a1c37c"
      ],
      "author": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Thu Sep 13 15:08:14 2018 -0700"
      },
      "committer": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Thu Sep 13 15:55:34 2018 -0700"
      },
      "message": "Fixed a typo error.\n\nTest: build code and run on taimen\n\nChange-Id: Iaab98698786776f8c060abce5f1ddad8d76bc915\n"
    },
    {
      "commit": "c89566d5ec0b348693a354242b8fd8308f5d3b7a",
      "tree": "c238ca06e220cf2054315e7384c3e09f31c65d48",
      "parents": [
        "e91c38936da30ecee4784425f4731fb4fc3e3534"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Sep 13 14:22:06 2018 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Sep 13 14:22:06 2018 -0700"
      },
      "message": "Suppress implicit-fallthrough warnings in nuplayer*.\n\nAdd FALLTHROUGH_INTENDED for clang compiler.\n\nBug: 112564944\nTest: build with global -Wimplicit-fallthrough.\nChange-Id: I5b7ab7abb46884b363e13284382eddf7a256a3e2\n"
    },
    {
      "commit": "827613055e29c5943296acb3c36c92b041f436fb",
      "tree": "8a7130d4b905f3ec744b801155d2afaf14db3703",
      "parents": [
        "4622878b8f7f47f6b9ae41135f9a6d909a5fccdf"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Tue Sep 11 10:42:17 2018 -0700"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Tue Sep 11 13:22:42 2018 -0700"
      },
      "message": "MediaPlayer2: remove unused code setMetadataFilter and getMetadata\n\n1. These are dead codes since there is not entry points in the\n   MediaPlayer2[Impl].java side.\n2. In MP1, setMetadataFilter() and getMetadata() has been hidden\n   from the beginning. Ic20240a0b388897950c98337b539eb05e487273a\n   And, even the Metadata class is deprecated in favor of MediaMetadata.\n\nTest: build\nBug: 112767225\n\nChange-Id: Ia76ca34faf45ca03d04b8599e312e87ea4a3486b\n"
    },
    {
      "commit": "a0e816ac2a7b1394774776f334de9e066367ecc0",
      "tree": "080b46a69cc83fa8c8c1a1bca1b0938a38bd82ee",
      "parents": [
        "41929fb5f625b80fe5a492fdef3456a74987001e"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Mon Sep 10 19:46:49 2018 -0700"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Mon Sep 10 23:15:09 2018 -0700"
      },
      "message": "MediaPlayer2: use protobuf instead of parcel for TimedText\n\nTest: MediaPlayer2Test\nBug: 112767225\nChange-Id: I3f6b06d49b2a245e8350d792c01bccb9fd44037f\n"
    },
    {
      "commit": "41929fb5f625b80fe5a492fdef3456a74987001e",
      "tree": "5a93bbf9a5b0d49b0ce982ac4d673dc7b1390a10",
      "parents": [
        "55071964900997e3bc4a47a931839829e3665028"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Sun Sep 09 08:29:56 2018 -0700"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Mon Sep 10 20:39:52 2018 -0700"
      },
      "message": "MediaPlayer2: use protobuf instead of parcel for notification message\n\nTest: MediaPlayer2Test\nBug: 112767225\nChange-Id: I7f5bd177c138a8ad5c005f4505d4d9c5042486a8\n"
    },
    {
      "commit": "8c927dfd46e5d7952e036cb8360c9e583d79d694",
      "tree": "3a59eda1afe3fb0e93b666f8bcd7e7c6bd894935",
      "parents": [
        "f4942d7989993b8d82010dd1047a4c68d625b324",
        "e2062af59cc21ab42a6db554463b5b4b6ed9509a"
      ],
      "author": {
        "name": "Sungtak Lee",
        "email": "taklee@google.com",
        "time": "Wed Sep 05 21:57:15 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Sep 05 21:57:15 2018 -0700"
      },
      "message": "Merge \"NuPlayer2CCDecoder: Add bound check before memcpy\" into pi-dev\nam: e2062af59c\n\nChange-Id: I7d0b0d3725426f968952642ab85aaf74cf05b218\n"
    },
    {
      "commit": "9f6319815f0dea99268530f1fd0d0f4f299f7eee",
      "tree": "2b5ee87da59183aa7cc7e5c8bd1cb70d794f2272",
      "parents": [
        "0d97cec0533f47237b16b294fd92a827f2ebdc6f"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Tue Jul 10 12:34:41 2018 -0700"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Tue Aug 28 17:47:41 2018 -0700"
      },
      "message": "MediaPlayer2: use protobuf instead of parcel in invoke()\n\nTest: pass MediaPlayer2Test\nBug: 63934228\nChange-Id: Ie3d7c9352f369b6481e35c98e40b736cdff23204\n"
    },
    {
      "commit": "0151ef43e9e435c4fd55652dae40432dc8681c51",
      "tree": "707750ee447f816922e2ff12c6edf7726487c59c",
      "parents": [
        "f42230f2ed5c01f2de62e78d462cb102953be5dc"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Aug 24 16:40:21 2018 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Aug 24 16:40:21 2018 -0700"
      },
      "message": "MediaPlayer2: remove stop and related enums\n\nTest: cts\nBug: 109928575\nChange-Id: Ice031d6cecd4cc3642b57e9cbeeabbf48cd9c1b0\n"
    },
    {
      "commit": "975be2f38fdef33e614aa0f6982f551fabb0d163",
      "tree": "f893acb4bf6c8169cc5005900ffdd2b072b80b24",
      "parents": [
        "e8198ce2bb3d27604dee02299c9de7117124cad2"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Aug 23 18:23:04 2018 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Aug 23 18:23:40 2018 -0700"
      },
      "message": "NuPlayer2: send MEDIA2_INFO_DATA_SOURCE_START when starting\n\nTest: cts testPlaylist\nBug: 109928575\n\nChange-Id: Icc52599504c2c157f7d8ae0777c509f268eaab20\n"
    },
    {
      "commit": "a70beb16195266900997f2f376d2f28017cd45a4",
      "tree": "ba0716f8eb0e1210e663bd48242c2b56deeee401",
      "parents": [
        "9985754cabf9d426bf95e3adfc27cea7fcc86e42"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Jul 17 14:10:03 2018 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Aug 23 08:10:30 2018 -0700"
      },
      "message": "Move MediaExtractor back to libstagefright\n\nIt is no longer needed in libmediaextractor, and moving it back\nto libstagefright will avoid a circular dependency later.\n\nBug: 111407253\nTest: build, boot, play some files\n\nChange-Id: I1373a9eedee27998e7733ea23ae1a375e45cc9c3\n"
    },
    {
      "commit": "e96c64a0d21d1ab2c9ba9726766fd8432462888a",
      "tree": "e8d29805f7296814bf500389d37c5999b91187a2",
      "parents": [
        "11e0589b4dea913f66668ea483dd52eed3d3869b"
      ],
      "author": {
        "name": "Sungtak Lee",
        "email": "taklee@google.com",
        "time": "Tue Aug 07 18:01:50 2018 -0700"
      },
      "committer": {
        "name": "Sungtak Lee",
        "email": "taklee@google.com",
        "time": "Mon Aug 20 20:26:35 2018 +0000"
      },
      "message": "NuPlayer2CCDecoder: Add bound check before memcpy\n\nTest: none\nBug: 111874331\nChange-Id: I6764802e8e8afd7e970ee433741f73a9b3d366dd\n(cherry picked from commit 71920217d6017a5112ecd73abc4e68c16d680458)\n"
    },
    {
      "commit": "edf39faeee8fbd0743e25ae7071ebcf0418e6c50",
      "tree": "bf9f810c45fc3d8fd49f5c123551dfd5bf692e90",
      "parents": [
        "0f94463362911de14bdfbf00a1c09d3d2fa1b96f",
        "1e1bcaae46b7901f095bc244d554692146deccf2"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Wed Aug 15 20:18:40 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 15 20:18:40 2018 +0000"
      },
      "message": "Merge \"MediaPlayer2: Remove libdrmframework.so dependency.\""
    },
    {
      "commit": "9af566a4c30a79984bdbb51fb3bc11208ec246b5",
      "tree": "cf1f3fd263dcdea95732213392316fde2d579f1a",
      "parents": [
        "6d567e1f19dafe010bf115148fed0ec034d5ceb9"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Aug 10 16:36:35 2018 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Aug 10 17:35:08 2018 -0700"
      },
      "message": "NuPlayer2Driver: send MEDIA2_INFO_DATA_SOURCE_REPEAT when looping\n\nTest: cts test\nBug: 109928575\nChange-Id: Iaacaa2fa9f957244d305d821d76e5139164e2b35\n"
    },
    {
      "commit": "71920217d6017a5112ecd73abc4e68c16d680458",
      "tree": "1cdaaa05b0bf2c51fc28543c22681a6b32a26e54",
      "parents": [
        "06fcfb071cee44bb0364a379c791bac183c38e45"
      ],
      "author": {
        "name": "Sungtak Lee",
        "email": "taklee@google.com",
        "time": "Tue Aug 07 18:01:50 2018 -0700"
      },
      "committer": {
        "name": "Sungtak Lee",
        "email": "taklee@google.com",
        "time": "Wed Aug 08 18:01:01 2018 -0700"
      },
      "message": "NuPlayer2CCDecoder: Add bound check before memcpy\n\nTest: none\nBug: 111874331\nChange-Id: I6764802e8e8afd7e970ee433741f73a9b3d366dd\n"
    },
    {
      "commit": "1e1bcaae46b7901f095bc244d554692146deccf2",
      "tree": "899fb78a5c207c1d7bc5617ceee53a8d46150d0b",
      "parents": [
        "978dcac6101c416158ca234e6ef01baa861bbcd0"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Wed Aug 01 12:44:46 2018 -0700"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Fri Aug 03 19:18:15 2018 +0000"
      },
      "message": "MediaPlayer2: Remove libdrmframework.so dependency.\n\nlibdrmframework.so is being used in FileSource and MediaHTTP\nfor Forward Lock DRM use case.\nThis change removes this dependency from MediaPlayer2 by adding\nClearFileSource and ClearMediaHTTP.\nForward Lock DRM use case will be covered by MediaPlayer1.\n\nTest: build \u0026 MediaPlayerTest \u0026 DrmTest\nBug: 111406958\nChange-Id: I5cf51b2d6f477e8fa8950ac931c0142491baa747\n"
    },
    {
      "commit": "c74e507ea7742da83d97768b332b17dcea60cfc0",
      "tree": "1519942b0e58ff015b73b2bba75cb7e80587f238",
      "parents": [
        "d02904c6d5b30d2e32cdd57495c4a182b6187b32",
        "cad5a3a204aca14bf4e6f9aba169f82026549b5e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Aug 01 17:57:07 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 01 17:57:07 2018 +0000"
      },
      "message": "Merge \"mediaplayer2: rename some MEDIA2_INFO_* constants\""
    },
    {
      "commit": "cad5a3a204aca14bf4e6f9aba169f82026549b5e",
      "tree": "d6851f465861fdf081fad7d82daf3124121e5ef6",
      "parents": [
        "f344afa981e537b5f354352284272a8a51cf6759"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Jul 31 17:03:56 2018 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Jul 31 17:03:56 2018 -0700"
      },
      "message": "mediaplayer2: rename some MEDIA2_INFO_* constants\n\nTest: cts tests\nBug: 109928575\nChange-Id: I186e5c5c43f67cc594fc34fbb0d996587fb98ffb\n"
    },
    {
      "commit": "9b5a7ad0e9901bb1b4ed46f0f1aac5a75ea8e627",
      "tree": "1864c5bc84f8214fd52391e291b20cb2afb5f77b",
      "parents": [
        "93adab132cfdd6e71cee2af14eea711b49a4c76d"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Jul 27 17:33:24 2018 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Jul 27 17:41:55 2018 -0700"
      },
      "message": "NuPlayerDecoder: check buffer size before memcpy\n\nTest: none\nBug: 111649621\nChange-Id: I7f19a66a11eaeb54bf9513a4f56aa1ee7d3d81f5\n"
    },
    {
      "commit": "8144aeefd1d7d8d06612df31c3f7728c03d36000",
      "tree": "605ab0461d47a35ecbb3efb83c4370de59d75c21",
      "parents": [
        "c22b754fa944017c5d4c5ca58a077fdf89842947"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Thu Jun 28 17:40:03 2018 -0700"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Thu Jun 28 17:47:14 2018 -0700"
      },
      "message": "Remove AndroidRuntime::getJNIEnv() usage from libmediaplayer2\n\nTest: pass MediaPlayer2Test#testPlayVideo\nBug: 63934228\nChange-Id: I29da97cdc458bca18d95f4da349c93382e722727\n"
    },
    {
      "commit": "1f043e44864433e198be556ae1282d11720c741c",
      "tree": "ba971b4f177c3e9249933e10708007772de5a9a8",
      "parents": [
        "f4a0c67ca42a47deb3ae403d9853d7570c4cffc2"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Jun 20 16:52:50 2018 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Jun 21 16:35:39 2018 -0700"
      },
      "message": "mediaplayer2: rename getMediaPlayer2State to getState\n\nTest: MediaPlayer2Test\nBug: 109928575\nChange-Id: Ib357cdd82bde0b298c5d9e749267737bd0cd3af3\n"
    },
    {
      "commit": "41cd823562cb58642eb2fe0d19328259227766c4",
      "tree": "7a5c1160d00bd913f8507da52523e0b80b08b448",
      "parents": [
        "8add485d4b07deb5c84feb594c688be514a491c7"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed May 09 00:16:42 2018 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed May 09 07:33:23 2018 +0000"
      },
      "message": "Remove unused `tags` property from Android.bp files\n\nThe tags property is (and has always been) unused by Soong. The property has\nbeen defined as a list of strings, and the `androidmk` converted any\nLOCAL_MODULE_TAGS entries over to it, but we\u0027ve never done anything with it.\n\nIn preparation for removing the definition from Soong, I\u0027m removing it from all\nAndroid.bp files in the tree.\n\nSince this has never done anything, this is a no-op, but if you really did want\nthe Android.mk behavior, the proper way to define a module to be installed in\nuserdebug / eng builds is to use PRODUCT_PACKAGES_DEBUG or PRODUCT_PACKAGES_ENG\nin the appropriate product makefile.\n\nChange-Id: I4a6a26cd7e139c19f63e02d6e1e7a2617c55b72d\nExempt-From-Owner-Approval: global no-op build change\nTest: remove `tags` from Soong, see errors go away.\n"
    },
    {
      "commit": "334adf0ea8a9a5f6e26168864d4fd73a5c9417eb",
      "tree": "87c8fa867b66325b0fc3487ddd699b560cfc5a87",
      "parents": [
        "1c57a0e6e0953c2bb192fca2ec6c6700ccbd0b1d"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Mar 23 14:08:23 2018 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Mar 23 14:08:23 2018 -0700"
      },
      "message": "mediaplayer2: remove redundant line\n\nTest: MediaPlayer2 plays\nBug: 76144391\nChange-Id: I32bf5e5f0938516821316fd57fe74e96406bc416\n"
    },
    {
      "commit": "0cd95065c5d293f0d6e53cd75e44d20106dd2e6e",
      "tree": "a6f501e0ab021946977d8d395ed254e9f36e9283",
      "parents": [
        "bb32f8706f7c7b15c9d1822e9514494864883bd0"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Sun Jan 21 17:41:16 2018 -0800"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Mon Mar 05 20:56:57 2018 -0800"
      },
      "message": "nuplayer2: port GenericSource2 to NDK APIs\n\nBug: 63934228\nChange-Id: I8bddacf5ce9eb8f22f3d4a945e0a7db1b52628d3\n"
    },
    {
      "commit": "d83d4f4a43616f38217591ba2d3f10d77fd4e748",
      "tree": "8c4c462635c15290a3436b01dc2614caade4ff84",
      "parents": [
        "b95a5989190a427a7ea092dc18741af524009bdb"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Sat Feb 24 19:02:46 2018 -0800"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Mon Mar 05 20:36:13 2018 +0000"
      },
      "message": "NdkMediaExtractor: per-sample format metadata API\n\nBug: 63934228\nTest: MediaPlayer2Test\nChange-Id: I8ac081ba91152b1bb2e7bb61bf6977f90bcb8e3c\n"
    },
    {
      "commit": "98787a7a85f58af4c684d368bb235bcc0c6cfbce",
      "tree": "54255371be9cb8b53655fd4eebe34c67f74970ff",
      "parents": [
        "f11edb6f6a103a23a50d0ec4b214fdd36aa5f139"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Mar 02 14:33:06 2018 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Mar 02 15:22:29 2018 -0800"
      },
      "message": "MediaPlayer2: add getMediaPlayer2State\n\nTest: MediaPlayer2 plays\nBug: 63934228\nChange-Id: I1a5290de44e0ba78fa6adc055ffdd18a4f259f15\n"
    },
    {
      "commit": "c2c0aabfef24cbf48cdf6755f8627386971abdd3",
      "tree": "9ae9ca31e811a59e6530f362f6bac9f324a30209",
      "parents": [
        "4c96b75c87bc3f8dd2da7f76b08a81333b43ce22",
        "6969da62b068aff2aee650d57590532f8fc8de69"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Mon Feb 26 23:30:00 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 26 23:30:00 2018 +0000"
      },
      "message": "Merge \"Revert \"Remove IDataSource dependency from DataSource.\"\""
    },
    {
      "commit": "4c96b75c87bc3f8dd2da7f76b08a81333b43ce22",
      "tree": "f0e8dfb12a8edcb837c59cc793467c7762b13ac3",
      "parents": [
        "54c28999afa7834a8dbc6079a2707598a37db56f",
        "3d21ae3fad5a894cf15f2e7e7a1d54d0f3d19db0"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Feb 26 22:12:54 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 26 22:12:54 2018 +0000"
      },
      "message": "Merge \"Remove RefBase from the extractor API\""
    },
    {
      "commit": "3d21ae3fad5a894cf15f2e7e7a1d54d0f3d19db0",
      "tree": "4e73f99782f61c1d3d76767b9e03e2aae7ea6130",
      "parents": [
        "13cb23855c3b5242818725262d8822dd4f9be24e"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Feb 16 08:24:08 2018 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Feb 23 10:04:34 2018 -0800"
      },
      "message": "Remove RefBase from the extractor API\n\n- Add MetaDataBase base class that MetaData derives from, but which\n  does not derive from RefBase.\n- MediaBuffer::meta_data() now returns a MetaDataBase\u0026 rather than an\n  sp\u003cMetaData\u003e\n- Rename MediaSourceBase to MediaTrack.\n- MediaSource no longer derives from MediaSourceBase (or MediaTrack)\n- MediaTrack::getFormat(), MediaExtractor::getTrackMetaData() and\n  MediaExtractor::getMetaData() all take a MetaDataBase\u0026 parameter that\n  they fill out, rather than returning a MetaData directly (the\n  corresponding methods on MediaSource and RemoteMediaExtractor continue\n  to return MetaData)\n\nBug: 67908544\nTest: CTS MediaPlayerTest, DecoderTest, EncodeDecodeTest, manually record video\n\nChange-Id: Ib531ab309061290be33d40d6100c9a8127e22083\n"
    },
    {
      "commit": "800fe37160c77c2da1dc78ed4e76047a42ea061a",
      "tree": "cc783bfb30ee748f5d409368f46b67bdb312ffa0",
      "parents": [
        "bb4bbb08398548e29e6804c5cc674b340830f719"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Feb 20 15:00:45 2018 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Feb 22 10:24:40 2018 -0800"
      },
      "message": "MediaPlayer2: use long type for media time.\n\nTest: MediaPlayer2 plays\nBug: 63934228\nChange-Id: I85cca6c24c116b2f53079cd081a1f5172af3a099\n"
    },
    {
      "commit": "ec044b069f6d1d8c274a182c9bc0d89fd7d6ff0d",
      "tree": "92d2eef586e12a694e20d95c4debada8df9b3616",
      "parents": [
        "542906964badda8312c03464035dcb12698b0e95"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Feb 19 12:41:23 2018 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Feb 20 10:17:47 2018 -0800"
      },
      "message": "MediaPlayer2: remove MediaPlayer2Engine\n\nTest: MediaPlayer2 plays\nBug: 63934228\nChange-Id: I2459082bf6bbe2384ed94901b1f8f28559345888\n"
    },
    {
      "commit": "542906964badda8312c03464035dcb12698b0e95",
      "tree": "243bfb7bb3b3eb7b59bc8367b366877f5429b217",
      "parents": [
        "332adf69b9cee8c261b321337b0b8efd57a69018",
        "57aeffd55c2acff5a0f82771cea1f72639a110d7"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 16 17:06:18 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 16 17:06:18 2018 +0000"
      },
      "message": "Merge \"MediaPlayer2: initial code for playlist support\""
    },
    {
      "commit": "57aeffd55c2acff5a0f82771cea1f72639a110d7",
      "tree": "246817cc6257d86b72eac6499b7fe42022c5e373",
      "parents": [
        "be3708cf048dd6351d1ce9a62771cba29d5f3cd2"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Feb 15 16:01:14 2018 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Feb 15 16:59:29 2018 -0800"
      },
      "message": "MediaPlayer2: initial code for playlist support\n\nTest: MediaPlayer2 plays\nBug: 63934228\nChange-Id: If63c97e225759108a30bb58ab0870569e0878ade\n"
    },
    {
      "commit": "81be7d85ab3e1a5897be623d040a26d4d9ede207",
      "tree": "1161cef3aa4aca94ac6625369d5adde614cf2359",
      "parents": [
        "46b5c79e2f02b946a58e8c501f7930d439d42771",
        "1889c3edad32995c0cf26ae2248fe7c957b7ec84"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Thu Feb 15 23:07:17 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 15 23:07:17 2018 +0000"
      },
      "message": "Merge \"Add MediaBufferBase and use it in MediaSource and MediaBufferGroup.\""
    },
    {
      "commit": "6d486024172abfc1c016b32fd42dd67aeb4e79c8",
      "tree": "2daa998ddac317b37825af27f72f4cddf7c08560",
      "parents": [
        "e4767e3911d3e31c31ab558819a9e8960dbbbdd6",
        "42a6decdd6c173a36e51c19d44849e6654eb60f9"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 13 11:25:32 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 13 11:25:32 2018 +0000"
      },
      "message": "Merge \"JAudioTrack: Add offload mode support\""
    },
    {
      "commit": "1889c3edad32995c0cf26ae2248fe7c957b7ec84",
      "tree": "5a4bd7fec36d039f75d04124b46d6295ac65e200",
      "parents": [
        "405b3c70ccf6c6671fbbe72557a8493e4e0f6097"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Thu Feb 01 13:44:57 2018 -0800"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Mon Feb 12 23:59:34 2018 -0800"
      },
      "message": "Add MediaBufferBase and use it in MediaSource and MediaBufferGroup.\n\nMediaBuffer class exposes internal classes, ABuffer and IMemory, which\nwe don\u0027t want to expose to plugins. This change introduces\nMediaBufferBase which does not expose any classes from system library.\n\nTest: build and post-submit media cts tests\nBug: 67908556\nChange-Id: Ic9ee239caf9b84b2b3740e2d533257afa25c8784\n"
    },
    {
      "commit": "6969da62b068aff2aee650d57590532f8fc8de69",
      "tree": "129cd94c2c16f00fa845abd2b12892acab0cdb84",
      "parents": [
        "405b3c70ccf6c6671fbbe72557a8493e4e0f6097"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Mon Feb 12 20:55:14 2018 -0800"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Mon Feb 12 23:26:00 2018 -0800"
      },
      "message": "Revert \"Remove IDataSource dependency from DataSource.\"\n\nThis reverts commit 514674257ef6954a7479ac93a26a07061f54462d.\n\nThe original change Iaba6d9be is no longer needed since we\nseparated out DataSourceBase from DataSource. Now, DataSource\nmay have a method relying on a class from libmedia, IDataSource.\n\nTest: checked the correct wrapping path with \u0027dumpsys media.extractor\u0027\nBug: 72869975\n\nChange-Id: Ib0d5ca863fa70a4a96f97b3377c209e1f288f443\n"
    },
    {
      "commit": "083e9098e6bb6dce2d1eed3412a836484a5a17ec",
      "tree": "3bc2d6f19c6a1e5c3eb3a2c95d9ec10e7d6626b2",
      "parents": [
        "d8d4ef440fe25095d34e535e591edd8fa1457307"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Feb 12 11:46:04 2018 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Feb 12 11:46:04 2018 -0800"
      },
      "message": "MediaPlayer2: seekTo does not change state.\n\nTest: MediaPlayer2 plays\nBug: 63934228\nChange-Id: I13ec7225277b2f53535274828eb9d06ccd77db0c\n"
    },
    {
      "commit": "d0e0b1a1262c80e71fa2a1bb0f4880389b1e985b",
      "tree": "ee6b015139a87ea9046e93d392e132ac0bf62837",
      "parents": [
        "913f986aec4dc5c2eee4879746e9ffdc7af7637b",
        "d2bb1bd1fb916dc487ff930cd8c1ec618b49573e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Feb 10 02:31:46 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Feb 10 02:31:46 2018 +0000"
      },
      "message": "Merge \"MediaPlayer2: hook up srcId.\""
    },
    {
      "commit": "d2bb1bd1fb916dc487ff930cd8c1ec618b49573e",
      "tree": "0fea0d78d88f2f04de24b324ce2a21c0124b9975",
      "parents": [
        "72bf2a09b4f7f4d5af75f1bd85c8364e624113fe"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Feb 08 09:47:37 2018 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Feb 09 13:55:53 2018 -0800"
      },
      "message": "MediaPlayer2: hook up srcId.\n\nTest: MediaPlayer2 plays.\nBug: 63934228\nChange-Id: I0dd8b345d89034600e1c0fb3f58e4d92990c0054\n"
    },
    {
      "commit": "42a6decdd6c173a36e51c19d44849e6654eb60f9",
      "tree": "9ef1cd40d4ef78405ad4511c62ecabe19a76f4dc",
      "parents": [
        "04696f702ad0a4bdc59a4bbe47663a497b6128c8"
      ],
      "author": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Mon Jan 22 19:26:47 2018 +0900"
      },
      "committer": {
        "name": "Hyundo Moon",
        "email": "hdmoon@google.com",
        "time": "Fri Feb 09 22:01:19 2018 +0900"
      },
      "message": "JAudioTrack: Add offload mode support\n\nAlso, this CL adds below methods to JAudioTrack:\n\n1) getAudioSessionId\n\n2) setOutputDevice\n  - However, it uses a hidden method of AudioManager.\n    (See MediaPlayer2Impl.java)\n\n3) getFlags\n  - Method body is incomplete.\n  - It needs a way to check whether the audio track is direct,\n    or whether the HW supports A/V sync.\n\n4) getTimestamp(ExtendedTimestamp *timestamp)\n  - Method body is empty.\n  - It needs appropriate Java method to call.\n  - This is a different method from previously added method\n    getTimestamp(AudioTimestamp\u0026 timestamp).\n\n5) pendingDuration\n  - Method body is incomplete.\n  - It depends on above getTimestamp method.\n\n6) add/removeAudioDeviceCallback\n  - Method body is empty.\n  - It needs appropriate Java method to call.\n  - Cannot use Java AudioTrack.addOnRoutingChangedListener(), since the\n    callback onAudioRoutingChanged(AudioRouting) does not provide the\n    audio_io_handle_t which the native AudioDeviceCallback needs.\n\nBug: 70363744\nTest: Builds successfully\nChange-Id: I50455280812546d97f2c3e6425d17c0483476af1\n"
    },
    {
      "commit": "7e193a143f52180abfc9c1c9c82f7c70f6ae5f74",
      "tree": "3fe13b073bc77b37f042bf69731f3e2210c5fd72",
      "parents": [
        "bffc6464eeff376fdc46c81f57d34d48652a8a6b",
        "72bf2a09b4f7f4d5af75f1bd85c8364e624113fe"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 08 19:32:27 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 08 19:32:27 2018 +0000"
      },
      "message": "Merge \"NuPlayer2: add srcId for source.\""
    },
    {
      "commit": "72bf2a09b4f7f4d5af75f1bd85c8364e624113fe",
      "tree": "0954de08245da4970b6f2aa309d11f6b17c6a3be",
      "parents": [
        "003fdb5b76ccc537d4ab7ef19c8a2e3be19b594c"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Feb 06 15:29:23 2018 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Feb 08 09:52:26 2018 -0800"
      },
      "message": "NuPlayer2: add srcId for source.\n\nAlso add prepareNextDataSource for playlist.\nTest: MediaPlayer2 plays\nBug: 63934228\nChange-Id: I7386b60019323b36632f3b3275c4513433ee6e2e\n"
    },
    {
      "commit": "de15b8c160c720c48b93796016801e7ae0b6bd2d",
      "tree": "49044f23ead7f0dca058f477f5b1365a16a6e144",
      "parents": [
        "a2544c5431224995ade19611642d2b534939fb14"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Tue Jan 30 16:35:56 2018 -0800"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Wed Feb 07 11:55:19 2018 -0800"
      },
      "message": "link media.metrics native strings to api-controlled java strings\n\nadd comments to native media.metrics code pointing to how they\nare (and aren\u0027t) to be kept in synch with their java counterparts\nthat are part of the public API (and therefore pretty much fixed).\n\nBug: 72492234\nTest: compilation\nChange-Id: Ic096545a5cdfb2160c6b66438d345d8e625384b9\n"
    },
    {
      "commit": "003fdb5b76ccc537d4ab7ef19c8a2e3be19b594c",
      "tree": "f8b91e11eb14f74a07619a541d6c11291c55c4fd",
      "parents": [
        "3372721111f8793d04f50e9ae0401205f9411113"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Feb 06 14:44:32 2018 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Feb 06 14:44:32 2018 -0800"
      },
      "message": "MediaPlayer2: uid is always valid.\n\nTest: MediaPlayer2 plays\nBug: 63934228\nChange-Id: I4c9fefe1cdb04f0f7fa82cf08f382c12f6bf5b0b\n"
    },
    {
      "commit": "51b6956bc8e09eb2237a10a401baebb35096e6ab",
      "tree": "dfec915d73c7795b3b115037555c2160ebe69c72",
      "parents": [
        "65fdcf74e09717b6e67fa90ff78af45f2c9414cc"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Feb 05 16:17:13 2018 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Feb 05 16:22:13 2018 -0800"
      },
      "message": "MediaPlayer2: move MediaPlayer2 native code to libmediaplayer2\n\nTest: MediaPlayer2 plays\nBug: 63934228\nChange-Id: Ibec6d15524510a4d8618d1f684456c6c24b79828\n"
    }
  ]
}
