PipeWire 1.6.8

Loading...
Searching...
No Matches
color.h
Go to the documentation of this file.
1/* Simple Plugin API */
2/* SPDX-FileCopyrightText: Copyright © 2018 Wim Taymans */
3/* SPDX-License-Identifier: MIT */
4
5#ifndef SPA_VIDEO_COLOR_H
6#define SPA_VIDEO_COLOR_H
7
8#ifdef __cplusplus
9 extern "C" {
10#endif
11
16
21 enum spa_video_color_range {
22 SPA_VIDEO_COLOR_RANGE_UNKNOWN = 0,
23 SPA_VIDEO_COLOR_RANGE_0_255,
24 SPA_VIDEO_COLOR_RANGE_16_235
26};
27
32 enum spa_video_color_matrix {
33 SPA_VIDEO_COLOR_MATRIX_UNKNOWN = 0,
34 SPA_VIDEO_COLOR_MATRIX_RGB,
35 SPA_VIDEO_COLOR_MATRIX_FCC,
36 SPA_VIDEO_COLOR_MATRIX_BT709,
37 SPA_VIDEO_COLOR_MATRIX_BT601,
38 SPA_VIDEO_COLOR_MATRIX_SMPTE240M,
39 SPA_VIDEO_COLOR_MATRIX_BT2020,
40};
41
46 enum spa_video_transfer_function {
47 SPA_VIDEO_TRANSFER_UNKNOWN = 0,
48 SPA_VIDEO_TRANSFER_GAMMA10,
49 SPA_VIDEO_TRANSFER_GAMMA18,
50 SPA_VIDEO_TRANSFER_GAMMA20,
51 SPA_VIDEO_TRANSFER_GAMMA22,
52 SPA_VIDEO_TRANSFER_BT709,
53 SPA_VIDEO_TRANSFER_SMPTE240M,
54 SPA_VIDEO_TRANSFER_SRGB,
55 SPA_VIDEO_TRANSFER_GAMMA28,
56 SPA_VIDEO_TRANSFER_LOG100,
57 SPA_VIDEO_TRANSFER_LOG316,
58 SPA_VIDEO_TRANSFER_BT2020_12,
61 SPA_VIDEO_TRANSFER_ADOBERGB,
62 SPA_VIDEO_TRANSFER_BT2020_10,
65 SPA_VIDEO_TRANSFER_SMPTE2084,
67 SPA_VIDEO_TRANSFER_ARIB_STD_B67,
69 SPA_VIDEO_TRANSFER_BT601,
72};
73
78 enum spa_video_color_primaries {
79 SPA_VIDEO_COLOR_PRIMARIES_UNKNOWN = 0,
80 SPA_VIDEO_COLOR_PRIMARIES_BT709,
81 SPA_VIDEO_COLOR_PRIMARIES_BT470M,
82 SPA_VIDEO_COLOR_PRIMARIES_BT470BG,
83 SPA_VIDEO_COLOR_PRIMARIES_SMPTE170M,
84 SPA_VIDEO_COLOR_PRIMARIES_SMPTE240M,
85 SPA_VIDEO_COLOR_PRIMARIES_FILM,
86 SPA_VIDEO_COLOR_PRIMARIES_BT2020,
87 SPA_VIDEO_COLOR_PRIMARIES_ADOBERGB,
88 SPA_VIDEO_COLOR_PRIMARIES_SMPTEST428,
89 SPA_VIDEO_COLOR_PRIMARIES_SMPTERP431,
90 SPA_VIDEO_COLOR_PRIMARIES_SMPTEEG432,
91 SPA_VIDEO_COLOR_PRIMARIES_EBU3213,
92};
93
98
99 struct spa_video_colorimetry {
100 enum spa_video_color_range range;
103 enum spa_video_color_matrix matrix;
104 * non-linear RGB (R'G'B') */
105 enum spa_video_transfer_function transfer;
107 enum spa_video_color_primaries primaries;
109};
110
114
115#ifdef __cplusplus
116} /* extern "C" */
117#endif
118
119#endif /* SPA_VIDEO_COLOR_H */
spa_video_color_matrix
spa_video_color_matrix
The color matrix is used to convert between Y'PbPr and non-linear RGB (R'G'B').
Definition color.h:37
spa_video_color_range
spa_video_color_range
Possible color range values.
Definition color.h:26
spa_video_color_primaries
spa_video_color_primaries
The color primaries define the how to transform linear RGB values to and from the CIE XYZ colorspace.
Definition color.h:83
spa_video_transfer_function
spa_video_transfer_function
The video transfer function defines the formula for converting between non-linear RGB (R'G'B') and li...
Definition color.h:51
SPA_VIDEO_COLOR_MATRIX_FCC
@ SPA_VIDEO_COLOR_MATRIX_FCC
FCC color matrix.
Definition color.h:40
SPA_VIDEO_COLOR_MATRIX_BT709
@ SPA_VIDEO_COLOR_MATRIX_BT709
ITU BT.709 color matrix.
Definition color.h:41
SPA_VIDEO_COLOR_MATRIX_UNKNOWN
@ SPA_VIDEO_COLOR_MATRIX_UNKNOWN
unknown matrix
Definition color.h:38
SPA_VIDEO_COLOR_MATRIX_SMPTE240M
@ SPA_VIDEO_COLOR_MATRIX_SMPTE240M
SMTPE 240M color matrix.
Definition color.h:43
SPA_VIDEO_COLOR_MATRIX_BT601
@ SPA_VIDEO_COLOR_MATRIX_BT601
ITU BT.601 color matrix.
Definition color.h:42
SPA_VIDEO_COLOR_MATRIX_RGB
@ SPA_VIDEO_COLOR_MATRIX_RGB
identity matrix
Definition color.h:39
SPA_VIDEO_COLOR_MATRIX_BT2020
@ SPA_VIDEO_COLOR_MATRIX_BT2020
ITU-R BT.2020 color matrix.
Definition color.h:44
SPA_VIDEO_COLOR_RANGE_16_235
@ SPA_VIDEO_COLOR_RANGE_16_235
[16..235] for 8 bit components.
Definition color.h:29
SPA_VIDEO_COLOR_RANGE_UNKNOWN
@ SPA_VIDEO_COLOR_RANGE_UNKNOWN
unknown range
Definition color.h:27
SPA_VIDEO_COLOR_RANGE_0_255
@ SPA_VIDEO_COLOR_RANGE_0_255
[0..255] for 8 bit components
Definition color.h:28
SPA_VIDEO_COLOR_PRIMARIES_BT709
@ SPA_VIDEO_COLOR_PRIMARIES_BT709
BT709 primaries.
Definition color.h:85
SPA_VIDEO_COLOR_PRIMARIES_UNKNOWN
@ SPA_VIDEO_COLOR_PRIMARIES_UNKNOWN
unknown color primaries
Definition color.h:84
SPA_VIDEO_COLOR_PRIMARIES_SMPTE240M
@ SPA_VIDEO_COLOR_PRIMARIES_SMPTE240M
SMPTE240M primaries.
Definition color.h:89
SPA_VIDEO_COLOR_PRIMARIES_BT470M
@ SPA_VIDEO_COLOR_PRIMARIES_BT470M
BT470M primaries.
Definition color.h:86
SPA_VIDEO_COLOR_PRIMARIES_ADOBERGB
@ SPA_VIDEO_COLOR_PRIMARIES_ADOBERGB
Adobe RGB primaries.
Definition color.h:92
SPA_VIDEO_COLOR_PRIMARIES_SMPTERP431
@ SPA_VIDEO_COLOR_PRIMARIES_SMPTERP431
SMPTE RP 431 primaries (ST 431-2 (2011) / DCI P3).
Definition color.h:94
SPA_VIDEO_COLOR_PRIMARIES_SMPTE170M
@ SPA_VIDEO_COLOR_PRIMARIES_SMPTE170M
SMPTE170M primaries.
Definition color.h:88
SPA_VIDEO_COLOR_PRIMARIES_FILM
@ SPA_VIDEO_COLOR_PRIMARIES_FILM
Generic film.
Definition color.h:90
SPA_VIDEO_COLOR_PRIMARIES_BT2020
@ SPA_VIDEO_COLOR_PRIMARIES_BT2020
BT2020 primaries.
Definition color.h:91
SPA_VIDEO_COLOR_PRIMARIES_SMPTEST428
@ SPA_VIDEO_COLOR_PRIMARIES_SMPTEST428
SMPTE ST 428 primaries (CIE 1931 XYZ).
Definition color.h:93
SPA_VIDEO_COLOR_PRIMARIES_SMPTEEG432
@ SPA_VIDEO_COLOR_PRIMARIES_SMPTEEG432
SMPTE EG 432 primaries (ST 432-1 (2010) / P3 D65).
Definition color.h:95
SPA_VIDEO_COLOR_PRIMARIES_BT470BG
@ SPA_VIDEO_COLOR_PRIMARIES_BT470BG
BT470BG primaries.
Definition color.h:87
SPA_VIDEO_COLOR_PRIMARIES_EBU3213
@ SPA_VIDEO_COLOR_PRIMARIES_EBU3213
EBU 3213 primaries (JEDEC P22 phosphors).
Definition color.h:96
SPA_VIDEO_TRANSFER_ADOBERGB
@ SPA_VIDEO_TRANSFER_ADOBERGB
Gamma 2.19921875.
Definition color.h:66
SPA_VIDEO_TRANSFER_LOG316
@ SPA_VIDEO_TRANSFER_LOG316
Logarithmic transfer characteristic 316.22777:1 range.
Definition color.h:62
SPA_VIDEO_TRANSFER_SRGB
@ SPA_VIDEO_TRANSFER_SRGB
Gamma 2.4 curve with a linear segment in the lower range.
Definition color.h:59
SPA_VIDEO_TRANSFER_SMPTE240M
@ SPA_VIDEO_TRANSFER_SMPTE240M
Gamma 2.2 curve with a linear segment in the lower range.
Definition color.h:58
SPA_VIDEO_TRANSFER_GAMMA28
@ SPA_VIDEO_TRANSFER_GAMMA28
Gamma 2.8 curve.
Definition color.h:60
SPA_VIDEO_TRANSFER_GAMMA10
@ SPA_VIDEO_TRANSFER_GAMMA10
linear RGB, gamma 1.0 curve
Definition color.h:53
SPA_VIDEO_TRANSFER_BT2020_12
@ SPA_VIDEO_TRANSFER_BT2020_12
Gamma 2.2 curve with a linear segment in the lower range.
Definition color.h:63
SPA_VIDEO_TRANSFER_GAMMA22
@ SPA_VIDEO_TRANSFER_GAMMA22
Gamma 2.2 curve.
Definition color.h:56
SPA_VIDEO_TRANSFER_BT709
@ SPA_VIDEO_TRANSFER_BT709
Gamma 2.2 curve with a linear segment in the lower range.
Definition color.h:57
SPA_VIDEO_TRANSFER_BT2020_10
@ SPA_VIDEO_TRANSFER_BT2020_10
Rec.
Definition color.h:67
SPA_VIDEO_TRANSFER_UNKNOWN
@ SPA_VIDEO_TRANSFER_UNKNOWN
unknown transfer function
Definition color.h:52
SPA_VIDEO_TRANSFER_SMPTE2084
@ SPA_VIDEO_TRANSFER_SMPTE2084
SMPTE ST 2084 for 10, 12, 14, and 16-bit systems.
Definition color.h:70
SPA_VIDEO_TRANSFER_BT601
@ SPA_VIDEO_TRANSFER_BT601
also known as SMPTE170M / ITU-R BT1358 525 or 625 / ITU-R BT1700 NTSC Functionally the same as the va...
Definition color.h:74
SPA_VIDEO_TRANSFER_LOG100
@ SPA_VIDEO_TRANSFER_LOG100
Logarithmic transfer characteristic 100:1 range.
Definition color.h:61
SPA_VIDEO_TRANSFER_ARIB_STD_B67
@ SPA_VIDEO_TRANSFER_ARIB_STD_B67
Association of Radio Industries and Businesses (ARIB) STD-B67 and Rec.
Definition color.h:72
SPA_VIDEO_TRANSFER_GAMMA20
@ SPA_VIDEO_TRANSFER_GAMMA20
Gamma 2.0 curve.
Definition color.h:55
SPA_VIDEO_TRANSFER_GAMMA18
@ SPA_VIDEO_TRANSFER_GAMMA18
Gamma 1.8 curve.
Definition color.h:54
spa_video_colorimetry
spa_video_colorimetry:
Definition color.h:104
spa_video_colorimetry::range
enum spa_video_color_range range
The color range.
Definition color.h:105
spa_video_colorimetry::matrix
enum spa_video_color_matrix matrix
the color matrix.
Definition color.h:108
spa_video_colorimetry::transfer
enum spa_video_transfer_function transfer
The transfer function.
Definition color.h:110
spa_video_colorimetry::primaries
enum spa_video_color_primaries primaries
Color primaries.
Definition color.h:112