)]}'
{
  "log": [
    {
      "commit": "e9eb03e9db8f66c711e2824e0f96d1fdc8f727b5",
      "tree": "77671b8d041a66b35884657fc4e05c5e5214787a",
      "parents": [
        "95ec1b8ea487abbf4ef50d53c227338f559e9599"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Apr 04 14:08:23 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 06 09:48:59 2020 -0700"
      },
      "message": "MediaUtils: Move MemoryLeakTrackUtil.h to the proper library.\n\nTest: dumpsys sanity check of mediaserver, audioflinger, drmmanager\nBug: 149850236\nChange-Id: I7a3694444de0f940beacb699bc6f07ebb6a7cc7d\n"
    },
    {
      "commit": "7bcf792dd843b0b69a04ae10e7b80e5bbfa62d94",
      "tree": "9ed2c26a9d41780ec241fa00d6dbe30e87354203",
      "parents": [
        "93fb84c8d59eb3db95dd90bc34573b7c6c5b5b67"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Fri Feb 07 15:01:57 2020 -0800"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Wed Feb 19 06:20:14 2020 +0000"
      },
      "message": "DrmManager: locally aggregate API metrics\n\nAggregate DrmManager API invocation counts per plugin over at least\nfixed period of time before sending metrics to mediametrics service.\n\nThe default period is 1 day; the period is configurable through the\nproperty drmmanager.metrics.period.\n\nBug: 134789967\nTest: dumpsys media.metrics\nChange-Id: I2cf28f1dfaa485ca319360705b872eed995b3d7f\n"
    },
    {
      "commit": "1a394d593e5d089a2f6c5bcf897525375013bb32",
      "tree": "7dd81e98a8509912f25595f6e3cdd7f2f1e92c13",
      "parents": [
        "78fde5f87c205fab87df6aba08bb89e3b896c58e"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Jan 11 15:49:24 2019 -0800"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Jan 16 20:46:05 2019 +0000"
      },
      "message": "drmserver: use getCallingSid\n\nBug: 121035042\nTest: `atest android.drm.cts`\n    CtsDrmTestCases: Passed: 43, Failed: 0\nChange-Id: Ia85f437da29821d08dd585f87ac096de5f85b980\n"
    },
    {
      "commit": "5d49bef8000500556743af66b669ae7e18ac85b5",
      "tree": "31c26fd42fb436101e8e57bcc51efe355abde9a6",
      "parents": [
        "5e0659c82240821cfa6766d33cca438a5f09ef32"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Oct 03 23:01:09 2018 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Oct 05 15:58:26 2018 -0700"
      },
      "message": "openDecryptSession() should consistently return sp\u003cDecryptHandle\u003e\n\nTest:run cts-dev --module CtsDrmTestCases -t android.drm.cts.DRMTest\n\nbug:79378662\nChange-Id: Id46e63e3e0faf76ec98a77d7d439e5ccbc85e20f\n"
    },
    {
      "commit": "07b745e166ee62030960ccea37e117caadf71c32",
      "tree": "a370227e0d195f58a4e7797d8a70933730970907",
      "parents": [
        "d4c4d2248bdfd06dc7b23dd2d81541d3941f8bf9"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon May 23 16:21:07 2016 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon May 23 16:55:08 2016 -0700"
      },
      "message": "Add memory heap checks for mediaserver and audioserver\n\nMemory heap check updated and restored to mediaserver,\nadded as new option to audioserver.\n\nRequires properties to be set (example for audioserver):\n\n$ adb shell setprop libc.debug.malloc.program audioserver\n$ adb shell setprop libc.debug.malloc.options backtrace\u003d8\n$ adb shell pkill audioserver\n\n...\n\nand to dump:\n\n$ adb shell dumpsys media.audio_flinger -m\n\nBug: 28909124\nBug: 27500825\nChange-Id: Ifa8c2c02b022daf1a799ee4a1d75282a3c921763\n"
    },
    {
      "commit": "c903684e9a8af5450bab61b0883fc81c5a466844",
      "tree": "04ac78614614acb27941e88babcce0d6e6595bc5",
      "parents": [
        "56d65dc0b4574b1d29132b25c90c83a8fb203c9e"
      ],
      "author": {
        "name": "Aurimas Liutikas",
        "email": "aurimas@google.com",
        "time": "Thu Feb 18 15:58:04 2016 -0800"
      },
      "committer": {
        "name": "Aurimas Liutikas",
        "email": "aurimas@google.com",
        "time": "Fri Feb 19 14:33:08 2016 -0800"
      },
      "message": "Fix the last warnings in frameworks/av/ drm code.\n\n- index is always positive so no need to check \u003e 0\n- args parameters are unused.\n\nBug: 27151704\nChange-Id: Ia4c23e1fc4eaef47f38526574b35ccfea9c92177\n"
    },
    {
      "commit": "f785f497567ea9d55ade92cbf82a7e80eeb5cb82",
      "tree": "bd36d6320843cdb358ce79a6c3486919697ae594",
      "parents": [
        "2e25819fffbb23d42541ead1bf735f3a02fa0330"
      ],
      "author": {
        "name": "Riley Spahn",
        "email": "rileyspahn@google.com",
        "time": "Tue Jul 01 15:32:31 2014 -0700"
      },
      "committer": {
        "name": "Riley Spahn",
        "email": "rileyspahn@google.com",
        "time": "Fri Jul 25 13:25:51 2014 -0700"
      },
      "message": "Add SELinux MAC to DrmManagerService.\n\nAdd SELinux checks on all interfaces exposed by the\nDrmManagerService.\n\nChange-Id: Ib170d3229d88781b76e5fc1c557c8fed233df5d1\n"
    },
    {
      "commit": "6868e986044a23cd3592f03b3937978175ebad53",
      "tree": "7a73fe45500e09bf55fdb3917c7b4f927b5a94a2",
      "parents": [
        "0bffd2e60f644c8b8650c48d320c8cc22deb8ab6"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Tue Jun 17 16:45:46 2014 -0700"
      },
      "committer": {
        "name": "Riley Spahn",
        "email": "rileyspahn@google.com",
        "time": "Fri Jul 11 09:18:11 2014 -0700"
      },
      "message": "Fix Externally reported security issue\n\nbug: 12724697\nChange-Id: I57f37dbb3b01c0c3d3256be67c395352dd6ada13\n"
    },
    {
      "commit": "f355f18aa2cc1706761e373fe19298a9ccc9c75a",
      "tree": "72caa7cb946dd0de42de5dc30e83b5e99137485d",
      "parents": [
        "20f4754b7e687d3718a0a0a585f2c9ac22e2567d"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Mon Jul 22 15:54:42 2013 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Tue Jul 23 11:32:15 2013 -0700"
      },
      "message": "Remove obsolete drm manager code\n\nbug: 9545965\nChange-Id: Ia6e09efa826b1349d027045e782980daeb7d7596\n"
    },
    {
      "commit": "bf5b3b29e31b293313788d7464cfb258ac0da803",
      "tree": "1e3e016a1f7268688be59047be835a17609977f8",
      "parents": [
        "b3e12a4d15a329821979bf287c49a9630486e23f"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Jul 30 17:57:39 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Aug 10 17:38:19 2012 -0700"
      },
      "message": "Let getOriginalMimeType() take a fd passed from drm java applications\n\nThis patch enables the drm framework to avoid opening files directly.\nAs a result, the drm framework no longer needs the sdcard read permision.\n\no related-to-bug: 6426185\n\nChange-Id: Ib176c35ef4b1a1a405e8e954f19a7985266f2510\n"
    },
    {
      "commit": "cba7b32d8f2c47632313f54118ed3733b4b02cc8",
      "tree": "b24101645accdc9067e7970ef22f3d934bda8edf",
      "parents": [
        "cf0bf78c28cf25c30c42c784c1dc5bc094e6035d"
      ],
      "author": {
        "name": "Kei Takahashi",
        "email": "KeiA.Takahashi@jp.sony.com",
        "time": "Wed Jan 18 17:10:19 2012 +0900"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed May 23 14:44:06 2012 -0700"
      },
      "message": "Add a new API on DRM Framework for streaming\n\nIn case of DRM streaming, decrypt session can start just after\nreceiving the header, and it doesn\u0027t need to wait for the entire\ncontent. However, current API of DRM framework only accepts file\nhandle or URI. With this new API, DRM session can start\nwithout waiting for the entire content.\n\nChanges are made by SEMC and Sony.\n\nChange-Id: I74375fe127df636067f1c300ea91654ba3d1aa3c\n"
    },
    {
      "commit": "1608735ef488ecd8c3c012a3b0d4b1d4ef3d93c7",
      "tree": "c77756706095cdb6852e56392e8365bcaa7d9232",
      "parents": [
        "a98db787397633155fd71b06ecaa765a7ad20cf2"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Apr 13 14:54:36 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Apr 17 11:22:11 2012 -0700"
      },
      "message": "Support widevine:// URLs in NuMediaExtractor / java MediaExtractor.\n\nAllow anyone to talk to drm services.\n\nChange-Id: I5c2f3c419d01de30c3d6e2bc85b1fe5c9c37b392\nrelated-to-bug: 6276111\n"
    },
    {
      "commit": "328745b130c1c59e53d68a9a3c71675d3932d34b",
      "tree": "c35e7d4e33ecbde14e93d658d3d91cc52fbd35ac",
      "parents": [
        "0f7affe1716dfd6687262008120ed128df1af214"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Feb 28 13:55:55 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Feb 28 18:50:44 2012 -0800"
      },
      "message": "Added permission check for all sensitive drm API calls\n\no all drm calls using a DecryptHandle now check the permission before proceeding\n\nChange-Id: Ic992a991357876c6e4bfbfab4f5eec1fa0634a13\n"
    },
    {
      "commit": "9d2f386dd2885eaffa11fd494ae258bb09fe6397",
      "tree": "382639f8cc7f1a3677589d7dfca37b667ea4261c",
      "parents": [
        "83bc7f3cf78b28a818417f40a4f0c00593993366"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Jan 10 08:24:37 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Jan 12 16:25:12 2012 -0800"
      },
      "message": "Separate sniffing from session initialization\n\nThis avoid lengthy/duplicate sniffing for drm plugins when a decrypt session is opened\n\no The change is backward compatibile in that no update is required\n  for existing drm plug-ins if they do not plan to provide separate\n  sniffer/extractor\n\nrelated-to-bug: 5725548\n\nChange-Id: I7fc4caf82d77472da4e2bc7b5d31060fb54fd84c\n"
    },
    {
      "commit": "3856b090cd04ba5dd4a59a12430ed724d5995909",
      "tree": "a24e4c98fa6049fd8085826be838000f9a67e39b",
      "parents": [
        "1d2acaffde56ad79e6e96f228d7857863462397c"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Thu Oct 20 11:56:00 2011 +0100"
      },
      "committer": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Wed Oct 26 09:57:54 2011 +0100"
      },
      "message": "Rename (IF_)LOGV(_IF) to (IF_)ALOGV(_IF)  DO NOT MERGE\n\nSee https://android-git.corp.google.com/g/#/c/143865\n\nBug: 5449033\nChange-Id: I0122812ed6ff6f5b59fe4a43ab8bff0577adde0a\n"
    },
    {
      "commit": "8f00151cbe693d52f3e233757c57fab3b6396d21",
      "tree": "e23cc93514f43af27aa3e2d7bcfce1b88d614a2b",
      "parents": [
        "60c93010e8f96a179574ec66c00ec47a675319e3"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Thu Jul 21 15:10:22 2011 -0700"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Jul 25 16:09:58 2011 -0700"
      },
      "message": "Fix for bug 4371230.\n- Generate unique ID for each DrmManagerClient in native side\n- Fix the bug where multiple clients could use the same ID\n- Return the correct unique ID back to Java\n- Add a flag in the unique ID to separate native client and Java client\n\nChange-Id: Ia4574b6b0a526f2335a65380975dc62f9a6e7f9b\n"
    },
    {
      "commit": "8635b7b095fbf7ffc63d3ce791891a9116ace1f6",
      "tree": "6c9bbe1d0cec53f0c83099f1028302a178928cb9",
      "parents": [
        "1b99cc90afffbda6013ebbb45d64f17b1d90b9f5"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Mar 14 17:01:38 2011 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Mar 14 18:48:19 2011 -0700"
      },
      "message": "Add memory leak tracking/debugging code to drm server\n\nbug - 4099038\n\nChange-Id: I6c048eaf3d7f34bc144b8daaa5fdef1ed474af66\n"
    },
    {
      "commit": "6dc4726e7fa14e4006f6790c6f1ba02cfe888870",
      "tree": "5162c29866b9b737bc3808fd196e437d8cf0c0e1",
      "parents": [
        "321b630783709eeb18952c3408303489db4ea9eb",
        "f798e438c3997fd3fb39538bf3e958cfdc7a477c"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Nov 22 21:29:08 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 22 21:29:08 2010 -0800"
      },
      "message": "am 24a90c26: am d9334934: Merge \"Update of DRM Framework.\"\n\n* commit \u002724a90c2674270fee0783bafa54fd5d845bdf0c18\u0027:\n  Update of DRM Framework.\n"
    },
    {
      "commit": "a2cd44cb5067b4fe98794860690394254d3ac73c",
      "tree": "08a581d8684a550faa9f5cb76dc5cab96e641f81",
      "parents": [
        "c726bd8b7b9929fd917b01e5551a66ad5fe2c04e"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Fri Nov 19 15:19:36 2010 -0800"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Fri Nov 19 15:52:32 2010 -0800"
      },
      "message": "64-bit file size/offset support for DRM framework\n\nChange-Id: I0ba7147607825234df9fa28732e1bba344e82e79\n"
    },
    {
      "commit": "3473846f64f5b28e1cbeb70ef5867073fc93159e",
      "tree": "9651de1dd360d8d77d9d4a53a23ed1181845b93c",
      "parents": [
        "cf6a8d23345a6e54834e53b1eb7e465f3cb5e914"
      ],
      "author": {
        "name": "Takeshi Aimi",
        "email": "aimitakeshi@gmail.com",
        "time": "Tue Nov 16 13:56:11 2010 +0900"
      },
      "committer": {
        "name": "Takeshi Aimi",
        "email": "aimitakeshi@gmail.com",
        "time": "Fri Nov 19 22:02:51 2010 +0900"
      },
      "message": "Update of DRM Framework.\n\n-Access permission handling\n  Introduce an internal function which allows the desired process to\n  access decryption flow. This new function is just for reference and\n  each OEM manufacturer should implement/replace with their solutions.\n-New API, getMetadata()\n  This API is for retrieving media metadata from container-based DRM,\n  such as OMA forward-lock content. This API asks DRM agent to retrieve\n  media metadata hiddein inside of DRM special container.\n-New API, acquireRights()\n  This API wraps acquireDrmInfo() and processDrmInfo().\n  If DRM agent has valid implementation of both APIs,\n  Application can acquire DrmRights only by calling this API.\n-Bug fix in event loop of OnInfoListener.\n  Separate OnInfo event loop from mail thread loop so as to avoid\n  the issue that message is not dispatched when mail thread is busy.\n\nChanges are made by SEMC and Sony.\n\nChange-Id: I04ee3e0988152a71e221f2256d83253749a29da0\n"
    },
    {
      "commit": "e943f84129326ab885cc7a69dcfa17f766b72b89",
      "tree": "45602605772fcd85d240cbfd900b82e0067453e9",
      "parents": [
        "dcd25efb46c41c8d24a0a9cf61fb57f84149709e"
      ],
      "author": {
        "name": "Takeshi Aimi",
        "email": "aimitakeshi@gmail.com",
        "time": "Fri Oct 08 23:05:49 2010 +0900"
      },
      "committer": {
        "name": "Takeshi Aimi",
        "email": "aimitakeshi@gmail.com",
        "time": "Tue Nov 02 08:06:06 2010 +0900"
      },
      "message": "Update of DRM framework\n\n - Overload openDecryptSession() with uri parameter\n   in order to accept URI of DRM content,\n   Following API is added,\n       DecryptHandle*openDecryptSession(const char* uri);.\n - Unify texisting three event types of processDrmInfo()\n   so that caller of DRM framework does not have to handle many event types.\n - Let DrmManagerService call load/unload plugins API so that\n   client of DRM framework does not have to manage plug-in load/unload.\n - Trivial fix in DrmManagerClient.java is also incorporated.\n\nChanges are made by Sony Corporation.\n\nChange-Id: If62b47fa0360718fdc943e6e6143671d7db26adc\n"
    },
    {
      "commit": "2272ee27d9022d173b6eab45c409b3c3f57f30ec",
      "tree": "42fd86597781bdf6b3795907ec1d086b0b549a5c",
      "parents": [
        "0335b70c6cdbe96650d4bed817f9233cd8db1c6d"
      ],
      "author": {
        "name": "Takeshi Aimi",
        "email": "aimitakeshi@gmail.com",
        "time": "Mon Sep 20 23:40:41 2010 +0900"
      },
      "committer": {
        "name": "Takeshi Aimi",
        "email": "aimitakeshi@gmail.com",
        "time": "Mon Oct 04 22:14:53 2010 +0900"
      },
      "message": "Update of DRM framework.\n\n  - Change \"void\" type of return value to \"int\" for returning status.\n  - Add some of overloaded Java APIs which accept database Uri as input.\n  - Add asynchronous APIs\n  - Add OnEventListener and OnErrorListener for asynchronous APIs\n  - Disable debug log\n  - Change decrypt() API to accept an optional buffer needed by some of DRM schemes\n\nChanges are incorporated by Sony Corporation.\n\nChange-Id: I414a165e22cc79be6ea7cd28041788aa2b6b8f7c\n"
    },
    {
      "commit": "27ed8ad2db653f6ac07dcf8bcc05e2409c8bb024",
      "tree": "fa6b8100202640a8b9aec4b90271984f8e2c4336",
      "parents": [
        "f1a97e53a58f47afa17a9b0d3a5cc9abf7e5ed19"
      ],
      "author": {
        "name": "aimitakeshi",
        "email": "aimitakeshi@gmail.com",
        "time": "Thu Jul 29 10:12:27 2010 +0900"
      },
      "committer": {
        "name": "aimitakeshi",
        "email": "aimitakeshi@gmail.com",
        "time": "Wed Sep 01 15:40:00 2010 +0900"
      },
      "message": "  Initial contribution from Sony Corporation.\n\n  Add DRM Framework to support DRM content playback\n  together with StageFright.\n\n  - DRM Framework code is added\n     - include/drm\n     - drm\n  - api/current.xml is updated to include DRM Framework Java APIs\n  - cmds/servicemanager/service_manager.c is modified\n    to add drmManager and drmIOService.\n\nChange-Id: I6d7bc9c7067362b500e530988a9ce241761866fb\n"
    }
  ]
}
