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

Unified Diff: media/gpu/dxva_video_decode_accelerator_win.cc

Issue 2768643002: Suport for hybrid-log-gamma in DXVA (Closed)
Patch Set: Created 3 years, 9 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 | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/gpu/dxva_video_decode_accelerator_win.cc
diff --git a/media/gpu/dxva_video_decode_accelerator_win.cc b/media/gpu/dxva_video_decode_accelerator_win.cc
index a5d0ad986ba491d0a79b7f573f917768a8815b5c..e854874931f339d91a1bc7cc3409c7133f76badb 100644
--- a/media/gpu/dxva_video_decode_accelerator_win.cc
+++ b/media/gpu/dxva_video_decode_accelerator_win.cc
@@ -2837,12 +2837,30 @@ bool DXVAVideoDecodeAccelerator::InitializeID3D11VideoProcessor(
dx11_converter_output_color_space_ =
gfx::ColorSpace::CreateSCRGBLinear();
}
- video_context1->VideoProcessorSetStreamColorSpace1(
- d3d11_processor_.get(), 0,
- gfx::ColorSpaceWin::GetDXGIColorSpace(color_space));
- video_context1->VideoProcessorSetOutputColorSpace1(
- d3d11_processor_.get(), gfx::ColorSpaceWin::GetDXGIColorSpace(
- dx11_converter_output_color_space_));
+ // Since the video processor doesn't support HLG, let's just do the
+ // YUV->RGB conversion and let the output color space be HLG.
+ // This won't work well unless color management is on, but if color
+ // management is off we don't support HLG anyways.
+ if (color_space ==
+ gfx::ColorSpace(gfx::ColorSpace::PrimaryID::BT2020,
+ gfx::ColorSpace::TransferID::ARIB_STD_B67,
+ gfx::ColorSpace::MatrixID::BT709,
+ gfx::ColorSpace::RangeID::LIMITED)) {
ccameron 2017/03/22 18:39:33 Might make sense to add a ::CreateXXXX if this is
+ video_context1->VideoProcessorSetStreamColorSpace1(
+ d3d11_processor_.get(), 0,
+ DXGI_COLOR_SPACE_YCBCR_STUDIO_G2084_LEFT_P2020);
+ video_context1->VideoProcessorSetOutputColorSpace1(
+ d3d11_processor_.get(),
+ DXGI_COLOR_SPACE_RGB_FULL_G2084_NONE_P2020);
+ dx11_converter_output_color_space_ = color_space.GetAsFullRangeRGB();
+ } else {
+ video_context1->VideoProcessorSetStreamColorSpace1(
+ d3d11_processor_.get(), 0,
+ gfx::ColorSpaceWin::GetDXGIColorSpace(color_space));
+ video_context1->VideoProcessorSetOutputColorSpace1(
+ d3d11_processor_.get(), gfx::ColorSpaceWin::GetDXGIColorSpace(
+ dx11_converter_output_color_space_));
+ }
} else {
D3D11_VIDEO_PROCESSOR_COLOR_SPACE d3d11_color_space =
gfx::ColorSpaceWin::GetD3D11ColorSpace(color_space);
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698