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..10ffddcce061f66a7aa53c8ba83da3d2755a0e22 100644 |
--- a/chromecast/media/cma/base/decoder_buffer_adapter.cc |
+++ b/chromecast/media/cma/base/decoder_buffer_adapter.cc |
@@ -4,6 +4,8 @@ |
#include "chromecast/media/cma/base/decoder_buffer_adapter.h" |
+#include "chromecast/media/cma/base/cast_decrypt_config_impl.h" |
+#include "chromecast/public/media/cast_decrypt_config.h" |
#include "media/base/decoder_buffer.h" |
namespace chromecast { |
@@ -31,7 +33,7 @@ base::TimeDelta DecoderBufferAdapter::timestamp() const { |
return buffer_->timestamp(); |
} |
-void DecoderBufferAdapter::set_timestamp(const base::TimeDelta& timestamp) { |
+void DecoderBufferAdapter::set_timestamp(base::TimeDelta timestamp) { |
buffer_->set_timestamp(timestamp); |
} |
@@ -47,8 +49,13 @@ size_t DecoderBufferAdapter::data_size() const { |
return buffer_->data_size(); |
} |
-const ::media::DecryptConfig* DecoderBufferAdapter::decrypt_config() const { |
- return buffer_->decrypt_config(); |
+const CastDecryptConfig* DecoderBufferAdapter::decrypt_config() const { |
+ if (buffer_->decrypt_config() && !decrypt_config_) { |
+ const ::media::DecryptConfig* config = buffer_->decrypt_config(); |
+ decrypt_config_.reset(new CastDecryptConfigImpl(*config)); |
+ } |
+ |
+ return decrypt_config_.get(); |
} |
bool DecoderBufferAdapter::end_of_stream() const { |