mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-27 02:47:31 +09:00
Revert following changes for fixing Primetime issue:
- Issue #26 Part 2a: make more EME code conditional. (99118e38e) - Issue #26 - Part 2b: Stub out GMPDecryptorProxy functions. (d44c61bf6) - Issue #26 - Part 2c: Remove dependence on gmp/widevine-adapter/* (4c9689f68) - Issue #1392 - Change --enable-eme to MOZ_ARG_ENABLE_BOOL and remove MOZ_EME_MODULES (832d84d2c) - [Basilisk] Issue MoonchildProductions/UXP#1392 - Remove usage of MOZ_EME_MODULES (3a165cd) - Issue #65 - Remove AppConstants from toolkit/mozapps/extensions (758618b60)
This commit is contained in:
parent
d27e162ef9
commit
03b286c4d8
29 changed files with 64 additions and 199 deletions
|
|
@ -31,9 +31,7 @@ class MediaResource;
|
|||
class ReentrantMonitor;
|
||||
class VideoFrameContainer;
|
||||
class MediaDecoderOwner;
|
||||
#ifdef MOZ_EME
|
||||
class CDMProxy;
|
||||
#endif
|
||||
|
||||
typedef nsDataHashtable<nsCStringHashKey, nsCString> MetadataTags;
|
||||
|
||||
|
|
|
|||
|
|
@ -387,9 +387,7 @@ MediaDecoder::MediaDecoder(MediaDecoderOwner* aOwner)
|
|||
, mLogicalPosition(0.0)
|
||||
, mDuration(std::numeric_limits<double>::quiet_NaN())
|
||||
, mResourceCallback(new ResourceCallback())
|
||||
#ifdef MOZ_EME
|
||||
, mCDMProxyPromise(mCDMProxyPromiseHolder.Ensure(__func__))
|
||||
#endif
|
||||
, mIgnoreProgressData(false)
|
||||
, mInfiniteStream(false)
|
||||
, mOwner(aOwner)
|
||||
|
|
@ -474,9 +472,7 @@ MediaDecoder::Shutdown()
|
|||
|
||||
mResourceCallback->Disconnect();
|
||||
|
||||
#ifdef MOZ_EME
|
||||
mCDMProxyPromiseHolder.RejectIfExists(true, __func__);
|
||||
#endif
|
||||
|
||||
DiscardOngoingSeekIfExists();
|
||||
|
||||
|
|
@ -1541,7 +1537,6 @@ MediaDecoder::CanPlayThrough()
|
|||
return GetStatistics().CanPlayThrough();
|
||||
}
|
||||
|
||||
#ifdef MOZ_EME
|
||||
RefPtr<MediaDecoder::CDMProxyPromise>
|
||||
MediaDecoder::RequestCDMProxy() const
|
||||
{
|
||||
|
|
@ -1556,7 +1551,6 @@ MediaDecoder::SetCDMProxy(CDMProxy* aProxy)
|
|||
|
||||
mCDMProxyPromiseHolder.ResolveIfExists(aProxy, __func__);
|
||||
}
|
||||
#endif
|
||||
|
||||
bool
|
||||
MediaDecoder::IsOpusEnabled()
|
||||
|
|
|
|||
|
|
@ -8,11 +8,7 @@
|
|||
#define MediaDecoder_h_
|
||||
|
||||
#include "mozilla/Atomics.h"
|
||||
|
||||
#ifdef MOZ_EME
|
||||
#include "mozilla/CDMProxy.h"
|
||||
#endif
|
||||
|
||||
#include "mozilla/MozPromise.h"
|
||||
#include "mozilla/ReentrantMonitor.h"
|
||||
#include "mozilla/StateMirroring.h"
|
||||
|
|
@ -436,7 +432,6 @@ private:
|
|||
|
||||
MediaDecoderOwner* GetOwner() const override;
|
||||
|
||||
#ifdef MOZ_EME
|
||||
typedef MozPromise<RefPtr<CDMProxy>, bool /* aIgnored */, /* IsExclusive = */ true> CDMProxyPromise;
|
||||
|
||||
// Resolved when a CDMProxy is available and the capabilities are known or
|
||||
|
|
@ -444,7 +439,6 @@ private:
|
|||
RefPtr<CDMProxyPromise> RequestCDMProxy() const;
|
||||
|
||||
void SetCDMProxy(CDMProxy* aProxy);
|
||||
#endif
|
||||
|
||||
static bool IsOggEnabled();
|
||||
static bool IsOpusEnabled();
|
||||
|
|
@ -595,10 +589,8 @@ private:
|
|||
|
||||
RefPtr<ResourceCallback> mResourceCallback;
|
||||
|
||||
#ifdef MOZ_EME
|
||||
MozPromiseHolder<CDMProxyPromise> mCDMProxyPromiseHolder;
|
||||
RefPtr<CDMProxyPromise> mCDMProxyPromise;
|
||||
#endif
|
||||
|
||||
protected:
|
||||
// The promise resolving/rejection is queued as a "micro-task" which will be
|
||||
|
|
|
|||
|
|
@ -24,9 +24,7 @@
|
|||
|
||||
namespace mozilla {
|
||||
|
||||
#ifdef MOZ_EME
|
||||
class CDMProxy;
|
||||
#endif
|
||||
class MediaDecoderReader;
|
||||
|
||||
struct WaitForDataRejectValue
|
||||
|
|
@ -188,9 +186,7 @@ public:
|
|||
// when to call SetIdle().
|
||||
virtual void SetIdle() {}
|
||||
|
||||
#ifdef MOZ_EME
|
||||
virtual void SetCDMProxy(CDMProxy* aProxy) {}
|
||||
#endif
|
||||
|
||||
// Tell the reader that the data decoded are not for direct playback, so it
|
||||
// can accept more files, in particular those which have more channels than
|
||||
|
|
|
|||
|
|
@ -113,9 +113,7 @@ public:
|
|||
return mReader->CanonicalBuffered();
|
||||
}
|
||||
|
||||
#ifdef MOZ_EME
|
||||
void SetCDMProxy(CDMProxy* aProxy) { mReader->SetCDMProxy(aProxy); }
|
||||
#endif
|
||||
|
||||
void SetVideoBlankDecode(bool aIsBlankDecode);
|
||||
|
||||
|
|
|
|||
|
|
@ -1238,12 +1238,7 @@ DecodeMetadataState::OnMetadataRead(MetadataHolder* aMetadata)
|
|||
// feeding in the CDM, which we need to decode the first frame (and
|
||||
// thus get the metadata). We could fix this if we could compute the start
|
||||
// time by demuxing without necessaring decoding.
|
||||
bool waitingForCDM =
|
||||
#ifdef MOZ_EME
|
||||
mMaster->Info().IsEncrypted() && !mMaster->mCDMProxy;
|
||||
#else
|
||||
false;
|
||||
#endif
|
||||
bool waitingForCDM = Info().IsEncrypted() && !mMaster->mCDMProxy;
|
||||
|
||||
mMaster->mNotifyMetadataBeforeFirstFrame =
|
||||
mMaster->mDuration.Ref().isSome() || waitingForCDM;
|
||||
|
|
@ -1267,9 +1262,7 @@ DormantState::HandlePlayStateChanged(MediaDecoder::PlayState aPlayState)
|
|||
{
|
||||
if (aPlayState == MediaDecoder::PLAY_STATE_PLAYING) {
|
||||
// Exit dormant when the user wants to play.
|
||||
#ifdef MOZ_EME
|
||||
MOZ_ASSERT(!Info().IsEncrypted() || mMaster->mCDMProxy);
|
||||
#endif
|
||||
MOZ_ASSERT(mMaster->mSentFirstFrameLoadedEvent);
|
||||
SetState<SeekingState>(Move(mPendingSeek), EventVisibility::Suppressed);
|
||||
}
|
||||
|
|
@ -1582,9 +1575,7 @@ ShutdownState::Enter()
|
|||
// dispose of the timer.
|
||||
master->mVideoDecodeSuspendTimer.Reset();
|
||||
|
||||
#ifdef MOZ_EME
|
||||
master->mCDMProxyPromise.DisconnectIfExists();
|
||||
#endif
|
||||
|
||||
if (master->IsPlaying()) {
|
||||
master->StopPlayback();
|
||||
|
|
@ -2138,12 +2129,10 @@ nsresult MediaDecoderStateMachine::Init(MediaDecoder* aDecoder)
|
|||
|
||||
mMediaSink = CreateMediaSink(mAudioCaptured);
|
||||
|
||||
#ifdef MOZ_EME
|
||||
mCDMProxyPromise.Begin(aDecoder->RequestCDMProxy()->Then(
|
||||
OwnerThread(), __func__, this,
|
||||
&MediaDecoderStateMachine::OnCDMProxyReady,
|
||||
&MediaDecoderStateMachine::OnCDMProxyNotReady));
|
||||
#endif
|
||||
|
||||
nsresult rv = mReader->Init();
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
|
@ -3119,7 +3108,6 @@ void MediaDecoderStateMachine::OnMediaSinkAudioError(nsresult aResult)
|
|||
DecodeError(MediaResult(NS_ERROR_DOM_MEDIA_MEDIASINK_ERR, __func__));
|
||||
}
|
||||
|
||||
#ifdef MOZ_EME
|
||||
void
|
||||
MediaDecoderStateMachine::OnCDMProxyReady(RefPtr<CDMProxy> aProxy)
|
||||
{
|
||||
|
|
@ -3136,7 +3124,6 @@ MediaDecoderStateMachine::OnCDMProxyNotReady()
|
|||
MOZ_ASSERT(OnTaskQueue());
|
||||
mCDMProxyPromise.Complete();
|
||||
}
|
||||
#endif
|
||||
|
||||
void
|
||||
MediaDecoderStateMachine::SetAudioCaptured(bool aCaptured)
|
||||
|
|
|
|||
|
|
@ -768,12 +768,10 @@ private:
|
|||
// Playback will not start when audio is offloading.
|
||||
bool mAudioOffloading;
|
||||
|
||||
#ifdef MOZ_EME
|
||||
void OnCDMProxyReady(RefPtr<CDMProxy> aProxy);
|
||||
void OnCDMProxyNotReady();
|
||||
RefPtr<CDMProxy> mCDMProxy;
|
||||
MozPromiseRequestHolder<MediaDecoder::CDMProxyPromise> mCDMProxyPromise;
|
||||
#endif
|
||||
|
||||
private:
|
||||
// The buffered range. Mirrored from the decoder thread.
|
||||
|
|
|
|||
|
|
@ -4,10 +4,7 @@
|
|||
* 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/. */
|
||||
|
||||
#ifdef MOZ_EME
|
||||
#include "mozilla/CDMProxy.h"
|
||||
#endif
|
||||
|
||||
#include "mozilla/ClearOnShutdown.h"
|
||||
#include "mozilla/dom/HTMLMediaElement.h"
|
||||
#include "mozilla/Preferences.h"
|
||||
|
|
@ -614,6 +611,7 @@ private:
|
|||
nsTArray<uint8_t> mInitData;
|
||||
nsString mInitDataType;
|
||||
};
|
||||
#endif
|
||||
|
||||
void
|
||||
MediaFormatReader::SetCDMProxy(CDMProxy* aProxy)
|
||||
|
|
@ -626,7 +624,6 @@ MediaFormatReader::SetCDMProxy(CDMProxy* aProxy)
|
|||
});
|
||||
OwnerThread()->Dispatch(r.forget());
|
||||
}
|
||||
#endif // MOZ_EME
|
||||
|
||||
bool
|
||||
MediaFormatReader::IsWaitingOnCDMResource() {
|
||||
|
|
|
|||
|
|
@ -20,9 +20,7 @@
|
|||
|
||||
namespace mozilla {
|
||||
|
||||
#ifdef MOZ_EME
|
||||
class CDMProxy;
|
||||
#endif
|
||||
|
||||
class MediaFormatReader final : public MediaDecoderReader
|
||||
{
|
||||
|
|
@ -93,9 +91,7 @@ public:
|
|||
return mTrackDemuxersMayBlock;
|
||||
}
|
||||
|
||||
#ifdef MOZ_EME
|
||||
void SetCDMProxy(CDMProxy* aProxy) override;
|
||||
#endif
|
||||
|
||||
// Returns a string describing the state of the decoder data.
|
||||
// Used for debugging purposes.
|
||||
|
|
@ -588,9 +584,7 @@ private:
|
|||
RefPtr<VideoFrameContainer> mVideoFrameContainer;
|
||||
layers::ImageContainer* GetImageContainer();
|
||||
|
||||
#ifdef MOZ_EME
|
||||
RefPtr<CDMProxy> mCDMProxy;
|
||||
#endif
|
||||
|
||||
RefPtr<GMPCrashHelper> mCrashHelper;
|
||||
|
||||
|
|
|
|||
|
|
@ -10,9 +10,7 @@
|
|||
#include "MP4Demuxer.h"
|
||||
#include "mozilla/Preferences.h"
|
||||
#include "nsCharSeparatedTokenizer.h"
|
||||
#ifdef MOZ_EME
|
||||
#include "mozilla/CDMProxy.h"
|
||||
#endif
|
||||
#include "mozilla/Logging.h"
|
||||
#include "mozilla/SharedThreadPool.h"
|
||||
#include "nsMimeTypes.h"
|
||||
|
|
|
|||
|
|
@ -22,9 +22,7 @@
|
|||
#include "GMPUtils.h"
|
||||
#include "prio.h"
|
||||
#include "base/task.h"
|
||||
#ifdef MOZ_EME
|
||||
#include "widevine-adapter/WidevineAdapter.h"
|
||||
#endif
|
||||
|
||||
using namespace mozilla::ipc;
|
||||
|
||||
|
|
@ -256,13 +254,9 @@ GMPChild::AnswerStartPlugin(const nsString& aAdapter)
|
|||
return false;
|
||||
}
|
||||
|
||||
#ifdef MOZ_EME
|
||||
bool isWidevine = aAdapter.EqualsLiteral("widevine");
|
||||
|
||||
GMPAdapter* adapter = (isWidevine) ? new WidevineAdapter() : nullptr;
|
||||
#else
|
||||
GMPAdapter* adapter = nullptr;
|
||||
#endif
|
||||
if (!mGMPLoader->Load(libPath.get(),
|
||||
libPath.Length(),
|
||||
mNodeId.BeginWriting(),
|
||||
|
|
|
|||
|
|
@ -43,13 +43,11 @@ GMPDecryptorParent::~GMPDecryptorParent()
|
|||
bool
|
||||
GMPDecryptorParent::RecvSetDecryptorId(const uint32_t& aId)
|
||||
{
|
||||
#ifdef MOZ_EME
|
||||
if (!mIsOpen) {
|
||||
NS_WARNING("Trying to use a dead GMP decrypter!");
|
||||
return false;
|
||||
}
|
||||
mCallback->SetDecryptorId(aId);
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -204,7 +202,6 @@ bool
|
|||
GMPDecryptorParent::RecvSetSessionId(const uint32_t& aCreateSessionId,
|
||||
const nsCString& aSessionId)
|
||||
{
|
||||
#ifdef MOZ_EME
|
||||
LOGD(("GMPDecryptorParent[%p]::RecvSetSessionId(token=%u, sessionId='%s')",
|
||||
this, aCreateSessionId, aSessionId.get()));
|
||||
|
||||
|
|
@ -213,7 +210,6 @@ GMPDecryptorParent::RecvSetSessionId(const uint32_t& aCreateSessionId,
|
|||
return false;
|
||||
}
|
||||
mCallback->SetSessionId(aCreateSessionId, aSessionId);
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -221,7 +217,6 @@ bool
|
|||
GMPDecryptorParent::RecvResolveLoadSessionPromise(const uint32_t& aPromiseId,
|
||||
const bool& aSuccess)
|
||||
{
|
||||
#ifdef MOZ_EME
|
||||
LOGD(("GMPDecryptorParent[%p]::RecvResolveLoadSessionPromise(promiseId=%u)",
|
||||
this, aPromiseId));
|
||||
|
||||
|
|
@ -230,14 +225,12 @@ GMPDecryptorParent::RecvResolveLoadSessionPromise(const uint32_t& aPromiseId,
|
|||
return false;
|
||||
}
|
||||
mCallback->ResolveLoadSessionPromise(aPromiseId, aSuccess);
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
|
||||
bool
|
||||
GMPDecryptorParent::RecvResolvePromise(const uint32_t& aPromiseId)
|
||||
{
|
||||
#ifdef MOZ_EME
|
||||
LOGD(("GMPDecryptorParent[%p]::RecvResolvePromise(promiseId=%u)",
|
||||
this, aPromiseId));
|
||||
|
||||
|
|
@ -246,7 +239,6 @@ GMPDecryptorParent::RecvResolvePromise(const uint32_t& aPromiseId)
|
|||
return false;
|
||||
}
|
||||
mCallback->ResolvePromise(aPromiseId);
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -274,7 +266,6 @@ GMPDecryptorParent::RecvRejectPromise(const uint32_t& aPromiseId,
|
|||
const GMPDOMException& aException,
|
||||
const nsCString& aMessage)
|
||||
{
|
||||
#ifdef MOZ_EME
|
||||
LOGD(("GMPDecryptorParent[%p]::RecvRejectPromise(promiseId=%u, exception=%d, msg='%s')",
|
||||
this, aPromiseId, aException, aMessage.get()));
|
||||
|
||||
|
|
@ -283,11 +274,10 @@ GMPDecryptorParent::RecvRejectPromise(const uint32_t& aPromiseId,
|
|||
return false;
|
||||
}
|
||||
mCallback->RejectPromise(aPromiseId, GMPExToNsresult(aException), aMessage);
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
|
||||
#ifdef MOZ_EME
|
||||
|
||||
static dom::MediaKeyMessageType
|
||||
ToMediaKeyMessageType(GMPSessionMessageType aMessageType) {
|
||||
switch (aMessageType) {
|
||||
|
|
@ -298,14 +288,12 @@ ToMediaKeyMessageType(GMPSessionMessageType aMessageType) {
|
|||
default: return dom::MediaKeyMessageType::License_request;
|
||||
};
|
||||
};
|
||||
#endif
|
||||
|
||||
bool
|
||||
GMPDecryptorParent::RecvSessionMessage(const nsCString& aSessionId,
|
||||
const GMPSessionMessageType& aMessageType,
|
||||
nsTArray<uint8_t>&& aMessage)
|
||||
{
|
||||
#ifdef MOZ_EME
|
||||
LOGD(("GMPDecryptorParent[%p]::RecvSessionMessage(sessionId='%s', type=%d, msg='%s')",
|
||||
this, aSessionId.get(), aMessageType, ToBase64(aMessage).get()));
|
||||
|
||||
|
|
@ -314,7 +302,6 @@ GMPDecryptorParent::RecvSessionMessage(const nsCString& aSessionId,
|
|||
return false;
|
||||
}
|
||||
mCallback->SessionMessage(aSessionId, ToMediaKeyMessageType(aMessageType), aMessage);
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -322,7 +309,6 @@ bool
|
|||
GMPDecryptorParent::RecvExpirationChange(const nsCString& aSessionId,
|
||||
const double& aExpiryTime)
|
||||
{
|
||||
#ifdef MOZ_EME
|
||||
LOGD(("GMPDecryptorParent[%p]::RecvExpirationChange(sessionId='%s', expiry=%lf)",
|
||||
this, aSessionId.get(), aExpiryTime));
|
||||
|
||||
|
|
@ -331,14 +317,12 @@ GMPDecryptorParent::RecvExpirationChange(const nsCString& aSessionId,
|
|||
return false;
|
||||
}
|
||||
mCallback->ExpirationChange(aSessionId, aExpiryTime);
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
|
||||
bool
|
||||
GMPDecryptorParent::RecvSessionClosed(const nsCString& aSessionId)
|
||||
{
|
||||
#ifdef MOZ_EME
|
||||
LOGD(("GMPDecryptorParent[%p]::RecvSessionClosed(sessionId='%s')",
|
||||
this, aSessionId.get()));
|
||||
|
||||
|
|
@ -347,7 +331,6 @@ GMPDecryptorParent::RecvSessionClosed(const nsCString& aSessionId)
|
|||
return false;
|
||||
}
|
||||
mCallback->SessionClosed(aSessionId);
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -357,7 +340,6 @@ GMPDecryptorParent::RecvSessionError(const nsCString& aSessionId,
|
|||
const uint32_t& aSystemCode,
|
||||
const nsCString& aMessage)
|
||||
{
|
||||
#ifdef MOZ_EME
|
||||
LOGD(("GMPDecryptorParent[%p]::RecvSessionError(sessionId='%s', exception=%d, sysCode=%d, msg='%s')",
|
||||
this, aSessionId.get(),
|
||||
aException, aSystemCode, aMessage.get()));
|
||||
|
|
@ -370,11 +352,9 @@ GMPDecryptorParent::RecvSessionError(const nsCString& aSessionId,
|
|||
GMPExToNsresult(aException),
|
||||
aSystemCode,
|
||||
aMessage);
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
|
||||
#ifdef MOZ_EME
|
||||
static dom::MediaKeyStatus
|
||||
ToMediaKeyStatus(GMPMediaKeyStatus aStatus) {
|
||||
switch (aStatus) {
|
||||
|
|
@ -388,13 +368,11 @@ ToMediaKeyStatus(GMPMediaKeyStatus aStatus) {
|
|||
default: return dom::MediaKeyStatus::Internal_error;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
bool
|
||||
GMPDecryptorParent::RecvBatchedKeyStatusChanged(const nsCString& aSessionId,
|
||||
InfallibleTArray<GMPKeyInformation>&& aKeyInfos)
|
||||
{
|
||||
#ifdef MOZ_EME
|
||||
LOGD(("GMPDecryptorParent[%p]::RecvBatchedKeyStatusChanged(sessionId='%s', KeyInfos len='%d')",
|
||||
this, aSessionId.get(), aKeyInfos.Length()));
|
||||
|
||||
|
|
@ -414,11 +392,9 @@ GMPDecryptorParent::RecvBatchedKeyStatusChanged(const nsCString& aSessionId,
|
|||
}
|
||||
mCallback->BatchedKeyStatusChanged(aSessionId, cdmKeyInfos);
|
||||
}
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
|
||||
#ifdef MOZ_EME
|
||||
DecryptStatus
|
||||
ToDecryptStatus(GMPErr aError)
|
||||
{
|
||||
|
|
@ -429,14 +405,12 @@ ToDecryptStatus(GMPErr aError)
|
|||
default: return GenericErr;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
bool
|
||||
GMPDecryptorParent::RecvDecrypted(const uint32_t& aId,
|
||||
const GMPErr& aErr,
|
||||
InfallibleTArray<uint8_t>&& aBuffer)
|
||||
{
|
||||
#ifdef MOZ_EME
|
||||
LOGV(("GMPDecryptorParent[%p]::RecvDecrypted(id=%d, err=%d)",
|
||||
this, aId, aErr));
|
||||
|
||||
|
|
@ -445,7 +419,6 @@ GMPDecryptorParent::RecvDecrypted(const uint32_t& aId,
|
|||
return false;
|
||||
}
|
||||
mCallback->Decrypted(aId, ToDecryptStatus(aErr), aBuffer);
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -6,9 +6,7 @@
|
|||
#ifndef GMPDecryptorProxy_h_
|
||||
#define GMPDecryptorProxy_h_
|
||||
|
||||
#ifdef MOZ_EME
|
||||
#include "mozilla/DecryptorProxyCallback.h"
|
||||
#endif
|
||||
#include "GMPCallbackBase.h"
|
||||
#include "gmp-decryption.h"
|
||||
#include "nsString.h"
|
||||
|
|
@ -17,13 +15,8 @@ namespace mozilla {
|
|||
class CryptoSample;
|
||||
} // namespace mozilla
|
||||
|
||||
#ifdef MOZ_EME
|
||||
class GMPDecryptorProxyCallback : public DecryptorProxyCallback,
|
||||
public GMPCallbackBase {
|
||||
#else
|
||||
class GMPDecryptorProxyCallback : public GMPCallbackBase {
|
||||
#endif
|
||||
|
||||
public:
|
||||
virtual ~GMPDecryptorProxyCallback() {}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -30,10 +30,8 @@ using mozilla::ipc::GeckoChildProcessHost;
|
|||
#include "WMFDecoderModule.h"
|
||||
#endif
|
||||
|
||||
#ifdef MOZ_EME
|
||||
#include "mozilla/dom/WidevineCDMManifestBinding.h"
|
||||
#include "widevine-adapter/WidevineAdapter.h"
|
||||
#endif
|
||||
|
||||
namespace mozilla {
|
||||
|
||||
|
|
@ -656,7 +654,6 @@ GMPParent::ReadGMPMetaData()
|
|||
return ReadGMPInfoFile(infoFile);
|
||||
}
|
||||
|
||||
#ifdef MOZ_EME
|
||||
// Maybe this is the Widevine adapted plugin?
|
||||
nsCOMPtr<nsIFile> manifestFile;
|
||||
rv = mDirectory->Clone(getter_AddRefs(manifestFile));
|
||||
|
|
@ -665,9 +662,6 @@ GMPParent::ReadGMPMetaData()
|
|||
}
|
||||
manifestFile->AppendRelativePath(NS_LITERAL_STRING("manifest.json"));
|
||||
return ReadChromiumManifestFile(manifestFile);
|
||||
#else
|
||||
return GenericPromise::CreateAndReject(NS_ERROR_FAILURE, __func__);
|
||||
#endif
|
||||
}
|
||||
|
||||
RefPtr<GenericPromise>
|
||||
|
|
@ -770,7 +764,6 @@ GMPParent::ReadChromiumManifestFile(nsIFile* aFile)
|
|||
RefPtr<GenericPromise>
|
||||
GMPParent::ParseChromiumManifest(nsString aJSON)
|
||||
{
|
||||
#ifdef MOZ_EME
|
||||
LOGD("%s: for '%s'", __FUNCTION__, NS_LossyConvertUTF16toASCII(aJSON).get());
|
||||
|
||||
MOZ_ASSERT(NS_IsMainThread());
|
||||
|
|
@ -808,10 +801,6 @@ GMPParent::ParseChromiumManifest(nsString aJSON)
|
|||
#endif
|
||||
|
||||
return GenericPromise::CreateAndResolve(true, __func__);
|
||||
#else // !MOZ_EME
|
||||
MOZ_ASSERT_UNREACHABLE("don't call me if EME isn't enabled");
|
||||
return GenericPromise::CreateAndReject(NS_ERROR_FAILURE, __func__);
|
||||
#endif // !MOZ_EME
|
||||
}
|
||||
|
||||
bool
|
||||
|
|
|
|||
|
|
@ -35,6 +35,8 @@ EXPORTS += [
|
|||
'GMPAudioDecoderProxy.h',
|
||||
'GMPAudioHost.h',
|
||||
'GMPCallbackBase.h',
|
||||
'GMPCDMCallbackProxy.h',
|
||||
'GMPCDMProxy.h',
|
||||
'GMPChild.h',
|
||||
'GMPContentChild.h',
|
||||
'GMPContentParent.h',
|
||||
|
|
@ -71,12 +73,6 @@ EXPORTS += [
|
|||
'GMPVideoPlaneImpl.h',
|
||||
]
|
||||
|
||||
if CONFIG['MOZ_EME']:
|
||||
EXPORTS += [
|
||||
'GMPCDMCallbackProxy.h',
|
||||
'GMPCDMProxy.h',
|
||||
]
|
||||
|
||||
# We link GMPLoader into xul on B2G/Fennec as its code does not need to be
|
||||
# covered by a DRM vendor's voucher.
|
||||
if CONFIG['OS_TARGET'] == 'Android':
|
||||
|
|
@ -91,6 +87,8 @@ UNIFIED_SOURCES += [
|
|||
'GMPAudioDecoderChild.cpp',
|
||||
'GMPAudioDecoderParent.cpp',
|
||||
'GMPAudioHost.cpp',
|
||||
'GMPCDMCallbackProxy.cpp',
|
||||
'GMPCDMProxy.cpp',
|
||||
'GMPChild.cpp',
|
||||
'GMPContentChild.cpp',
|
||||
'GMPContentParent.cpp',
|
||||
|
|
@ -122,16 +120,10 @@ UNIFIED_SOURCES += [
|
|||
'GMPVideoPlaneImpl.cpp',
|
||||
]
|
||||
|
||||
if CONFIG['MOZ_EME']:
|
||||
UNIFIED_SOURCES += [
|
||||
'GMPCDMCallbackProxy.cpp',
|
||||
'GMPCDMProxy.cpp',
|
||||
]
|
||||
|
||||
DIRS += ['rlz']
|
||||
|
||||
if CONFIG['MOZ_EME']:
|
||||
DIRS += ['widevine-adapter']
|
||||
DIRS += [
|
||||
'rlz',
|
||||
'widevine-adapter',
|
||||
]
|
||||
|
||||
IPDL_SOURCES += [
|
||||
'GMPTypes.ipdlh',
|
||||
|
|
|
|||
|
|
@ -34,10 +34,8 @@ public:
|
|||
void DownloadProgressed() override {}
|
||||
void UpdateReadyState() override {}
|
||||
void FirstFrameLoaded() override {}
|
||||
#ifdef MOZ_EME
|
||||
void DispatchEncrypted(const nsTArray<uint8_t>& aInitData,
|
||||
const nsAString& aInitDataType) override {}
|
||||
#endif
|
||||
bool IsActive() const override { return true; }
|
||||
bool IsHidden() const override { return false; }
|
||||
void DownloadSuspended() override {}
|
||||
|
|
|
|||
|
|
@ -28,11 +28,6 @@ UNIFIED_SOURCES += [
|
|||
'TestWebMBuffered.cpp',
|
||||
]
|
||||
|
||||
if CONFIG['MOZ_EME']:
|
||||
UNIFIED_SOURCES += [
|
||||
'TestEME.cpp',
|
||||
]
|
||||
|
||||
if CONFIG['MOZ_WEBM_ENCODER']:
|
||||
UNIFIED_SOURCES += [
|
||||
'TestVideoTrackEncoder.cpp',
|
||||
|
|
|
|||
|
|
@ -84,7 +84,7 @@ private:
|
|||
nsTArray<uint8_t> mInitData;
|
||||
nsString mInitDataType;
|
||||
};
|
||||
#endif // MOZ_EME
|
||||
#endif
|
||||
|
||||
TrackBuffersManager::TrackBuffersManager(MediaSourceDecoder* aParentDecoder,
|
||||
const nsACString& aType)
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ with Files('GetUserMedia*'):
|
|||
BUG_COMPONENT = component_av
|
||||
|
||||
DIRS += [
|
||||
'eme',
|
||||
'encoder',
|
||||
'flac',
|
||||
'gmp',
|
||||
|
|
@ -48,9 +49,6 @@ if CONFIG['MOZ_FMP4']:
|
|||
if CONFIG['MOZ_WEBRTC']:
|
||||
DIRS += ['bridge']
|
||||
|
||||
if CONFIG['MOZ_EME']:
|
||||
DIRS += ['eme']
|
||||
|
||||
TEST_DIRS += [
|
||||
'gtest',
|
||||
]
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@
|
|||
#endif
|
||||
#include "GMPDecoderModule.h"
|
||||
|
||||
#include "mozilla/CDMProxy.h"
|
||||
#include "mozilla/ClearOnShutdown.h"
|
||||
#include "mozilla/SharedThreadPool.h"
|
||||
#include "mozilla/StaticPtr.h"
|
||||
|
|
@ -36,11 +37,7 @@
|
|||
#include "H264Converter.h"
|
||||
|
||||
#include "AgnosticDecoderModule.h"
|
||||
|
||||
#ifdef MOZ_EME
|
||||
#include "mozilla/CDMProxy.h"
|
||||
#include "EMEDecoderModule.h"
|
||||
#endif
|
||||
|
||||
#include "DecoderDoctorDiagnostics.h"
|
||||
|
||||
|
|
@ -466,13 +463,11 @@ PDMFactory::GetDecoder(const TrackInfo& aTrackInfo,
|
|||
return pdm.forget();
|
||||
}
|
||||
|
||||
#ifdef MOZ_EME
|
||||
void
|
||||
PDMFactory::SetCDMProxy(CDMProxy* aProxy)
|
||||
{
|
||||
RefPtr<PDMFactory> m = new PDMFactory();
|
||||
mEMEPDM = new EMEDecoderModule(aProxy, m);
|
||||
}
|
||||
#endif
|
||||
|
||||
} // namespace mozilla
|
||||
|
|
|
|||
|
|
@ -11,9 +11,7 @@
|
|||
#include "mozilla/Function.h"
|
||||
#include "mozilla/StaticMutex.h"
|
||||
|
||||
#ifdef MOZ_EME
|
||||
class CDMProxy;
|
||||
#endif
|
||||
|
||||
namespace mozilla {
|
||||
|
||||
|
|
@ -40,14 +38,12 @@ public:
|
|||
bool Supports(const TrackInfo& aTrackInfo,
|
||||
DecoderDoctorDiagnostics* aDiagnostics) const;
|
||||
|
||||
#ifdef MOZ_EME
|
||||
// Creates a PlatformDecoderModule that uses a CDMProxy to decrypt or
|
||||
// decrypt-and-decode EME encrypted content. If the CDM only decrypts and
|
||||
// does not decode, we create a PDM and use that to create MediaDataDecoders
|
||||
// that we use on on aTaskQueue to decode the decrypted stream.
|
||||
// This is called on the decode task queue.
|
||||
void SetCDMProxy(CDMProxy* aProxy);
|
||||
#endif
|
||||
|
||||
static constexpr int kYUV400 = 0;
|
||||
static constexpr int kYUV420 = 1;
|
||||
|
|
|
|||
|
|
@ -30,13 +30,11 @@ UNIFIED_SOURCES += [
|
|||
]
|
||||
|
||||
DIRS += [
|
||||
'agnostic/eme',
|
||||
'agnostic/gmp',
|
||||
'omx'
|
||||
]
|
||||
|
||||
if CONFIG['MOZ_EME']:
|
||||
DIRS += ['agnostic/eme']
|
||||
|
||||
if CONFIG['MOZ_WMF']:
|
||||
DIRS += [ 'wmf' ];
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue