| Index: ppapi/cpp/private/content_decryptor_private.h
|
| diff --git a/ppapi/cpp/private/content_decryptor_private.h b/ppapi/cpp/private/content_decryptor_private.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..f300ea0218647f1e9ee8af65f91a3828861e41a7
|
| --- /dev/null
|
| +++ b/ppapi/cpp/private/content_decryptor_private.h
|
| @@ -0,0 +1,68 @@
|
| +// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#ifndef PPAPI_CPP_PRIVATE_CONTENT_DECRYPTOR_PRIVATE_H_
|
| +#define PPAPI_CPP_PRIVATE_CONTENT_DECRYPTOR_PRIVATE_H_
|
| +
|
| +#include "ppapi/c/private/ppb_content_decryptor_private.h"
|
| +#include "ppapi/c/private/ppp_content_decryptor_private.h"
|
| +
|
| +#include "ppapi/cpp/dev/buffer_dev.h"
|
| +#include "ppapi/cpp/instance_handle.h"
|
| +#include "ppapi/cpp/var.h"
|
| +#include "ppapi/cpp/var_array_buffer.h"
|
| +
|
| +namespace pp {
|
| +
|
| +class Instance;
|
| +
|
| +class ContentDecryptor_Private {
|
| + public:
|
| + explicit ContentDecryptor_Private(Instance* instance);
|
| + virtual ~ContentDecryptor_Private();
|
| +
|
| + // PPP_ContentDecryptor_Private functions exposed as virtual functions
|
| + // for you to override.
|
| + // TODO(tomfinegan): This could be optimized to pass pp::Var instead of
|
| + // strings. The change would allow the CDM wrapper to reuse vars when
|
| + // replying to the browser.
|
| + virtual bool GenerateKeyRequest(const std::string& key_system,
|
| + pp::VarArrayBuffer init_data) = 0;
|
| + virtual bool AddKey(const std::string& session_id,
|
| + pp::VarArrayBuffer key) = 0;
|
| + virtual bool CancelKeyRequest(const std::string& session_id) = 0;
|
| + virtual bool Decrypt(pp::Buffer_Dev encrypted_buffer,
|
| + int32_t request_id) = 0;
|
| + virtual bool DecryptAndDecode(pp::Buffer_Dev encrypted_buffer,
|
| + int32_t request_id) = 0;
|
| +
|
| + // PPB_ContentDecryptor_Private methods for passing data from the decryptor
|
| + // to the browser.
|
| + void NeedKey(const std::string& key_system,
|
| + const std::string& session_id,
|
| + pp::VarArrayBuffer init_data);
|
| + void KeyAdded(const std::string& key_system,
|
| + const std::string& session_id);
|
| + void KeyMessage(const std::string& key_system,
|
| + const std::string& session_id,
|
| + pp::Buffer_Dev message,
|
| + const std::string& default_url);
|
| + void KeyError(const std::string& key_system,
|
| + const std::string& session_id,
|
| + int32_t media_error,
|
| + int32_t system_code);
|
| + void DeliverBlock(pp::Buffer_Dev decrypted_block,
|
| + int32_t request_id);
|
| + void DeliverFrame(pp::Buffer_Dev decrypted_frame,
|
| + int32_t request_id);
|
| + void DeliverSamples(pp::Buffer_Dev decrypted_samples,
|
| + int32_t request_id);
|
| +
|
| + private:
|
| + InstanceHandle associated_instance_;
|
| +};
|
| +
|
| +} // namespace pp
|
| +
|
| +#endif // PPAPI_CPP_PRIVATE_CONTENT_DECRYPTOR_PRIVATE_H_
|
|
|