)]}'
{
  "log": [
    {
      "commit": "e9fec5451704893412c8e707940483a6bdb5f238",
      "tree": "0cf8ca3f939aa1f42bb85c131b7c2963b335f6a2",
      "parents": [
        "6480d09eec2b8188b623030c971032334739b4e4"
      ],
      "author": {
        "name": "John W. Bruce",
        "email": "juce@google.com",
        "time": "Mon Mar 13 16:29:28 2017 -0700"
      },
      "committer": {
        "name": "John Bruce",
        "email": "juce@google.com",
        "time": "Wed Mar 29 18:10:44 2017 +0000"
      },
      "message": "Add Flag for Enabling 64-bit Media DRM Server\n\nWe are ready for devices to begin migrating to a 64-bit Media DRM\nServer. However, not all devices are ready to make this jump yet. A\ndevice needs to have all of its DRM Plugins ready to run as 64-bit\nbefore it can do this. This includes having 64-bit hardware\nintegrations.\n\nSo that devices can turn on 64-bit support as they get ready, I am\nadding flags that can be set in a device\u0027s device.mk file. There are two\nparts:\n\n* ENABLE_MEDIADRM_64 enables building the mediadrmserver as 64-bit.\n\n* Setting drm.64bit.enabled\u003dtrue in PRODUCT_PROPERTY_OVERRIDES switches\n  mediadrmserver to searching for DRM Plugins in the 64-bit directory.\n\nTest: Validated that turning on these flags enables a 64-bit\n      mediadrmserver that loads 64-bit DRM Plugins from the lib64\n      directory (after setting DISABLE_TREBLE_DRM to true to load this\n      code as opposed to the Legacy DRM Plugin HAL)\nBug: 36076017\nChange-Id: I141cfd57ff75b40c8b0cb40a5bf1439a1ab5b766\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"
    },
    {
      "commit": "3003807fcfa96c9cbfea18d643f47108aa116cd5",
      "tree": "a3f7b454cdf3973b6fd716ee44f4295e6c100bb5",
      "parents": [
        "c3c06c4fe329d07bd7d442206bc9eb63e92bf5bd"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Mon Apr 25 13:41:35 2016 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Tue Apr 26 20:46:17 2016 -0700"
      },
      "message": "Remove MediaDrm stack from mediaserver\n\nPart of media security hardening\n\nMediaDrm was temporarily allowed to\nrun in either mediaserver or mediadrmserver\nwhile all nexus devices were implementing\nsupport for the native_handle representation\nof secure buffers.  Now that all nexus\ndevices support native_handle, the MediaDrm\nstack can be removed from mediaserver.\n\nb/22990512\n\nChange-Id: Ie5d83bfeb4c4a824e1d0edb4c9452c782d6fd386\n"
    },
    {
      "commit": "9ac86b3cae9a1e14b12bf97223ddde96142aae43",
      "tree": "47e31065ddbfe56deb8e9990bba2bb6a39fd979e",
      "parents": [
        "aef47bf801dcbcb88cec8426c03237c6313da1c2"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Sat Jan 23 17:27:58 2016 -0800"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Feb 16 22:36:37 2016 -0800"
      },
      "message": "stagefright: ICrypto: enable passing secure buffers in native_handle\n\nPreviously secure buffers were passed as opaque\nvoid * values, which no longer works since\nmediadrmserver is now a separate process from\nmediaserver.\n\nBug: 22990512\nChange-Id: I5c458ba19e78e20d1bd5a5899df0bce16f71bfd8\n"
    },
    {
      "commit": "18cb1eca504817b5b144a023ae2792d90e74c9a5",
      "tree": "4b39e8a99696709fb6d1c8197328f073cb21f66a",
      "parents": [
        "1ab2f2d0a6208ec9b6bb7e8b130efa9b70737f98"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Dec 18 11:55:22 2015 -0800"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Mon Jan 11 17:01:07 2016 -0800"
      },
      "message": "Support AES-CBC sample encryption in MediaDrm\n\nbug:23719082\nChange-Id: I3028452f315122b65296881aed1fbf66c3ceeebc\n"
    },
    {
      "commit": "6d339f1f764bbd32e3381dae7bfa7c6c575bb493",
      "tree": "3b29d455c9f3ac73327a0117d2bc18d8b199a265",
      "parents": [
        "ee4e1b1a63758941460ae79a064249d3a5189443"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Apr 17 16:15:53 2015 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Apr 17 16:16:27 2015 -0700"
      },
      "message": "libmediaplayerservice: fix warnings, make warnings errors, use clang\n\nChange-Id: I1b2f6b65c5abbc366068a60b8909104f31b94228\n"
    },
    {
      "commit": "1849570240443d1f75775c205fa658f7070849c6",
      "tree": "86ad28892b0e8b49c8666ad39e340234c610e709",
      "parents": [
        "2fb25c873e1a7f346bd8c7c072a85ca6a74b0e95"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Apr 10 04:10:59 2015 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Apr 10 04:10:59 2015 -0700"
      },
      "message": "Add a method to associate MediaDrm session with MediaCrypto\n\nPreviously, to associate a MediaDrm session with MediaCrypto,\nthe MediaDrm sessionId was passed as initData to the MediaCrypto\nconstructor.  This is not ideal for two reasons: it\u0027s pretty\nobscure and you can\u0027t change the association without tearing\ndown the MediaCodec/MediaCrypto and starting all over.  Use\ncases like key rotation require being able to update the\nMediaDrm session post-construction.  This CL addresses both of\nthese issues.\n\nbug: 19570317\nChange-Id: Ieb32d04d61742fc1dee2105dd904690d44c46c7b\n"
    },
    {
      "commit": "c481b5012a5f6cf72e5e93b36f1ed4c9169916f2",
      "tree": "bbb7920204199b43cd24075d48b8fa387a43059f",
      "parents": [
        "e41b5f31148f9cfb7316295c900c7d3c695510b2"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Mon Apr 06 18:21:05 2015 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Apr 08 18:33:59 2015 -0700"
      },
      "message": "Pass crypto source data using a shared buffer\n\nMediaCodec was using a binder transaction buffer\nto pass encryption source data for protected content.\nOn some 4K content, the max binder transaction buffer\nsize was being exceeded.  This change uses a shared\nbuffer for the encryption source data instead of a\nbinder transaction buffer, which avoids the problem and\nmay be more efficient.\n\nbug: 20027687\nChange-Id: I36a24ebf600d7e1064b78e48b167fdc29b2c65e9\n"
    },
    {
      "commit": "2514d080c8a54ff603a45d7e336de668fe7329db",
      "tree": "c02e8521f99240935f7c672c9d79846addd785cb",
      "parents": [
        "3c1285e8f86bd497e14c14fb6df7b42072ef52bd"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Mon Nov 03 13:29:35 2014 -0800"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Mon Nov 03 18:39:23 2014 -0800"
      },
      "message": "Pass resolution to Crypto plugin on format change\n\nChange-Id: I56cd557ce3525fe625db8c312d2557d3c8b51101\nrelated-to-bug: 16034599\n"
    },
    {
      "commit": "d1eff5718510228503958e8fafa698c9e6a4a230",
      "tree": "0f4edc23c490ba584622ae8cd612301b43025753",
      "parents": [
        "ce177bb31493d3cd4450f9d4760fa1fd32ec6bf4"
      ],
      "author": {
        "name": "leozwang@google.com",
        "email": "leozwang@google.com",
        "time": "Sat Jul 13 21:52:50 2013 -0700"
      },
      "committer": {
        "name": "Leo Wang",
        "email": "leozwang@google.com",
        "time": "Wed Jul 17 21:12:44 2013 +0000"
      },
      "message": "Output more detailed error message if loading library fails\n\nBug: 9805979\n\nChange-Id: I77b19d6a65ff9fb72e7428ce79b117628e4c8658\n"
    },
    {
      "commit": "bafb682ec7f51486e751fea954169deb91846063",
      "tree": "88d3be30ac8e26843929fcda2fb3d2535c313ea4",
      "parents": [
        "9e36b5a5c630c303b5007fdeb5c0df83b953adf4"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Mar 22 15:26:39 2013 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Mar 22 15:26:39 2013 -0700"
      },
      "message": "Load crypto plugins from additional shared libraries\n\nCurrently crypto plugins are expected to be in libdrmdecrypt.so.\nWhen there are multiple plugins supporting different schemes,\nthis approach requires source code integration across\nvendors which is unmanagable.  Also, for integration with\nMediaDrm where the crypto keys are obtained from a drm server,\nthe MediaCrypto plugin needs to interoperate with the MediaDrm\nplugin. This change allows {MediaCrypto, MediaDrm} pairs that\nare logically related to be implemented in a common shared\nlibrary.\n\nChange-Id: I7f6638f29171f91609fc2d944396365568630b56\n"
    },
    {
      "commit": "fa2b8f243eb048fb2b8e5a14356190f69eb31a36",
      "tree": "d54232d4c61bf767677bcee2373069c4969301c1",
      "parents": [
        "4221e2813f7a307936036e62b6a63bbda23005ee"
      ],
      "author": {
        "name": "Edwin Wong",
        "email": "edwinwong@google.com",
        "time": "Tue Jul 10 20:01:13 2012 -0700"
      },
      "committer": {
        "name": "Edwin Wong",
        "email": "edwinwong@google.com",
        "time": "Fri Jul 13 13:05:56 2012 -0700"
      },
      "message": "Fixed sample video corrupted in MediaCodec mode.\n\nChange-Id: I50c5660072d40f6e297e58fd026ea04c89d6a70a\nrelated-to-bug: 6732061\n"
    },
    {
      "commit": "5b8987e7de9d04b09153f329c680d2316cdb44ec",
      "tree": "2b08e1f8abd0d4b869ce8923b1462530b916a7eb",
      "parents": [
        "fd9e14bc28f377065e43ec6833d754ca151b3941"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 19 12:52:20 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 19 12:53:59 2012 -0700"
      },
      "message": "Allow propagation of error information and description from the CryptoPlugin to\n\nthe higher layers.\n\nChange-Id: I9f434ad55cdf575803c208bedf47b607baff2330\nrelated-to-bug: 6365261\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": "1bd139a2a68690e80398b70b27ca59550fea0e65",
      "tree": "e3be78f22aa021c4e372409128775c2093d46dae",
      "parents": [
        "d22da88fd555f1262357c7dcdeface8445e3a012"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Apr 03 14:19:20 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Apr 03 14:19:20 2012 -0700"
      },
      "message": "New Crypto services talking to the new crypto \"HAL\".\n\nChange-Id: I69ed31e7a8b4d69d1209d2d516f94d258f072566\nrelated-to-bug: 6275919\n"
    },
    {
      "commit": "ed3e3e046840d5bf1ca84a8c0cc097425e89d6d6",
      "tree": "99d5bb3a2f48f9a3ba3eaaf17e630b589e97bef1",
      "parents": [
        "cc1110dc92e53e9cc0afbb043e6ef8295bd9c5d5"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Mar 26 11:13:27 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Mar 26 11:24:04 2012 -0700"
      },
      "message": "Provisional support for secure decryption of media streams.\n\nChange-Id: Ib3982a9c960bfdb0cb7e1b174440b141b194cfbe\n"
    }
  ]
}
