| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/cdm_adapter.h" | 5 #include "media/cdm/cdm_adapter.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 58 case EmeInitDataType::WEBM: | 58 case EmeInitDataType::WEBM: |
| 59 return cdm::kWebM; | 59 return cdm::kWebM; |
| 60 case EmeInitDataType::UNKNOWN: | 60 case EmeInitDataType::UNKNOWN: |
| 61 break; | 61 break; |
| 62 } | 62 } |
| 63 | 63 |
| 64 NOTREACHED(); | 64 NOTREACHED(); |
| 65 return cdm::kKeyIds; | 65 return cdm::kKeyIds; |
| 66 } | 66 } |
| 67 | 67 |
| 68 MediaKeys::Exception ToMediaExceptionType(cdm::Error error) { | 68 CdmPromise::Exception ToMediaExceptionType(cdm::Error error) { |
| 69 switch (error) { | 69 switch (error) { |
| 70 case cdm::kNotSupportedError: | 70 case cdm::kNotSupportedError: |
| 71 return MediaKeys::NOT_SUPPORTED_ERROR; | 71 return CdmPromise::NOT_SUPPORTED_ERROR; |
| 72 case cdm::kInvalidStateError: | 72 case cdm::kInvalidStateError: |
| 73 return MediaKeys::INVALID_STATE_ERROR; | 73 return CdmPromise::INVALID_STATE_ERROR; |
| 74 case cdm::kInvalidAccessError: | 74 case cdm::kInvalidAccessError: |
| 75 return MediaKeys::INVALID_ACCESS_ERROR; | 75 return CdmPromise::INVALID_ACCESS_ERROR; |
| 76 case cdm::kQuotaExceededError: | 76 case cdm::kQuotaExceededError: |
| 77 return MediaKeys::QUOTA_EXCEEDED_ERROR; | 77 return CdmPromise::QUOTA_EXCEEDED_ERROR; |
| 78 case cdm::kUnknownError: | 78 case cdm::kUnknownError: |
| 79 return MediaKeys::UNKNOWN_ERROR; | 79 return CdmPromise::UNKNOWN_ERROR; |
| 80 case cdm::kClientError: | 80 case cdm::kClientError: |
| 81 return MediaKeys::CLIENT_ERROR; | 81 return CdmPromise::CLIENT_ERROR; |
| 82 case cdm::kOutputError: | 82 case cdm::kOutputError: |
| 83 return MediaKeys::OUTPUT_ERROR; | 83 return CdmPromise::OUTPUT_ERROR; |
| 84 } | 84 } |
| 85 | 85 |
| 86 NOTREACHED() << "Unexpected cdm::Error " << error; | 86 NOTREACHED() << "Unexpected cdm::Error " << error; |
| 87 return MediaKeys::UNKNOWN_ERROR; | 87 return CdmPromise::UNKNOWN_ERROR; |
| 88 } | 88 } |
| 89 | 89 |
| 90 MediaKeys::MessageType ToMediaMessageType(cdm::MessageType message_type) { | 90 MediaKeys::MessageType ToMediaMessageType(cdm::MessageType message_type) { |
| 91 switch (message_type) { | 91 switch (message_type) { |
| 92 case cdm::kLicenseRequest: | 92 case cdm::kLicenseRequest: |
| 93 return MediaKeys::LICENSE_REQUEST; | 93 return MediaKeys::LICENSE_REQUEST; |
| 94 case cdm::kLicenseRenewal: | 94 case cdm::kLicenseRenewal: |
| 95 return MediaKeys::LICENSE_RENEWAL; | 95 return MediaKeys::LICENSE_RENEWAL; |
| 96 case cdm::kLicenseRelease: | 96 case cdm::kLicenseRelease: |
| 97 return MediaKeys::LICENSE_RELEASE; | 97 return MediaKeys::LICENSE_RELEASE; |
| (...skipping 315 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 413 | 413 |
| 414 DVLOG(1) << "CDM instance for " + key_system + (cdm ? "" : " could not be") + | 414 DVLOG(1) << "CDM instance for " + key_system + (cdm ? "" : " could not be") + |
| 415 " created."; | 415 " created."; |
| 416 return cdm; | 416 return cdm; |
| 417 } | 417 } |
| 418 | 418 |
| 419 void CdmAdapter::Initialize(const base::FilePath& cdm_path, | 419 void CdmAdapter::Initialize(const base::FilePath& cdm_path, |
| 420 std::unique_ptr<media::SimpleCdmPromise> promise) { | 420 std::unique_ptr<media::SimpleCdmPromise> promise) { |
| 421 cdm_.reset(CreateCdmInstance(key_system_, cdm_path)); | 421 cdm_.reset(CreateCdmInstance(key_system_, cdm_path)); |
| 422 if (!cdm_) { | 422 if (!cdm_) { |
| 423 promise->reject(MediaKeys::INVALID_ACCESS_ERROR, 0, | 423 promise->reject(CdmPromise::INVALID_ACCESS_ERROR, 0, |
| 424 "Unable to create CDM."); | 424 "Unable to create CDM."); |
| 425 return; | 425 return; |
| 426 } | 426 } |
| 427 | 427 |
| 428 cdm_->Initialize(cdm_config_.allow_distinctive_identifier, | 428 cdm_->Initialize(cdm_config_.allow_distinctive_identifier, |
| 429 cdm_config_.allow_persistent_state); | 429 cdm_config_.allow_persistent_state); |
| 430 promise->resolve(); | 430 promise->resolve(); |
| 431 } | 431 } |
| 432 | 432 |
| 433 void CdmAdapter::SetServerCertificate( | 433 void CdmAdapter::SetServerCertificate( |
| 434 const std::vector<uint8_t>& certificate, | 434 const std::vector<uint8_t>& certificate, |
| 435 std::unique_ptr<SimpleCdmPromise> promise) { | 435 std::unique_ptr<SimpleCdmPromise> promise) { |
| 436 DCHECK(task_runner_->BelongsToCurrentThread()); | 436 DCHECK(task_runner_->BelongsToCurrentThread()); |
| 437 | 437 |
| 438 if (certificate.size() < limits::kMinCertificateLength || | 438 if (certificate.size() < limits::kMinCertificateLength || |
| 439 certificate.size() > limits::kMaxCertificateLength) { | 439 certificate.size() > limits::kMaxCertificateLength) { |
| 440 promise->reject(MediaKeys::INVALID_ACCESS_ERROR, 0, | 440 promise->reject(CdmPromise::INVALID_ACCESS_ERROR, 0, |
| 441 "Incorrect certificate."); | 441 "Incorrect certificate."); |
| 442 return; | 442 return; |
| 443 } | 443 } |
| 444 | 444 |
| 445 uint32_t promise_id = cdm_promise_adapter_.SavePromise(std::move(promise)); | 445 uint32_t promise_id = cdm_promise_adapter_.SavePromise(std::move(promise)); |
| 446 cdm_->SetServerCertificate(promise_id, certificate.data(), | 446 cdm_->SetServerCertificate(promise_id, certificate.data(), |
| 447 certificate.size()); | 447 certificate.size()); |
| 448 } | 448 } |
| 449 | 449 |
| 450 void CdmAdapter::CreateSessionAndGenerateRequest( | 450 void CdmAdapter::CreateSessionAndGenerateRequest( |
| (...skipping 488 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 939 result_frames->push_back(frame); | 939 result_frames->push_back(frame); |
| 940 | 940 |
| 941 data += frame_size; | 941 data += frame_size; |
| 942 bytes_left -= frame_size; | 942 bytes_left -= frame_size; |
| 943 } while (bytes_left > 0); | 943 } while (bytes_left > 0); |
| 944 | 944 |
| 945 return true; | 945 return true; |
| 946 } | 946 } |
| 947 | 947 |
| 948 } // namespace media | 948 } // namespace media |
| OLD | NEW |