Chromium Code Reviews| Index: chromecast/media/cma/base/decoder_buffer_adapter.cc |
| diff --git a/chromecast/media/cma/base/decoder_buffer_adapter.cc b/chromecast/media/cma/base/decoder_buffer_adapter.cc |
| index ed8a779b5c0eb5e0f331718ab772a91ee71c3599..78b206c067a3381ad26e317087b012da7041010d 100644 |
| --- a/chromecast/media/cma/base/decoder_buffer_adapter.cc |
| +++ b/chromecast/media/cma/base/decoder_buffer_adapter.cc |
| @@ -4,6 +4,9 @@ |
| #include "chromecast/media/cma/base/decoder_buffer_adapter.h" |
| +#include "chromecast/base/time_conversions.h" |
| +#include "chromecast/media/cma/base/decrypt_config_impl.h" |
| +#include "chromecast/public/media/decrypt_config.h" |
| #include "media/base/decoder_buffer.h" |
| namespace chromecast { |
| @@ -27,12 +30,12 @@ StreamId DecoderBufferAdapter::stream_id() const { |
| return stream_id_; |
| } |
| -base::TimeDelta DecoderBufferAdapter::timestamp() const { |
| - return buffer_->timestamp(); |
| +TimeDelta DecoderBufferAdapter::timestamp() const { |
| + return FromBaseTimeDelta(buffer_->timestamp()); |
| } |
| -void DecoderBufferAdapter::set_timestamp(const base::TimeDelta& timestamp) { |
| - buffer_->set_timestamp(timestamp); |
| +void DecoderBufferAdapter::set_timestamp(TimeDelta timestamp) { |
| + buffer_->set_timestamp(ToBaseTimeDelta(timestamp)); |
| } |
| const uint8* DecoderBufferAdapter::data() const { |
| @@ -47,8 +50,19 @@ size_t DecoderBufferAdapter::data_size() const { |
| return buffer_->data_size(); |
| } |
| -const ::media::DecryptConfig* DecoderBufferAdapter::decrypt_config() const { |
| - return buffer_->decrypt_config(); |
| +const DecryptConfig* DecoderBufferAdapter::decrypt_config() const { |
| + if (buffer_->decrypt_config() && !decrypt_config_) { |
| + const ::media::DecryptConfig* config = buffer_->decrypt_config(); |
|
servolk
2015/07/27 21:25:47
Nit: this conversion code should probably be in De
halliwell
2015/07/28 02:19:35
Indeed. Originally I was trying to not have Decry
|
| + std::vector<SubsampleEntry> subsamples; |
| + for (const auto& sample : config->subsamples()) { |
| + subsamples.push_back( |
| + SubsampleEntry(sample.clear_bytes, sample.cypher_bytes)); |
| + } |
| + decrypt_config_.reset( |
| + new DecryptConfigImpl(config->key_id(), config->iv(), subsamples)); |
| + } |
| + |
| + return decrypt_config_.get(); |
| } |
| bool DecoderBufferAdapter::end_of_stream() const { |