/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- * vim: sw=2 ts=4 et : * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
// Interface that adapts a plugin to the GMP API. class GMPAdapter { public: virtual ~GMPAdapter() = default; // Sets the adapted to plugin library module. // Note: the GMPAdapter is responsible for calling PR_UnloadLibrary on aLib // when it's finished with it. virtualvoid SetAdaptee(PRLibrary* aLib) = 0;
// These are called in place of the corresponding GMP API functions. virtual GMPErr GMPInit(const GMPPlatformAPI* aPlatformAPI) = 0; // The `aKeySystem` arg is used to specify the key system when loading CDMs, // and will be ignored by non-CDM GMPs. It is not part of the public GMP API // Gecko exposes. virtual GMPErr GMPGetAPI(constchar* aAPIName, void* aHostAPI, void** aPluginAPI, const nsACString& aKeySystem) = 0; virtualvoid GMPShutdown() = 0;
};
// Encapsulates activating the sandbox, and loading the GMP. // Load() takes an optional GMPAdapter which can be used to adapt non-GMPs // to adhere to the GMP API. class GMPLoader { public:
GMPLoader();
// Activates the sandbox, then loads the GMP library. If aAdapter is // non-null, the lib path is assumed to be a non-GMP, and the adapter // is initialized with the lib and the adapter is used to interact with // the plugin. bool Load(constchar* aUTF8LibPath, uint32_t aLibPathLen, const GMPPlatformAPI* aPlatformAPI, GMPAdapter* aAdapter = nullptr);
// Retrieves an interface pointer from the GMP. If the GMP is loading a CDM, // aKeySystem is passed to the CDM to allow for key system specific // configuration by the CDM.
GMPErr GetAPI(constchar* aAPIName, void* aHostAPI, void** aPluginAPI, const nsACString& aKeySystem);
// Calls the GMPShutdown function exported by the GMP lib, and unloads the // plugin library. void Shutdown();
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.