)]}'
{
  "log": [
    {
      "commit": "fc9f40f380004ac7f23aa9f4312fdf227181235f",
      "tree": "4cc14286eb62e339895861bb90d2c4731bc67ccc",
      "parents": [
        "435ba2e250da24bed173d4ca7415f5adb5f7846b"
      ],
      "author": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Fri Jan 04 14:15:28 2019 -0800"
      },
      "committer": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Wed Jan 09 10:47:02 2019 -0800"
      },
      "message": "jWakeLock\n\nreplace native binder with java PowerManager in JWakeLock\n\nTest: MediaPlayer2Test\nBug: 122470692\nChange-Id: I488758892d225ca31defbe3d96ebf68a57dc9e35\n"
    },
    {
      "commit": "919f85f20efe47e23a37b053a05ff071a770d1d0",
      "tree": "a6d13bfe4931b27376f7ecef278dffe30652fe5d",
      "parents": [
        "2c66f89ff17cc327ace5a6104676a6197a15585e"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Mon Jan 07 14:58:00 2019 -0800"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Mon Jan 07 15:06:26 2019 -0800"
      },
      "message": "MediaPlayer2: replace IPCThreadState with libbinder_ndk.\n\ncheckCallingPermission() testing in dumpPlayers is dropped\nsince MediaPlayer2 is not running on system service so the\nchecking in MediaPlayer2 is not meaningful.\n\nTest: make libmedia2_jni\nBug: 112766913\nChange-Id: I8af753f0d83689f92348ecf986c30c75d7ae12ff\n"
    },
    {
      "commit": "2c66f89ff17cc327ace5a6104676a6197a15585e",
      "tree": "048f570dd414fa247e42e316f0b95e61073f1449",
      "parents": [
        "c186a6f9409d7f51c2b82d055b792657d60bb07f"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Mon Jan 07 14:39:17 2019 -0800"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Mon Jan 07 15:06:23 2019 -0800"
      },
      "message": "Completely remove Metadata from MediaPlayer2.\n\ndeprecated Metadata class has dependency on libbinder, so this change\nremoves Metadata usage from MediaPlayer2 completely.\n\nTest: make libmedia2_jni\nBug: 112766913\nChange-Id: I32b0ae618c524a32afee07a21e950dbfad3e5750\n"
    },
    {
      "commit": "17944af5b111ade413e8e71a34898ccf8a51c15a",
      "tree": "fd28b2e1a64b2bdb75a0ff20f75c9e125da3e67d",
      "parents": [
        "d00c4607a5f7d25dfe925a20a1fc5fd7cfcee67a"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Dec 13 18:13:10 2018 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Dec 13 20:04:45 2018 -0800"
      },
      "message": "mediaplayer2: add srcId for source dependent API\u0027s\n\nTest: cts\nBug: 112549021\nChange-Id: I619c85af8f59cb5956ca0b399e918ea38e3b32b5\n"
    },
    {
      "commit": "3c3728de60aba0d98c7fa3576a17b1a79582dd33",
      "tree": "aa58e8496e9379b34ac39aa331610817b4033a87",
      "parents": [
        "b6670e3dbe3ca63d6766ae45de809ea97590d817"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Tue Dec 04 17:06:36 2018 -0800"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Tue Dec 04 22:59:55 2018 -0800"
      },
      "message": "mediaplayer2: per-source DRM prepare/release iface\n\nBug: 119675660\nTest: MediaPlayer2DrmTest\nChange-Id: I583be4de45cb7de4e1638fb3442511dbabc661b3\n"
    },
    {
      "commit": "23658641debafa1af12459a5f3c8e907157366b7",
      "tree": "d8ea3f5de441283a11cf33f970e608e92ce6c207",
      "parents": [
        "eacf0137cfef6efc1df0bb80e4e168b34e2e38a4"
      ],
      "author": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Thu Nov 15 10:26:16 2018 -0800"
      },
      "committer": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Sat Nov 17 00:04:58 2018 +0000"
      },
      "message": "MP2: replace AudioSystem APIs with public ones in mediaplayer2.cpp\n\nBug: 112549970\nTest: MediaPlayer2Test, RoutingTest\n\nChange-Id: Ib2520c29370dee88667e64044b3fcdc053623dbf\n"
    },
    {
      "commit": "a60eaa87f015d2c75c55672067574a641173c7c5",
      "tree": "fa91b6debc58b8fb1e17b7168b7ab88e8889ee06",
      "parents": [
        "ba92a60c8c322e0f795513c2eb67a42c7ae0b3c5",
        "c2465c595302a4badd81ac969e0c6d1d5f98e71f"
      ],
      "author": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Tue Nov 13 17:14:34 2018 +0000"
      },
      "committer": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Tue Nov 13 14:01:58 2018 -0800"
      },
      "message": "MediaPlayer2: create MP2AudioOutput in constructor\n\nMove MP2AudioOutput creator from setDataSource() to constructor.\nTest: MediaPlayer2Test, RoutingTest\n\nChange-Id: Ibe19c8a259c735ea2b5822f769babaf4d7f2bed0\n"
    },
    {
      "commit": "c2465c595302a4badd81ac969e0c6d1d5f98e71f",
      "tree": "6f80489585036e3a2e15cf7cfaec14e5645d20da",
      "parents": [
        "158ce41988f3706465514265eed1d7e4b6fb123c"
      ],
      "author": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Mon Nov 12 11:56:05 2018 -0800"
      },
      "committer": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Mon Nov 12 16:49:11 2018 -0800"
      },
      "message": "MediaPlayer2: directly pass AudioAttributes to AudioTrack without native parcel conversion\n\nthe AudioAttribute jobject now is directly passed to AudioTrack without native parcel conversion.\n\nChange-Id: I5e44a3b826452e593c89904caced924cff5f0026\nTest: android.media.cts.MediaPlayer2Test, android.media.cts.RoutingTest\n"
    },
    {
      "commit": "0d7042d59a8f4590e88331f95043832c1a46ab3a",
      "tree": "2b82c0f301c70b9786afa43a9a4893c97a1b4939",
      "parents": [
        "62cab4de9321f1147d9fa3f4be8d4a97d28b494d"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Fri Oct 12 16:52:14 2018 -0700"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Fri Nov 09 14:33:47 2018 -0800"
      },
      "message": "MediaPlayer2: remove AudioManager private API usage\n\nPrivate API AudioManager.getDevicesStatic() is being used in\nMediaPlayer2 for conversion between id \u003c\u003d\u003e AudioDeviceInfo.\nThis conversion was added to talk with internal native AudioTrack API,\nbut in MediaPlayer2 since we will use public java AudioTrack API,\nthe given AudioDeviceInfo can be directly passed to java AudioTrack\ninstance.\n\nTest: CtsMediaTestCases:android.media.cts.RoutingTest\nBug: 112767549\nChange-Id: I9aeae02202edb6b5f0eb72b4f4dd3c936103ced2\n"
    },
    {
      "commit": "f872691537da559a5d3f755604dc52e430d12617",
      "tree": "f053337222092b30abb6bf3ec00d9a8df5f10adb",
      "parents": [
        "c25db9303131d04d15f2ca28f1a8f9153becf449"
      ],
      "author": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Wed Oct 17 13:31:26 2018 -0700"
      },
      "committer": {
        "name": "Dichen Zhang",
        "email": "dichenzhang@google.com",
        "time": "Thu Nov 08 14:18:11 2018 -0800"
      },
      "message": "Enable JAudioTrack.\n\nMediaPlayer2 AudioOutput using public APIs.\n\nBug: 112549970\nTest: android.media.cts.MediaPlayer2Test, android.media.cts.RoutingTest\nChange-Id: Id76d80c040a52fd2ab724999697e222495906aec\n"
    },
    {
      "commit": "e31ac8a2decec1ecda02bc9739984c35783fc92c",
      "tree": "275526fa98f5be607aa5abbb207adf7b5fb1140d",
      "parents": [
        "2d4cf009bb6e7ed9a35971061323ba566bf1a61c"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Oct 25 11:06:21 2018 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Oct 25 11:28:54 2018 -0700"
      },
      "message": "DataSourceDesc: set max time in ms and us\n\nTest: cts\nBug: 112549021\n\nChange-Id: I3198cf221dc17b9c6504b3c160121a385a848487\n"
    },
    {
      "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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"
    },
    {
      "commit": "65fdcf74e09717b6e67fa90ff78af45f2c9414cc",
      "tree": "79d751c9e4f91740a0e4aeee0a2c4a9eddeb63b2",
      "parents": [
        "a97e318d3fac9a47a7e0615473982f170148a52d"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Feb 02 17:43:04 2018 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Feb 02 17:43:04 2018 -0800"
      },
      "message": "MediaPlayer2: remove unused code.\n\nTest: MediaPlayer2 plays\nBug: 63934228\nChange-Id: I046c7be126a329dfd8f11cdc7471a7ec70a1c64f\n"
    },
    {
      "commit": "c2636035f0a7990cf9da95d2531f9f1c03b8c172",
      "tree": "079818a0f400ab799c797860707c945e3ecc3199",
      "parents": [
        "4b8dbfc9e85ca7c2cc4acdcddca997f197fee718"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Feb 01 09:15:25 2018 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Feb 01 10:30:36 2018 -0800"
      },
      "message": "MediaPlayer2: add native DataSourceDesc.\n\nTest: MediaPlayer2 plays\nBug: 63934228\nChange-Id: Idd5bda81c2cc26c7aac8e64a21ccc2f6b3ac8a39\n"
    },
    {
      "commit": "c5c79dacf6664f2c86704b75003dd13ffeddfb45",
      "tree": "9ae9a39fe5eac1416308239120d0fb99f0e7baa3",
      "parents": [
        "28288fb0b1da843cdd37edab0cdecff32abacdce"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Dec 21 18:03:05 2017 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Dec 21 18:03:05 2017 -0800"
      },
      "message": "MediaPlayer2: use DataSource to replace IDataSource.\n\nAlso fix deadlock by always posting notification to NuPlayer2Driver\u0027s\nlooper.\nTest: MediaPlayer2 can play callback source.\nBug: 63934228\n\nChange-Id: Ie27bc0038bcc07ffef5c610662db3fcb5df7aec4\n"
    },
    {
      "commit": "28288fb0b1da843cdd37edab0cdecff32abacdce",
      "tree": "918728942ac72639cdb27f1ad927ba8243e228bf",
      "parents": [
        "8074715204c83d00a340429cb4a41e52425c0a51"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Dec 15 13:45:29 2017 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Dec 20 14:54:42 2017 -0800"
      },
      "message": "MediaPlayer2: use ANativeWindow to replace Surface and IGraphicBufferProducer\n\nTest: MediaPlayer2 plays video files\nBug: 63934228\nChange-Id: Id655aa19125cfc5554dbf36c223d0a27318ebb24\n"
    },
    {
      "commit": "53692fa54d0bf1d69184035a4c05ea0601a09c14",
      "tree": "19eb348e35448717f1d2d1e45befd2146d7f79db",
      "parents": [
        "fde0931ffe3ceeb06bb61f90a4289691da9380a8"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Dec 11 10:33:46 2017 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Dec 11 13:58:47 2017 -0800"
      },
      "message": "NuPlayer2: fork the native code for MediaPlayer2\n\nForked from fec2f93fae282ad10bbb5e3fcce9f60eff2cfb48\nNuPlayer2Decoder uses NdkMediaCodec, NdkMediaCrypto.\nNuPlayer2Drm uses NdkMediaDrm.\nNo more IMediaHTTPService and IMediaHTTPConnection in NuPlayer2.\nTest: compiles\nBug: 69805888\n\nChange-Id: Ica3c168d40dcf114fb44e8688a9ede671e8d77ef\n"
    }
  ]
}
