Support conversion to and from the XYZ color space.
[movit] / image_format.h
1 #ifndef _IMAGE_FORMAT_H
2 #define _IMAGE_FORMAT_H 1
3
4 enum MovitPixelFormat { FORMAT_RGB, FORMAT_RGBA, FORMAT_BGR, FORMAT_BGRA, FORMAT_GRAYSCALE };
5
6 enum ColorSpace {
7         COLORSPACE_INVALID = -1,  // For internal use.
8         COLORSPACE_sRGB = 0,
9         COLORSPACE_REC_709 = 0,  // Same as sRGB.
10         COLORSPACE_REC_601_525 = 1,
11         COLORSPACE_REC_601_625 = 2,
12         COLORSPACE_XYZ = 3,  // Mostly useful for testing and debugging.
13 };
14
15 enum GammaCurve {
16         GAMMA_INVALID = -1,  // For internal use.
17         GAMMA_LINEAR = 0,
18         GAMMA_sRGB = 1,
19         GAMMA_REC_601 = 2,
20         GAMMA_REC_709 = 2,  // Same as Rec. 601.
21 };
22
23 enum YCbCrLumaCoefficients {
24         YCBCR_REC_601 = 0,
25         YCBCR_REC_709 = 1,
26 };
27
28 struct ImageFormat {
29         ColorSpace color_space;
30         GammaCurve gamma_curve;
31 };
32
33 #endif  // !defined(_IMAGE_FORMAT_H)