| 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 #ifndef MEDIA_CDM_PPAPI_CDM_WRAPPER_H_ | 5 #ifndef MEDIA_CDM_PPAPI_CDM_WRAPPER_H_ |
| 6 #define MEDIA_CDM_PPAPI_CDM_WRAPPER_H_ | 6 #define MEDIA_CDM_PPAPI_CDM_WRAPPER_H_ |
| 7 | 7 |
| 8 #include <map> | 8 #include <map> |
| 9 #include <queue> | 9 #include <queue> |
| 10 #include <string> | 10 #include <string> |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 49 uint32_t init_data_size, | 49 uint32_t init_data_size, |
| 50 cdm::SessionType session_type) = 0; | 50 cdm::SessionType session_type) = 0; |
| 51 virtual void LoadSession(uint32_t promise_id, | 51 virtual void LoadSession(uint32_t promise_id, |
| 52 const char* web_session_id, | 52 const char* web_session_id, |
| 53 uint32_t web_session_id_size) = 0; | 53 uint32_t web_session_id_size) = 0; |
| 54 virtual void UpdateSession(uint32_t promise_id, | 54 virtual void UpdateSession(uint32_t promise_id, |
| 55 const char* web_session_id, | 55 const char* web_session_id, |
| 56 uint32_t web_session_id_size, | 56 uint32_t web_session_id_size, |
| 57 const uint8_t* response, | 57 const uint8_t* response, |
| 58 uint32_t response_size) = 0; | 58 uint32_t response_size) = 0; |
| 59 virtual void CloseSession(uint32_t promise_id, | 59 // TODO(jrummell): Remove return value when CDM4/5 are removed. |
| 60 virtual bool CloseSession(uint32_t promise_id, |
| 60 const char* web_session_id, | 61 const char* web_session_id, |
| 61 uint32_t web_session_id_size) = 0; | 62 uint32_t web_session_id_size) = 0; |
| 62 virtual bool RemoveSession(uint32_t promise_id, | 63 virtual void RemoveSession(uint32_t promise_id, |
| 63 const char* web_session_id, | 64 const char* web_session_id, |
| 64 uint32_t web_session_id_size) = 0; | 65 uint32_t web_session_id_size) = 0; |
| 66 // TODO(jrummell): Remove return value when CDM4/5 are removed. |
| 65 virtual bool GetUsableKeyIds(uint32_t promise_id, | 67 virtual bool GetUsableKeyIds(uint32_t promise_id, |
| 66 const char* web_session_id, | 68 const char* web_session_id, |
| 67 uint32_t web_session_id_size) = 0; | 69 uint32_t web_session_id_size) = 0; |
| 68 virtual void TimerExpired(void* context) = 0; | 70 virtual void TimerExpired(void* context) = 0; |
| 69 virtual cdm::Status Decrypt(const cdm::InputBuffer& encrypted_buffer, | 71 virtual cdm::Status Decrypt(const cdm::InputBuffer& encrypted_buffer, |
| 70 cdm::DecryptedBlock* decrypted_buffer) = 0; | 72 cdm::DecryptedBlock* decrypted_buffer) = 0; |
| 71 virtual cdm::Status InitializeAudioDecoder( | 73 virtual cdm::Status InitializeAudioDecoder( |
| 72 const cdm::AudioDecoderConfig& audio_decoder_config) = 0; | 74 const cdm::AudioDecoderConfig& audio_decoder_config) = 0; |
| 73 virtual cdm::Status InitializeVideoDecoder( | 75 virtual cdm::Status InitializeVideoDecoder( |
| 74 const cdm::VideoDecoderConfig& video_decoder_config) = 0; | 76 const cdm::VideoDecoderConfig& video_decoder_config) = 0; |
| (...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 219 response_size); | 221 response_size); |
| 220 } | 222 } |
| 221 | 223 |
| 222 virtual bool GetUsableKeyIds(uint32_t promise_id, | 224 virtual bool GetUsableKeyIds(uint32_t promise_id, |
| 223 const char* web_session_id, | 225 const char* web_session_id, |
| 224 uint32_t web_session_id_size) OVERRIDE { | 226 uint32_t web_session_id_size) OVERRIDE { |
| 225 cdm_->GetUsableKeyIds(promise_id, web_session_id, web_session_id_size); | 227 cdm_->GetUsableKeyIds(promise_id, web_session_id, web_session_id_size); |
| 226 return true; | 228 return true; |
| 227 } | 229 } |
| 228 | 230 |
| 229 virtual void CloseSession(uint32_t promise_id, | 231 virtual bool CloseSession(uint32_t promise_id, |
| 230 const char* web_session_id, | 232 const char* web_session_id, |
| 231 uint32_t web_session_id_size) OVERRIDE { | 233 uint32_t web_session_id_size) OVERRIDE { |
| 232 cdm_->CloseSession(promise_id, web_session_id, web_session_id_size); | 234 cdm_->CloseSession(promise_id, web_session_id, web_session_id_size); |
| 235 return true; |
| 233 } | 236 } |
| 234 | 237 |
| 235 virtual bool RemoveSession(uint32_t promise_id, | 238 virtual void RemoveSession(uint32_t promise_id, |
| 236 const char* web_session_id, | 239 const char* web_session_id, |
| 237 uint32_t web_session_id_size) OVERRIDE { | 240 uint32_t web_session_id_size) OVERRIDE { |
| 238 cdm_->RemoveSession(promise_id, web_session_id, web_session_id_size); | 241 cdm_->RemoveSession(promise_id, web_session_id, web_session_id_size); |
| 239 return true; | |
| 240 } | 242 } |
| 241 | 243 |
| 242 virtual void TimerExpired(void* context) OVERRIDE { | 244 virtual void TimerExpired(void* context) OVERRIDE { |
| 243 cdm_->TimerExpired(context); | 245 cdm_->TimerExpired(context); |
| 244 } | 246 } |
| 245 | 247 |
| 246 virtual cdm::Status Decrypt(const cdm::InputBuffer& encrypted_buffer, | 248 virtual cdm::Status Decrypt(const cdm::InputBuffer& encrypted_buffer, |
| 247 cdm::DecryptedBlock* decrypted_buffer) OVERRIDE { | 249 cdm::DecryptedBlock* decrypted_buffer) OVERRIDE { |
| 248 return cdm_->Decrypt(encrypted_buffer, decrypted_buffer); | 250 return cdm_->Decrypt(encrypted_buffer, decrypted_buffer); |
| 249 } | 251 } |
| (...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 447 uint32_t session_id = LookupSessionId(web_session_str); | 449 uint32_t session_id = LookupSessionId(web_session_str); |
| 448 RegisterPromise(session_id, promise_id); | 450 RegisterPromise(session_id, promise_id); |
| 449 // As CDM_4 doesn't support OnSessionUsableKeysChange(), make sure to generate | 451 // As CDM_4 doesn't support OnSessionUsableKeysChange(), make sure to generate |
| 450 // one when the promise is resolved. This may be overly aggressive. | 452 // one when the promise is resolved. This may be overly aggressive. |
| 451 SetSessionUsableKeysEventNeeded( | 453 SetSessionUsableKeysEventNeeded( |
| 452 promise_id, web_session_id, web_session_id_size); | 454 promise_id, web_session_id, web_session_id_size); |
| 453 cdm_->UpdateSession(session_id, response, response_size); | 455 cdm_->UpdateSession(session_id, response, response_size); |
| 454 } | 456 } |
| 455 | 457 |
| 456 template <> | 458 template <> |
| 457 void CdmWrapperImpl<cdm::ContentDecryptionModule_4>::CloseSession( | 459 bool CdmWrapperImpl<cdm::ContentDecryptionModule_4>::CloseSession( |
| 460 uint32_t promise_id, |
| 461 const char* web_session_id, |
| 462 uint32_t web_session_id_size) { |
| 463 return false; |
| 464 } |
| 465 |
| 466 template <> |
| 467 void CdmWrapperImpl<cdm::ContentDecryptionModule_4>::RemoveSession( |
| 458 uint32_t promise_id, | 468 uint32_t promise_id, |
| 459 const char* web_session_id, | 469 const char* web_session_id, |
| 460 uint32_t web_session_id_size) { | 470 uint32_t web_session_id_size) { |
| 461 std::string web_session_str(web_session_id, web_session_id_size); | 471 std::string web_session_str(web_session_id, web_session_id_size); |
| 462 uint32_t session_id = LookupSessionId(web_session_str); | 472 uint32_t session_id = LookupSessionId(web_session_str); |
| 463 RegisterPromise(session_id, promise_id); | 473 RegisterPromise(session_id, promise_id); |
| 464 cdm_->ReleaseSession(session_id); | 474 cdm_->ReleaseSession(session_id); |
| 465 } | 475 } |
| 466 | 476 |
| 467 template <> | 477 template <> |
| 468 bool CdmWrapperImpl<cdm::ContentDecryptionModule_4>::RemoveSession( | |
| 469 uint32_t promise_id, | |
| 470 const char* web_session_id, | |
| 471 uint32_t web_session_id_size) { | |
| 472 return false; | |
| 473 } | |
| 474 | |
| 475 template <> | |
| 476 bool CdmWrapperImpl<cdm::ContentDecryptionModule_4>::GetUsableKeyIds( | 478 bool CdmWrapperImpl<cdm::ContentDecryptionModule_4>::GetUsableKeyIds( |
| 477 uint32_t promise_id, | 479 uint32_t promise_id, |
| 478 const char* web_session_id, | 480 const char* web_session_id, |
| 479 uint32_t web_session_id_size) { | 481 uint32_t web_session_id_size) { |
| 480 return false; | 482 return false; |
| 481 } | 483 } |
| 482 | 484 |
| 483 template <> | 485 template <> |
| 484 cdm::Status CdmWrapperImpl<cdm::ContentDecryptionModule_4>::Decrypt( | 486 cdm::Status CdmWrapperImpl<cdm::ContentDecryptionModule_4>::Decrypt( |
| 485 const cdm::InputBuffer& encrypted_buffer, | 487 const cdm::InputBuffer& encrypted_buffer, |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 565 uint32_t response_size) { | 567 uint32_t response_size) { |
| 566 // As CDM_5 doesn't support OnSessionUsableKeysChange(), make sure to generate | 568 // As CDM_5 doesn't support OnSessionUsableKeysChange(), make sure to generate |
| 567 // one when the promise is resolved. This may be overly aggressive. | 569 // one when the promise is resolved. This may be overly aggressive. |
| 568 SetSessionUsableKeysEventNeeded( | 570 SetSessionUsableKeysEventNeeded( |
| 569 promise_id, web_session_id, web_session_id_size); | 571 promise_id, web_session_id, web_session_id_size); |
| 570 cdm_->UpdateSession( | 572 cdm_->UpdateSession( |
| 571 promise_id, web_session_id, web_session_id_size, response, response_size); | 573 promise_id, web_session_id, web_session_id_size, response, response_size); |
| 572 } | 574 } |
| 573 | 575 |
| 574 template <> | 576 template <> |
| 575 void CdmWrapperImpl<cdm::ContentDecryptionModule_5>::CloseSession( | 577 bool CdmWrapperImpl<cdm::ContentDecryptionModule_5>::CloseSession( |
| 578 uint32_t promise_id, |
| 579 const char* web_session_id, |
| 580 uint32_t web_session_id_size) { |
| 581 return false; |
| 582 } |
| 583 |
| 584 template <> |
| 585 void CdmWrapperImpl<cdm::ContentDecryptionModule_5>::RemoveSession( |
| 576 uint32_t promise_id, | 586 uint32_t promise_id, |
| 577 const char* web_session_id, | 587 const char* web_session_id, |
| 578 uint32_t web_session_id_size) { | 588 uint32_t web_session_id_size) { |
| 579 cdm_->ReleaseSession(promise_id, web_session_id, web_session_id_size); | 589 cdm_->ReleaseSession(promise_id, web_session_id, web_session_id_size); |
| 580 } | 590 } |
| 581 | 591 |
| 582 template <> | 592 template <> |
| 583 bool CdmWrapperImpl<cdm::ContentDecryptionModule_5>::RemoveSession( | |
| 584 uint32_t promise_id, | |
| 585 const char* web_session_id, | |
| 586 uint32_t web_session_id_size) { | |
| 587 return false; | |
| 588 } | |
| 589 | |
| 590 template <> | |
| 591 bool CdmWrapperImpl<cdm::ContentDecryptionModule_5>::GetUsableKeyIds( | 593 bool CdmWrapperImpl<cdm::ContentDecryptionModule_5>::GetUsableKeyIds( |
| 592 uint32_t promise_id, | 594 uint32_t promise_id, |
| 593 const char* web_session_id, | 595 const char* web_session_id, |
| 594 uint32_t web_session_id_size) { | 596 uint32_t web_session_id_size) { |
| 595 return false; | 597 return false; |
| 596 } | 598 } |
| 597 | 599 |
| 598 template <> | 600 template <> |
| 599 cdm::Status CdmWrapperImpl<cdm::ContentDecryptionModule_5>::Decrypt( | 601 cdm::Status CdmWrapperImpl<cdm::ContentDecryptionModule_5>::Decrypt( |
| 600 const cdm::InputBuffer& encrypted_buffer, | 602 const cdm::InputBuffer& encrypted_buffer, |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 668 // stub implementations for new or modified methods that the older CDM interface | 670 // stub implementations for new or modified methods that the older CDM interface |
| 669 // does not have. | 671 // does not have. |
| 670 // Also update supported_cdm_versions.h. | 672 // Also update supported_cdm_versions.h. |
| 671 COMPILE_ASSERT(cdm::ContentDecryptionModule::kVersion == | 673 COMPILE_ASSERT(cdm::ContentDecryptionModule::kVersion == |
| 672 cdm::ContentDecryptionModule_6::kVersion, | 674 cdm::ContentDecryptionModule_6::kVersion, |
| 673 ensure_cdm_wrapper_templates_have_old_version_support); | 675 ensure_cdm_wrapper_templates_have_old_version_support); |
| 674 | 676 |
| 675 } // namespace media | 677 } // namespace media |
| 676 | 678 |
| 677 #endif // MEDIA_CDM_PPAPI_CDM_WRAPPER_H_ | 679 #endif // MEDIA_CDM_PPAPI_CDM_WRAPPER_H_ |
| OLD | NEW |