diff options
Diffstat (limited to 'chromium/media/cdm')
-rw-r--r-- | chromium/media/cdm/aes_decryptor.cc | 4 | ||||
-rw-r--r-- | chromium/media/cdm/aes_decryptor.h | 4 | ||||
-rw-r--r-- | chromium/media/cdm/aes_decryptor_unittest.cc | 42 | ||||
-rw-r--r-- | chromium/media/cdm/cdm_adapter.cc | 23 | ||||
-rw-r--r-- | chromium/media/cdm/cdm_adapter.h | 4 | ||||
-rw-r--r-- | chromium/media/cdm/cdm_adapter_unittest.cc | 25 | ||||
-rw-r--r-- | chromium/media/cdm/cdm_paths_unittest.cc | 6 | ||||
-rw-r--r-- | chromium/media/cdm/library_cdm/cdm_paths.gni | 6 | ||||
-rw-r--r-- | chromium/media/cdm/library_cdm/clear_key_cdm/BUILD.gn | 1 | ||||
-rw-r--r-- | chromium/media/cdm/library_cdm/clear_key_cdm/cdm_video_decoder.cc | 3 | ||||
-rw-r--r-- | chromium/media/cdm/library_cdm/clear_key_cdm/clear_key_cdm.cc | 13 | ||||
-rw-r--r-- | chromium/media/cdm/library_cdm/clear_key_cdm/clear_key_persistent_session_cdm.cc | 12 | ||||
-rw-r--r-- | chromium/media/cdm/win/media_foundation_cdm_factory.cc | 4 | ||||
-rw-r--r-- | chromium/media/cdm/win/media_foundation_cdm_session.cc | 2 |
14 files changed, 77 insertions, 72 deletions
diff --git a/chromium/media/cdm/aes_decryptor.cc b/chromium/media/cdm/aes_decryptor.cc index d18d6ebeccd..7a1ffda30be 100644 --- a/chromium/media/cdm/aes_decryptor.cc +++ b/chromium/media/cdm/aes_decryptor.cc @@ -511,12 +511,12 @@ void AesDecryptor::InitializeVideoDecoder(const VideoDecoderConfig& config, } void AesDecryptor::DecryptAndDecodeAudio(scoped_refptr<DecoderBuffer> encrypted, - const AudioDecodeCB& audio_decode_cb) { + AudioDecodeCB audio_decode_cb) { NOTREACHED() << "AesDecryptor does not support audio decoding"; } void AesDecryptor::DecryptAndDecodeVideo(scoped_refptr<DecoderBuffer> encrypted, - const VideoDecodeCB& video_decode_cb) { + VideoDecodeCB video_decode_cb) { NOTREACHED() << "AesDecryptor does not support video decoding"; } diff --git a/chromium/media/cdm/aes_decryptor.h b/chromium/media/cdm/aes_decryptor.h index 228a45593a5..962c27a1aed 100644 --- a/chromium/media/cdm/aes_decryptor.h +++ b/chromium/media/cdm/aes_decryptor.h @@ -78,9 +78,9 @@ class MEDIA_EXPORT AesDecryptor : public ContentDecryptionModule, void InitializeVideoDecoder(const VideoDecoderConfig& config, DecoderInitCB init_cb) override; void DecryptAndDecodeAudio(scoped_refptr<DecoderBuffer> encrypted, - const AudioDecodeCB& audio_decode_cb) override; + AudioDecodeCB audio_decode_cb) override; void DecryptAndDecodeVideo(scoped_refptr<DecoderBuffer> encrypted, - const VideoDecodeCB& video_decode_cb) override; + VideoDecodeCB video_decode_cb) override; void ResetDecoder(StreamType stream_type) override; void DeinitializeDecoder(StreamType stream_type) override; bool CanAlwaysDecrypt() override; diff --git a/chromium/media/cdm/aes_decryptor_unittest.cc b/chromium/media/cdm/aes_decryptor_unittest.cc index f2b32bb9dec..49a298e4cd8 100644 --- a/chromium/media/cdm/aes_decryptor_unittest.cc +++ b/chromium/media/cdm/aes_decryptor_unittest.cc @@ -252,14 +252,15 @@ class AesDecryptorTest : public testing::TestWithParam<TestType> { void SetUp() override { if (GetParam() == TestType::kAesDecryptor) { OnCdmCreated( - new AesDecryptor(base::Bind(&MockCdmClient::OnSessionMessage, - base::Unretained(&cdm_client_)), - base::Bind(&MockCdmClient::OnSessionClosed, - base::Unretained(&cdm_client_)), - base::Bind(&MockCdmClient::OnSessionKeysChange, - base::Unretained(&cdm_client_)), - base::Bind(&MockCdmClient::OnSessionExpirationUpdate, - base::Unretained(&cdm_client_))), + new AesDecryptor( + base::BindRepeating(&MockCdmClient::OnSessionMessage, + base::Unretained(&cdm_client_)), + base::BindRepeating(&MockCdmClient::OnSessionClosed, + base::Unretained(&cdm_client_)), + base::BindRepeating(&MockCdmClient::OnSessionKeysChange, + base::Unretained(&cdm_client_)), + base::BindRepeating(&MockCdmClient::OnSessionExpirationUpdate, + base::Unretained(&cdm_client_))), std::string()); } else if (GetParam() == TestType::kCdmAdapter) { #if BUILDFLAG(ENABLE_LIBRARY_CDMS) @@ -283,18 +284,19 @@ class AesDecryptorTest : public testing::TestWithParam<TestType> { std::unique_ptr<CdmAllocator> allocator(new SimpleCdmAllocator()); std::unique_ptr<CdmAuxiliaryHelper> cdm_helper( new MockCdmAuxiliaryHelper(std::move(allocator))); - CdmAdapter::Create(helper_->KeySystemName(), - cdm_config, create_cdm_func, std::move(cdm_helper), - base::Bind(&MockCdmClient::OnSessionMessage, - base::Unretained(&cdm_client_)), - base::Bind(&MockCdmClient::OnSessionClosed, - base::Unretained(&cdm_client_)), - base::Bind(&MockCdmClient::OnSessionKeysChange, - base::Unretained(&cdm_client_)), - base::Bind(&MockCdmClient::OnSessionExpirationUpdate, - base::Unretained(&cdm_client_)), - base::BindOnce(&AesDecryptorTest::OnCdmCreated, - base::Unretained(this))); + CdmAdapter::Create( + helper_->KeySystemName(), cdm_config, create_cdm_func, + std::move(cdm_helper), + base::BindRepeating(&MockCdmClient::OnSessionMessage, + base::Unretained(&cdm_client_)), + base::BindRepeating(&MockCdmClient::OnSessionClosed, + base::Unretained(&cdm_client_)), + base::BindRepeating(&MockCdmClient::OnSessionKeysChange, + base::Unretained(&cdm_client_)), + base::BindRepeating(&MockCdmClient::OnSessionExpirationUpdate, + base::Unretained(&cdm_client_)), + base::BindOnce(&AesDecryptorTest::OnCdmCreated, + base::Unretained(this))); base::RunLoop().RunUntilIdle(); #else diff --git a/chromium/media/cdm/cdm_adapter.cc b/chromium/media/cdm/cdm_adapter.cc index af8394152d7..145c8e69bcc 100644 --- a/chromium/media/cdm/cdm_adapter.cc +++ b/chromium/media/cdm/cdm_adapter.cc @@ -226,14 +226,14 @@ CdmAdapter::CdmAdapter( DCHECK(session_expiration_update_cb_); helper_->SetFileReadCB( - base::Bind(&CdmAdapter::OnFileRead, weak_factory_.GetWeakPtr())); + base::BindRepeating(&CdmAdapter::OnFileRead, weak_factory_.GetWeakPtr())); } CdmAdapter::~CdmAdapter() { DVLOG(1) << __func__; // Reject any outstanding promises and close all the existing sessions. - cdm_promise_adapter_.Clear(); + cdm_promise_adapter_.Clear(CdmPromiseAdapter::ClearReason::kDestruction); if (audio_init_cb_) std::move(audio_init_cb_).Run(false); @@ -540,7 +540,7 @@ void CdmAdapter::InitializeVideoDecoder(const VideoDecoderConfig& config, } void CdmAdapter::DecryptAndDecodeAudio(scoped_refptr<DecoderBuffer> encrypted, - const AudioDecodeCB& audio_decode_cb) { + AudioDecodeCB audio_decode_cb) { DVLOG(3) << __func__ << ": " << encrypted->AsHumanReadableString(/*verbose=*/true); DCHECK(task_runner_->BelongsToCurrentThread()); @@ -562,7 +562,8 @@ void CdmAdapter::DecryptAndDecodeAudio(scoped_refptr<DecoderBuffer> encrypted, const Decryptor::AudioFrames empty_frames; if (status != cdm::kSuccess) { DVLOG(1) << __func__ << ": status = " << status; - audio_decode_cb.Run(ToMediaDecryptorStatus(status), empty_frames); + std::move(audio_decode_cb) + .Run(ToMediaDecryptorStatus(status), empty_frames); return; } @@ -571,15 +572,15 @@ void CdmAdapter::DecryptAndDecodeAudio(scoped_refptr<DecoderBuffer> encrypted, if (!AudioFramesDataToAudioFrames(std::move(audio_frames), &audio_frame_list)) { DVLOG(1) << __func__ << " unable to convert Audio Frames"; - audio_decode_cb.Run(Decryptor::kError, empty_frames); + std::move(audio_decode_cb).Run(Decryptor::kError, empty_frames); return; } - audio_decode_cb.Run(Decryptor::kSuccess, audio_frame_list); + std::move(audio_decode_cb).Run(Decryptor::kSuccess, audio_frame_list); } void CdmAdapter::DecryptAndDecodeVideo(scoped_refptr<DecoderBuffer> encrypted, - const VideoDecodeCB& video_decode_cb) { + VideoDecodeCB video_decode_cb) { DVLOG(3) << __func__ << ": " << encrypted->AsHumanReadableString(/*verbose=*/true); DCHECK(task_runner_->BelongsToCurrentThread()); @@ -604,7 +605,7 @@ void CdmAdapter::DecryptAndDecodeVideo(scoped_refptr<DecoderBuffer> encrypted, if (status != cdm::kSuccess) { DVLOG(1) << __func__ << ": status = " << status; - video_decode_cb.Run(ToMediaDecryptorStatus(status), nullptr); + std::move(video_decode_cb).Run(ToMediaDecryptorStatus(status), nullptr); return; } @@ -613,13 +614,13 @@ void CdmAdapter::DecryptAndDecodeVideo(scoped_refptr<DecoderBuffer> encrypted, GetNaturalSize(visible_rect, pixel_aspect_ratio_)); if (!decoded_frame) { DLOG(ERROR) << __func__ << ": TransformToVideoFrame failed."; - video_decode_cb.Run(Decryptor::kError, nullptr); + std::move(video_decode_cb).Run(Decryptor::kError, nullptr); return; } - decoded_frame->metadata()->protected_video = is_video_encrypted_; + decoded_frame->metadata().protected_video = is_video_encrypted_; - video_decode_cb.Run(Decryptor::kSuccess, decoded_frame); + std::move(video_decode_cb).Run(Decryptor::kSuccess, decoded_frame); } void CdmAdapter::ResetDecoder(StreamType stream_type) { diff --git a/chromium/media/cdm/cdm_adapter.h b/chromium/media/cdm/cdm_adapter.h index 5a8b0e93d77..812f8ff07ab 100644 --- a/chromium/media/cdm/cdm_adapter.h +++ b/chromium/media/cdm/cdm_adapter.h @@ -106,9 +106,9 @@ class MEDIA_EXPORT CdmAdapter final : public ContentDecryptionModule, void InitializeVideoDecoder(const VideoDecoderConfig& config, DecoderInitCB init_cb) final; void DecryptAndDecodeAudio(scoped_refptr<DecoderBuffer> encrypted, - const AudioDecodeCB& audio_decode_cb) final; + AudioDecodeCB audio_decode_cb) final; void DecryptAndDecodeVideo(scoped_refptr<DecoderBuffer> encrypted, - const VideoDecodeCB& video_decode_cb) final; + VideoDecodeCB video_decode_cb) final; void ResetDecoder(StreamType stream_type) final; void DeinitializeDecoder(StreamType stream_type) final; diff --git a/chromium/media/cdm/cdm_adapter_unittest.cc b/chromium/media/cdm/cdm_adapter_unittest.cc index 3b8cc935370..6e27a40a24b 100644 --- a/chromium/media/cdm/cdm_adapter_unittest.cc +++ b/chromium/media/cdm/cdm_adapter_unittest.cc @@ -140,18 +140,19 @@ class CdmAdapterTestBase : public testing::Test, std::unique_ptr<StrictMock<MockCdmAuxiliaryHelper>> cdm_helper( new StrictMock<MockCdmAuxiliaryHelper>(std::move(allocator))); cdm_helper_ = cdm_helper.get(); - CdmAdapter::Create(GetKeySystemName(), cdm_config, GetCreateCdmFunc(), - std::move(cdm_helper), - base::Bind(&MockCdmClient::OnSessionMessage, - base::Unretained(&cdm_client_)), - base::Bind(&MockCdmClient::OnSessionClosed, - base::Unretained(&cdm_client_)), - base::Bind(&MockCdmClient::OnSessionKeysChange, - base::Unretained(&cdm_client_)), - base::Bind(&MockCdmClient::OnSessionExpirationUpdate, - base::Unretained(&cdm_client_)), - base::BindOnce(&CdmAdapterTestBase::OnCdmCreated, - base::Unretained(this), expected_result)); + CdmAdapter::Create( + GetKeySystemName(), cdm_config, GetCreateCdmFunc(), + std::move(cdm_helper), + base::BindRepeating(&MockCdmClient::OnSessionMessage, + base::Unretained(&cdm_client_)), + base::BindRepeating(&MockCdmClient::OnSessionClosed, + base::Unretained(&cdm_client_)), + base::BindRepeating(&MockCdmClient::OnSessionKeysChange, + base::Unretained(&cdm_client_)), + base::BindRepeating(&MockCdmClient::OnSessionExpirationUpdate, + base::Unretained(&cdm_client_)), + base::BindOnce(&CdmAdapterTestBase::OnCdmCreated, + base::Unretained(this), expected_result)); RunUntilIdle(); ASSERT_EQ(expected_result == SUCCESS, !!cdm_); } diff --git a/chromium/media/cdm/cdm_paths_unittest.cc b/chromium/media/cdm/cdm_paths_unittest.cc index 2e0fe96ea54..1cc84ce8ba5 100644 --- a/chromium/media/cdm/cdm_paths_unittest.cc +++ b/chromium/media/cdm/cdm_paths_unittest.cc @@ -18,7 +18,7 @@ // TODO(crbug.com/971433). Move the CDMs out of the install directory on // ChromeOS. #if (defined(OS_MAC) || defined(OS_WIN) || defined(OS_LINUX) || \ - BUILDFLAG(IS_LACROS)) + BUILDFLAG(IS_CHROMEOS_LACROS)) #define CDM_USE_PLATFORM_SPECIFIC_PATH #endif @@ -37,9 +37,9 @@ const char kComponentPlatform[] = "mac"; #elif defined(OS_WIN) "win"; -#elif BUILDFLAG(IS_ASH) +#elif BUILDFLAG(IS_CHROMEOS_ASH) "cros"; -#elif defined(OS_LINUX) +#elif defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) "linux"; #else "unsupported_platform"; diff --git a/chromium/media/cdm/library_cdm/cdm_paths.gni b/chromium/media/cdm/library_cdm/cdm_paths.gni index 1842847e7e7..21fd5f6c0f1 100644 --- a/chromium/media/cdm/library_cdm/cdm_paths.gni +++ b/chromium/media/cdm/library_cdm/cdm_paths.gni @@ -11,9 +11,9 @@ import("//build/config/chromeos/ui_mode.gni") # OS name for components is close to "target_os" but has some differences. # Explicitly define what we use to avoid confusion. -if (is_ash) { +if (is_chromeos_ash) { component_os = "cros" -} else if (is_linux) { +} else if (is_linux || is_chromeos_lacros) { component_os = "linux" } else if (is_win) { component_os = "win" @@ -31,7 +31,7 @@ component_arch = "$current_cpu" # - |cdm_platform_specific_path| is exported as a BUILDFLAG to cdm_paths.cc. # - When updating the condition here, also update the condition on the define # of CDM_USE_PLATFORM_SPECIFIC_PATH in cdm_paths_unittest.cc. -if (is_win || is_mac || is_linux) { +if (is_win || is_mac || is_linux || is_chromeos_lacros) { cdm_platform_specific_path = "_platform_specific/$component_os" + "_" + "$component_arch" diff --git a/chromium/media/cdm/library_cdm/clear_key_cdm/BUILD.gn b/chromium/media/cdm/library_cdm/clear_key_cdm/BUILD.gn index 25b1dfee1ef..90e72773781 100644 --- a/chromium/media/cdm/library_cdm/clear_key_cdm/BUILD.gn +++ b/chromium/media/cdm/library_cdm/clear_key_cdm/BUILD.gn @@ -35,7 +35,6 @@ loadable_module("clear_key_cdm") { "//media:shared_memory_support", # For media::AudioBus. "//media/cdm:cdm_api", # For content_decryption_module.h "//media/cdm/library_cdm:cdm_host_proxy", - "//third_party/libaom:libaom_buildflags", "//third_party/libyuv", "//url", ] diff --git a/chromium/media/cdm/library_cdm/clear_key_cdm/cdm_video_decoder.cc b/chromium/media/cdm/library_cdm/clear_key_cdm/cdm_video_decoder.cc index c1fc8867088..ddd43745e84 100644 --- a/chromium/media/cdm/library_cdm/clear_key_cdm/cdm_video_decoder.cc +++ b/chromium/media/cdm/library_cdm/clear_key_cdm/cdm_video_decoder.cc @@ -27,7 +27,6 @@ #include "media/cdm/cdm_type_conversion.h" #include "media/cdm/library_cdm/cdm_host_proxy.h" #include "media/media_buildflags.h" -#include "third_party/libaom/libaom_buildflags.h" #include "third_party/libyuv/include/libyuv/planar_functions.h" #if BUILDFLAG(ENABLE_LIBVPX) @@ -257,7 +256,7 @@ class VideoDecoderAdapter final : public CdmVideoDecoder { void OnVideoFrameReady(scoped_refptr<VideoFrame> video_frame) { // Do not queue EOS frames, which is not needed. - if (video_frame->metadata()->end_of_stream) + if (video_frame->metadata().end_of_stream) return; decoded_video_frames_.push(std::move(video_frame)); diff --git a/chromium/media/cdm/library_cdm/clear_key_cdm/clear_key_cdm.cc b/chromium/media/cdm/library_cdm/clear_key_cdm/clear_key_cdm.cc index 5ad5056e830..1211f1bcd61 100644 --- a/chromium/media/cdm/library_cdm/clear_key_cdm/clear_key_cdm.cc +++ b/chromium/media/cdm/library_cdm/clear_key_cdm/clear_key_cdm.cc @@ -327,11 +327,14 @@ ClearKeyCdm::ClearKeyCdm(HostInterface* host, const std::string& key_system) cdm_host_proxy_(new CdmHostProxyImpl<HostInterface>(host)), cdm_(new ClearKeyPersistentSessionCdm( cdm_host_proxy_.get(), - base::Bind(&ClearKeyCdm::OnSessionMessage, base::Unretained(this)), - base::Bind(&ClearKeyCdm::OnSessionClosed, base::Unretained(this)), - base::Bind(&ClearKeyCdm::OnSessionKeysChange, base::Unretained(this)), - base::Bind(&ClearKeyCdm::OnSessionExpirationUpdate, - base::Unretained(this)))), + base::BindRepeating(&ClearKeyCdm::OnSessionMessage, + base::Unretained(this)), + base::BindRepeating(&ClearKeyCdm::OnSessionClosed, + base::Unretained(this)), + base::BindRepeating(&ClearKeyCdm::OnSessionKeysChange, + base::Unretained(this)), + base::BindRepeating(&ClearKeyCdm::OnSessionExpirationUpdate, + base::Unretained(this)))), key_system_(key_system) { DCHECK(g_is_cdm_module_initialized); } diff --git a/chromium/media/cdm/library_cdm/clear_key_cdm/clear_key_persistent_session_cdm.cc b/chromium/media/cdm/library_cdm/clear_key_cdm/clear_key_persistent_session_cdm.cc index 6e2dcba4167..c3428123dd4 100644 --- a/chromium/media/cdm/library_cdm/clear_key_cdm/clear_key_persistent_session_cdm.cc +++ b/chromium/media/cdm/library_cdm/clear_key_cdm/clear_key_persistent_session_cdm.cc @@ -99,10 +99,10 @@ ClearKeyPersistentSessionCdm::ClearKeyPersistentSessionCdm( session_message_cb_(session_message_cb), session_closed_cb_(session_closed_cb) { cdm_ = base::MakeRefCounted<AesDecryptor>( - base::Bind(&ClearKeyPersistentSessionCdm::OnSessionMessage, - weak_factory_.GetWeakPtr()), - base::Bind(&ClearKeyPersistentSessionCdm::OnSessionClosed, - weak_factory_.GetWeakPtr()), + base::BindRepeating(&ClearKeyPersistentSessionCdm::OnSessionMessage, + weak_factory_.GetWeakPtr()), + base::BindRepeating(&ClearKeyPersistentSessionCdm::OnSessionClosed, + weak_factory_.GetWeakPtr()), session_keys_change_cb, session_expiration_update_cb); } @@ -129,8 +129,8 @@ void ClearKeyPersistentSessionCdm::CreateSessionAndGenerateRequest( // Since it's a persistent session, we need to save the session ID after // it's been created. new_promise = std::make_unique<NewPersistentSessionCdmPromise>( - base::Bind(&ClearKeyPersistentSessionCdm::AddPersistentSession, - weak_factory_.GetWeakPtr()), + base::BindOnce(&ClearKeyPersistentSessionCdm::AddPersistentSession, + weak_factory_.GetWeakPtr()), std::move(promise)); } cdm_->CreateSessionAndGenerateRequest(session_type, init_data_type, init_data, diff --git a/chromium/media/cdm/win/media_foundation_cdm_factory.cc b/chromium/media/cdm/win/media_foundation_cdm_factory.cc index 3d3a924a06a..c314a5d9175 100644 --- a/chromium/media/cdm/win/media_foundation_cdm_factory.cc +++ b/chromium/media/cdm/win/media_foundation_cdm_factory.cc @@ -185,7 +185,7 @@ HRESULT MediaFoundationCdmFactory::CreateMFCdmFactory( RETURN_IF_FAILED(CoCreateInstance(CLSID_MFMediaEngineClassFactory, nullptr, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&class_factory))); - auto key_system_str = base::UTF8ToUTF16(key_system); + auto key_system_str = base::UTF8ToWide(key_system); RETURN_IF_FAILED(class_factory->CreateContentDecryptionModuleFactory( key_system_str.c_str(), IID_PPV_ARGS(&cdm_factory))); return S_OK; @@ -198,7 +198,7 @@ HRESULT MediaFoundationCdmFactory::CreateCdmInternal( ComPtr<IMFContentDecryptionModuleFactory> cdm_factory; RETURN_IF_FAILED(CreateMFCdmFactory(key_system, cdm_factory)); - auto key_system_str = base::UTF8ToUTF16(key_system); + auto key_system_str = base::UTF8ToWide(key_system); if (!cdm_factory->IsTypeSupported(key_system_str.c_str(), nullptr)) { DLOG(ERROR) << key_system << " not supported by MF CdmFactory"; return MF_NOT_SUPPORTED_ERR; diff --git a/chromium/media/cdm/win/media_foundation_cdm_session.cc b/chromium/media/cdm/win/media_foundation_cdm_session.cc index 37b5666dda8..e5bbe438a5f 100644 --- a/chromium/media/cdm/win/media_foundation_cdm_session.cc +++ b/chromium/media/cdm/win/media_foundation_cdm_session.cc @@ -282,7 +282,7 @@ bool MediaFoundationCdmSession::SetSessionId() { return false; } - auto session_id_str = base::UTF16ToUTF8(session_id.get()); + auto session_id_str = base::WideToUTF8(session_id.get()); if (session_id_str.empty()) { bool success = std::move(session_id_cb_).Run(""); DCHECK(!success) << "Empty session ID should not be accepted"; |