)]}'
{
  "log": [
    {
      "commit": "d3f9ba74b185a4741f18e5c7878d7152e0e19f94",
      "tree": "64251171614170138f7cc8ec7d2d1860ad0f58eb",
      "parents": [
        "68a4a194e7e966acf572b16612bd097a1ad72550"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Wed Nov 20 17:25:26 2019 -0800"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Thu Nov 28 09:58:21 2019 +0000"
      },
      "message": "libmediadrm: final libbinder cleanup\n\nBug: 134787536\nTest: build\nChange-Id: I7a0da8fdb1164486980bde835eb04089aaf78655\n"
    },
    {
      "commit": "895fba9a4988dfc886d436c9eba2355608caa644",
      "tree": "3eb656f2ca824aa0e0128389a0e25edf43ab9122",
      "parents": [
        "5406f2634ce9d37f310f03f2af742b1f256c7c17"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Tue Jul 16 16:29:44 2019 -0700"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Thu Nov 21 18:28:22 2019 +0000"
      },
      "message": "ICrypto: use hidl memory instead of binder memory\n\nBug: 134787536\nTest: GtsMediaTestCases\nChange-Id: Ib20600eac13c668c8dc6a964faad1874844e4026\n"
    },
    {
      "commit": "c9f7efa0f5ec1461826542855323b34884713662",
      "tree": "2825270c9227cf04c40f86dcc0069cdb7a9d5905",
      "parents": [
        "7f84dcf500a7c98e76f95283de3a6abc0be858ff"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Tue Jul 16 16:19:59 2019 -0700"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Mon Oct 28 00:02:59 2019 -0700"
      },
      "message": "CryptoHal: remove redundant buffer id counter\n\nBug: 134787536\nTest: MediaDrmClearkeyTest#testClearKeyPlaybackCenc\nChange-Id: Iaaa77eb8e079be80fd01f1905118e23d93c248a1\n"
    },
    {
      "commit": "7dd39723b34c8378fc5eabb4d4ccacf32f55ffe2",
      "tree": "222de47bcb84931d714d250fe51d3249771edc18",
      "parents": [
        "61d4a093f4b4041b145fbd7a3ab5ec04679f87d9"
      ],
      "author": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Thu Sep 05 15:14:30 2019 -0700"
      },
      "committer": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Fri Sep 13 10:59:51 2019 -0700"
      },
      "message": "Improve visibility of IMemory security risks\n\nThis change renames the IMemory raw pointer accessors to\nunsecure*() to make it apparent to coders and code reviewers\nthat the returned buffer may potentially be shared with\nuntrusted processes, who may, after the fact, attempt to\nread and/or modify the contents. This may lead to hard to\nfind security bugs and hopefully the rename makes it harder\nto forget.\n\nThe change also attempts to fix all the callsites to make\neverything build correctly, but in the processes, wherever the\ncallsite code was not obviously secure, I added a TODO requesting\nthe owners to either document why it\u0027s secure or to change the\ncode. Apologies in advance to the owners if there are some false\npositives here - I don\u0027t have enough context to reason about all\nthe different callsites.\n\nTest: Completely syntactic change. Made sure code still builds.\nChange-Id: I5fb99aa797c488406083178a6b05355d98710d3b\n"
    },
    {
      "commit": "583d7283e9036a22240b5710c6941f79e1c1ab9e",
      "tree": "de096581ffba4c3be6aedbcf44bafa74a36787d2",
      "parents": [
        "da97100ad31f7b69c737f9e1a8d8b70491f3e6da",
        "7dcb4db080ee583e984c554499864fbe5703df27"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue May 21 22:00:59 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 21 22:00:59 2019 +0000"
      },
      "message": "Merge \"listByInterface -\u003e listManifestByInterface\""
    },
    {
      "commit": "7dcb4db080ee583e984c554499864fbe5703df27",
      "tree": "0b574abd92cd34dfb2a73899e180bc0543ebc5b2",
      "parents": [
        "cd39cb7ec601ceafe7ce2b9008b3c82fd90e71c7"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon May 13 13:10:51 2019 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue May 21 16:45:14 2019 +0000"
      },
      "message": "listByInterface -\u003e listManifestByInterface\n\nThis does two things:\n- makes sure that HALs configured as lazy HALs will be retrieved\n- will detect bad manifest entries earlier\n\nBug: 131703193\nTest: boot\nChange-Id: I69fb80b023cc17f94e4f6a10203ee077a5e61e19\n"
    },
    {
      "commit": "33f0363ef1c22781f4dffc8644591543431eda89",
      "tree": "15a184bfeec4ae89895f93cc065bd816c92820f6",
      "parents": [
        "2ddd17ca5c49fe02c459b7026d4c271bf76c4e3c"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri May 03 15:10:56 2019 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri May 03 15:48:32 2019 -0700"
      },
      "message": "Fix NULL pointer dereference issues in CryptoHal::toSharedBuffer\n\nbug:111636206\ntest: gts media tests\nChange-Id: Ia3b664ccff554000084438f74e004a82c69a20da\n"
    },
    {
      "commit": "b8684f3a673dff814d68b2f695991e554718fd8b",
      "tree": "7eb43a0d55dadf57c43c9058233e73e37dcad76e",
      "parents": [
        "a280b264cd99be8d682e3a5c14b1d25649481100"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Dec 12 08:41:31 2018 -0800"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Thu Jan 10 01:54:32 2019 -0800"
      },
      "message": "Add additional error conditions to MediaDrm\n\nNew codes are being added to handle resource\ncontention, lost session state, frame size too\nlarge and insufficient security level for\ndecryption. Also cleans up inconsistent use of\ntamper detected error where invalid state error\nshould have been used.\n\nbug:111504510\nbug:111505796\ntest:cts and gts media test cases\n\nChange-Id: I28ca04cdc8ce64047d189fcf4d59bab24208e1a7\n"
    },
    {
      "commit": "20795c7cec69916c7a156e6c7593924d4517f05b",
      "tree": "b5a3dfe1f32ba87e8dd9743251822f5b0ca2e378",
      "parents": [
        "0db0fa1db2536d5d86dae49a043e8192fe04d1c1"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed May 30 18:20:09 2018 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed May 30 18:24:32 2018 -0700"
      },
      "message": "Fix mediadrmserver segfault in GTS tests\n\nWhen clearHeapBase is called after a plugin is\nclosed, a null pointer is dereferenced. Protect\nagainst it with a null pointer check.\n\nTest: GTS media tests, check logcat for faults\n\nbug:80434750\nChange-Id: Ib568694c44fe22887c3db4f88e67cb598fd9e36a\n"
    },
    {
      "commit": "0db0fa1db2536d5d86dae49a043e8192fe04d1c1",
      "tree": "a967fee5359c075a2e370218b9086d0480dd0f48",
      "parents": [
        "6f8f2c88c6351218d249c8676ed351fb17c6e17f"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Tue May 22 16:55:57 2018 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Tue May 22 17:29:05 2018 -0700"
      },
      "message": "Unmap shared memory when no longer used\n\nCryptoHal in mediadrmserver was not releasing the\nshared memory allocated remotely in the drm HAL\nmodule until the HAL was closed, which could cause\nshared memory allocation failures in situations\nwhere multiple memory regions get mapped during\nplayback. This change releases the shared mapping\nin the HAL when it is no longer needed.\n\nbug:80104026\n\ntest:\n 1. manual tests with logging to ensure\n   shared memory is released\n 2. gts media tests on walleye\n\nChange-Id: Ie2f306bce6aec697ae584da3f55b3cf72edaa07b\n"
    },
    {
      "commit": "b1f8c80d3a0c144407d1bd6b63eb6ac9e90112f2",
      "tree": "a97d00e9565b2e7276dafa3aac15b823c952cfc2",
      "parents": [
        "1ab07d1de9875dab00960d3939d0a00bc2ec5864"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Thu Apr 19 16:23:21 2018 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Thu May 10 23:23:39 2018 +0000"
      },
      "message": "Fix security vulnerability in CryptoHal\n\nCryptoHal was not checking that the memory heap set by setHeap\nwas the same one that was actually used for the decrypt call, allowing\nthe caller to spoof the decrypt call into accessing arbitrary memory.\n\nbug:76221123\ntest: mediadrmserverpoc included in the bug \u0026 GTS media tests\nChange-Id: I35214a1a6d0a4b864123e147d1a1adc2377bfbc5\n"
    },
    {
      "commit": "cca23778417af60e793b80c21c021cafb72f49d5",
      "tree": "7f182d26761aa98941a1baa171faabf37b850ee3",
      "parents": [
        "9ce18f72203d523e7378ddb3f0432871973df561"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Mon May 07 11:41:56 2018 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed May 09 16:49:34 2018 +0000"
      },
      "message": "Fix abort in CryptoHal: missing hidl status check\n\nA method in CryptoHal was not checking the\nhidl transaction status which causes an abort\nif the transaction fails.\n\nbug:79170524\ntest:gts media tests, netflix playback\n\nChange-Id: Ia58500f0f2c64f987809360d3d7ead810ee01180\n"
    },
    {
      "commit": "1326ffef6a74ba288809920ab4ad65eda1b33f1f",
      "tree": "65ce882dbb99050c1817a6fed3be9665277b02bf",
      "parents": [
        "1f0cbeddf430e24d943892381600262ae3ce542e"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Mon Apr 16 14:44:55 2018 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Apr 27 23:43:56 2018 +0000"
      },
      "message": "Fix native_handle leak in CryptoHal\n\nbug:77869193\nChange-Id: Ibf9f48c469753fb57025427fa1a3feace4412993\n"
    },
    {
      "commit": "7d2c6e8be2c9a4f3c1364d243856a345f17f851e",
      "tree": "3aab41fe8acce7056a1e7b01ebc2e8882e416b9a",
      "parents": [
        "987ac7056040ed1594dc975c8a9d7cee463fa834"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Feb 16 16:14:59 2018 -0800"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Feb 16 17:04:00 2018 -0800"
      },
      "message": "Move mediadrm-related headers\n\nRelocate drm and crypto headers from media\nto mediadrm to have finer grained ownership\n\nbug:73556221\nChange-Id: I7d1b5944f261f9b1fdeed7605e4c0b4b4ca43e1a\n"
    },
    {
      "commit": "e307dc4e7b2c9d3c4018a755db687309cf590369",
      "tree": "05cb67d957ee0b3f7f193df6914b4d6aa487fb8b",
      "parents": [
        "41d279a7f3bc55a63b510d4dce07e18964cda152"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Sun Feb 11 19:53:54 2018 +0000"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Sun Feb 11 12:52:11 2018 -0800"
      },
      "message": "Revert \"Revert \"Update drm hal to find drm@1.1 factories\"\"\n\nThis reverts commit d3eece8aa39560e8458ba8231b8684d99f11ee6b.\n\nChange-Id: I15ca1dba1a384ccc026406f0a9a02c2598873456\n"
    },
    {
      "commit": "d3eece8aa39560e8458ba8231b8684d99f11ee6b",
      "tree": "e6010dce1f091847db51b7464c566af774a98f74",
      "parents": [
        "a3c77911df570d4378ae4869d1060915001f0eba"
      ],
      "author": {
        "name": "Tobias Thierer",
        "email": "tobiast@google.com",
        "time": "Sun Feb 11 15:22:12 2018 +0000"
      },
      "committer": {
        "name": "Tobias Thierer",
        "email": "tobiast@google.com",
        "time": "Sun Feb 11 15:22:12 2018 +0000"
      },
      "message": "Revert \"Update drm hal to find drm@1.1 factories\"\n\nThis reverts commit a3c77911df570d4378ae4869d1060915001f0eba.\n\nReason for revert: build cop here. The original CL broke build git_master / walleye_asan, hence I\u0027m reverting.\n\nhttps://android-build.googleplex.com/builds/submitted/4597721/walleye_asan-userdebug/latest/view/logs/build_error.log\n\nIn file included from vendor/google/tools/security/fuzzers/libFuzzer/ICrypto_fuzzer/ICrypto_fuzzer.cpp:24:\nframeworks/av/include/media/CryptoHal.h:23:10: fatal error: \u0027android/hardware/drm/1.1/ICryptoFactory.h\u0027 file not found\n\nChange-Id: I185d5310cadb9990b864d71e42bba94f4740160c\n"
    },
    {
      "commit": "a3c77911df570d4378ae4869d1060915001f0eba",
      "tree": "8bca142feb4cb8a202611ab20a68247a6d25180d",
      "parents": [
        "1bfabb36f5d6f09d87e9d52778b5a1cca9512722"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Feb 07 12:30:20 2018 -0800"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Feb 07 22:53:14 2018 +0000"
      },
      "message": "Update drm hal to find drm@1.1 factories\n\nbug:73072898\ntest: cts android.media.cts.MediaDrmClearkeyTest\nChange-Id: I80c7b8864dc86fda8aa6afc0ec74f6f068da6401\n"
    },
    {
      "commit": "256a84920c4ce67fd8a4096f0e245ea738290b10",
      "tree": "733ef8787fcc28c8be5a24dcbfbc60f46ef3c9cd",
      "parents": [
        "2c331aa92ae316380e7575fe3135903a3dae1a3e",
        "74b97ba8f248e6d5f9fd98f963d35944f0fe1229"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Tue Jan 16 18:23:39 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jan 16 18:23:39 2018 +0000"
      },
      "message": "Merge \"Fix use of uninitialized value in libmediadrm\" into oc-dev am: 5924e3db24 am: 444b037748\nam: 74b97ba8f2\n\nChange-Id: I2747be2fd19e31dd99c985492c955c5b2e2b0f62\n"
    },
    {
      "commit": "2442047f5c6d368f69fa81917f5aabc9b3c342a0",
      "tree": "46a63cbb73723b6f37fe6b8275c7045335ef4435",
      "parents": [
        "5231cc164fe040a3ab5fcb28baae4e0a4f9fdf4c"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Thu Jan 11 17:46:16 2018 -0800"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Jan 12 07:45:26 2018 +0000"
      },
      "message": "Fix use of uninitialized value in libmediadrm\n\nbug:70526702\ntest:gts media tests\n\nChange-Id: I29a67dad01ca8c8f649ba12cf08cc86b7eb56523\n"
    },
    {
      "commit": "6536606cfe53e6bdb6415e0f8986381074bd68cf",
      "tree": "17fa24d63f606cd3b3a114fb3e01c9c54b0fec21",
      "parents": [
        "16f2c1559c5722a6cd69fef3c17dc5756ba73fe6"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Thu Oct 05 11:34:01 2017 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue Oct 17 19:17:46 2017 -0700"
      },
      "message": "Use libhidl function to convert to hidl IMemory.\n\nNow that this API is available.\n\nThis keeps the implementation details of hidl\u0027s\nashmem allocator in libhidl itself (it should be\nopaque).\n\nTest: try and succeed watching (part of a) DRM protected movie\nBug: 34234561\nChange-Id: Ied9beddace2ccfc859833ac55f4e3837db5f495e\n"
    },
    {
      "commit": "e309b22bff1719f1fea84b247e4b2bc4c5f09eb5",
      "tree": "588e794ad730620407251c1e96fd2a15cdd79df2",
      "parents": [
        "8d8ebcaa7d13f163abee5bbf23b4e5a21fbfb44c"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Apr 05 08:01:28 2017 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Tue Apr 11 16:28:32 2017 -0700"
      },
      "message": "Change drm/crypto service names to \"default\"\n\nbug: 36371166\n\nTest: vts drm hidl test, Play Movies\n\nChange-Id: I942f91ab0be1f237017e88910f8d3738bf54447f\n"
    },
    {
      "commit": "6dcab2bafd847be84c2c2230bbd04af9c45c491e",
      "tree": "51f39e6d2f1ac74fd546c8a2797c06745a757694",
      "parents": [
        "d07c92742fc5801cab8e99801f591365986acbe9"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Mar 28 14:18:27 2017 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Mar 29 10:40:49 2017 -0700"
      },
      "message": "DRM: more fixes for heap base mapping -- DO NOT MERGE\n\nHeap base for the same heap could be mapped to different values\nafter they go across binder to CryptoHal. So we can\u0027t use heapbase\nto index the heaps.\n\nSince each ACodec instance allocates all its shared memory buffers\nfrom the same memory dealer, we let CryptoHal assign a sequence\nnumber to the ACodec when it calls setHeap. In subsequent calls\nto CryptoHal::decrypt, reference the heap by the seq num, and ignore\nthe heap base address.\n\nBug: 36479980\nBug: 36209723\nBug: 36660223\n\nTest: the above bugs don\u0027t repro\n\nChange-Id: I2f519a689a5891447385d1bf9d6e668bb3b4dbe2\n\n(cherry-picked from bf628da1e231e2e4d6bf61f9884e120bae3f9156)\n"
    },
    {
      "commit": "d07c92742fc5801cab8e99801f591365986acbe9",
      "tree": "f2bb6af46cd67d6d40098bfa86794097b43d41c6",
      "parents": [
        "5f8beee0ea76ffe5cc40a517e8db43dbd64fbeff"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Mar 28 11:02:06 2017 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Mar 29 10:40:13 2017 -0700"
      },
      "message": "Revert \"Revert \"Fix decoder instantiation during playback\"\" -- DO NOT MERGE\n\nThis reverts commit de7268d8e20b883ec88a7ff19ad560a665373484.\n\nBug: 36479980\nBug: 36209723\nBug: 36660223\n\nChange-Id: I8d83305a28dc35cee16f8f1068c90fdd0b9effff\n(cherry picked from commit 6aa5c0662c86c7f7b2890577a207086eeecbd177)\n"
    },
    {
      "commit": "de7268d8e20b883ec88a7ff19ad560a665373484",
      "tree": "5b1b48314857b676252e71b5c5bfd1a0eea8cadc",
      "parents": [
        "33327c7f0f04bcce3f8e8ee23953f87efc423037"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Tue Mar 21 23:49:15 2017 +0000"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Tue Mar 21 23:59:27 2017 +0000"
      },
      "message": "Revert \"Fix decoder instantiation during playback\"\n\nThis reverts commit 33327c7f0f04bcce3f8e8ee23953f87efc423037.\n\nBug: 36479980\nBug: 36209723\n\nChange-Id: I8ff9422086f5ba9ba5df60135d20b9d8bfc0be52\n"
    },
    {
      "commit": "33327c7f0f04bcce3f8e8ee23953f87efc423037",
      "tree": "2e3f8e0de5d2ad4a8d5e87c5ffa1d770e2041c49",
      "parents": [
        "d0cb831e7f14c43359aeb080d9564185d28c7a75"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Mar 15 23:41:23 2017 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Mar 17 11:33:24 2017 -0700"
      },
      "message": "Fix decoder instantiation during playback\n\nWhen a decoder is created while another decoder\nis in use and the two decoders share a common\ncrypto instance, decryption results would become\nindeterminate, which could cause the decoder to\nhang. This change adds a notification to the\ncrypto instance so it can update state when its\nownership changes.\n\nbug: 36209723\n\nTest: playbacktests-debug-androidTest.apk as\ndescribed in the bug.\n\nChange-Id: I453c260eace5543dd79a3569bf6a9592394c4113\n"
    },
    {
      "commit": "d0cb831e7f14c43359aeb080d9564185d28c7a75",
      "tree": "5b1b48314857b676252e71b5c5bfd1a0eea8cadc",
      "parents": [
        "0be134af061566c7d68c0c4f868a677daf85f550"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Mar 15 11:17:00 2017 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Mar 15 23:54:48 2017 -0700"
      },
      "message": "Fix CTS post submit failures\n\nMediaCodecTest.android.media.cts.MediaCodecTest.testCryptoError\nwas failing due to incorrect error code translation introduced\nby the drm hidl hal.\n\nbug: 35137940\nChange-Id: Ia5e16809872c19335b4b9c1a8ddd1e625a4781b4\n"
    },
    {
      "commit": "6a4921ae044186bf64dab3903e8fead9499fc7f6",
      "tree": "9458e6876adb556d29dedd38cd196f2a6248c303",
      "parents": [
        "89e5a2b102b484fe19dbda2a0b118edfefc70241"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Thu Mar 09 23:26:01 2017 -0800"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Thu Mar 09 23:26:01 2017 -0800"
      },
      "message": "Fix mediadrmserver not finding IServiceManager instance\n\nbug: 36113291\nChange-Id: I8d459e0edd61555a874cce68e178afd8d468e2e4\n"
    },
    {
      "commit": "abeb36a8c2f044772297536e70340c3b245863e4",
      "tree": "0b272bfd99ef0264d9577dcfa413b1a01d97fe27",
      "parents": [
        "e1bd456cce56406fc0e35faffa4429fb4bf5bff6"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Feb 17 09:42:46 2017 -0800"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Tue Feb 28 15:27:12 2017 -0800"
      },
      "message": "Load vendor-provided drm hidl hal modules\n\nPrior to this change, the default legacy hal\nmodule was explicitly referenced. This change\nuses the service manager to iterate through\nany hal instances so vendor-provided hals\ncan be loaded.\n\nbug:34507158\nChange-Id: I23bc4fdb2dc7d5254833c9a977241f1fede726a9\n"
    },
    {
      "commit": "3cb5316c442d182ada75a1394e1505a017400526",
      "tree": "cba6c593af42f45211dd149d66975c06b2185fa0",
      "parents": [
        "09b92c347ddcaf751571363e54a769eb4b95edd3"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Thu Feb 16 12:06:32 2017 -0800"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Feb 17 13:04:02 2017 -0800"
      },
      "message": "Support multiple codecs per crypto instance\n\nThe initial drm hidl hal implementation assumed one\ncodec per crypto instance, but in fact there can be\nmultiple codecs per crypto instance. This change\nextends the drm hal to allow multiple memory heaps\nper crypto plugin. It fixes the issue of mapping\nmemory frequently during playback.\n\nbug:35275191\n\nTest: manual verification with Play Movies on angler\nin passthrough mode and on marlin in binderized mode.\n\nChange-Id: Icada005f515483d7bc214b08caf6eea46ca354a7\n"
    },
    {
      "commit": "a53d6553fce1818bdf87833f93633c93ad1b5915",
      "tree": "8fbbb7b32d753c75a7350d748d6fa08d47402289",
      "parents": [
        "2a0c6d54dc34fdd8cca4e8ed7f39ad512133a878"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Jan 20 00:31:46 2017 -0800"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Jan 25 15:41:12 2017 -0800"
      },
      "message": "Implement client code to use Drm and Crypto HALs\n\nThis change adds DrmHal \u0026 CryptoHal classes that connect to the Treble\nHAL interfaces for drm.  These classes mirror the existing Drm and\nCrypto classes that connect to the DrmPlugin and CryptoPlugin\ninterfaces. Having both allows mediadrmserver to run in either mode\nwhile the HAL is stabilized.\n\nThe shared memory interfaces between mediaserver\u0027s ACodecBufferChannel\nand ICrypto had to be reworked to use the Treble HALs. Specifically,\nthe shared memory path for returning decrypted buffers in the\nnon-secure case had to become separate instead of piggy-backing on the\nsource shared memory buffer. A separate shared memory destination\nbuffer is now allocated on the buffer channel. An abstraction for a\ndecrypt destination buffer was also introduced to clarify ICrypto\u0027s\ndecrypt method.\n\nTests: Playback using Play Movies and ExoPlayer works on angler\nwith and without the treble hal enabled.\n\nbug: 32815560\nChange-Id: I5a3dc84f99902eb8cf8eabab9ad074d307744950\n"
    }
  ]
}
