CDMFairPlayStreaming.h [plain text]
#pragma once
#if ENABLE(ENCRYPTED_MEDIA)
#include "CDMFactory.h"
#include "CDMPrivate.h"
namespace WebCore {
class CDMFactoryFairPlayStreaming final : public CDMFactory {
public:
static CDMFactoryFairPlayStreaming& singleton();
virtual ~CDMFactoryFairPlayStreaming();
std::unique_ptr<CDMPrivate> createCDM(const String&) override;
bool supportsKeySystem(const String&) override;
private:
friend class NeverDestroyed<CDMFactoryFairPlayStreaming>;
CDMFactoryFairPlayStreaming();
};
class CDMPrivateFairPlayStreaming final : public CDMPrivate {
public:
CDMPrivateFairPlayStreaming();
virtual ~CDMPrivateFairPlayStreaming();
bool supportsInitDataType(const AtomicString&) const override;
bool supportsConfiguration(const CDMKeySystemConfiguration&) const override;
bool supportsConfigurationWithRestrictions(const CDMKeySystemConfiguration&, const CDMRestrictions&) const override;
bool supportsSessionTypeWithConfiguration(CDMSessionType&, const CDMKeySystemConfiguration&) const override;
bool supportsRobustness(const String&) const override;
CDMRequirement distinctiveIdentifiersRequirement(const CDMKeySystemConfiguration&, const CDMRestrictions&) const override;
CDMRequirement persistentStateRequirement(const CDMKeySystemConfiguration&, const CDMRestrictions&) const override;
bool distinctiveIdentifiersAreUniquePerOriginAndClearable(const CDMKeySystemConfiguration&) const override;
RefPtr<CDMInstance> createInstance() override;
void loadAndInitialize() override;
bool supportsServerCertificates() const override;
bool supportsSessions() const override;
bool supportsInitData(const AtomicString&, const SharedBuffer&) const override;
RefPtr<SharedBuffer> sanitizeResponse(const SharedBuffer&) const override;
Optional<String> sanitizeSessionId(const String&) const override;
static const AtomicString& sinfName();
static Optional<Vector<Ref<SharedBuffer>>> extractKeyIDsSinf(const SharedBuffer&);
static RefPtr<SharedBuffer> sanitizeSinf(const SharedBuffer&);
static const AtomicString& skdName();
static Optional<Vector<Ref<SharedBuffer>>> extractKeyIDsSkd(const SharedBuffer&);
static RefPtr<SharedBuffer> sanitizeSkd(const SharedBuffer&);
};
}
#endif // ENABLE(ENCRYPTED_MEDIA)