PipeWire  0.3.66
video/raw.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_RAW_H
6 #define SPA_VIDEO_RAW_H
7 
8 #ifdef __cplusplus
9 extern "C" {
10 #endif
11 
17 #include <spa/param/format.h>
18 #include <spa/param/video/chroma.h>
19 #include <spa/param/video/color.h>
21 
22 #define SPA_VIDEO_MAX_PLANES 4
23 #define SPA_VIDEO_MAX_COMPONENTS 4
24 
36 enum spa_video_format {
39 
116 
119 
129  /* Aliases */
131 };
132 
136 enum spa_video_flags {
138  SPA_VIDEO_FLAG_VARIABLE_FPS = (1 << 0),
141  SPA_VIDEO_FLAG_MODIFIER = (1 << 2),
142 };
143 
164 };
165 
168 struct spa_video_info_raw {
169  enum spa_video_format format;
170  uint32_t flags;
171  uint64_t modifier;
173  struct spa_rectangle size;
174  struct spa_fraction framerate;
177  uint32_t views;
189 };
190 
191 #define SPA_VIDEO_INFO_RAW_INIT(...) ((struct spa_video_info_raw) { __VA_ARGS__ })
192 
197 #ifdef __cplusplus
198 } /* extern "C" */
199 #endif
200 
201 #endif /* SPA_VIDEO_RAW_H */
spa/param/video/chroma.h
spa/param/video/color.h
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_flags
Extra video flags.
Definition: video/raw.h:143
spa_video_color_range
Possible color range values.
Definition: color.h:26
spa_video_interlace_mode
The possible values of the spa_video_interlace_mode describing the interlace mode of the stream.
Definition: video/raw.h:155
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:73
spa_video_multiview_flags
spa_video_multiview_flags are used to indicate extra properties of a stereo/multiview stream beyond t...
Definition: multiview.h:81
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_chroma_site
Various Chroma settings.
Definition: chroma.h:24
spa_video_format
Video formats.
Definition: video/raw.h:43
spa_video_multiview_mode
All possible stereoscopic 3D and multiview representations.
Definition: multiview.h:27
@ SPA_VIDEO_FLAG_PREMULTIPLIED_ALPHA
Each color has been scaled by the alpha value.
Definition: video/raw.h:147
@ SPA_VIDEO_FLAG_MODIFIER
use the format modifier
Definition: video/raw.h:148
@ SPA_VIDEO_FLAG_VARIABLE_FPS
a variable fps is selected, fps_n and fps_d denote the maximum fps of the video
Definition: video/raw.h:145
@ SPA_VIDEO_FLAG_NONE
no flags
Definition: video/raw.h:144
@ SPA_VIDEO_INTERLACE_MODE_MIXED
frames contains both interlaced and progressive video, the buffer flags describe the frame and fields...
Definition: video/raw.h:159
@ SPA_VIDEO_INTERLACE_MODE_FIELDS
2 fields are stored in one buffer, use the frame ID to get access to the required field.
Definition: video/raw.h:162
@ SPA_VIDEO_INTERLACE_MODE_INTERLEAVED
2 fields are interleaved in one video frame.
Definition: video/raw.h:157
@ SPA_VIDEO_INTERLACE_MODE_PROGRESSIVE
all frames are progressive
Definition: video/raw.h:156
@ SPA_VIDEO_FORMAT_I422_10LE
Definition: video/raw.h:90
@ SPA_VIDEO_FORMAT_RGBA_102LE
32-bit R:G:B:A 10:10:10:2 little endian
Definition: video/raw.h:133
@ SPA_VIDEO_FORMAT_NV16
Definition: video/raw.h:96
@ SPA_VIDEO_FORMAT_IYU2
Definition: video/raw.h:108
@ SPA_VIDEO_FORMAT_P010_10BE
Definition: video/raw.h:106
@ SPA_VIDEO_FORMAT_GRAY8
Definition: video/raw.h:70
@ SPA_VIDEO_FORMAT_P010_10LE
Definition: video/raw.h:107
@ SPA_VIDEO_FORMAT_ENCODED
Definition: video/raw.h:45
@ SPA_VIDEO_FORMAT_GBR_10LE
Definition: video/raw.h:95
@ SPA_VIDEO_FORMAT_GBRA_12LE
Definition: video/raw.h:116
@ SPA_VIDEO_FORMAT_ABGR_210LE
32-bit A:B:G:R 2:10:10:10 little endian
Definition: video/raw.h:132
@ SPA_VIDEO_FORMAT_IYU1
Definition: video/raw.h:83
@ SPA_VIDEO_FORMAT_xRGB
Definition: video/raw.h:54
@ SPA_VIDEO_FORMAT_A444_10LE
Definition: video/raw.h:104
@ SPA_VIDEO_FORMAT_GRAY16_LE
Definition: video/raw.h:72
@ SPA_VIDEO_FORMAT_I420_12LE
Definition: video/raw.h:118
@ SPA_VIDEO_FORMAT_GBR_10BE
Definition: video/raw.h:94
@ SPA_VIDEO_FORMAT_v308
Definition: video/raw.h:73
@ SPA_VIDEO_FORMAT_Y42B
Definition: video/raw.h:63
@ SPA_VIDEO_FORMAT_Y444_12BE
Definition: video/raw.h:121
@ SPA_VIDEO_FORMAT_Y444_12LE
Definition: video/raw.h:122
@ SPA_VIDEO_FORMAT_RGB16
Definition: video/raw.h:74
@ SPA_VIDEO_FORMAT_UNKNOWN
Definition: video/raw.h:44
@ SPA_VIDEO_FORMAT_YVU9
Definition: video/raw.h:82
@ SPA_VIDEO_FORMAT_I420_10LE
Definition: video/raw.h:88
@ SPA_VIDEO_FORMAT_NV21
Definition: video/raw.h:69
@ SPA_VIDEO_FORMAT_A444_10BE
Definition: video/raw.h:103
@ SPA_VIDEO_FORMAT_ARGB
Definition: video/raw.h:58
@ SPA_VIDEO_FORMAT_RGB15
Definition: video/raw.h:76
@ SPA_VIDEO_FORMAT_YUY2
Definition: video/raw.h:49
@ SPA_VIDEO_FORMAT_RGBx_102LE
32-bit R:G:B:x 10:10:10:2 little endian
Definition: video/raw.h:129
@ SPA_VIDEO_FORMAT_A422_10BE
Definition: video/raw.h:101
@ SPA_VIDEO_FORMAT_RGBA
Definition: video/raw.h:56
@ SPA_VIDEO_FORMAT_NV24
Definition: video/raw.h:97
@ SPA_VIDEO_FORMAT_Y444_10LE
Definition: video/raw.h:92
@ SPA_VIDEO_FORMAT_YUV9
Definition: video/raw.h:81
@ SPA_VIDEO_FORMAT_ABGR
Definition: video/raw.h:59
@ SPA_VIDEO_FORMAT_BGR15
Definition: video/raw.h:77
@ SPA_VIDEO_FORMAT_I422_12BE
Definition: video/raw.h:119
@ SPA_VIDEO_FORMAT_RGBA_F16
Definition: video/raw.h:124
@ SPA_VIDEO_FORMAT_Y444_10BE
Definition: video/raw.h:91
@ SPA_VIDEO_FORMAT_YVYU
Definition: video/raw.h:64
@ SPA_VIDEO_FORMAT_Y444
Definition: video/raw.h:65
@ SPA_VIDEO_FORMAT_xBGR
Definition: video/raw.h:55
@ SPA_VIDEO_FORMAT_ARGB64
Definition: video/raw.h:84
@ SPA_VIDEO_FORMAT_BGR
Definition: video/raw.h:61
@ SPA_VIDEO_FORMAT_ARGB_210LE
32-bit A:R:G:B 2:10:10:10 little endian
Definition: video/raw.h:131
@ SPA_VIDEO_FORMAT_RGBx
Definition: video/raw.h:52
@ SPA_VIDEO_FORMAT_A420_10LE
Definition: video/raw.h:100
@ SPA_VIDEO_FORMAT_NV12_64Z32
Definition: video/raw.h:98
@ SPA_VIDEO_FORMAT_A420_10BE
Definition: video/raw.h:99
@ SPA_VIDEO_FORMAT_BGRx
Definition: video/raw.h:53
@ SPA_VIDEO_FORMAT_v210
Definition: video/raw.h:66
@ SPA_VIDEO_FORMAT_GBR_12BE
Definition: video/raw.h:113
@ SPA_VIDEO_FORMAT_NV61
Definition: video/raw.h:105
@ SPA_VIDEO_FORMAT_AYUV64
Definition: video/raw.h:85
@ SPA_VIDEO_FORMAT_UYVP
Definition: video/raw.h:78
@ SPA_VIDEO_FORMAT_YV12
Definition: video/raw.h:48
@ SPA_VIDEO_FORMAT_I420
Definition: video/raw.h:47
@ SPA_VIDEO_FORMAT_GBRA_10LE
Definition: video/raw.h:112
@ SPA_VIDEO_FORMAT_NV12
Definition: video/raw.h:68
@ SPA_VIDEO_FORMAT_GRAY16_BE
Definition: video/raw.h:71
@ SPA_VIDEO_FORMAT_BGR16
Definition: video/raw.h:75
@ SPA_VIDEO_FORMAT_BGRA_102LE
32-bit B:G:R:A 10:10:10:2 little endian
Definition: video/raw.h:134
@ SPA_VIDEO_FORMAT_A420
Definition: video/raw.h:79
@ SPA_VIDEO_FORMAT_A422_10LE
Definition: video/raw.h:102
@ SPA_VIDEO_FORMAT_GBR
Definition: video/raw.h:93
@ SPA_VIDEO_FORMAT_GBRA_12BE
Definition: video/raw.h:115
@ SPA_VIDEO_FORMAT_v216
Definition: video/raw.h:67
@ SPA_VIDEO_FORMAT_BGRx_102LE
32-bit B:G:R:x 10:10:10:2 little endian
Definition: video/raw.h:130
@ SPA_VIDEO_FORMAT_xRGB_210LE
32-bit x:R:G:B 2:10:10:10 little endian
Definition: video/raw.h:127
@ SPA_VIDEO_FORMAT_UYVY
Definition: video/raw.h:50
@ SPA_VIDEO_FORMAT_GBRA_10BE
Definition: video/raw.h:111
@ SPA_VIDEO_FORMAT_RGBA_F32
Definition: video/raw.h:125
@ SPA_VIDEO_FORMAT_I420_12BE
Definition: video/raw.h:117
@ SPA_VIDEO_FORMAT_BGRA
Definition: video/raw.h:57
@ SPA_VIDEO_FORMAT_I422_10BE
Definition: video/raw.h:89
@ SPA_VIDEO_FORMAT_AYUV
Definition: video/raw.h:51
@ SPA_VIDEO_FORMAT_RGB8P
Definition: video/raw.h:80
@ SPA_VIDEO_FORMAT_GBRA
Definition: video/raw.h:110
@ SPA_VIDEO_FORMAT_DSP_F32
Definition: video/raw.h:137
@ SPA_VIDEO_FORMAT_xBGR_210LE
32-bit x:B:G:R 2:10:10:10 little endian
Definition: video/raw.h:128
@ SPA_VIDEO_FORMAT_GBR_12LE
Definition: video/raw.h:114
@ SPA_VIDEO_FORMAT_I420_10BE
Definition: video/raw.h:87
@ SPA_VIDEO_FORMAT_I422_12LE
Definition: video/raw.h:120
@ SPA_VIDEO_FORMAT_VYUY
Definition: video/raw.h:109
@ SPA_VIDEO_FORMAT_r210
Definition: video/raw.h:86
@ SPA_VIDEO_FORMAT_Y41B
Definition: video/raw.h:62
@ SPA_VIDEO_FORMAT_RGB
Definition: video/raw.h:60
spa/param/video/multiview.h
spa/param/format.h
Definition: defs.h:119
Definition: defs.h:98
Definition: video/raw.h:175
enum spa_video_color_primaries color_primaries
color primaries.
Definition: video/raw.h:195
enum spa_video_transfer_function transfer_function
the transfer function.
Definition: video/raw.h:194
enum spa_video_interlace_mode interlace_mode
the interlace mode
Definition: video/raw.h:185
struct spa_rectangle size
the frame size of the video
Definition: video/raw.h:180
enum spa_video_color_range color_range
the color range.
Definition: video/raw.h:190
struct spa_fraction pixel_aspect_ratio
the pixel aspect ratio
Definition: video/raw.h:186
enum spa_video_multiview_mode multiview_mode
multiview mode
Definition: video/raw.h:187
uint32_t views
the number of views in this video
Definition: video/raw.h:184
uint32_t flags
extra video flags
Definition: video/raw.h:177
uint64_t modifier
format modifier only used with DMA-BUF
Definition: video/raw.h:178
struct spa_fraction framerate
the framerate of the video, 0/1 means variable rate
Definition: video/raw.h:181
enum spa_video_multiview_flags multiview_flags
multiview flags
Definition: video/raw.h:188
enum spa_video_format format
the format
Definition: video/raw.h:176
enum spa_video_color_matrix color_matrix
the color matrix.
Definition: video/raw.h:192
struct spa_fraction max_framerate
the maximum framerate of the video.
Definition: video/raw.h:182
enum spa_video_chroma_site chroma_site
the chroma siting
Definition: video/raw.h:189