Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(526)

Side by Side Diff: media/gpu/android_video_decode_accelerator.cc

Issue 2882813002: media: Convert mojo media defines to buildflags (Closed)
Patch Set: rebase Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « media/gpu/BUILD.gn ('k') | media/mojo/BUILD.gn » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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/gpu/android_video_decode_accelerator.h" 5 #include "media/gpu/android_video_decode_accelerator.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <memory> 9 #include <memory>
10 10
(...skipping 20 matching lines...) Expand all
31 #include "media/base/bind_to_current_loop.h" 31 #include "media/base/bind_to_current_loop.h"
32 #include "media/base/bitstream_buffer.h" 32 #include "media/base/bitstream_buffer.h"
33 #include "media/base/limits.h" 33 #include "media/base/limits.h"
34 #include "media/base/media.h" 34 #include "media/base/media.h"
35 #include "media/base/timestamp_constants.h" 35 #include "media/base/timestamp_constants.h"
36 #include "media/base/video_decoder_config.h" 36 #include "media/base/video_decoder_config.h"
37 #include "media/gpu/android_video_surface_chooser_impl.h" 37 #include "media/gpu/android_video_surface_chooser_impl.h"
38 #include "media/gpu/avda_picture_buffer_manager.h" 38 #include "media/gpu/avda_picture_buffer_manager.h"
39 #include "media/gpu/content_video_view_overlay.h" 39 #include "media/gpu/content_video_view_overlay.h"
40 #include "media/gpu/shared_memory_region.h" 40 #include "media/gpu/shared_memory_region.h"
41 #include "media/mojo/features.h"
41 #include "media/video/picture.h" 42 #include "media/video/picture.h"
42 #include "ui/gl/android/scoped_java_surface.h" 43 #include "ui/gl/android/scoped_java_surface.h"
43 #include "ui/gl/android/surface_texture.h" 44 #include "ui/gl/android/surface_texture.h"
44 #include "ui/gl/gl_bindings.h" 45 #include "ui/gl/gl_bindings.h"
45 46
46 #if defined(ENABLE_MOJO_MEDIA_IN_GPU_PROCESS) 47 #if BUILDFLAG(ENABLE_MOJO_MEDIA_IN_GPU_PROCESS)
47 #include "media/cdm/cdm_manager.h" // nogncheck 48 #include "media/cdm/cdm_manager.h" // nogncheck
48 #endif 49 #endif
49 50
50 #define NOTIFY_ERROR(error_code, error_message) \ 51 #define NOTIFY_ERROR(error_code, error_message) \
51 do { \ 52 do { \
52 DLOG(ERROR) << error_message; \ 53 DLOG(ERROR) << error_message; \
53 NotifyError(VideoDecodeAccelerator::error_code); \ 54 NotifyError(VideoDecodeAccelerator::error_code); \
54 } while (0) 55 } while (0)
55 56
56 namespace media { 57 namespace media {
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after
268 surface_chooser_(std::move(surface_chooser)), 269 surface_chooser_(std::move(surface_chooser)),
269 platform_config_(platform_config), 270 platform_config_(platform_config),
270 overlay_factory_cb_(overlay_factory_cb), 271 overlay_factory_cb_(overlay_factory_cb),
271 weak_this_factory_(this) {} 272 weak_this_factory_(this) {}
272 273
273 AndroidVideoDecodeAccelerator::~AndroidVideoDecodeAccelerator() { 274 AndroidVideoDecodeAccelerator::~AndroidVideoDecodeAccelerator() {
274 DCHECK(thread_checker_.CalledOnValidThread()); 275 DCHECK(thread_checker_.CalledOnValidThread());
275 GetManager()->StopTimer(this); 276 GetManager()->StopTimer(this);
276 codec_allocator_->StopThread(this); 277 codec_allocator_->StopThread(this);
277 278
278 #if defined(ENABLE_MOJO_MEDIA_IN_GPU_PROCESS) 279 #if BUILDFLAG(ENABLE_MOJO_MEDIA_IN_GPU_PROCESS)
279 if (!media_drm_bridge_cdm_context_) 280 if (!media_drm_bridge_cdm_context_)
280 return; 281 return;
281 282
282 DCHECK(cdm_registration_id_); 283 DCHECK(cdm_registration_id_);
283 284
284 // Cancel previously registered callback (if any). 285 // Cancel previously registered callback (if any).
285 media_drm_bridge_cdm_context_->SetMediaCryptoReadyCB( 286 media_drm_bridge_cdm_context_->SetMediaCryptoReadyCB(
286 MediaDrmBridgeCdmContext::MediaCryptoReadyCB()); 287 MediaDrmBridgeCdmContext::MediaCryptoReadyCB());
287 288
288 media_drm_bridge_cdm_context_->UnregisterPlayer(cdm_registration_id_); 289 media_drm_bridge_cdm_context_->UnregisterPlayer(cdm_registration_id_);
289 #endif // defined(ENABLE_MOJO_MEDIA_IN_GPU_PROCESS) 290 #endif // BUILDFLAG(ENABLE_MOJO_MEDIA_IN_GPU_PROCESS)
290 } 291 }
291 292
292 bool AndroidVideoDecodeAccelerator::Initialize(const Config& config, 293 bool AndroidVideoDecodeAccelerator::Initialize(const Config& config,
293 Client* client) { 294 Client* client) {
294 DVLOG(1) << __func__ << ": " << config.AsHumanReadableString(); 295 DVLOG(1) << __func__ << ": " << config.AsHumanReadableString();
295 TRACE_EVENT0("media", "AVDA::Initialize"); 296 TRACE_EVENT0("media", "AVDA::Initialize");
296 DCHECK(!media_codec_); 297 DCHECK(!media_codec_);
297 DCHECK(thread_checker_.CalledOnValidThread()); 298 DCHECK(thread_checker_.CalledOnValidThread());
298 base::AutoReset<bool> scoper(&during_initialize_, true); 299 base::AutoReset<bool> scoper(&during_initialize_, true);
299 300
(...skipping 1098 matching lines...) Expand 10 before | Expand all | Expand 10 after
1398 1399
1399 // If we're draining, signal completion now because the drain can no longer 1400 // If we're draining, signal completion now because the drain can no longer
1400 // proceed. 1401 // proceed.
1401 if (drain_type_) 1402 if (drain_type_)
1402 OnDrainCompleted(); 1403 OnDrainCompleted();
1403 } 1404 }
1404 1405
1405 void AndroidVideoDecodeAccelerator::InitializeCdm() { 1406 void AndroidVideoDecodeAccelerator::InitializeCdm() {
1406 DVLOG(2) << __func__ << ": " << config_.cdm_id; 1407 DVLOG(2) << __func__ << ": " << config_.cdm_id;
1407 1408
1408 #if !defined(ENABLE_MOJO_MEDIA_IN_GPU_PROCESS) 1409 #if !BUILDFLAG(ENABLE_MOJO_MEDIA_IN_GPU_PROCESS)
1409 NOTIMPLEMENTED(); 1410 NOTIMPLEMENTED();
1410 NOTIFY_ERROR(PLATFORM_FAILURE, "Cdm support needs mojo in the gpu process"); 1411 NOTIFY_ERROR(PLATFORM_FAILURE, "Cdm support needs mojo in the gpu process");
1411 #else 1412 #else
1412 // Store the CDM to hold a reference to it. 1413 // Store the CDM to hold a reference to it.
1413 cdm_for_reference_holding_only_ = 1414 cdm_for_reference_holding_only_ =
1414 CdmManager::GetInstance()->GetCdm(config_.cdm_id); 1415 CdmManager::GetInstance()->GetCdm(config_.cdm_id);
1415 DCHECK(cdm_for_reference_holding_only_); 1416 DCHECK(cdm_for_reference_holding_only_);
1416 1417
1417 // On Android platform the CdmContext must be a MediaDrmBridgeCdmContext. 1418 // On Android platform the CdmContext must be a MediaDrmBridgeCdmContext.
1418 media_drm_bridge_cdm_context_ = static_cast<MediaDrmBridgeCdmContext*>( 1419 media_drm_bridge_cdm_context_ = static_cast<MediaDrmBridgeCdmContext*>(
(...skipping 10 matching lines...) Expand all
1429 // TODO(xhwang): Remove |cdm_unset_cb| after it's not used on all platforms. 1430 // TODO(xhwang): Remove |cdm_unset_cb| after it's not used on all platforms.
1430 cdm_registration_id_ = media_drm_bridge_cdm_context_->RegisterPlayer( 1431 cdm_registration_id_ = media_drm_bridge_cdm_context_->RegisterPlayer(
1431 BindToCurrentLoop(base::Bind(&AndroidVideoDecodeAccelerator::OnKeyAdded, 1432 BindToCurrentLoop(base::Bind(&AndroidVideoDecodeAccelerator::OnKeyAdded,
1432 weak_this_factory_.GetWeakPtr())), 1433 weak_this_factory_.GetWeakPtr())),
1433 base::Bind(&base::DoNothing)); 1434 base::Bind(&base::DoNothing));
1434 1435
1435 // Deferred initialization will continue in OnMediaCryptoReady(). 1436 // Deferred initialization will continue in OnMediaCryptoReady().
1436 media_drm_bridge_cdm_context_->SetMediaCryptoReadyCB(BindToCurrentLoop( 1437 media_drm_bridge_cdm_context_->SetMediaCryptoReadyCB(BindToCurrentLoop(
1437 base::Bind(&AndroidVideoDecodeAccelerator::OnMediaCryptoReady, 1438 base::Bind(&AndroidVideoDecodeAccelerator::OnMediaCryptoReady,
1438 weak_this_factory_.GetWeakPtr()))); 1439 weak_this_factory_.GetWeakPtr())));
1439 #endif // !defined(ENABLE_MOJO_MEDIA_IN_GPU_PROCESS) 1440 #endif // !BUILDFLAG(ENABLE_MOJO_MEDIA_IN_GPU_PROCESS)
1440 } 1441 }
1441 1442
1442 void AndroidVideoDecodeAccelerator::OnMediaCryptoReady( 1443 void AndroidVideoDecodeAccelerator::OnMediaCryptoReady(
1443 MediaDrmBridgeCdmContext::JavaObjectPtr media_crypto, 1444 MediaDrmBridgeCdmContext::JavaObjectPtr media_crypto,
1444 bool needs_protected_surface) { 1445 bool needs_protected_surface) {
1445 DVLOG(1) << __func__; 1446 DVLOG(1) << __func__;
1446 1447
1447 if (!media_crypto) { 1448 if (!media_crypto) {
1448 LOG(ERROR) << "MediaCrypto is not available, can't play encrypted stream."; 1449 LOG(ERROR) << "MediaCrypto is not available, can't play encrypted stream.";
1449 cdm_for_reference_holding_only_ = nullptr; 1450 cdm_for_reference_holding_only_ = nullptr;
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after
1692 codec_allocator_->ReleaseMediaCodec(std::move(media_codec_), 1693 codec_allocator_->ReleaseMediaCodec(std::move(media_codec_),
1693 codec_config_->surface_bundle); 1694 codec_config_->surface_bundle);
1694 } 1695 }
1695 1696
1696 void AndroidVideoDecodeAccelerator::ReleaseCodecAndBundle() { 1697 void AndroidVideoDecodeAccelerator::ReleaseCodecAndBundle() {
1697 ReleaseCodec(); 1698 ReleaseCodec();
1698 codec_config_->surface_bundle = nullptr; 1699 codec_config_->surface_bundle = nullptr;
1699 } 1700 }
1700 1701
1701 } // namespace media 1702 } // namespace media
OLDNEW
« no previous file with comments | « media/gpu/BUILD.gn ('k') | media/mojo/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698