diff options
Diffstat (limited to 'chromium/media/video/gpu_video_accelerator_factories.cc')
-rw-r--r-- | chromium/media/video/gpu_video_accelerator_factories.cc | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/chromium/media/video/gpu_video_accelerator_factories.cc b/chromium/media/video/gpu_video_accelerator_factories.cc new file mode 100644 index 00000000000..b97e96b138d --- /dev/null +++ b/chromium/media/video/gpu_video_accelerator_factories.cc @@ -0,0 +1,32 @@ +// Copyright 2021 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "media/video/gpu_video_accelerator_factories.h" + +namespace media { + +GpuVideoAcceleratorFactories::Supported +GpuVideoAcceleratorFactories::IsDecoderConfigSupported( + const VideoDecoderConfig& config) { + if (!IsDecoderSupportKnown()) + return Supported::kUnknown; + + static_assert(media::VideoDecoderImplementation::kAlternate == + media::VideoDecoderImplementation::kMaxValue, + "Keep the array below in sync."); + VideoDecoderImplementation decoder_impls[] = { + VideoDecoderImplementation::kDefault, + VideoDecoderImplementation::kAlternate}; + Supported supported = Supported::kUnknown; + for (const auto& impl : decoder_impls) { + supported = IsDecoderConfigSupported(impl, config); + DCHECK_NE(supported, Supported::kUnknown); + if (supported == Supported::kTrue) + break; + } + + return supported; +} + +} // namespace media |