7 #ifndef PACKAGER_MEDIA_BASE_KEY_SOURCE_H_
8 #define PACKAGER_MEDIA_BASE_KEY_SOURCE_H_
15 #include "packager/media/base/fourccs.h"
16 #include "packager/media/base/protection_system_specific_info.h"
17 #include "packager/media/base/pssh_generator.h"
18 #include "packager/status.h"
25 enum class EmeInitDataType {
35 MAX = WIDEVINE_CLASSIC
39 std::vector<ProtectionSystemSpecificInfo> key_system_info;
43 std::vector<std::vector<uint8_t>>
key_ids;
44 std::vector<uint8_t> key;
45 std::vector<uint8_t> iv;
48 typedef std::map<std::string, std::unique_ptr<EncryptionKey>> EncryptionKeyMap;
62 const std::vector<uint8_t>& init_data) = 0;
77 virtual Status GetKey(
const std::vector<uint8_t>& key_id,
90 uint32_t crypto_period_duration_in_seconds,
91 const std::string& stream_label,
101 #endif // PACKAGER_MEDIA_BASE_KEY_SOURCE_H_