Commit 966d2bb8 authored by Dan Sanders's avatar Dan Sanders Committed by Commit Bot

[media] Enable VdaVideoDecoder on Windows.

Bug: 522298
Change-Id: I0450f150aed0c84935b1355f849331d97ed17ab2
Reviewed-on: https://chromium-review.googlesource.com/1056325
Commit-Queue: Dan Sanders <sandersd@chromium.org>
Reviewed-by: default avatarFrank Liberato <liberato@chromium.org>
Cr-Commit-Position: refs/heads/master@{#558784}
parent 9347a409
......@@ -260,6 +260,11 @@ const base::Feature kMojoVideoDecoder {
#endif
};
// Enable The D3D11 Video decoder. Must also enable MojoVideoDecoder for
// this to have any effect.
const base::Feature kD3D11VideoDecoder{"D3D11VideoDecoder",
base::FEATURE_DISABLED_BY_DEFAULT};
// Manage and report MSE buffered ranges by PTS intervals, not DTS intervals.
const base::Feature kMseBufferByPts{"MseBufferByPts",
base::FEATURE_DISABLED_BY_DEFAULT};
......
......@@ -106,6 +106,7 @@ namespace media {
MEDIA_EXPORT extern const base::Feature kAv1Decoder;
MEDIA_EXPORT extern const base::Feature kBackgroundVideoPauseOptimization;
MEDIA_EXPORT extern const base::Feature kBackgroundVideoTrackOptimization;
MEDIA_EXPORT extern const base::Feature kD3D11VideoDecoder;
MEDIA_EXPORT extern const base::Feature kExternalClearKeyForTesting;
MEDIA_EXPORT extern const base::Feature kLowDelayVideoRenderingOnLiveStream;
MEDIA_EXPORT extern const base::Feature kMediaCastOverlayButton;
......
......@@ -7,10 +7,12 @@
#include <utility>
#include "base/bind.h"
#include "base/feature_list.h"
#include "build/build_config.h"
#include "gpu/ipc/service/gpu_channel.h"
#include "media/base/audio_decoder.h"
#include "media/base/cdm_factory.h"
#include "media/base/media_switches.h"
#include "media/base/video_decoder.h"
#include "media/gpu/buildflags.h"
#include "media/gpu/ipc/service/media_gpu_channel_manager.h"
......@@ -130,19 +132,22 @@ std::unique_ptr<VideoDecoder> GpuMojoMediaClient::CreateVideoDecoder(
android_overlay_factory_cb_, std::move(request_overlay_info_cb),
std::make_unique<VideoFrameFactoryImpl>(gpu_task_runner_,
std::move(get_stub_cb)));
#elif defined(OS_MACOSX)
#elif defined(OS_MACOSX) || defined(OS_WIN)
#if defined(OS_WIN)
if (base::FeatureList::IsEnabled(kD3D11VideoDecoder)) {
return D3D11VideoDecoder::Create(
gpu_task_runner_, gpu_preferences_, gpu_workarounds_,
base::BindRepeating(&GetCommandBufferStub, media_gpu_channel_manager_,
command_buffer_id->channel_token,
command_buffer_id->route_id));
}
#endif // defined(OS_WIN)
return VdaVideoDecoder::Create(
task_runner, gpu_task_runner_, media_log, target_color_space,
gpu_preferences_, gpu_workarounds_,
base::BindRepeating(&GetCommandBufferStub, media_gpu_channel_manager_,
command_buffer_id->channel_token,
command_buffer_id->route_id));
#elif defined(OS_WIN)
return D3D11VideoDecoder::Create(
gpu_task_runner_, gpu_preferences_, gpu_workarounds_,
base::BindRepeating(&GetCommandBufferStub, media_gpu_channel_manager_,
command_buffer_id->channel_token,
command_buffer_id->route_id));
#else
return nullptr;
#endif // defined(OS_ANDROID)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment