CDMSessionAVFoundationObjC.h [plain text]
#pragma once
#include "LegacyCDMSession.h"
#include <wtf/RetainPtr.h>
#include <wtf/WeakPtr.h>
#include <wtf/text/WTFString.h>
#if ENABLE(LEGACY_ENCRYPTED_MEDIA)
OBJC_CLASS AVAssetResourceLoadingRequest;
OBJC_CLASS WebCDMSessionAVFoundationObjCListener;
namespace WebCore {
class MediaPlayerPrivateAVFoundationObjC;
class CDMSessionAVFoundationObjC : public LegacyCDMSession, public CanMakeWeakPtr<CDMSessionAVFoundationObjC> {
public:
CDMSessionAVFoundationObjC(MediaPlayerPrivateAVFoundationObjC* parent, LegacyCDMSessionClient*);
virtual ~CDMSessionAVFoundationObjC();
LegacyCDMSessionType type() override { return CDMSessionTypeAVFoundationObjC; }
void setClient(LegacyCDMSessionClient* client) override { m_client = client; }
const String& sessionId() const override { return m_sessionId; }
RefPtr<Uint8Array> generateKeyRequest(const String& mimeType, Uint8Array* initData, String& destinationURL, unsigned short& errorCode, uint32_t& systemCode) override;
void releaseKeys() override;
bool update(Uint8Array*, RefPtr<Uint8Array>& nextMessage, unsigned short& errorCode, uint32_t& systemCode) override;
void playerDidReceiveError(NSError *);
protected:
WeakPtr<MediaPlayerPrivateAVFoundationObjC> m_parent;
LegacyCDMSessionClient* m_client;
String m_sessionId;
RetainPtr<AVAssetResourceLoadingRequest> m_request;
};
}
#endif