)]}'
{
  "log": [
    {
      "commit": "cffbc15d58796c8997100949efaac647771367f4",
      "tree": "a18db17cdffc8bdeb2ab3dfeb2cf7ac69ca74d0c",
      "parents": [
        "e8a66c66bad62aa5ab4778ce7ac448d563eae335"
      ],
      "author": {
        "name": "juanjuan.hou",
        "email": "juanjuan.hou@unisoc.com",
        "time": "Thu Sep 17 18:40:41 2020 +0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Dec 22 23:15:04 2020 +0000"
      },
      "message": "Add caching mechanism to speed up midi file reading speed.\n\nThis cache mechanism reduces the number of DataSource reads and\nbinder round trips to the IDataSource. For midi files smaller\nthan 1.5M, the pre-read data mechanism will be enabled.\nIts purpose is to reduce the time spent on filetype sniffing.\n\nIssue:164977553\n\nChange-Id: I1db7c739a69f4324cc339b8521b5a6998e8a8df0\n"
    },
    {
      "commit": "7ae782545020eec1bfb9eb74e690ae26e2cca7fa",
      "tree": "b99f5db2f4d75aeddb175896c3fa67070b21154e",
      "parents": [
        "2ac41184ae00b2e99e55d995944288f33b2fce49"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Mon Apr 13 15:20:50 2020 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Mon Apr 13 15:20:50 2020 -0700"
      },
      "message": "Include what you use: \u003cunistd.h\u003e\n\nThis was transitively included, but no longer is, so it must be\nexplicitly included.\n\nExempt-From-Owner-Approval: Janitorial\nTest: build\nChange-Id: I78268a4867697bf797d40b5fead3745fdd0cc807\n"
    },
    {
      "commit": "c39661e2507d61e18978ed48c0ad051ad1339a4e",
      "tree": "73e4dcf4bf2fe5270af436b661c6793f512eced7",
      "parents": [
        "733c728752ae6958c88b2da4a4c662d266294b70"
      ],
      "author": {
        "name": "Harish Mahendrakar",
        "email": "harish.mahendrakar@ittiam.com",
        "time": "Fri Jan 31 11:08:47 2020 -0800"
      },
      "committer": {
        "name": "Harish Mahendrakar",
        "email": "harish.mahendrakar@ittiam.com",
        "time": "Fri Jan 31 20:46:41 2020 +0000"
      },
      "message": "Move DataSourceUnwrapper to MidiIoWrapper class\n\nDataSourceUnwrapper is now part of MidiIoWrapper class\nThis is prevent use of this class outside MidiIoWrapper methods\n\nBug: 145332185\nTest: adb shell /data/local/tmp/ExtractorUnitTest -P /data/local/tmp/extractorRes/\nTest: atest android.media.cts.MediaExtractorTest\nTest: atest android.mediav2.cts.ExtractorTest\n\nChange-Id: Ia898539fb95a1eb62b81f522599976fc477bfbee\n"
    },
    {
      "commit": "95b2cf6dc4fe2a2bbea3dbed123ad95a65798cfe",
      "tree": "5cf1ded7f41e8822948cdc7b1bad132e7cfcd3c5",
      "parents": [
        "bb3c777e401d10f379835243bfcb2e6b6c678504"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Oct 15 11:02:10 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Oct 15 11:02:10 2019 -0700"
      },
      "message": "Remove unnecessary inheritance\n\nMidiIoWrapper\u0027s DataSourceUnwrapper doesn\u0027t need to inherit from\nDataSourceBase, and removing that inheritance saves a little bit\nof space too.\n\nTest: build\nChange-Id: I9f560ef57b76b624cf323d75872395a39f65ed1f\n"
    },
    {
      "commit": "be9768e8eff47385c32bcc7f9c3b82c27058b3cc",
      "tree": "2162cb598328f4d4fc057cf88483613037fb69be",
      "parents": [
        "ff0508b3d64e54829b69170adace3bbea4f6a5b6"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Dec 19 13:10:35 2018 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Dec 19 13:52:45 2018 -0800"
      },
      "message": "Fix memory leaks\n\nBug: 111407253\nTest: manual, libmemunreachable\nChange-Id: I69ad7b48498346925dd02c10b206035c0ae49305\n"
    },
    {
      "commit": "cec44d0c8dc9703ca87435d95bdcd6ef228784d7",
      "tree": "a8f3ae236978e7201114e765a652632a0286d30e",
      "parents": [
        "0b16447f1cbaab5838477a68b26eeefa18b4e7aa"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Sun Jun 17 22:21:09 2018 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Aug 21 10:49:16 2018 -0700"
      },
      "message": "C-ify DataSource\n\nAdd a C API for DataSource/Base, and a helper so extractors\ncan continue using a C++ API.\n\nBug: 111407253\nTest: build, boot, play some files\n\nChange-Id: I1c8b2990e17d18eee53c9abf7ebef2ced0e8b7fd\n"
    },
    {
      "commit": "04ce77ffc7d7466c40c226d995c0f6d389e8bbe6",
      "tree": "710d87b8b1a85db69b7ed39deba6a1f18dbe4aa1",
      "parents": [
        "405b3c70ccf6c6671fbbe72557a8493e4e0f6097"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Tue Feb 13 00:27:24 2018 -0800"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Tue Feb 13 17:50:29 2018 +0000"
      },
      "message": "Initialize mDataSource in MidiIoWrapper c-tors.\n\nTest: App in question works well.\nBug: 73105500\nChange-Id: I6ffd52bf10e23c8ee144bbc74e157a6a7b26168c\n"
    },
    {
      "commit": "2a243f08193fe9ff1afe018e9953f01c44ced9de",
      "tree": "80d5f40de50cd826248cfe4265b383677f25d0c0",
      "parents": [
        "58bce947568db8f6dd5e12e6548aff27af26ae96"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Jan 30 08:29:57 2018 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Feb 02 07:52:05 2018 -0800"
      },
      "message": "Remove RefBase from plugin-side DataSource\n\nExtractor plugins now use DataSourceBase, which is not refcounted.\nFramework-side DataSource derives from DataSourceBase and RefBase.\nAlso remove MediaExtractor::release, because it is not needed\nanymore due to the way the extractor/track/datasource lifecycle\nis managed now.\nAlso add source and target pid to CallbackDataSource name, to\nmake the extractor dumpsys more useful.\n\nBug: 67908556\nTest: build, boot, CTS, skia test app for heif\nChange-Id: I6b9cbe903f76b0cf27ba87f4a456f424803efd08\n"
    },
    {
      "commit": "255735a38b9d5c3755c7b819bdc8fdaf4357d860",
      "tree": "f1c83bce136d5f122f57dc3281ab9d5fa0597f05",
      "parents": [
        "5c2bdf6a7042d68f9ae2d2f58cf3bae1c44fcab9"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Wed Jul 19 11:24:56 2017 -0700"
      },
      "committer": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Mon Jul 24 20:29:36 2017 -0700"
      },
      "message": "Organize header dependencies\n\nHeader files that are exported are moved to a specific place for\nexporting.\n\nTest: make cts -j123 \u0026\u0026 cts-tradefed run cts-dev -m \\\nCtsMediaTestCases --compatibility:module-arg \\\nCtsMediaTestCases:include-annotation:\\\nandroid.platform.test.annotations.RequiresDevice\nBug: 63821829\n\nChange-Id: Ia578e3c0dd1ff157335b3a49af896acb922586e8\n"
    },
    {
      "commit": "b20688e7e87e99ab1ee106af043ce0cbb40bde5d",
      "tree": "19767be9c107ea1578095547ee56dc0ca32ea7ac",
      "parents": [
        "6411cb684e5994834c441d94708d245d81b474a5"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Dec 04 17:20:50 2015 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Dec 04 17:36:20 2015 -0800"
      },
      "message": "Check for non-negative fd before close, dup, lseek, or read.\n\nBug: 24896328\nChange-Id: Idd8da8cf202f51f42d0a81421a91768ec3d5f025\n"
    },
    {
      "commit": "13b97d6ece762cd96a7c3d3e3d60583104d1c0bc",
      "tree": "0eb5ebdb6dcc3e4484512c54d9602ef37e4e7d19",
      "parents": [
        "47deb15e99cbf60e558027e074b7415c95637943"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Jan 29 11:16:17 2015 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Jan 29 11:17:16 2015 -0800"
      },
      "message": "Fix uninitialized variable.\n\nBug: 19020118\nChange-Id: I0aceadfec6652d468a5a5d9eb5dcbf0845757ffa\n"
    },
    {
      "commit": "0e8928bf4f2b01b783f6da97d15e8f1abb0fd7d7",
      "tree": "915b24bd6c686000a5c4fb8af920c8a16204e30e",
      "parents": [
        "c52af00beda4477d0fd00c3071e6ffd9c465430b"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Jan 08 13:40:53 2015 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Jan 08 13:48:52 2015 -0800"
      },
      "message": "Replace MidiFile player with a Midi extractor\n\nThis gets rids of a bunch of special midi handling and replaces it\nwith an extractor that works with NuPlayer and MediaMetadataRetriever.\n\nChange-Id: I8d0f5bbdde2ca24267cf4d62ab26afe9630e0217\n"
    },
    {
      "commit": "bc11e713063f3f96f98256abc81c0d8ee1ddb312",
      "tree": "b45b5c9d24ed7779e2bc6a19d3169c6b79b363a6",
      "parents": [
        "43637c2e0313ed9fea4e4aceb14c166349327aea"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Jan 08 12:26:36 2015 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Jan 08 12:28:17 2015 -0800"
      },
      "message": "Use callbacks for Midi I/O\n\nInstead of having the Sonivox engine directly open the file and\nuse stdio to read from it, use caller-provided callbacks.\n\nChange-Id: Ie55129109060a4a7862fee3177f994401e00b6c1\n"
    }
  ]
}
