OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "media/cdm/ppapi/external_clear_key/clear_key_cdm.h" | 5 #include "media/cdm/ppapi/external_clear_key/clear_key_cdm.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <sstream> | 8 #include <sstream> |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
78 | 78 |
79 // Copies |input_buffer| into a media::DecoderBuffer. If the |input_buffer| is | 79 // Copies |input_buffer| into a media::DecoderBuffer. If the |input_buffer| is |
80 // empty, an empty (end-of-stream) media::DecoderBuffer is returned. | 80 // empty, an empty (end-of-stream) media::DecoderBuffer is returned. |
81 static scoped_refptr<media::DecoderBuffer> CopyDecoderBufferFrom( | 81 static scoped_refptr<media::DecoderBuffer> CopyDecoderBufferFrom( |
82 const cdm::InputBuffer& input_buffer) { | 82 const cdm::InputBuffer& input_buffer) { |
83 if (!input_buffer.data) { | 83 if (!input_buffer.data) { |
84 DCHECK(!input_buffer.data_size); | 84 DCHECK(!input_buffer.data_size); |
85 return media::DecoderBuffer::CreateEOSBuffer(); | 85 return media::DecoderBuffer::CreateEOSBuffer(); |
86 } | 86 } |
87 | 87 |
88 // TODO(tomfinegan): Get rid of this copy. | 88 // TODO(xhwang): Get rid of this copy. |
89 scoped_refptr<media::DecoderBuffer> output_buffer = | 89 scoped_refptr<media::DecoderBuffer> output_buffer = |
90 media::DecoderBuffer::CopyFrom(input_buffer.data, input_buffer.data_size); | 90 media::DecoderBuffer::CopyFrom(input_buffer.data, input_buffer.data_size); |
91 | 91 |
92 std::vector<media::SubsampleEntry> subsamples; | 92 std::vector<media::SubsampleEntry> subsamples; |
93 for (uint32_t i = 0; i < input_buffer.num_subsamples; ++i) { | 93 for (uint32_t i = 0; i < input_buffer.num_subsamples; ++i) { |
94 media::SubsampleEntry subsample; | 94 media::SubsampleEntry subsample; |
95 subsample.clear_bytes = input_buffer.subsamples[i].clear_bytes; | 95 subsample.clear_bytes = input_buffer.subsamples[i].clear_bytes; |
96 subsample.cypher_bytes = input_buffer.subsamples[i].cipher_bytes; | 96 subsample.cypher_bytes = input_buffer.subsamples[i].cipher_bytes; |
97 subsamples.push_back(subsample); | 97 subsamples.push_back(subsample); |
98 } | 98 } |
99 | 99 |
| 100 DCHECK_EQ(input_buffer.data_offset, 0u); |
100 scoped_ptr<media::DecryptConfig> decrypt_config(new media::DecryptConfig( | 101 scoped_ptr<media::DecryptConfig> decrypt_config(new media::DecryptConfig( |
101 std::string(reinterpret_cast<const char*>(input_buffer.key_id), | 102 std::string(reinterpret_cast<const char*>(input_buffer.key_id), |
102 input_buffer.key_id_size), | 103 input_buffer.key_id_size), |
103 std::string(reinterpret_cast<const char*>(input_buffer.iv), | 104 std::string(reinterpret_cast<const char*>(input_buffer.iv), |
104 input_buffer.iv_size), | 105 input_buffer.iv_size), |
105 input_buffer.data_offset, | |
106 subsamples)); | 106 subsamples)); |
107 | 107 |
108 output_buffer->set_decrypt_config(decrypt_config.Pass()); | 108 output_buffer->set_decrypt_config(decrypt_config.Pass()); |
109 output_buffer->set_timestamp( | 109 output_buffer->set_timestamp( |
110 base::TimeDelta::FromMicroseconds(input_buffer.timestamp)); | 110 base::TimeDelta::FromMicroseconds(input_buffer.timestamp)); |
111 | 111 |
112 return output_buffer; | 112 return output_buffer; |
113 } | 113 } |
114 | 114 |
115 static std::string GetFileIOTestResultMessage(bool success) { | 115 static std::string GetFileIOTestResultMessage(bool success) { |
(...skipping 464 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
580 | 580 |
581 void ClearKeyCdm::OnFileIOTestComplete(bool success) { | 581 void ClearKeyCdm::OnFileIOTestComplete(bool success) { |
582 DVLOG(1) << __FUNCTION__ << ": " << success; | 582 DVLOG(1) << __FUNCTION__ << ": " << success; |
583 std::string message = GetFileIOTestResultMessage(success); | 583 std::string message = GetFileIOTestResultMessage(success); |
584 host_->OnSessionMessage( | 584 host_->OnSessionMessage( |
585 last_session_id_, message.data(), message.size(), NULL, 0); | 585 last_session_id_, message.data(), message.size(), NULL, 0); |
586 file_io_test_runner_.reset(); | 586 file_io_test_runner_.reset(); |
587 } | 587 } |
588 | 588 |
589 } // namespace media | 589 } // namespace media |
OLD | NEW |