зеркало из https://github.com/mozilla/gecko-dev.git
118 строки
3.4 KiB
Plaintext
118 строки
3.4 KiB
Plaintext
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* 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/. */
|
|
|
|
include protocol PGMPContent;
|
|
include GMPTypes;
|
|
|
|
using cdm::HdcpVersion from "content_decryption_module.h";
|
|
|
|
namespace mozilla {
|
|
namespace gmp {
|
|
|
|
async refcounted protocol PChromiumCDM
|
|
{
|
|
manager PGMPContent;
|
|
child:
|
|
|
|
// cdm::ContentDecryptionModule9+10
|
|
async Init(bool aAllowDistinctiveIdentifier,
|
|
bool aAllowPersistentState) returns (bool aSuccess);
|
|
|
|
async GetStatusForPolicy(uint32_t aPromiseId,
|
|
HdcpVersion aMinHdcpVersion);
|
|
|
|
async SetServerCertificate(uint32_t aPromiseId,
|
|
uint8_t[] aServerCert);
|
|
|
|
async CreateSessionAndGenerateRequest(uint32_t aPromiseId,
|
|
uint32_t aSessionType,
|
|
uint32_t aInitDataType,
|
|
uint8_t[] aInitData);
|
|
|
|
async LoadSession(uint32_t aPromiseId,
|
|
uint32_t aSessionType,
|
|
nsCString aSessionId);
|
|
|
|
async UpdateSession(uint32_t aPromiseId,
|
|
nsCString aSessionId,
|
|
uint8_t[] aResponse);
|
|
|
|
async CloseSession(uint32_t aPromiseId,
|
|
nsCString aSessionId);
|
|
|
|
async RemoveSession(uint32_t aPromiseId,
|
|
nsCString aSessionId);
|
|
|
|
async Decrypt(uint32_t aId, CDMInputBuffer aBuffer);
|
|
|
|
async InitializeVideoDecoder(CDMVideoDecoderConfig aConfig);
|
|
|
|
async DeinitializeVideoDecoder();
|
|
|
|
async ResetVideoDecoder();
|
|
|
|
async DecryptAndDecodeFrame(CDMInputBuffer aBuffer);
|
|
|
|
async Drain();
|
|
|
|
async Destroy();
|
|
|
|
async GiveBuffer(Shmem aShmem);
|
|
|
|
async PurgeShmems();
|
|
|
|
|
|
parent:
|
|
async __delete__();
|
|
|
|
// cdm::Host9+10
|
|
async OnResolvePromiseWithKeyStatus(uint32_t aPromiseId, uint32_t aKeyStatus);
|
|
|
|
async OnResolveNewSessionPromise(uint32_t aPromiseId, nsCString aSessionId);
|
|
|
|
async OnResolvePromise(uint32_t aPromiseId);
|
|
|
|
async OnRejectPromise(uint32_t aPromiseId,
|
|
uint32_t aException,
|
|
uint32_t aSystemCode,
|
|
nsCString aErrorMessage);
|
|
|
|
async OnSessionMessage(nsCString aSessionId,
|
|
uint32_t aMessageType,
|
|
uint8_t[] aMessage);
|
|
|
|
async OnSessionKeysChange(nsCString aSessionId,
|
|
CDMKeyInformation[] aKeysInfo);
|
|
|
|
async OnExpirationChange(nsCString aSessionId,
|
|
double aSecondsSinceEpoch);
|
|
|
|
async OnSessionClosed(nsCString aSessionId);
|
|
|
|
async ResolveLoadSessionPromise(uint32_t aPromiseId, bool aSuccessful);
|
|
|
|
// Return values of cdm::ContentDecryptionModule9::Decrypt
|
|
async Decrypted(uint32_t aId, uint32_t aStatus, Shmem aDecryptedData);
|
|
async DecryptFailed(uint32_t aId, uint32_t aStatus);
|
|
|
|
async OnDecoderInitDone(uint32_t aStatus);
|
|
|
|
// Return values of cdm::ContentDecryptionModule9::DecryptAndDecodeFrame
|
|
async DecodedShmem(CDMVideoFrame aFrame, Shmem aData);
|
|
async DecodedData(CDMVideoFrame aFrame, uint8_t[] aData);
|
|
async DecodeFailed(uint32_t aStatus);
|
|
|
|
async ResetVideoDecoderComplete();
|
|
|
|
async DrainComplete();
|
|
|
|
async Shutdown();
|
|
|
|
async IncreaseShmemPoolSize();
|
|
};
|
|
|
|
} // namespace gmp
|
|
} // namespace mozilla
|