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

Unified Diff: media/filters/gpu_video_decoder.cc

Issue 2677983004: Make setOutputSurface, encrypted capabilities. Blacklist hi6210sft. (Closed)
Patch Set: Created 3 years, 10 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « media/base/android/media_codec_util.cc ('k') | media/gpu/android_video_decode_accelerator.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/filters/gpu_video_decoder.cc
diff --git a/media/filters/gpu_video_decoder.cc b/media/filters/gpu_video_decoder.cc
index 97f387e4b1c7ea1f9c644df6f983a51bb4b85bf7..6a2420a52820f2dc4a459f58199023449ce96b27 100644
--- a/media/filters/gpu_video_decoder.cc
+++ b/media/filters/gpu_video_decoder.cc
@@ -37,10 +37,6 @@
#include "media/formats/mp4/box_definitions.h"
#endif
-#if defined(OS_ANDROID)
-#include "base/android/build_info.h"
-#endif
-
namespace media {
namespace {
@@ -219,18 +215,6 @@ void GpuVideoDecoder::Initialize(const VideoDecoderConfig& config,
base::Bind(&ReportGpuVideoDecoderInitializeStatusToUMAAndRunCB,
BindToCurrentLoop(init_cb), media_log_);
- bool requires_restart_for_external_output_surface = false;
-#if !defined(OS_ANDROID)
- if (config.is_encrypted()) {
- DVLOG(1) << "Encrypted stream not supported.";
- bound_init_cb.Run(false);
- return;
- }
-#else
- requires_restart_for_external_output_surface =
- base::android::BuildInfo::GetInstance()->sdk_int() < 23;
-#endif
-
bool previously_initialized = config_.IsValidConfig();
DVLOG(1) << (previously_initialized ? "Reinitializing" : "Initializing")
<< " GVD with config: " << config.AsHumanReadableString();
@@ -252,6 +236,14 @@ void GpuVideoDecoder::Initialize(const VideoDecoderConfig& config,
VideoDecodeAccelerator::Capabilities capabilities =
factories_->GetVideoDecodeAcceleratorCapabilities();
+ if (config.is_encrypted() &&
+ !(capabilities.flags &
+ VideoDecodeAccelerator::Capabilities::SUPPORTS_ENCRYPTED_STREAMS)) {
+ DVLOG(1) << "Encrypted stream not supported.";
+ bound_init_cb.Run(false);
+ return;
+ }
+
if (!IsProfileSupported(capabilities, config.profile(), config.coded_size(),
config.is_encrypted())) {
DVLOG(1) << "Unsupported profile " << GetProfileName(config.profile())
@@ -312,10 +304,14 @@ void GpuVideoDecoder::Initialize(const VideoDecoderConfig& config,
init_cb_ = bound_init_cb;
- const bool supports_external_output_surface =
- (capabilities.flags & VideoDecodeAccelerator::Capabilities::
- SUPPORTS_EXTERNAL_OUTPUT_SURFACE) != 0;
+ const bool supports_external_output_surface = !!(
+ capabilities.flags &
+ VideoDecodeAccelerator::Capabilities::SUPPORTS_EXTERNAL_OUTPUT_SURFACE);
if (supports_external_output_surface && !request_surface_cb_.is_null()) {
+ const bool requires_restart_for_external_output_surface =
+ !(capabilities.flags & VideoDecodeAccelerator::Capabilities::
+ SUPPORTS_SET_EXTERNAL_OUTPUT_SURFACE);
+
// If we have a surface request callback we should call it and complete
// initialization with the returned surface.
request_surface_cb_.Run(
« no previous file with comments | « media/base/android/media_codec_util.cc ('k') | media/gpu/android_video_decode_accelerator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698