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

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

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

Powered by Google App Engine
This is Rietveld 408576698