author | Eugen Sawin <esawin@mozilla.com> |
Wed, 04 Nov 2015 16:01:51 +0100 | |
changeset 273036 | 0899a0ebe6977940c9f702a02883eaa084281518 |
parent 273035 | 02919b7d57d7f8206328f53ac0f7b2b9fe334c9b |
child 273037 | 980de242783881b58ab6ab7612995a3e22970f0f |
push id | 29693 |
push user | cbook@mozilla.com |
push date | Wed, 18 Nov 2015 13:50:33 +0000 |
treeherder | mozilla-central@1d6155d7e6c9 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | jya |
bugs | 1221991 |
milestone | 45.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/dom/media/platforms/PDMFactory.cpp +++ b/dom/media/platforms/PDMFactory.cpp @@ -222,17 +222,17 @@ PDMFactory::CreateDecoderWithPDM(Platfor if (callbackWrapper && m) { m = new DecoderFuzzingWrapper(m.forget(), callbackWrapper.forget()); } return m.forget(); } bool -PDMFactory::SupportsMimeType(const nsACString& aMimeType) +PDMFactory::SupportsMimeType(const nsACString& aMimeType) const { if (mEMEPDM) { return mEMEPDM->SupportsMimeType(aMimeType); } RefPtr<PlatformDecoderModule> current = GetDecoder(aMimeType); return !!current; } @@ -300,17 +300,17 @@ PDMFactory::StartupPDM(PlatformDecoderMo if (aPDM && NS_SUCCEEDED(aPDM->Startup())) { mCurrentPDMs.AppendElement(aPDM); return true; } return false; } already_AddRefed<PlatformDecoderModule> -PDMFactory::GetDecoder(const nsACString& aMimeType) +PDMFactory::GetDecoder(const nsACString& aMimeType) const { RefPtr<PlatformDecoderModule> pdm; for (auto& current : mCurrentPDMs) { if (current->SupportsMimeType(aMimeType)) { pdm = current; break; } }
--- a/dom/media/platforms/PDMFactory.h +++ b/dom/media/platforms/PDMFactory.h @@ -30,34 +30,36 @@ public: // This is called on the decode task queue. already_AddRefed<MediaDataDecoder> CreateDecoder(const TrackInfo& aConfig, FlushableTaskQueue* aTaskQueue, MediaDataDecoderCallback* aCallback, layers::LayersBackend aLayersBackend = layers::LayersBackend::LAYERS_NONE, layers::ImageContainer* aImageContainer = nullptr); - bool SupportsMimeType(const nsACString& aMimeType); + bool SupportsMimeType(const nsACString& aMimeType) 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 private: virtual ~PDMFactory(); void CreatePDMs(); // Startup the provided PDM and add it to our list if successful. bool StartupPDM(PlatformDecoderModule* aPDM); // Returns the first PDM in our list supporting the mimetype. - already_AddRefed<PlatformDecoderModule> GetDecoder(const nsACString& aMimeType); + already_AddRefed<PlatformDecoderModule> + GetDecoder(const nsACString& aMimeType) const; + already_AddRefed<MediaDataDecoder> CreateDecoderWithPDM(PlatformDecoderModule* aPDM, const TrackInfo& aConfig, FlushableTaskQueue* aTaskQueue, MediaDataDecoderCallback* aCallback, layers::LayersBackend aLayersBackend, layers::ImageContainer* aImageContainer);
--- a/dom/media/platforms/agnostic/AgnosticDecoderModule.cpp +++ b/dom/media/platforms/agnostic/AgnosticDecoderModule.cpp @@ -7,17 +7,17 @@ #include "AgnosticDecoderModule.h" #include "OpusDecoder.h" #include "VorbisDecoder.h" #include "VPXDecoder.h" namespace mozilla { bool -AgnosticDecoderModule::SupportsMimeType(const nsACString& aMimeType) +AgnosticDecoderModule::SupportsMimeType(const nsACString& aMimeType) const { return VPXDecoder::IsVPX(aMimeType) || OpusDataDecoder::IsOpus(aMimeType) || VorbisDataDecoder::IsVorbis(aMimeType); } already_AddRefed<MediaDataDecoder> AgnosticDecoderModule::CreateVideoDecoder(const VideoInfo& aConfig,
--- a/dom/media/platforms/agnostic/AgnosticDecoderModule.h +++ b/dom/media/platforms/agnostic/AgnosticDecoderModule.h @@ -5,17 +5,17 @@ namespace mozilla { class AgnosticDecoderModule : public PlatformDecoderModule { public: AgnosticDecoderModule() = default; virtual ~AgnosticDecoderModule() = default; - bool SupportsMimeType(const nsACString& aMimeType) override; + bool SupportsMimeType(const nsACString& aMimeType) const override; ConversionRequired DecoderNeedsConversion(const TrackInfo& aConfig) const override { return ConversionRequired::kNeedNone; } protected:
--- a/dom/media/platforms/agnostic/BlankDecoderModule.cpp +++ b/dom/media/platforms/agnostic/BlankDecoderModule.cpp @@ -241,17 +241,17 @@ public: new BlankMediaDataDecoder<BlankAudioDataCreator>(creator, aAudioTaskQueue, aCallback, TrackInfo::kAudioTrack); return decoder.forget(); } bool - SupportsMimeType(const nsACString& aMimeType) override + SupportsMimeType(const nsACString& aMimeType) const override { return true; } ConversionRequired DecoderNeedsConversion(const TrackInfo& aConfig) const override { return kNeedNone;
--- a/dom/media/platforms/agnostic/eme/EMEDecoderModule.cpp +++ b/dom/media/platforms/agnostic/eme/EMEDecoderModule.cpp @@ -298,16 +298,16 @@ EMEDecoderModule::DecoderNeedsConversion if (aConfig.IsVideo()) { return kNeedAVCC; } else { return kNeedNone; } } bool -EMEDecoderModule::SupportsMimeType(const nsACString& aMimeType) +EMEDecoderModule::SupportsMimeType(const nsACString& aMimeType) const { Maybe<nsCString> gmp; gmp.emplace(NS_ConvertUTF16toUTF8(mProxy->KeySystem())); return GMPDecoderModule::SupportsMimeType(aMimeType, gmp); } } // namespace mozilla
--- a/dom/media/platforms/agnostic/eme/EMEDecoderModule.h +++ b/dom/media/platforms/agnostic/eme/EMEDecoderModule.h @@ -40,17 +40,17 @@ protected: CreateAudioDecoder(const AudioInfo& aConfig, FlushableTaskQueue* aAudioTaskQueue, MediaDataDecoderCallback* aCallback) override; ConversionRequired DecoderNeedsConversion(const TrackInfo& aConfig) const override; bool - SupportsMimeType(const nsACString& aMimeType) override; + SupportsMimeType(const nsACString& aMimeType) const override; private: RefPtr<CDMProxy> mProxy; // Will be null if CDM has decoding capability. RefPtr<PDMFactory> mPDM; // We run the PDM on its own task queue. RefPtr<TaskQueue> mTaskQueue; bool mCDMDecodesAudio;
--- a/dom/media/platforms/agnostic/gmp/GMPDecoderModule.cpp +++ b/dom/media/platforms/agnostic/gmp/GMPDecoderModule.cpp @@ -223,14 +223,14 @@ GMPDecoderModule::SupportsMimeType(const return true; } } return false; } bool -GMPDecoderModule::SupportsMimeType(const nsACString& aMimeType) +GMPDecoderModule::SupportsMimeType(const nsACString& aMimeType) const { return SupportsMimeType(aMimeType, PreferredGMP(aMimeType)); } } // namespace mozilla
--- a/dom/media/platforms/agnostic/gmp/GMPDecoderModule.h +++ b/dom/media/platforms/agnostic/gmp/GMPDecoderModule.h @@ -31,17 +31,17 @@ public: CreateAudioDecoder(const AudioInfo& aConfig, FlushableTaskQueue* aAudioTaskQueue, MediaDataDecoderCallback* aCallback) override; ConversionRequired DecoderNeedsConversion(const TrackInfo& aConfig) const override; bool - SupportsMimeType(const nsACString& aMimeType) override; + SupportsMimeType(const nsACString& aMimeType) const override; // Main thread only. static void Init(); static const Maybe<nsCString> PreferredGMP(const nsACString& aMimeType); static bool SupportsMimeType(const nsACString& aMimeType, const Maybe<nsCString>& aGMP);
--- a/dom/media/platforms/android/AndroidDecoderModule.h +++ b/dom/media/platforms/android/AndroidDecoderModule.h @@ -31,17 +31,17 @@ public: CreateAudioDecoder(const AudioInfo& aConfig, FlushableTaskQueue* aAudioTaskQueue, MediaDataDecoderCallback* aCallback) override; AndroidDecoderModule() {} virtual ~AndroidDecoderModule() {} - bool SupportsMimeType(const nsACString& aMimeType) override; + bool SupportsMimeType(const nsACString& aMimeType) const override; ConversionRequired DecoderNeedsConversion(const TrackInfo& aConfig) const override; }; class MediaCodecDataDecoder : public MediaDataDecoder { public:
--- a/dom/media/platforms/apple/AppleDecoderModule.cpp +++ b/dom/media/platforms/apple/AppleDecoderModule.cpp @@ -112,17 +112,17 @@ AppleDecoderModule::CreateAudioDecoder(c MediaDataDecoderCallback* aCallback) { RefPtr<MediaDataDecoder> decoder = new AppleATDecoder(aConfig, aAudioTaskQueue, aCallback); return decoder.forget(); } bool -AppleDecoderModule::SupportsMimeType(const nsACString& aMimeType) +AppleDecoderModule::SupportsMimeType(const nsACString& aMimeType) const { return (sIsCoreMediaAvailable && (aMimeType.EqualsLiteral("audio/mpeg") || aMimeType.EqualsLiteral("audio/mp4a-latm"))) || ((sIsVTAvailable || sIsVDAAvailable) && (aMimeType.EqualsLiteral("video/mp4") || aMimeType.EqualsLiteral("video/avc"))); }
--- a/dom/media/platforms/apple/AppleDecoderModule.h +++ b/dom/media/platforms/apple/AppleDecoderModule.h @@ -27,17 +27,17 @@ public: MediaDataDecoderCallback* aCallback) override; // Decode thread. already_AddRefed<MediaDataDecoder> CreateAudioDecoder(const AudioInfo& aConfig, FlushableTaskQueue* aAudioTaskQueue, MediaDataDecoderCallback* aCallback) override; - bool SupportsMimeType(const nsACString& aMimeType) override; + bool SupportsMimeType(const nsACString& aMimeType) const override; ConversionRequired DecoderNeedsConversion(const TrackInfo& aConfig) const override; static void Init(); static bool sCanUseHardwareVideoDecoder;
--- a/dom/media/platforms/ffmpeg/FFmpegDecoderModule.h +++ b/dom/media/platforms/ffmpeg/FFmpegDecoderModule.h @@ -56,17 +56,17 @@ public: FlushableTaskQueue* aAudioTaskQueue, MediaDataDecoderCallback* aCallback) override { RefPtr<MediaDataDecoder> decoder = new FFmpegAudioDecoder<V>(aAudioTaskQueue, aCallback, aConfig); return decoder.forget(); } - bool SupportsMimeType(const nsACString& aMimeType) override + bool SupportsMimeType(const nsACString& aMimeType) const override { AVCodecID audioCodec = FFmpegAudioDecoder<V>::GetCodecId(aMimeType); AVCodecID videoCodec = FFmpegH264Decoder<V>::GetCodecId(aMimeType); if (audioCodec == AV_CODEC_ID_NONE && videoCodec == AV_CODEC_ID_NONE) { return false; } AVCodecID codec = audioCodec != AV_CODEC_ID_NONE ? audioCodec : videoCodec; return !!FFmpegDataDecoder<V>::FindAVCodec(codec);
--- a/dom/media/platforms/gonk/GonkDecoderModule.cpp +++ b/dom/media/platforms/gonk/GonkDecoderModule.cpp @@ -56,17 +56,17 @@ GonkDecoderModule::DecoderNeedsConversio if (aConfig.IsVideo()) { return kNeedAnnexB; } else { return kNeedNone; } } bool -GonkDecoderModule::SupportsMimeType(const nsACString& aMimeType) +GonkDecoderModule::SupportsMimeType(const nsACString& aMimeType) const { return aMimeType.EqualsLiteral("audio/mp4a-latm") || aMimeType.EqualsLiteral("audio/3gpp") || aMimeType.EqualsLiteral("audio/amr-wb") || aMimeType.EqualsLiteral("audio/mpeg") || aMimeType.EqualsLiteral("video/mp4") || aMimeType.EqualsLiteral("video/mp4v-es") || aMimeType.EqualsLiteral("video/avc") ||
--- a/dom/media/platforms/gonk/GonkDecoderModule.h +++ b/dom/media/platforms/gonk/GonkDecoderModule.h @@ -30,15 +30,15 @@ public: FlushableTaskQueue* aAudioTaskQueue, MediaDataDecoderCallback* aCallback) override; static void Init(); ConversionRequired DecoderNeedsConversion(const TrackInfo& aConfig) const override; - bool SupportsMimeType(const nsACString& aMimeType) override; + bool SupportsMimeType(const nsACString& aMimeType) const override; }; } // namespace mozilla #endif
--- a/dom/media/platforms/wmf/WMFDecoderModule.cpp +++ b/dom/media/platforms/wmf/WMFDecoderModule.cpp @@ -159,17 +159,17 @@ CanCreateWMFDecoder() static Maybe<bool> result; if (result.isNothing()) { result.emplace(CanCreateMFTDecoder(aGuid)); } return result.value(); } bool -WMFDecoderModule::SupportsMimeType(const nsACString& aMimeType) +WMFDecoderModule::SupportsMimeType(const nsACString& aMimeType) const { if ((aMimeType.EqualsLiteral("audio/mp4a-latm") || aMimeType.EqualsLiteral("audio/mp4")) && CanCreateWMFDecoder<CLSID_CMSAACDecMFT>()) { return true; } if ((aMimeType.EqualsLiteral("video/avc") || aMimeType.EqualsLiteral("video/mp4")) &&
--- a/dom/media/platforms/wmf/WMFDecoderModule.h +++ b/dom/media/platforms/wmf/WMFDecoderModule.h @@ -26,17 +26,17 @@ public: FlushableTaskQueue* aVideoTaskQueue, MediaDataDecoderCallback* aCallback) override; already_AddRefed<MediaDataDecoder> CreateAudioDecoder(const AudioInfo& aConfig, FlushableTaskQueue* aAudioTaskQueue, MediaDataDecoderCallback* aCallback) override; - bool SupportsMimeType(const nsACString& aMimeType) override; + bool SupportsMimeType(const nsACString& aMimeType) const override; ConversionRequired DecoderNeedsConversion(const TrackInfo& aConfig) const override; // Called on main thread. static void Init(); // Called from any thread, must call init first