Chromium Code Reviews| Index: media/mojo/services/media_type_converters.cc |
| diff --git a/media/mojo/services/media_type_converters.cc b/media/mojo/services/media_type_converters.cc |
| index b037f98d991b0f420f58bf497820173506baedea..ccf5368c68d0807b3d8855f25e16205a7c7ad421 100644 |
| --- a/media/mojo/services/media_type_converters.cc |
| +++ b/media/mojo/services/media_type_converters.cc |
| @@ -6,6 +6,7 @@ |
| #include "media/base/audio_decoder_config.h" |
| #include "media/base/buffering_state.h" |
| +#include "media/base/cdm_key_information.h" |
| #include "media/base/decoder_buffer.h" |
| #include "media/base/decrypt_config.h" |
| #include "media/base/demuxer_stream.h" |
| @@ -233,6 +234,17 @@ ASSERT_CDM_EXCEPTION(OUTPUT_ERROR); |
| ASSERT_CDM_SESSION_TYPE(TEMPORARY_SESSION); |
| ASSERT_CDM_SESSION_TYPE(PERSISTENT_SESSION); |
| +// CDM Key Status |
| +#define ASSERT_CDM_KEY_STATUS(value) \ |
| + static_assert(media::CdmKeyInformation::value == \ |
| + static_cast<media::CdmKeyInformation::KeyStatus>( \ |
| + CDM_KEY_STATUS_##value), \ |
| + "Mismatched CDM Key Status") |
| +ASSERT_CDM_KEY_STATUS(USABLE); |
| +ASSERT_CDM_KEY_STATUS(INTERNAL_ERROR); |
| +ASSERT_CDM_KEY_STATUS(EXPIRED); |
| +ASSERT_CDM_KEY_STATUS(OUTPUT_NOT_ALLOWED); |
| + |
| // static |
| SubsampleEntryPtr |
| TypeConverter<SubsampleEntryPtr, media::SubsampleEntry>::Convert( |
| @@ -426,4 +438,28 @@ TypeConverter<media::VideoDecoderConfig, VideoDecoderConfigPtr>::Convert( |
| return config; |
| } |
| +// static |
| +CdmKeyInformationPtr |
| +TypeConverter<CdmKeyInformationPtr, media::CdmKeyInformation>::Convert( |
| + const media::CdmKeyInformation& input) { |
| + CdmKeyInformationPtr info(CdmKeyInformation::New()); |
| + std::vector<uint8_t> key_id_copy(input.KeyId()); |
| + info->key_id.Swap(&key_id_copy); |
| + info->status = static_cast<CdmKeyStatus>(input.Status()); |
| + info->system_code = input.SystemCode(); |
| + return info.Pass(); |
| +} |
| + |
| +// static |
| +media::CdmKeyInformation |
|
xhwang
2015/01/02 21:55:08
If you use ScopedVector, you can return scoped_ptr
jrummell
2015/01/05 22:18:00
Done.
|
| +TypeConverter<media::CdmKeyInformation, CdmKeyInformationPtr>::Convert( |
| + const CdmKeyInformationPtr& input) { |
| + media::CdmKeyInformation info( |
| + input->key_id.size() ? &input->key_id.front() : NULL, |
| + input->key_id.size(), |
|
xhwang
2015/01/02 21:55:08
Since input->key_id is an array, you should be abl
jrummell
2015/01/05 22:18:00
Done.
|
| + static_cast<media::CdmKeyInformation::KeyStatus>(input->status), |
| + input->system_code); |
| + return info; |
| +} |
| + |
| } // namespace mojo |