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

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

Issue 2697863003: color: Clarify default behaviors (Closed)
Patch Set: color: Remove redundant PrimaryID/TransferID/MatrixID values 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
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
28 case gfx::ColorSpace::RangeID::UNSPECIFIED:
29 case gfx::ColorSpace::RangeID::DERIVED: 27 case gfx::ColorSpace::RangeID::DERIVED:
30 // Not handled 28 // Not handled
31 break; 29 break;
32 } 30 }
33 31
34 switch (color_space.matrix_) { 32 switch (color_space.matrix_) {
35 case gfx::ColorSpace::MatrixID::BT709: 33 case gfx::ColorSpace::MatrixID::BT709:
36 format.VideoTransferMatrix = DXVA2_VideoTransferMatrix_BT709; 34 format.VideoTransferMatrix = DXVA2_VideoTransferMatrix_BT709;
37 break; 35 break;
38 case gfx::ColorSpace::MatrixID::BT470BG: 36 case gfx::ColorSpace::MatrixID::BT470BG:
39 case gfx::ColorSpace::MatrixID::SMPTE170M: 37 case gfx::ColorSpace::MatrixID::SMPTE170M:
40 format.VideoTransferMatrix = DXVA2_VideoTransferMatrix_BT601; 38 format.VideoTransferMatrix = DXVA2_VideoTransferMatrix_BT601;
41 break; 39 break;
42 case gfx::ColorSpace::MatrixID::SMPTE240M: 40 case gfx::ColorSpace::MatrixID::SMPTE240M:
43 format.VideoTransferMatrix = DXVA2_VideoTransferMatrix_SMPTE240M; 41 format.VideoTransferMatrix = DXVA2_VideoTransferMatrix_SMPTE240M;
44 break; 42 break;
45 43
46 case gfx::ColorSpace::MatrixID::RGB: 44 case gfx::ColorSpace::MatrixID::RGB:
47 case gfx::ColorSpace::MatrixID::UNSPECIFIED:
48 case gfx::ColorSpace::MatrixID::RESERVED:
49 case gfx::ColorSpace::MatrixID::FCC: 45 case gfx::ColorSpace::MatrixID::FCC:
50 case gfx::ColorSpace::MatrixID::YCOCG: 46 case gfx::ColorSpace::MatrixID::YCOCG:
51 case gfx::ColorSpace::MatrixID::BT2020_NCL: 47 case gfx::ColorSpace::MatrixID::BT2020_NCL:
52 case gfx::ColorSpace::MatrixID::BT2020_CL: 48 case gfx::ColorSpace::MatrixID::BT2020_CL:
53 case gfx::ColorSpace::MatrixID::YDZDX: 49 case gfx::ColorSpace::MatrixID::YDZDX:
54 case gfx::ColorSpace::MatrixID::UNKNOWN:
55 // Not handled 50 // Not handled
56 break; 51 break;
57 } 52 }
58 53
59 switch (color_space.primaries_) { 54 switch (color_space.primaries_) {
60 case gfx::ColorSpace::PrimaryID::BT709: 55 case gfx::ColorSpace::PrimaryID::BT709:
61 format.VideoPrimaries = DXVA2_VideoPrimaries_BT709; 56 format.VideoPrimaries = DXVA2_VideoPrimaries_BT709;
62 break; 57 break;
63 case gfx::ColorSpace::PrimaryID::BT470M: 58 case gfx::ColorSpace::PrimaryID::BT470M:
64 format.VideoPrimaries = DXVA2_VideoPrimaries_BT470_2_SysM; 59 format.VideoPrimaries = DXVA2_VideoPrimaries_BT470_2_SysM;
65 break; 60 break;
66 case gfx::ColorSpace::PrimaryID::BT470BG: 61 case gfx::ColorSpace::PrimaryID::BT470BG:
67 format.VideoPrimaries = DXVA2_VideoPrimaries_BT470_2_SysBG; 62 format.VideoPrimaries = DXVA2_VideoPrimaries_BT470_2_SysBG;
68 break; 63 break;
69 case gfx::ColorSpace::PrimaryID::SMPTE170M: 64 case gfx::ColorSpace::PrimaryID::SMPTE170M:
70 format.VideoPrimaries = DXVA2_VideoPrimaries_SMPTE170M; 65 format.VideoPrimaries = DXVA2_VideoPrimaries_SMPTE170M;
71 break; 66 break;
72 case gfx::ColorSpace::PrimaryID::SMPTE240M: 67 case gfx::ColorSpace::PrimaryID::SMPTE240M:
73 format.VideoPrimaries = DXVA2_VideoPrimaries_SMPTE240M; 68 format.VideoPrimaries = DXVA2_VideoPrimaries_SMPTE240M;
74 break; 69 break;
75 70
76 case gfx::ColorSpace::PrimaryID::RESERVED0:
77 case gfx::ColorSpace::PrimaryID::UNSPECIFIED:
78 case gfx::ColorSpace::PrimaryID::RESERVED:
79 case gfx::ColorSpace::PrimaryID::FILM: 71 case gfx::ColorSpace::PrimaryID::FILM:
80 case gfx::ColorSpace::PrimaryID::BT2020: 72 case gfx::ColorSpace::PrimaryID::BT2020:
81 case gfx::ColorSpace::PrimaryID::SMPTEST428_1: 73 case gfx::ColorSpace::PrimaryID::SMPTEST428_1:
82 case gfx::ColorSpace::PrimaryID::SMPTEST431_2: 74 case gfx::ColorSpace::PrimaryID::SMPTEST431_2:
83 case gfx::ColorSpace::PrimaryID::SMPTEST432_1: 75 case gfx::ColorSpace::PrimaryID::SMPTEST432_1:
84 case gfx::ColorSpace::PrimaryID::UNKNOWN: 76 case gfx::ColorSpace::PrimaryID::INVALID:
85 case gfx::ColorSpace::PrimaryID::XYZ_D50: 77 case gfx::ColorSpace::PrimaryID::XYZ_D50:
86 case gfx::ColorSpace::PrimaryID::ADOBE_RGB: 78 case gfx::ColorSpace::PrimaryID::ADOBE_RGB:
87 case gfx::ColorSpace::PrimaryID::CUSTOM: 79 case gfx::ColorSpace::PrimaryID::CUSTOM:
88 // Not handled 80 // Not handled
89 break; 81 break;
90 } 82 }
91 83
92 switch (color_space.transfer_) { 84 switch (color_space.transfer_) {
93 case gfx::ColorSpace::TransferID::BT709: 85 case gfx::ColorSpace::TransferID::BT709:
94 case gfx::ColorSpace::TransferID::SMPTE170M: 86 case gfx::ColorSpace::TransferID::SMPTE170M:
95 format.VideoTransferFunction = DXVA2_VideoTransFunc_709; 87 format.VideoTransferFunction = DXVA2_VideoTransFunc_709;
96 break; 88 break;
97 case gfx::ColorSpace::TransferID::SMPTE240M: 89 case gfx::ColorSpace::TransferID::SMPTE240M:
98 format.VideoTransferFunction = DXVA2_VideoTransFunc_240M; 90 format.VideoTransferFunction = DXVA2_VideoTransFunc_240M;
99 break; 91 break;
100 case gfx::ColorSpace::TransferID::GAMMA22: 92 case gfx::ColorSpace::TransferID::GAMMA22:
101 format.VideoTransferFunction = DXVA2_VideoTransFunc_22; 93 format.VideoTransferFunction = DXVA2_VideoTransFunc_22;
102 break; 94 break;
103 case gfx::ColorSpace::TransferID::GAMMA28: 95 case gfx::ColorSpace::TransferID::GAMMA28:
104 format.VideoTransferFunction = DXVA2_VideoTransFunc_28; 96 format.VideoTransferFunction = DXVA2_VideoTransFunc_28;
105 break; 97 break;
106 case gfx::ColorSpace::TransferID::LINEAR: 98 case gfx::ColorSpace::TransferID::LINEAR:
107 case gfx::ColorSpace::TransferID::LINEAR_HDR: 99 case gfx::ColorSpace::TransferID::LINEAR_HDR:
108 format.VideoTransferFunction = DXVA2_VideoTransFunc_10; 100 format.VideoTransferFunction = DXVA2_VideoTransFunc_10;
109 break; 101 break;
110 case gfx::ColorSpace::TransferID::IEC61966_2_1: 102 case gfx::ColorSpace::TransferID::IEC61966_2_1:
111 format.VideoTransferFunction = DXVA2_VideoTransFunc_sRGB; 103 format.VideoTransferFunction = DXVA2_VideoTransFunc_sRGB;
112 break; 104 break;
113 105
114 case gfx::ColorSpace::TransferID::RESERVED0:
115 case gfx::ColorSpace::TransferID::UNSPECIFIED:
116 case gfx::ColorSpace::TransferID::RESERVED:
117 case gfx::ColorSpace::TransferID::LOG: 106 case gfx::ColorSpace::TransferID::LOG:
118 case gfx::ColorSpace::TransferID::LOG_SQRT: 107 case gfx::ColorSpace::TransferID::LOG_SQRT:
119 case gfx::ColorSpace::TransferID::IEC61966_2_4: 108 case gfx::ColorSpace::TransferID::IEC61966_2_4:
120 case gfx::ColorSpace::TransferID::BT1361_ECG: 109 case gfx::ColorSpace::TransferID::BT1361_ECG:
121 case gfx::ColorSpace::TransferID::BT2020_10: 110 case gfx::ColorSpace::TransferID::BT2020_10:
122 case gfx::ColorSpace::TransferID::BT2020_12: 111 case gfx::ColorSpace::TransferID::BT2020_12:
123 case gfx::ColorSpace::TransferID::SMPTEST2084: 112 case gfx::ColorSpace::TransferID::SMPTEST2084:
124 case gfx::ColorSpace::TransferID::SMPTEST428_1: 113 case gfx::ColorSpace::TransferID::SMPTEST428_1:
125 case gfx::ColorSpace::TransferID::ARIB_STD_B67: 114 case gfx::ColorSpace::TransferID::ARIB_STD_B67:
126 case gfx::ColorSpace::TransferID::UNKNOWN: 115 case gfx::ColorSpace::TransferID::INVALID:
127 case gfx::ColorSpace::TransferID::GAMMA24: 116 case gfx::ColorSpace::TransferID::GAMMA24:
128 case gfx::ColorSpace::TransferID::SMPTEST2084_NON_HDR: 117 case gfx::ColorSpace::TransferID::SMPTEST2084_NON_HDR:
129 case gfx::ColorSpace::TransferID::CUSTOM: 118 case gfx::ColorSpace::TransferID::CUSTOM:
130 // Not handled 119 // Not handled
131 break; 120 break;
132 } 121 }
133 122
134 return format; 123 return format;
135 } 124 }
136 125
137 } // namespace gfx 126 } // namespace gfx
OLDNEW
« ui/gfx/color_space.cc ('K') | « 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