Audio information description
A Buffer
information about the buffer layout
\struct spa_callbacks
Callbacks, contains the structure with functions and the data passed
to the functions. The structure should also contain a version field that
is checked.
Chunk of memory, can change for each buffer
\addtogroup spa_pod
{
methods
Data for a buffer this stays constant for a buffer
spa_device_events:
Information about the device and parameters it supports
spa_device_methods:
Information about a device object
\addtogroup spa_dict
{
\addtogroup spa_pod
{
\addtogroup spa_handle
{
\struct spa_hook
A hook, contains the structure with functions and the data passed
to the functions.
\struct spa_hook_list
A list of hooks. This struct is primarily used by
implementation that use multiple caller-provided \ref spa_hook.
\struct spa_interface
This structure lists the information about available interfaces on
handles.
IO area to exchange buffers.
Absolute time reporting.
latency reporting
IO area to exchange a memory region
The position information adds extra meaning to the raw clock times.
A range, suitable for input ports that can suggest a range to output ports
rate matching
A segment converts a running time to a segment (stream) position.
bar and beat segment
video frame segment
control stream, io area for SPA_IO_Control and SPA_IO_Notify
\addtogroup spa_json
{
helper structure for managing latency objects
\addtogroup spa_list List
{
\struct spa_log_topic
Control hooks. These hooks can’t be removed from their
callbacks and must be removed from a safe place (when the loop
is not running or when it is locked).
Control an event loop
Register sources and work items to an event loop
Create sources for an event loop
A metadata element.
Bitmap information
a busy counter for the buffer
a timed set of events associated with the buffer
Cursor information
Describes essential buffer header metadata such as flags and
timestamps.
metadata structure for Region or an array of these for RegionArray
a transformation of the buffer
Node callbacks
events from the spa_node.
Node information structure
Node methods
information about a parameter
\addtogroup spa_pod
{
\addtogroup spa_pod
{
a sequence of timed controls
Port information structure
Helper structure for managing process latency objects
\addtogroup spa_device
{
an error result
the result of enum_params or port_enum_params.
\addtogroup spa_ringbuffer
{
Extra supporting infrastructure passed to the init() function of
a factory. It can be extra information or interfaces such as logging.
helper structure for managing tag objects
thread utils
spa_video_colorimetry:
< bottom center
< bottom left center
< bottom right center
< front center
< front center high
< front left
< front left center
< front left high
< front left wide
< front right
< front right center
< front right high
< front right wide
< aux channels
< LFE
< LFE 2
< left LFE
< mono stream
< N/A, silent
< rear center
< rear left
< rear left center
< right LFE
< rear right
< rear right center
< side left
< side right
< aux channels
< top center
< top front center
< top front left
< top front left center
< top front right
< top front right center
< top rear center
< top rear left
< top rear right
< top side left
< top side right
< unspecified
< DTS-HD Master Audio
< MPEG-1 or MPEG-2 (Part 3, not AAC)
< MPEG-2 AAC
< Dolby TrueHD
< list: default, alternative,…
< flags: default, possible flags,…
< no choice, first value is current
< range: default, min, max
< range with step: default, min, max, step
< data contains a spa_pod_bytes with raw midi data
< data contains a spa_pod_bytes with an OSC packet
< data contains a SPA_TYPE_OBJECT_Props
< fd to dmabuf memory
< generic fd, mmap to get to memory
< memory is identified with an id
< pointer to memory, the data field in
struct spa_data is set.
< The login session bus
< The bus that started us, if any
< The systemwide bus
< AAC stream format, (Id enum spa_audio_aac_stream_format)
< AMR band mode (Id enum spa_audio_amr_band_mode)
< WMA profile (Id enum spa_audio_wma_profile)
< bit order (Id enum spa_param_bitorder)
< bit rate (Int)
< audio data block alignment (Int)
< number of audio channels (Int)
< optional flags (Int)
< audio format, (Id enum spa_audio_format)
< codec used (IEC958) (Id enum spa_audio_iec958_codec)
< Interleave bytes (Int)
< channel positions (Id enum spa_audio_position)
< sample rate (Int)
< (Id enum spa_h264_alignment)
< (Id enum spa_h264_stream_format)
< /Id enum spa_video_chroma_site)
< /Id enum spa_video_color_matrix)
< /Id enum spa_video_color_primaries)
< /Id enum spa_video_color_range)
< video format (Id enum spa_video_format)
< frame rate (Fraction)
< (Id enum spa_video_interlace_mode)
< (Int)
< maximum frame rate (Fraction)
< format modifier (Long)
use only with DMA-BUF and omit for other buffer types
< (Id enum spa_video_multiview_flags)
< (Id enum spa_video_multiview_mode)
< (Rectangle)
< (Int)
< size (Rectangle)
< /Id enum spa_video_transfer_function)
< number of views (Int)
< media subtype (Id enum spa_media_subtype)
< media type (Id enum spa_media_type)
< area to exchange buffers, struct spa_io_buffers
< area to update clock information, struct spa_io_clock
< area for control messages, struct spa_io_sequence
< latency reporting, struct spa_io_latency
< memory pointer, struct spa_io_memory
< area for notify messages, struct spa_io_sequence
< position information in the graph, struct spa_io_position
< expected byte range, struct spa_io_range
< rate matching between nodes, struct spa_io_rate_match
since 0.3.68
S/PDIF
since 0.3.68
since 0.3.68
since 0.3.68
since 0.3.68
S/PDIF
S/PDIF
S/PDIF
S/PDIF
since 0.3.65
since 0.3.68
< control stream, data contains
spa_pod_sequence with control info.
S/PDIF
since 0.3.68
since 0.3.65
S/PDIF
S/PDIF
S/PDIF
S/PDIF
since 0.3.68
since 0.3.68
since 0.3.68
since 0.3.68
since 0.3.68
S/PDIF
since 0.3.68
since 0.3.68
since 0.3.68
since 0.3.68
since 0.3.65
S/PDIF
S/PDIF
since 0.3.68
S/PDIF
since 0.3.68
since 0.3.68
S/PDIF
since 0.3.68
< struct spa_meta_bitmap
< don’t write to buffer when count > 0
< metadata contains a spa_meta_control
associated with the data
< struct spa_meta_cursor
< struct spa_meta_header
< 90 degree counter-clockwise
< 180 degree counter-clockwise
< 270 degree counter-clockwise
< 180 degree flipped around the vertical axis. Equivalent
to a reflexion through the vertical line splitting the
bufffer in two equal sized parts
< flip then rotate around 90 degree counter-clockwise
< flip then rotate around 180 degree counter-clockwise
< flip then rotate around 270 degree counter-clockwise
< no transform
< struct spa_meta_region with cropping data
< array of struct spa_meta_region with damage, where an invalid entry or end-of-array marks the end.
< struct spa_meta_transform
< begin a set of parameter enumerations or
configuration that require the device to
remain opened, like query formats and then
set a format
< end a transaction
< pause a node. this makes it stop emitting
scheduling events
< Sent to a driver when some other node emitted
the RequestProcess event.
< start a node, this makes it start emitting
scheduling events
< suspend a node, this removes all configured
formats and closes any devices
< not available
< unknown availability
< available
< least significant bit
< most significant bit
< unknown bitorder
< alignment of data block memory (Int)
< number of data blocks per buffer (Int)
< number of buffers (Int)
< possible memory types (Int, mask of enum spa_data_type)
< size of a data block memory (Int)
< stride of data block memory (Int)
< buffer configurations as SPA_TYPE_OBJECT_ParamBuffers
< Control parameter, a SPA_TYPE_Sequence
< available formats as SPA_TYPE_OBJECT_Format
< port configuration enumeration as SPA_TYPE_OBJECT_ParamPortConfig
< profile enumeration as SPA_TYPE_OBJECT_ParamProfile
< routing enumeration as SPA_TYPE_OBJECT_ParamRoute
< configured format as SPA_TYPE_OBJECT_Format
< configurable IO areas as SPA_TYPE_OBJECT_ParamIO
< type ID, uniquely identifies the io area (Id enum spa_io_type)
< size of the io area (Int)
< invalid
< direction, input/output (Id enum spa_direction)
< max latency (Long) in nanoseconds
< max latency relative to quantum (Float)
< max latency (Int) relative to rate
< min latency (Long) in nanoseconds
< min latency relative to quantum (Float)
< min latency (Int) relative to rate
< latency reporting, a SPA_TYPE_OBJECT_ParamLatency
< the expected maximum size the meta (Int)
< the metadata, one of enum spa_meta_type (Id enum spa_meta_type)
< allowed metadata for buffers as SPA_TYPE_OBJECT_ParamMeta
< convert configuration
< dsp configuration, depending on the external
format. For audio, ports will be configured for
the given number of channels with F32 format.
< no configuration
< passthrough configuration
< (Bool) enable control ports
< (Id enum spa_direction) direction
< (Object) format filter
< (Id enum spa_param_port_config_mode) mode
< (Bool) enable monitor output ports on input ports
< latency (Long) in nanoseconds
< latency relative to quantum (Float)
< latency (Int) relative to rate
< availability of the profile
(Id enum spa_param_availability)
< node classes provided by this profile
(Struct(
Int : number of items following
Struct(
String : class name (eg. “Audio/Source”),
Int : number of nodes
String : property (eg. “card.profile.devices”),
Array of Int: device indexes
)*))
< profile description (String)
< profile index (Int)
< info (Struct(
Int : n_items,
(String : key,
String : value)*))
< profile name (String)
< profile priority (Int)
< If profile should be saved (Bool)
< port configuration as SPA_TYPE_OBJECT_ParamPortConfig
< processing latency, a SPA_TYPE_OBJECT_ParamProcessLatency
< profile configuration as SPA_TYPE_OBJECT_ParamProfile
< property information as SPA_TYPE_OBJECT_PropInfo
< properties as SPA_TYPE_OBJECT_Props
< availability of the destination
(Id enum spa_param_availability)
< description of the destination (String)
< device id (Int)
< associated device indexes (Array of Int)
< direction, input/output (Id enum spa_direction)
< index of the routing destination (Int)
< info (Struct(
Int : n_items,
(String : key,
String : value)*))
< name of the routing destination (String)
< priority of the destination (Int)
< profile id (Int)
< associated profile indexes (Array of Int)
< properties SPA_TYPE_OBJECT_Props
< If route should be saved (Bool)
< routing configuration as SPA_TYPE_OBJECT_ParamRoute
< direction, input/output (Id enum spa_direction)
< Struct(
Int: n_items
(String: key
String: value)*
)
< tag reporting, a SPA_TYPE_OBJECT_ParamTag. Since 0.3.79
< driver related profiler properties
< follower related profiler properties
< clock information
(Struct(
Int : clock flags,
Int : clock id,
String: clock name,
Long : clock nsec,
Fraction : clock rate,
Long : clock position,
Long : clock duration,
Long : clock delay,
Double : clock rate_diff,
Long : clock next_nsec))
< generic driver info block
(Struct(
Int : driver_id,
String : name,
Long : driver prev_signal,
Long : driver signal,
Long : driver awake,
Long : driver finish,
Int : driver status),
Fraction : latency))
< generic follower info block
(Struct(
Int : id,
String : name,
Long : prev_signal,
Long : signal,
Long : awake,
Long : finish,
Int : status,
Fraction : latency))
< Generic info, counter and CPU load,
(Struct(
Long : counter,
Float : cpu_load fast,
Float : cpu_load medium,
Float : cpu_load slow),
Int : xrun-count))
< type of container if any (Id)
< User readable description
< associated id of the property
< labels of property if any, this is a
struct with pairs of values, the first one
is of the type of the property, the second
one is a string with a user readable label
for the value.
< name of the property
< is part of params property (Bool)
< type and range/enums of property
< audio related properties
< device related properties
< other properties
< video related properties
< a channelmap array
(Array (Id enum spa_audio_channel))
< a volume array, one (linear) volume per channel
(Array of Float). 0.0 is silence, 1.0 is
without attenuation. This is the effective
volume that is applied. It can result
in a hardware volume and software volume
(see softVolumes)
< enabled IEC958 (S/PDIF) codecs,
(Array (Id enum spa_audio_iec958_codec)
< delay adjustment
< mute (Bool)
< a volume array, one (linear) volume per
channel (Array of Float)
< mute (Bool)
< simple control params
(Struct(
(String : key,
Pod : value)*))
< mute (Bool) applied in software
< a volume array, one (linear) volume per channel
(Array of Float). 0.0 is silence, 1.0 is without
attenuation. This is the volume applied in
software, there might be a part applied in
hardware.
< an unknown property
< a volume (Float), 0.0 silence, 1.0 no attenutation
< a volume base (Float)
< Samples to ramp the volume over
< the scale or graph to used to ramp the
volume
< Step or incremental Samples to ramp
the volume over
< Step or incremental Time in nano seconds
to ramp the
< Time in millisec to ramp the volume over
< a volume step (Float)
< chroma samples are sited on alternate lines
chroma samples cosited with luma samples
< chroma is horizontally cosited
jpeg style cositing, also for mpeg1 and mjpeg
mpeg2 style cositing
< no cositing
< unknown cositing
< chroma is vertically cosited
< ITU BT.601 color matrix
< ITU BT.709 color matrix
< ITU-R BT.2020 color matrix. since 1.6.
< FCC color matrix
< identity matrix
< SMTPE 240M color matrix
< unknown matrix
< Adobe RGB primaries. \since 1.8
< BT470BG primaries
< BT470M primaries
< BT709 primaries
< BT2020 primaries. \since 1.6.
< Generic film
< SMPTE170M primaries
< SMPTE240M primaries
< unknown color primaries
< [0..255] for 8 bit components
< [16..235] for 8 bit components. Chroma has
[16..240] range.
< unknown range
< use the format modifier
< format modifier was not fixated yet
< no flags
< Each color has been scaled by the alpha value.
< a variable fps is selected, fps_n and fps_d
denote the maximum fps of the video
< 32-bit A:B:G:R 2:10:10:10 little endian
< 32-bit A:R:G:B 2:10:10:10 little endian
< 32-bit B:G:R:A 10:10:10:2 little endian
< 32-bit B:G:R:x 10:10:10:2 little endian
< 32-bit R:G:B:A 10:10:10:2 little endian
< 32-bit R:G:B:x 10:10:10:2 little endian
< 32-bit x:B:G:R 2:10:10:10 little endian
< 32-bit x:R:G:B 2:10:10:10 little endian
< 2 fields are stored in one buffer, use the
frame ID to get access to the required
field. For multiview (the ‘views’
property > 1) the fields of view N can
be found at frame ID (N * 2) and (N *
2) + 1. Each field has only half the
amount of lines as noted in the height
property. This mode requires multiple
spa_data to describe the fields.
< 2 fields are interleaved in one video frame.
Extra buffer flags describe the field order.
< frames contains both interlaced and progressive
video, the buffer flags describe the frame and
fields.
< all frames are progressive
< For frame-packed multiview
modes, indicates that the individual
views have been encoded with half the true
width or height and should be scaled back
up for display. This flag is used for
overriding input layout interpretation
by adjusting pixel-aspect-ratio.
For side-by-side, column interleaved or
checkerboard packings, the
pixel width will be doubled.
For row interleaved and
top-bottom encodings, pixel height will
be doubled
< The left view is vertically mirrored
< The left view is horizontally mirrored
< The video stream contains both
mono and multiview portions,
signalled on each buffer by the
absence or presence of a buffer flag.
< No flags
< The right view is vertically mirrored
< The right view is horizontally mirrored
< For stereo streams, the normal arrangement
of left and right views is reversed
< Pixels are arranged with alternating
pixels representing left and right eye
views in a checkerboard fashion.
< Alternating vertical columns of pixels
represent the left and right eye view
respectively.
< Left and right eye views are provided
in separate frames alternately.
< All frames represent a left-eye view
< All frames are monoscopic
< Multipleindependent views are
provided in separate frames in
sequence. This method only applies to
raw video buffers at the moment.
Specific view identification is via
metadata on raw video buffers.
A special value indicating no multiview information. Used in spa_video_info and other
places to indicate that no specific multiview handling has been requested or provided.
This value is never carried on caps.
< All frames represent a right-eye view
< Alternating horizontal rows of pixels
represent the left and right eye view
respectively.
< Multiple views are provided as separate
\ref spa_data framebuffers attached
to each \ref spa_buffer, described
by the metadata
< Left and right eye views are provided
in the left and right half of the frame
respectively.
< Left and right eye views are provided
in the left and right half of the
frame, but have been sampled using
quincunx method, with half-pixel offset
between the 2 views.
< The top half of the frame contains the
left eye, and the bottom half the right
eye.
< Gamma 2.19921875. \since 1.8
< Gamma 2.2 curve with a linear segment in the lower range
< Gamma 2.2 curve with a linear segment in the lower
range. Used for BT.2020 with 12 bits per
component. \since 1.6.
< linear RGB, gamma 1.0 curve
< Gamma 1.8 curve
< Gamma 2.0 curve
< Gamma 2.2 curve
< Gamma 2.8 curve
< Logarithmic transfer characteristic 100:1 range
< Logarithmic transfer characteristic 316.22777:1 range
< Gamma 2.2 curve with a linear segment in the lower range
< Gamma 2.4 curve with a linear segment in the lower range
< unknown transfer function
< not part of ABI
< not part of ABI
< not part of ABI/API
< not part of ABI
< not part of ABI
< not part of ABI
< not part of ABI
< not part of ABI