LegacyCDMSession.h [plain text]
#pragma once
#if ENABLE(LEGACY_ENCRYPTED_MEDIA)
#include <runtime/Uint8Array.h>
#include <wtf/Forward.h>
namespace WebCore {
class LegacyCDMSessionClient {
public:
virtual ~LegacyCDMSessionClient() = default;
virtual void sendMessage(Uint8Array*, String destinationURL) = 0;
enum {
MediaKeyErrorUnknown = 1,
MediaKeyErrorClient,
MediaKeyErrorService,
MediaKeyErrorOutput,
MediaKeyErrorHardwareChange,
MediaKeyErrorDomain,
};
typedef unsigned short MediaKeyErrorCode;
virtual void sendError(MediaKeyErrorCode, uint32_t systemCode) = 0;
virtual String mediaKeysStorageDirectory() const = 0;
};
enum LegacyCDMSessionType {
CDMSessionTypeUnknown,
CDMSessionTypeClearKey,
CDMSessionTypeAVFoundationObjC,
CDMSessionTypeAVStreamSession,
CDMSessionTypeAVContentKeySession,
};
class LegacyCDMSession {
public:
virtual ~LegacyCDMSession() = default;
virtual LegacyCDMSessionType type() { return CDMSessionTypeUnknown; }
virtual void setClient(LegacyCDMSessionClient*) = 0;
virtual const String& sessionId() const = 0;
virtual RefPtr<Uint8Array> generateKeyRequest(const String& mimeType, Uint8Array* initData, String& destinationURL, unsigned short& errorCode, uint32_t& systemCode) = 0;
virtual void releaseKeys() = 0;
virtual bool update(Uint8Array*, RefPtr<Uint8Array>& nextMessage, unsigned short& errorCode, uint32_t& systemCode) = 0;
virtual RefPtr<ArrayBuffer> cachedKeyForKeyID(const String&) const { return nullptr; }
};
}
#endif // ENABLE(LEGACY_ENCRYPTED_MEDIA)