// 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. #include "chromecast/media/cdm/playready_drm_delegate_android.h" #include "base/logging.h" #include "base/macros.h" #include "chromecast/media/cdm/chromecast_init_data.h" namespace chromecast { namespace media { const uint8_t kPlayreadyUuid[16] = { 0x9a, 0x04, 0xf0, 0x79, 0x98, 0x40, 0x42, 0x86, 0xab, 0x92, 0xe6, 0x5b, 0xe0, 0x88, 0x5f, 0x95}; PlayreadyDrmDelegateAndroid::PlayreadyDrmDelegateAndroid() { } PlayreadyDrmDelegateAndroid::~PlayreadyDrmDelegateAndroid() { } const ::media::UUID PlayreadyDrmDelegateAndroid::GetUUID() const { return ::media::UUID(kPlayreadyUuid, kPlayreadyUuid + arraysize(kPlayreadyUuid)); } bool PlayreadyDrmDelegateAndroid::OnCreateSession( const ::media::EmeInitDataType init_data_type, const std::vector& init_data, std::vector* /* init_data_out */, std::vector* optional_parameters_out) { if (init_data_type == ::media::EmeInitDataType::CENC) { ChromecastInitData custom_data; if (FindChromecastInitData(init_data, InitDataMessageType::CUSTOM_DATA, &custom_data)) { optional_parameters_out->clear(); optional_parameters_out->push_back("PRCustomData"); optional_parameters_out->push_back( std::string(custom_data.data.begin(), custom_data.data.end())); LOG(INFO) << "Including " << custom_data.data.size() << " bytes of custom PlayReady data"; } } return true; } } // namespace media } // namespace chromecast