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

Side by Side Diff: ui/gfx/color_space_win.cc

Issue 2503063002: media: Inform VideoBlit/MFTransform of video color information (Closed)
Patch Set: merged Created 4 years 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
OLDNEW
(Empty)
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "ui/gfx/color_space_win.h"
6
7 namespace gfx {
8
9 DXVA2_ExtendedFormat ColorSpaceWin::GetExtendedFormat(
10 const ColorSpace& color_space) {
11 DXVA2_ExtendedFormat format;
12 memset(&format, 0, sizeof(format));
13 format.SampleFormat = DXVA2_SampleProgressiveFrame;
14 format.VideoLighting = DXVA2_VideoLighting_dim;
15 format.NominalRange = DXVA2_NominalRange_16_235;
16 format.VideoTransferMatrix = DXVA2_VideoTransferMatrix_BT709;
17 format.VideoPrimaries = DXVA2_VideoPrimaries_BT709;
18 format.VideoTransferFunction = DXVA2_VideoTransFunc_709;
19
20 switch (color_space.range_) {
21 case gfx::ColorSpace::RangeID::LIMITED:
22 format.NominalRange = DXVA2_NominalRange_16_235;
23 break;
24 case gfx::ColorSpace::RangeID::FULL:
25 format.NominalRange = DXVA2_NominalRange_0_255;
26 break;
27
28 case gfx::ColorSpace::RangeID::UNSPECIFIED:
29 case gfx::ColorSpace::RangeID::DERIVED:
30 // Not handled
31 break;
32 }
33
34 switch (color_space.matrix_) {
35 case gfx::ColorSpace::MatrixID::BT709:
36 format.VideoTransferMatrix = DXVA2_VideoTransferMatrix_BT709;
37 break;
38 case gfx::ColorSpace::MatrixID::BT470BG:
39 case gfx::ColorSpace::MatrixID::SMPTE170M:
40 format.VideoTransferMatrix = DXVA2_VideoTransferMatrix_BT601;
41 break;
42 case gfx::ColorSpace::MatrixID::SMPTE240M:
43 format.VideoTransferMatrix = DXVA2_VideoTransferMatrix_SMPTE240M;
44 break;
45
46 case gfx::ColorSpace::MatrixID::RGB:
47 case gfx::ColorSpace::MatrixID::UNSPECIFIED:
48 case gfx::ColorSpace::MatrixID::RESERVED:
49 case gfx::ColorSpace::MatrixID::FCC:
50 case gfx::ColorSpace::MatrixID::YCOCG:
51 case gfx::ColorSpace::MatrixID::BT2020_NCL:
52 case gfx::ColorSpace::MatrixID::BT2020_CL:
53 case gfx::ColorSpace::MatrixID::YDZDX:
54 case gfx::ColorSpace::MatrixID::UNKNOWN:
55 // Not handled
56 break;
57 }
58
59 switch (color_space.primaries_) {
60 case gfx::ColorSpace::PrimaryID::BT709:
61 format.VideoPrimaries = DXVA2_VideoPrimaries_BT709;
62 break;
63 case gfx::ColorSpace::PrimaryID::BT470M:
64 format.VideoPrimaries = DXVA2_VideoPrimaries_BT470_2_SysM;
65 break;
66 case gfx::ColorSpace::PrimaryID::BT470BG:
67 format.VideoPrimaries = DXVA2_VideoPrimaries_BT470_2_SysBG;
68 break;
69 case gfx::ColorSpace::PrimaryID::SMPTE170M:
70 format.VideoPrimaries = DXVA2_VideoPrimaries_SMPTE170M;
71 break;
72 case gfx::ColorSpace::PrimaryID::SMPTE240M:
73 format.VideoPrimaries = DXVA2_VideoPrimaries_SMPTE240M;
74 break;
75
76 case gfx::ColorSpace::PrimaryID::RESERVED0:
77 case gfx::ColorSpace::PrimaryID::UNSPECIFIED:
78 case gfx::ColorSpace::PrimaryID::RESERVED:
79 case gfx::ColorSpace::PrimaryID::FILM:
80 case gfx::ColorSpace::PrimaryID::BT2020:
81 case gfx::ColorSpace::PrimaryID::SMPTEST428_1:
82 case gfx::ColorSpace::PrimaryID::SMPTEST431_2:
83 case gfx::ColorSpace::PrimaryID::SMPTEST432_1:
84 case gfx::ColorSpace::PrimaryID::UNKNOWN:
85 case gfx::ColorSpace::PrimaryID::XYZ_D50:
86 case gfx::ColorSpace::PrimaryID::CUSTOM:
87 // Not handled
88 break;
89 }
90
91 switch (color_space.transfer_) {
92 case gfx::ColorSpace::TransferID::BT709:
93 case gfx::ColorSpace::TransferID::SMPTE170M:
94 format.VideoTransferFunction = DXVA2_VideoTransFunc_709;
95 break;
96 case gfx::ColorSpace::TransferID::SMPTE240M:
97 format.VideoTransferFunction = DXVA2_VideoTransFunc_240M;
98 break;
99 case gfx::ColorSpace::TransferID::GAMMA22:
100 format.VideoTransferFunction = DXVA2_VideoTransFunc_22;
101 break;
102 case gfx::ColorSpace::TransferID::GAMMA28:
103 format.VideoTransferFunction = DXVA2_VideoTransFunc_28;
104 break;
105 case gfx::ColorSpace::TransferID::LINEAR:
106 format.VideoTransferFunction = DXVA2_VideoTransFunc_10;
107 break;
108 case gfx::ColorSpace::TransferID::IEC61966_2_1:
109 format.VideoTransferFunction = DXVA2_VideoTransFunc_sRGB;
110 break;
111
112 case gfx::ColorSpace::TransferID::RESERVED0:
113 case gfx::ColorSpace::TransferID::UNSPECIFIED:
114 case gfx::ColorSpace::TransferID::RESERVED:
115 case gfx::ColorSpace::TransferID::LOG:
116 case gfx::ColorSpace::TransferID::LOG_SQRT:
117 case gfx::ColorSpace::TransferID::IEC61966_2_4:
118 case gfx::ColorSpace::TransferID::BT1361_ECG:
119 case gfx::ColorSpace::TransferID::BT2020_10:
120 case gfx::ColorSpace::TransferID::BT2020_12:
121 case gfx::ColorSpace::TransferID::SMPTEST2084:
122 case gfx::ColorSpace::TransferID::SMPTEST428_1:
123 case gfx::ColorSpace::TransferID::ARIB_STD_B67:
124 case gfx::ColorSpace::TransferID::UNKNOWN:
125 case gfx::ColorSpace::TransferID::GAMMA24:
126 case gfx::ColorSpace::TransferID::SMPTEST2084_NON_HDR:
127 case gfx::ColorSpace::TransferID::CUSTOM:
128 // Not handled
129 break;
130 }
131
132 return format;
133 }
134
135 } // namespace gfx
OLDNEW
« media/gpu/dxva_video_decode_accelerator_win.cc ('K') | « ui/gfx/color_space_win.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698