blob: 7028df2a279da8606d580bb35d48c4e82dd01cc9 [file] [log] [blame]
// Copyright 2015 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 CHROMECAST_MEDIA_CDM_CHROMECAST_INIT_DATA_H_
#define CHROMECAST_MEDIA_CDM_CHROMECAST_INIT_DATA_H_
#include <stdint.h>
#include <vector>
namespace chromecast {
namespace media {
enum class InitDataMessageType {
UNKNOWN = 0x0,
CUSTOM_DATA = 0x1,
ENABLE_SECURE_STOP = 0x2,
END
};
// Structured data for EME initialization as parsed from an initData blob.
struct ChromecastInitData {
ChromecastInitData();
~ChromecastInitData();
InitDataMessageType type;
std::vector<uint8_t> data;
};
// Searches for a ChromecastInitData blob inside a CENC |init_data| message of
// type |type|. If such a blob is found, returns true and fills
// |chromecast_init_data_out|. If not found, returns false.
bool FindChromecastInitData(const std::vector<uint8_t>& init_data,
InitDataMessageType type,
ChromecastInitData* chromecast_init_data_out);
} // namespace media
} // namespace chromecast
#endif // CHROMECAST_MEDIA_CDM_CHROMECAST_INIT_DATA_H_