gecko-dev/dom/media/gmp/PGMPDecryptor.ipdl
Chris Pearce 46a1552995 Bug 1271242 - Remove GMPDecryptorCallback::SetCapabilities(). r=jwwang
Now that GMPParent detects whether gmp-clearkey can decode using AAC/H.264
using WMF before reporting gmp-clearkey's GMPParent can decode AAC/H.264, we
don't need the GMPDecryptorCallback::SetCapabilities() callback from the GMP to
signal to the PDMFactory that the GMP can decode. We can now trust what the
GMPService tells us.

So we can remove the "waiting for CDM caps" step in the state machine's startup
sequence. And all the plumbing. :)

If we need more caps, like for an decode-and-render path, we can declare those
as API strings in the info file.


MozReview-Commit-ID: E0QhU4cYhjo

--HG--
extra : rebase_source : 7d15ab6a45bac88c15c053f416d941b5fe0807b0
2016-05-10 10:28:38 +12:00

91 lines
2.6 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 GMPSessionMessageType from "gmp-decryption.h";
using GMPMediaKeyStatus from "gmp-decryption.h";
using GMPSessionType from "gmp-decryption.h";
using GMPDOMException from "gmp-decryption.h";
using GMPErr from "gmp-errors.h";
namespace mozilla {
namespace gmp {
async protocol PGMPDecryptor
{
manager PGMPContent;
child:
async Init();
async CreateSession(uint32_t aCreateSessionToken,
uint32_t aPromiseId,
nsCString aInitDataType,
uint8_t[] aInitData,
GMPSessionType aSessionType);
async LoadSession(uint32_t aPromiseId,
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 SetServerCertificate(uint32_t aPromiseId,
uint8_t[] aServerCert);
async Decrypt(uint32_t aId,
uint8_t[] aBuffer,
GMPDecryptionData aMetadata);
async DecryptingComplete();
parent:
async __delete__();
async SetSessionId(uint32_t aCreateSessionToken,
nsCString aSessionId);
async ResolveLoadSessionPromise(uint32_t aPromiseId,
bool aSuccess);
async ResolvePromise(uint32_t aPromiseId);
async RejectPromise(uint32_t aPromiseId,
GMPDOMException aDOMExceptionCode,
nsCString aMessage);
async SessionMessage(nsCString aSessionId,
GMPSessionMessageType aMessageType,
uint8_t[] aMessage);
async ExpirationChange(nsCString aSessionId, double aExpiryTime);
async SessionClosed(nsCString aSessionId);
async SessionError(nsCString aSessionId,
GMPDOMException aDOMExceptionCode,
uint32_t aSystemCode,
nsCString aMessage);
async KeyStatusChanged(nsCString aSessionId, uint8_t[] aKey,
GMPMediaKeyStatus aStatus);
async Decrypted(uint32_t aId, GMPErr aResult, uint8_t[] aBuffer);
async Shutdown();
};
} // namespace gmp
} // namespace mozilla