PipeWire: multiview.h Source File

PipeWire 0.3.34

multiview.h
Go to the documentation of this file.
1 /* Simple Plugin API
2 *
3 * Copyright © 2018 Wim Taymans
4 *
5 * Permission is hereby granted, free of charge, to any person obtaining a
6 * copy of this software and associated documentation files (the "Software"),
7 * to deal in the Software without restriction, including without limitation
8 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9 * and/or sell copies of the Software, and to permit persons to whom the
10 * Software is furnished to do so, subject to the following conditions:
11 *
12 * The above copyright notice and this permission notice (including the next
13 * paragraph) shall be included in all copies or substantial portions of the
14 * Software.
15 *
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
19 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22 * DEALINGS IN THE SOFTWARE.
23 */
24
25 #ifndef SPA_VIDEO_MULTIVIEW_H
26 #define SPA_VIDEO_MULTIVIEW_H
27
28 #ifdef __cplusplus
29 extern "C" {
30 #endif
31
42 enum spa_video_multiview_mode {
46 SPA_VIDEO_MULTIVIEW_MODE_NONE = -1,
47 SPA_VIDEO_MULTIVIEW_MODE_MONO = 0,
48 /* Single view modes */
49 SPA_VIDEO_MULTIVIEW_MODE_LEFT,
50 SPA_VIDEO_MULTIVIEW_MODE_RIGHT,
51 /* Stereo view modes */
52 SPA_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE,
55 SPA_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE_QUINCUNX,
60 SPA_VIDEO_MULTIVIEW_MODE_COLUMN_INTERLEAVED,
63 SPA_VIDEO_MULTIVIEW_MODE_ROW_INTERLEAVED,
66 SPA_VIDEO_MULTIVIEW_MODE_TOP_BOTTOM,
69 SPA_VIDEO_MULTIVIEW_MODE_CHECKERBOARD,
72 /* Padding for new frame packing modes */
73
74 SPA_VIDEO_MULTIVIEW_MODE_FRAME_BY_FRAME = 32,
76 /* Multiview mode(s) */
77 SPA_VIDEO_MULTIVIEW_MODE_MULTIVIEW_FRAME_BY_FRAME,
84 SPA_VIDEO_MULTIVIEW_MODE_SEPARATED,
88 /* future expansion for annotated modes */
89 };
90
96 enum spa_video_multiview_flags {
97 SPA_VIDEO_MULTIVIEW_FLAGS_NONE = 0,
98 SPA_VIDEO_MULTIVIEW_FLAGS_RIGHT_VIEW_FIRST = (1 << 0),
100 SPA_VIDEO_MULTIVIEW_FLAGS_LEFT_FLIPPED = (1 << 1),
101 SPA_VIDEO_MULTIVIEW_FLAGS_LEFT_FLOPPED = (1 << 2),
102 SPA_VIDEO_MULTIVIEW_FLAGS_RIGHT_FLIPPED = (1 << 3),
103 SPA_VIDEO_MULTIVIEW_FLAGS_RIGHT_FLOPPED = (1 << 4),
104 SPA_VIDEO_MULTIVIEW_FLAGS_HALF_ASPECT = (1 << 14),
117 SPA_VIDEO_MULTIVIEW_FLAGS_MIXED_MONO = (1 << 15),
123 };
124
125
130 #ifdef __cplusplus
131 } /* extern "C" */
132 #endif
133
134 #endif /* SPA_VIDEO_MULTIVIEW_H */
spa_video_multiview_flags
spa_video_multiview_flags
spa_video_multiview_flags are used to indicate extra properties of a stereo/multiview stream beyond t...
Definition: multiview.h:96
spa_video_multiview_mode
spa_video_multiview_mode
All possible stereoscopic 3D and multiview representations.
Definition: multiview.h:42
SPA_VIDEO_MULTIVIEW_FLAGS_RIGHT_FLOPPED
@ SPA_VIDEO_MULTIVIEW_FLAGS_RIGHT_FLOPPED
The right view is horizontally mirrored.
Definition: multiview.h:103
SPA_VIDEO_MULTIVIEW_FLAGS_HALF_ASPECT
@ SPA_VIDEO_MULTIVIEW_FLAGS_HALF_ASPECT
For frame-packed multiview modes, indicates that the individual views have been encoded with half the...
Definition: multiview.h:104
SPA_VIDEO_MULTIVIEW_FLAGS_LEFT_FLOPPED
@ SPA_VIDEO_MULTIVIEW_FLAGS_LEFT_FLOPPED
The left view is horizontally mirrored.
Definition: multiview.h:101
SPA_VIDEO_MULTIVIEW_FLAGS_RIGHT_VIEW_FIRST
@ SPA_VIDEO_MULTIVIEW_FLAGS_RIGHT_VIEW_FIRST
For stereo streams, the normal arrangement of left and right views is reversed.
Definition: multiview.h:98
SPA_VIDEO_MULTIVIEW_FLAGS_NONE
@ SPA_VIDEO_MULTIVIEW_FLAGS_NONE
No flags.
Definition: multiview.h:97
SPA_VIDEO_MULTIVIEW_FLAGS_LEFT_FLIPPED
@ SPA_VIDEO_MULTIVIEW_FLAGS_LEFT_FLIPPED
The left view is vertically mirrored.
Definition: multiview.h:100
SPA_VIDEO_MULTIVIEW_FLAGS_RIGHT_FLIPPED
@ SPA_VIDEO_MULTIVIEW_FLAGS_RIGHT_FLIPPED
The right view is vertically mirrored.
Definition: multiview.h:102
SPA_VIDEO_MULTIVIEW_FLAGS_MIXED_MONO
@ SPA_VIDEO_MULTIVIEW_FLAGS_MIXED_MONO
The video stream contains both mono and multiview portions, signalled on each buffer by the absence o...
Definition: multiview.h:117
SPA_VIDEO_MULTIVIEW_MODE_SEPARATED
@ SPA_VIDEO_MULTIVIEW_MODE_SEPARATED
Multiple views are provided as separate spa_data framebuffers attached to each SPA Buffers,...
Definition: multiview.h:84
SPA_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE_QUINCUNX
@ SPA_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE_QUINCUNX
Left and right eye views are provided in the left and right half of the frame, but have been sampled ...
Definition: multiview.h:55
SPA_VIDEO_MULTIVIEW_MODE_NONE
@ SPA_VIDEO_MULTIVIEW_MODE_NONE
A special value indicating no multiview information.
Definition: multiview.h:46
SPA_VIDEO_MULTIVIEW_MODE_COLUMN_INTERLEAVED
@ SPA_VIDEO_MULTIVIEW_MODE_COLUMN_INTERLEAVED
Alternating vertical columns of pixels represent the left and right eye view respectively.
Definition: multiview.h:60
SPA_VIDEO_MULTIVIEW_MODE_TOP_BOTTOM
@ SPA_VIDEO_MULTIVIEW_MODE_TOP_BOTTOM
The top half of the frame contains the left eye, and the bottom half the right eye.
Definition: multiview.h:66
SPA_VIDEO_MULTIVIEW_MODE_RIGHT
@ SPA_VIDEO_MULTIVIEW_MODE_RIGHT
All frames represent a right-eye view.
Definition: multiview.h:50
SPA_VIDEO_MULTIVIEW_MODE_ROW_INTERLEAVED
@ SPA_VIDEO_MULTIVIEW_MODE_ROW_INTERLEAVED
Alternating horizontal rows of pixels represent the left and right eye view respectively.
Definition: multiview.h:63
SPA_VIDEO_MULTIVIEW_MODE_MONO
@ SPA_VIDEO_MULTIVIEW_MODE_MONO
All frames are monoscopic.
Definition: multiview.h:47
SPA_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE
@ SPA_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE
Left and right eye views are provided in the left and right half of the frame respectively.
Definition: multiview.h:52
SPA_VIDEO_MULTIVIEW_MODE_FRAME_BY_FRAME
@ SPA_VIDEO_MULTIVIEW_MODE_FRAME_BY_FRAME
Left and right eye views are provided in separate frames alternately.
Definition: multiview.h:74
SPA_VIDEO_MULTIVIEW_MODE_MULTIVIEW_FRAME_BY_FRAME
@ SPA_VIDEO_MULTIVIEW_MODE_MULTIVIEW_FRAME_BY_FRAME
Multipleindependent views are provided in separate frames in sequence.
Definition: multiview.h:77
SPA_VIDEO_MULTIVIEW_MODE_LEFT
@ SPA_VIDEO_MULTIVIEW_MODE_LEFT
All frames represent a left-eye view.
Definition: multiview.h:49
SPA_VIDEO_MULTIVIEW_MODE_CHECKERBOARD
@ SPA_VIDEO_MULTIVIEW_MODE_CHECKERBOARD
Pixels are arranged with alternating pixels representing left and right eye views in a checkerboard f...
Definition: multiview.h:69