)]}'
{
  "log": [
    {
      "commit": "70367f525a7bf5be52115608d190d72756e972ea",
      "tree": "5b699fa211c3c77292282ac1355fa89fd60c945f",
      "parents": [
        "b5b0857541d5ce85b381dca8651fb25f50d92f37"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Jun 16 12:41:33 2017 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Jun 16 15:17:09 2017 -0700"
      },
      "message": "Check for drmhal plugin null pointer deref\n\nIf binderDied is invoked after a plugin is destroyed\nthe pointer can already be null. Also reset the init check\nstate after the plugin is deleted to make sure the\nchecks in other methods remain valid.\n\nbug:62667492\n\nTest: Play Movies, ExoPlayer\nChange-Id: Ie12191b744331a7a435b4c64bbd1c179918553ac\n"
    },
    {
      "commit": "3e2891674ef57a74e59ca5e27f89647b3f06861b",
      "tree": "84b6d9daf344893b511b189adcb8775666c5725d",
      "parents": [
        "593111f4460f2b2e8f541e936670e3577d45fff6"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Thu Jun 01 11:13:53 2017 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Thu Jun 01 11:13:53 2017 -0700"
      },
      "message": "Allow drm plugin to be released when binder dies\n\nA plugin\u0027s listener reference was preventing the plugin\nfrom being released in binderDied, which caused\ndrm sessions to be kept open if an app was abnormally\nterminated.  Setting the plugin\u0027s listener to NULL\nin binderDied resolves the problem.\n\nTest: repeat {launch netflix app, kill \u003capp-pid\u003e}\nPrior to this change the netflix app would always fail to\nrun on the second iteration and the log showed\nERROR_TOO_MANY_SESSIONS. After this change, the netflix app\ncan be killed and restarted without failures.\n\nAlso verified with gts tests and play movies app.\n\nbug:37720811\nChange-Id: Iceb1c23e2a1d518da85641336f017bb8b2948863\n"
    },
    {
      "commit": "593111f4460f2b2e8f541e936670e3577d45fff6",
      "tree": "f187a287e5585c6af15e835f195ce2f7bb359c46",
      "parents": [
        "a666b6980027946c2dfeb8a3529c8e791fc279a4"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Thu May 25 16:00:21 2017 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Thu May 25 16:00:21 2017 -0700"
      },
      "message": "Don\u0027t leak hwservicemanager binders\n\nUse defaultServiceManager() instead of IServiceManager::getService()\n\nbug:62073349\ntest:\n  repeat {launch Play Movies, play a movie, exit} while monitoring\n    adb shell cat /sys/kernel/debug/binder/stats |\n    grep -A10 \u0027^proc \u003cmediadrmserver PID\u003e\u0027\n  --\u003e Make sure number of nodes is stable\n\nChange-Id: Ibea0437ed21a9d58f3eb7ffa9461fb71d9c2b4ab\n"
    },
    {
      "commit": "f53d96676da2d672d03e35fa0894cb299ac9e318",
      "tree": "2047335495b5d7840d97d57cd7bb4ef99cf84371",
      "parents": [
        "24fd2f7d2900797b1300d6bc89d28bd94a31c3cb"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Mon May 08 19:25:57 2017 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Mon May 08 19:31:46 2017 -0700"
      },
      "message": "Fix resource leaks in drm hal\n\nbug:36408047\ntest: manual testing to verify leaks are fixed\nChange-Id: I3ade65eff4bbe8603fe4cf04b00ab1f3e1122f90\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": "b86f4b3ce066eadbfe9c2f420b16aaf2de741edb",
      "tree": "a1d505ff3a4d2b43bb14179d815cad8534b30c06",
      "parents": [
        "6480d09eec2b8188b623030c971032334739b4e4"
      ],
      "author": {
        "name": "Rahul Frias",
        "email": "rfrias@google.com",
        "time": "Mon Mar 27 15:13:30 2017 -0700"
      },
      "committer": {
        "name": "Rahul Frias",
        "email": "rfrias@google.com",
        "time": "Wed Mar 29 12:55:50 2017 -0700"
      },
      "message": "Fix reclaim sessions (DO NOT MERGE)\n\n[ Merged from master ag/2027840 ]\n\nThe SESSION_RECLAIMED event needed to be propagated to the jni native\ninterface.\n\nTest: Verified by\n  com.google.android.media.gts.DrmSessionManagerTest#testReclaimSession\n  (GtsMediaTestCases) test\n\nb/36589391\n\nChange-Id: Ia3f17e20be19bc2e7bb88a2354d231917bfce1e8\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": "38875a41d62003ee9ad1f537106a86289fb0c437",
      "tree": "a72a945964a87e5718ca6e235844e860954be5d8",
      "parents": [
        "9ee35d72c4b89db99c2df0b0125373f360b337f8"
      ],
      "author": {
        "name": "Edwin Wong",
        "email": "edwinwong@google.com",
        "time": "Wed Feb 15 18:21:48 2017 -0800"
      },
      "committer": {
        "name": "Edwin Wong",
        "email": "edwinwong@google.com",
        "time": "Wed Feb 15 18:32:55 2017 -0800"
      },
      "message": "Fix isCryptoSchemeSupported\u0027s return value.\n\nIf mimeType is not defined, isCryptoSchemeSupported will always\nreturn false.\n\nTest: Netflix on Fugu\n\nTest:\nANDROID_BUILD_Troid-gts/tools/gts-tradefed run gts -m GtsMediaTestCases\n--test com.google.android.media.gts.MediaDrmTest#testWidevineSanity\n\nbug: 35363342\nChange-Id: I579dd6d41d17c1520404a5b45baae3f730f8245a\n"
    },
    {
      "commit": "c82b9c335e69b617817dace0ef64ad3df3f5080f",
      "tree": "1a4ec318e901167744e8ef29f7018c766a1b9d4b",
      "parents": [
        "36b31c87807a4f8cd22e73da9bf2df7babdb906e"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Tue Feb 14 11:39:51 2017 -0800"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Tue Feb 14 13:49:20 2017 -0800"
      },
      "message": "Don\u0027t segfault on fail to create drm factory\n\nbug:35329920\nChange-Id: Id65254447d76222b78f977f6598751c5c51c87f3\n"
    },
    {
      "commit": "f3a591cc9d604133e2c5cae3d34322b52cd7575d",
      "tree": "6401761aab8416a91c0a022558cde7fcbc98022c",
      "parents": [
        "70537c1ce74eff5cbd6554fc972a7d44b7157eca"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Feb 01 15:42:13 2017 -0800"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Feb 01 18:19:05 2017 -0800"
      },
      "message": "Enable DRM HIDL HAL by default\n\nEliminate ENABLE_TREBLE since it is obsolete.\nSwitching back to legacy DRM is still possible\nby building with DISABLE_TREBLE_DRM\u003dtrue\n\nChange-Id: I6b921050dff6162112c60df21549fc93bc46e379\n"
    },
    {
      "commit": "68b3d9f49e68a11af5225175dc9e60ce88819e84",
      "tree": "750d8fe493c2ec45542968192ecfe52d83133a02",
      "parents": [
        "9b088162cb9cdeb542f106a45d06a1f802e91e6e"
      ],
      "author": {
        "name": "Edwin Wong",
        "email": "edwinwong@google.com",
        "time": "Fri Jan 06 19:07:54 2017 -0800"
      },
      "committer": {
        "name": "Edwin Wong",
        "email": "edwinwong@google.com",
        "time": "Mon Jan 30 15:26:51 2017 -0800"
      },
      "message": "Pass application packagename to drm plugin.\n\nPass application package name to createPlugin and createDrmPlugin.\nThe application packagename will be used as part of a unique\nidentifier for drm plugin.\n\nTest: Play Movies.\n\nTest: ANDROID_BUILD_TOP\u003d ./android-gts/tools/gts-tradefed run gts -m\nGtsMediaTestCases --test\ncom.google.android.media.gts.WidevineH264PlaybackTests#testL1With480P60\n\nVerify the application\u0027s packagename is reachable in the drm plugin\u0027s\ndebug log.\n\nbug: 27101531\n\nChange-Id: I84fb09b591a7af63f6e20004e910112a4ce6ebac\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"
    }
  ]
}
