)]}'
{
  "log": [
    {
      "commit": "9e0ad0278471500b833aa58ccc29b3c542551932",
      "tree": "aa1f30f9f63025a5a5c47388d2310f94617da978",
      "parents": [
        "76e348fc43d7b8bda0362ccbf14bf0eeac09a7c9"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Mar 20 14:42:16 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Mar 20 15:50:13 2019 -0700"
      },
      "message": "Add key for haptic channel count in metadata.\n\nThis key could be useful to query if a file contains haptic channels or\nnot.\n\nTest: test with files (not) containing haptic channels\nBug: 128012181\nChange-Id: I5f0a9ca9fde23ce7d6f48921acc9a1074a6a1601\n"
    },
    {
      "commit": "06f087d7ebc4b62bec118d1ce8c9ce0e158b8b61",
      "tree": "59c0d4d7c9e40372f9ab0a237c2aaedfb68da53b",
      "parents": [
        "531adf7c2d8dd1e24fbbe9fc932187974bd7cd0b",
        "038e8f8854dd8b7c77d63e5a1cf50e838f443b02"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Feb 26 23:15:40 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 26 23:15:40 2019 +0000"
      },
      "message": "Merge \"Make KEY_MAX_PTS_GAP_TO_ENCODER and KEY_MAX_FPS_TO_ENCODER keys public\""
    },
    {
      "commit": "038e8f8854dd8b7c77d63e5a1cf50e838f443b02",
      "tree": "e6d1d26f3d2f08770c6d0f4fc8dcff78a8f3f470",
      "parents": [
        "0684bf1ac795c8a112cdc168004cdf0bad6a6647"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Feb 06 19:05:14 2019 -0800"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Feb 07 10:14:35 2019 -0800"
      },
      "message": "Make KEY_MAX_PTS_GAP_TO_ENCODER and KEY_MAX_FPS_TO_ENCODER keys public\n\nThese two keys are in public API now, keep ndk in sync.\n\nAlso replaced strings with the defined keys in media code.\n\nbug: 80314065\nChange-Id: Ic0d50c10d1f9ab464068223a1a235b95f59f4c98\n"
    },
    {
      "commit": "4a224f5902f88c8dda4c9f6930148ee367a103da",
      "tree": "dc5cd5efcf2ad4d66bd848bbc5be21cdab6b2b4e",
      "parents": [
        "0684bf1ac795c8a112cdc168004cdf0bad6a6647"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Jun 05 15:40:19 2018 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Feb 04 11:35:21 2019 -0800"
      },
      "message": "Expose a few keys that are already used by apps\n\nbug: 80314065\nChange-Id: I63773e96577a273d890438526cc575f3ed225cea\n"
    },
    {
      "commit": "89cefe5cd557151261ac23a4e4d1c611350966d5",
      "tree": "27ece0d8bb0e5387babcca787d820023888a876d",
      "parents": [
        "a09fa50c96278cdacf7c845821631c3dab69813a"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Jan 09 18:49:31 2019 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Jan 09 18:49:31 2019 -0800"
      },
      "message": "NdkWrapper: return NULL when cryptoInfo is NULL\n\nTest: cts\nBug: 122073361\nChange-Id: I3192f1935760e4e1d1038d7b4cb328975a9a63e5\n"
    },
    {
      "commit": "4a84cbb33dd74bc033518d007e2d9315e600bdac",
      "tree": "f598676a197f597595f6f7396713ed05edc7c027",
      "parents": [
        "73142871e81c42374cb85390efc1fb7adca230f3"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Tue Dec 18 16:34:47 2018 -0800"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Fri Dec 21 13:26:44 2018 -0800"
      },
      "message": "NdkWrapper: add missing DRM AMediaFormat keys\n\nBug: 121387877\nTest: MediaPlayer2DrmTest\nChange-Id: I7e07bb80746990a4f2e35ff595cab8ed75eda062\n"
    },
    {
      "commit": "4d432f1d0b33b54e49fc21fd583f57e1e86966f1",
      "tree": "f07a3a595d607b972043218c33337c5a81414b3f",
      "parents": [
        "69c9844bed34c367224d5f6219e8410664b2119b"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Thu Nov 01 12:29:06 2018 -0700"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Fri Nov 02 20:04:14 2018 +0000"
      },
      "message": "AMediaDataSourceWrapper: keep DataSource sp alive\n\nBug: 118506674\nTest: android.media.cts.MediaPlayer2Test#testConsecutiveSeeks\nChange-Id: Iafa26d6a0fa6ad4aa7dee696fff1673075e51624\n"
    },
    {
      "commit": "49fb89d3a0853ef77ecd533bec586abc65754857",
      "tree": "c5384ccf1b4c014763cb1039ea1e90d95861b3a3",
      "parents": [
        "cab10da0da9d9a991c4b895992b6c0e34d5b8293"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Wed Jan 31 17:53:19 2018 -0800"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Sun Oct 21 15:09:28 2018 -0700"
      },
      "message": "nuplayer2: remove NuCachedSource2 reference from GenericSource\n\nBug: 63934228\nChange-Id: I6862ca94327df88dddd7afaa125622c64d61516b\n"
    },
    {
      "commit": "03244035489de61c4eb09506cb41a1a46a834a49",
      "tree": "6a4a3309af6e97e50181889b67b01991bf9f1ebd",
      "parents": [
        "87653da51febf0b3be01c742c5d2b6728b496ffa"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Tue Oct 02 14:36:32 2018 -0700"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Tue Oct 02 16:15:24 2018 -0700"
      },
      "message": "Network DataSources: implement disconnect in close\n\nBug: 109928575\nTest: android.media.cts.NativeDecoderTest#testAMediaDataSourceClose\nChange-Id: I083b85c31e42f7ddd4b2da365557e3d9251f8777\n"
    },
    {
      "commit": "3fd320dac30e103a47bdbcf1897deac3d08f99e9",
      "tree": "88073126277312b68ec8726b7fc61e4c7cc59397",
      "parents": [
        "64da22285776f07a775afd45f9fc36cea1aa05e3"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Thu Apr 26 16:21:29 2018 -0700"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Fri Apr 27 22:26:21 2018 +0000"
      },
      "message": "NdkMediaExtractor: remove `disconnect` from NDK headers\n\nBug: 63934228\nChange-Id: I74f0564bb75dffb934931d0e5f1d34b17916f2b8\n"
    },
    {
      "commit": "67d5b91f2fa0b106c038e642225e3b538db2be2e",
      "tree": "3450723f9600a1ddf4af2735423a85d1a5f8d1c9",
      "parents": [
        "3f21345e16b77c49042f5c13ceb62b0c35699561"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Mar 14 18:17:40 2018 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Mar 15 16:00:21 2018 -0700"
      },
      "message": "heif: renaming of grid-{width,height} to tile-{width,height}\n\nSo that it\u0027s not confused with grid dimensions.\n\nbug: 74831433\n\nChange-Id: I29188c6527c2315cbc66157a0a5b68a0d11fecc4\n"
    },
    {
      "commit": "08eb908098436ce8cc1faf0f009ced1a8fa32c9a",
      "tree": "98056726426c3948dd21cc1b7d855e30e89f903e",
      "parents": [
        "0df1e8d08aeb50771bdae54f77088f31531c4cb0"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Fri Mar 09 13:57:26 2018 -0800"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Tue Mar 13 11:12:33 2018 -0700"
      },
      "message": "NdkMediaExtractor: add disconnect API\n\nBug: 63934228\nChange-Id: I89c57fae387958d204df9c736e89654868ee5941\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": "a1d39ba72fd92df6b447939b1bbede5c56df17e6",
      "tree": "54fff7206b48bd7123929128a4fc1e2b1d0a44d4",
      "parents": [
        "062ffd042fcbd237f445d499bc8ea8c5baf61d98"
      ],
      "author": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Fri Mar 02 04:33:02 2018 +0000"
      },
      "committer": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Fri Mar 02 04:33:02 2018 +0000"
      },
      "message": "Revert \"NdkMediaExtractor: per-sample format metadata API\"\n\nThis reverts commit 062ffd042fcbd237f445d499bc8ea8c5baf61d98.\n\nBug: 63934228\nBug: 74089496\n\nReason for revert: original change bypassed presubmit, causing mediaextractor crash, \n\nChange-Id: Iac4c49659dfa7415908d60da98a2285c583a1196\n"
    },
    {
      "commit": "062ffd042fcbd237f445d499bc8ea8c5baf61d98",
      "tree": "689681687a4f67f44b6532a904718eb984919c25",
      "parents": [
        "006b7eebe4c86eba7a67471d99b061b6b76177f5"
      ],
      "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": "Thu Mar 01 14:11:11 2018 -0800"
      },
      "message": "NdkMediaExtractor: per-sample format metadata API\n\nBug: 63934228\nTest: MediaPlayer2Test\nChange-Id: I3e6dc40d39bcb6d939ef7c555c2373995a9b6ae4\n"
    },
    {
      "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": "d4faf9e7cec12cf85e5901e81b7e05301012351c",
      "tree": "4d43046bd139d994757622b751e4ded3bd6b8cfc",
      "parents": [
        "9111804e9051b2888c66e26ee1a872bb3ef7a988"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Sun Jan 21 17:52:25 2018 -0800"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Mon Feb 12 12:03:54 2018 -0800"
      },
      "message": "Ndk wrapper: wrap new Ndk datasource/extractor APIs\n\nBug: 63934228\nChange-Id: Id6200b5b5be3c7fa22cfb0233f749fc0e8ef2bc4\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": "ff282cbc6bbe58d84b041bb68339f5ca9b55d4cf",
      "tree": "8eb251126d46a086a1dd0a78d26de136f052ef27",
      "parents": [
        "68d8897638cf8b1a572cd63b659bf7c1a88fb323"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Mon Dec 18 14:10:56 2017 -0800"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Wed Dec 20 19:52:19 2017 +0000"
      },
      "message": "Add Ndk MediaExtractor wrapper\n\nBug: 69805888\nChange-Id: Id41ba3a6984171643d53e2a5de615829071b16d4\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"
    }
  ]
}
