2 * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the License);
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an AS IS BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 using System.Diagnostics;
20 namespace Tizen.Multimedia.Vision
23 /// Specifies colorspaces for MediaVision.
25 internal enum VisionColorSpace
28 /// The colorspace type is Y800.
32 /// The colorspace type is I420.
36 /// The colorspace type is NV12.
40 /// The colorspace type is YV12.
44 /// The colorspace type is NV21.
48 /// The colorspace type is YUYV.
52 /// The colorspace type is UYVY.
56 /// The colorspace type is 422P.
60 /// The colorspace type is RGB565.
64 /// The colorspace type is RGB888.
68 /// The colorspace type is RGBA.
73 internal static class VisionColorSpaceExtensions
75 internal static ColorSpace ToCommonColorSpace(this VisionColorSpace value)
77 Debug.Assert(Enum.IsDefined(typeof(VisionColorSpace), value));
81 case VisionColorSpace.Y800: return ColorSpace.Y800;
83 case VisionColorSpace.I420: return ColorSpace.I420;
85 case VisionColorSpace.NV12: return ColorSpace.NV12;
87 case VisionColorSpace.YV12: return ColorSpace.YV12;
89 case VisionColorSpace.NV21: return ColorSpace.NV21;
91 case VisionColorSpace.Yuyv: return ColorSpace.Yuyv;
93 case VisionColorSpace.Uyvy: return ColorSpace.Uyvy;
95 case VisionColorSpace.Yuv422P: return ColorSpace.Yuv422P;
97 case VisionColorSpace.Rgb565: return ColorSpace.Rgb565;
99 case VisionColorSpace.Rgb888: return ColorSpace.Rgb888;
101 case VisionColorSpace.Rgba: return ColorSpace.Rgba8888;
104 throw new NotSupportedException("Implementation does not support the specified value." + value.ToString());
108 internal static class VisionColorSpaceSupport
110 internal static VisionColorSpace ToVisionColorSpace(this ColorSpace colorSpace)
112 ValidationUtil.ValidateEnum(typeof(ColorSpace), colorSpace, nameof(colorSpace));
116 case ColorSpace.Y800: return VisionColorSpace.Y800;
118 case ColorSpace.I420: return VisionColorSpace.I420;
120 case ColorSpace.NV12: return VisionColorSpace.NV12;
122 case ColorSpace.YV12: return VisionColorSpace.YV12;
124 case ColorSpace.NV21: return VisionColorSpace.NV21;
126 case ColorSpace.Yuyv: return VisionColorSpace.Yuyv;
128 case ColorSpace.Uyvy: return VisionColorSpace.Uyvy;
130 case ColorSpace.Yuv422P: return VisionColorSpace.Yuv422P;
132 case ColorSpace.Rgb565: return VisionColorSpace.Rgb565;
134 case ColorSpace.Rgb888: return VisionColorSpace.Rgb888;
136 case ColorSpace.Rgba8888: return VisionColorSpace.Rgba;
139 throw new NotSupportedException("Implementation does not support the specified value." + colorSpace.ToString());