PulseAudio
16.0
|
Global definitions. More...
Go to the source code of this file.
Data Structures | |
struct | pa_buffer_attr |
Playback and record buffer metrics. More... | |
struct | pa_timing_info |
A structure for all kinds of timing information of a stream. More... | |
struct | pa_spawn_api |
A structure for the spawn api. More... | |
Macros | |
#define | PA_INVALID_INDEX ((uint32_t) -1) |
An invalid index. More... | |
#define | pa_subscription_match_flags(m, t) (!!((m) & (1 << ((t) & PA_SUBSCRIPTION_EVENT_FACILITY_MASK)))) |
Return one if an event type t matches an event mask bitfield. More... | |
#define | PA_STREAM_EVENT_REQUEST_CORK "request-cork" |
A stream policy/meta event requesting that an application should cork a specific stream. More... | |
#define | PA_STREAM_EVENT_REQUEST_UNCORK "request-uncork" |
A stream policy/meta event requesting that an application should cork a specific stream. More... | |
#define | PA_STREAM_EVENT_FORMAT_LOST "format-lost" |
A stream event notifying that the stream is going to be disconnected because the underlying sink changed and no longer supports the format that was originally negotiated. More... | |
Typedefs | |
typedef enum pa_context_state | pa_context_state_t |
The state of a connection context. More... | |
typedef enum pa_stream_state | pa_stream_state_t |
The state of a stream. More... | |
typedef enum pa_operation_state | pa_operation_state_t |
The state of an operation. More... | |
typedef enum pa_context_flags | pa_context_flags_t |
Some special flags for contexts. More... | |
typedef enum pa_direction | pa_direction_t |
Direction bitfield - while we currently do not expose anything bidirectional, one should test against the bit instead of the value (e.g. if (d & PA_DIRECTION_OUTPUT)), because we might add bidirectional stuff in the future. More... | |
typedef enum pa_device_type | pa_device_type_t |
The type of device we are dealing with. More... | |
typedef enum pa_stream_direction | pa_stream_direction_t |
The direction of a pa_stream object. More... | |
typedef enum pa_stream_flags | pa_stream_flags_t |
Some special flags for stream connections. More... | |
typedef struct pa_buffer_attr | pa_buffer_attr |
Playback and record buffer metrics. More... | |
typedef enum pa_error_code | pa_error_code_t |
Error values as used by pa_context_errno(). More... | |
typedef enum pa_subscription_mask | pa_subscription_mask_t |
Subscription event mask, as used by pa_context_subscribe() More... | |
typedef enum pa_subscription_event_type | pa_subscription_event_type_t |
Subscription event types, as used by pa_context_subscribe() More... | |
typedef struct pa_timing_info | pa_timing_info |
A structure for all kinds of timing information of a stream. More... | |
typedef struct pa_spawn_api | pa_spawn_api |
A structure for the spawn api. More... | |
typedef enum pa_seek_mode | pa_seek_mode_t |
Seek type for pa_stream_write(). More... | |
typedef enum pa_sink_flags | pa_sink_flags_t |
Special sink flags. More... | |
typedef enum pa_sink_state | pa_sink_state_t |
Sink state. More... | |
typedef enum pa_source_flags | pa_source_flags_t |
Special source flags. More... | |
typedef enum pa_source_state | pa_source_state_t |
Source state. More... | |
typedef void(* | pa_free_cb_t) (void *p) |
A generic free() like callback prototype. More... | |
typedef enum pa_port_available | pa_port_available_t |
Port availability / jack detection status. More... | |
typedef enum pa_device_port_type | pa_device_port_type_t |
Port type. More... | |
Global definitions.
#define PA_INVALID_INDEX ((uint32_t) -1) |
An invalid index.
#define PA_STREAM_EVENT_FORMAT_LOST "format-lost" |
A stream event notifying that the stream is going to be disconnected because the underlying sink changed and no longer supports the format that was originally negotiated.
Clients need to connect a new stream to renegotiate a format and continue playback.
#define PA_STREAM_EVENT_REQUEST_CORK "request-cork" |
A stream policy/meta event requesting that an application should cork a specific stream.
See pa_stream_event_cb_t for more information.
#define PA_STREAM_EVENT_REQUEST_UNCORK "request-uncork" |
A stream policy/meta event requesting that an application should cork a specific stream.
See pa_stream_event_cb_t for more information,
#define pa_subscription_match_flags | ( | m, | |
t | |||
) | (!!((m) & (1 << ((t) & PA_SUBSCRIPTION_EVENT_FACILITY_MASK)))) |
Return one if an event type t matches an event mask bitfield.
typedef struct pa_buffer_attr pa_buffer_attr |
Playback and record buffer metrics.
typedef enum pa_context_flags pa_context_flags_t |
Some special flags for contexts.
typedef enum pa_context_state pa_context_state_t |
The state of a connection context.
typedef enum pa_device_port_type pa_device_port_type_t |
Port type.
New types can be added in the future, so applications should gracefully handle situations where a type identifier doesn't match any item in this enumeration.
typedef enum pa_device_type pa_device_type_t |
The type of device we are dealing with.
typedef enum pa_direction pa_direction_t |
Direction bitfield - while we currently do not expose anything bidirectional, one should test against the bit instead of the value (e.g. if (d & PA_DIRECTION_OUTPUT)), because we might add bidirectional stuff in the future.
typedef enum pa_error_code pa_error_code_t |
Error values as used by pa_context_errno().
Use pa_strerror() to convert these values to human readable strings
typedef void(* pa_free_cb_t) (void *p) |
A generic free() like callback prototype.
typedef enum pa_operation_state pa_operation_state_t |
The state of an operation.
typedef enum pa_port_available pa_port_available_t |
Port availability / jack detection status.
typedef enum pa_seek_mode pa_seek_mode_t |
Seek type for pa_stream_write().
typedef enum pa_sink_flags pa_sink_flags_t |
Special sink flags.
typedef enum pa_sink_state pa_sink_state_t |
Sink state.
typedef enum pa_source_flags pa_source_flags_t |
Special source flags.
typedef enum pa_source_state pa_source_state_t |
Source state.
typedef struct pa_spawn_api pa_spawn_api |
A structure for the spawn api.
This may be used to integrate auto spawned daemons into your application. For more information see pa_context_connect(). When spawning a new child process the waitpid() is used on the child's PID. The spawn routine will not block or ignore SIGCHLD signals, since this cannot be done in a thread compatible way. You might have to do this in prefork/postfork.
typedef enum pa_stream_direction pa_stream_direction_t |
The direction of a pa_stream object.
typedef enum pa_stream_flags pa_stream_flags_t |
Some special flags for stream connections.
typedef enum pa_stream_state pa_stream_state_t |
The state of a stream.
typedef enum pa_subscription_event_type pa_subscription_event_type_t |
Subscription event types, as used by pa_context_subscribe()
typedef enum pa_subscription_mask pa_subscription_mask_t |
Subscription event mask, as used by pa_context_subscribe()
typedef struct pa_timing_info pa_timing_info |
A structure for all kinds of timing information of a stream.
See pa_stream_update_timing_info() and pa_stream_get_timing_info(). The total output latency a sample that is written with pa_stream_write() takes to be played may be estimated by sink_usec+buffer_usec+transport_usec (where buffer_usec is defined as pa_bytes_to_usec(write_index-read_index)). The output buffer which buffer_usec relates to may be manipulated freely (with pa_stream_write()'s seek argument, pa_stream_flush() and friends), the buffers sink_usec and source_usec relate to are first-in first-out (FIFO) buffers which cannot be flushed or manipulated in any way. The total input latency a sample that is recorded takes to be delivered to the application is: source_usec+buffer_usec+transport_usec-sink_usec. (Take care of sign issues!) When connected to a monitor source sink_usec contains the latency of the owning sink. The two latency estimations described here are implemented in pa_stream_get_latency().
All time values are in the sound card clock domain, unless noted otherwise. The sound card clock usually runs at a slightly different rate than the system clock.
Please note that this structure can be extended as part of evolutionary API updates at any time in any new release.
enum pa_context_flags |
Some special flags for contexts.
Enumerator | |
---|---|
PA_CONTEXT_NOFLAGS | Flag to pass when no specific options are needed (used to avoid casting)
|
PA_CONTEXT_NOAUTOSPAWN | Disabled autospawning of the PulseAudio daemon if required. |
PA_CONTEXT_NOFAIL | Don't fail if the daemon is not available when pa_context_connect() is called, instead enter PA_CONTEXT_CONNECTING state and wait for the daemon to appear.
|
enum pa_context_state |
The state of a connection context.
enum pa_device_port_type |
Port type.
New types can be added in the future, so applications should gracefully handle situations where a type identifier doesn't match any item in this enumeration.
enum pa_device_type |
enum pa_direction |
Direction bitfield - while we currently do not expose anything bidirectional, one should test against the bit instead of the value (e.g. if (d & PA_DIRECTION_OUTPUT)), because we might add bidirectional stuff in the future.
Enumerator | |
---|---|
PA_DIRECTION_OUTPUT | Output direction. |
PA_DIRECTION_INPUT | Input direction. |
enum pa_error_code |
Error values as used by pa_context_errno().
Use pa_strerror() to convert these values to human readable strings
enum pa_operation_state |
The state of an operation.
enum pa_port_available |
Port availability / jack detection status.
enum pa_seek_mode |
Seek type for pa_stream_write().
enum pa_sink_flags |
Special sink flags.
Enumerator | |
---|---|
PA_SINK_NOFLAGS | Flag to pass when no specific options are needed (used to avoid casting)
|
PA_SINK_HW_VOLUME_CTRL | Supports hardware volume control. This is a dynamic flag and may change at runtime after the sink has initialized |
PA_SINK_LATENCY | Supports latency querying. |
PA_SINK_HARDWARE | Is a hardware sink of some kind, in contrast to "virtual"/software sinks.
|
PA_SINK_NETWORK | Is a networked sink of some kind.
|
PA_SINK_HW_MUTE_CTRL | Supports hardware mute control. This is a dynamic flag and may change at runtime after the sink has initialized
|
PA_SINK_DECIBEL_VOLUME | Volume can be translated to dB with pa_sw_volume_to_dB(). This is a dynamic flag and may change at runtime after the sink has initialized
|
PA_SINK_FLAT_VOLUME | This sink is in flat volume mode, i.e. always the maximum of the volume of all connected inputs.
|
PA_SINK_DYNAMIC_LATENCY | The latency can be adjusted dynamically depending on the needs of the connected streams.
|
PA_SINK_SET_FORMATS | The sink allows setting what formats are supported by the connected hardware. The actual functionality to do this might be provided by an extension.
|
enum pa_sink_state |
Sink state.
enum pa_source_flags |
Special source flags.
Enumerator | |
---|---|
PA_SOURCE_NOFLAGS | Flag to pass when no specific options are needed (used to avoid casting)
|
PA_SOURCE_HW_VOLUME_CTRL | Supports hardware volume control. This is a dynamic flag and may change at runtime after the source has initialized |
PA_SOURCE_LATENCY | Supports latency querying. |
PA_SOURCE_HARDWARE | Is a hardware source of some kind, in contrast to "virtual"/software source.
|
PA_SOURCE_NETWORK | Is a networked source of some kind.
|
PA_SOURCE_HW_MUTE_CTRL | Supports hardware mute control. This is a dynamic flag and may change at runtime after the source has initialized
|
PA_SOURCE_DECIBEL_VOLUME | Volume can be translated to dB with pa_sw_volume_to_dB(). This is a dynamic flag and may change at runtime after the source has initialized
|
PA_SOURCE_DYNAMIC_LATENCY | The latency can be adjusted dynamically depending on the needs of the connected streams.
|
PA_SOURCE_FLAT_VOLUME | This source is in flat volume mode, i.e. always the maximum of the volume of all connected outputs.
|
enum pa_source_state |
Source state.
enum pa_stream_direction |
enum pa_stream_flags |
Some special flags for stream connections.
Enumerator | |
---|---|
PA_STREAM_NOFLAGS | Flag to pass when no specific options are needed (used to avoid casting)
|
PA_STREAM_START_CORKED | Create the stream corked, requiring an explicit pa_stream_cork() call to uncork it. |
PA_STREAM_INTERPOLATE_TIMING | Interpolate the latency for this stream. When enabled, pa_stream_get_latency() and pa_stream_get_time() will try to estimate the current record/playback time based on the local time that passed since the last timing info update. Using this option has the advantage of not requiring a whole roundtrip when the current playback/recording time is needed. Consider using this option when requesting latency information frequently. This is especially useful on long latency network connections. It makes a lot of sense to combine this option with PA_STREAM_AUTO_TIMING_UPDATE. |
PA_STREAM_NOT_MONOTONIC | Don't force the time to increase monotonically. If this option is enabled, pa_stream_get_time() will not necessarily return always monotonically increasing time values on each call. This may confuse applications which cannot deal with time going 'backwards', but has the advantage that bad transport latency estimations that caused the time to jump ahead can be corrected quickly, without the need to wait. (Please note that this flag was named PA_STREAM_NOT_MONOTONOUS in releases prior to 0.9.11. The old name is still defined too, for compatibility reasons. |
PA_STREAM_AUTO_TIMING_UPDATE | If set timing update requests are issued periodically automatically. Combined with PA_STREAM_INTERPOLATE_TIMING you will be able to query the current time and latency with pa_stream_get_time() and pa_stream_get_latency() at all times without a packet round trip. |
PA_STREAM_NO_REMAP_CHANNELS | Don't remap channels by their name, instead map them simply by their index. Implies PA_STREAM_NO_REMIX_CHANNELS. Only supported when the server is at least PA 0.9.8. It is ignored on older servers.
|
PA_STREAM_NO_REMIX_CHANNELS | When remapping channels by name, don't upmix or downmix them to related channels. Copy them into matching channels of the device 1:1. Only supported when the server is at least PA 0.9.8. It is ignored on older servers.
|
PA_STREAM_FIX_FORMAT | Use the sample format of the sink/device this stream is being connected to, and possibly ignore the format the sample spec contains – but you still have to pass a valid value in it as a hint to PulseAudio what would suit your stream best. If this is used you should query the used sample format after creating the stream by using pa_stream_get_sample_spec(). Also, if you specified manual buffer metrics it is recommended to update them with pa_stream_set_buffer_attr() to compensate for the changed frame sizes. Only supported when the server is at least PA 0.9.8. It is ignored on older servers. When creating streams with pa_stream_new_extended(), this flag has no effect. If you specify a format with PCM encoding, and you want the server to choose the sample format, then you should leave the sample format unspecified in the pa_format_info object. This also means that you can't use pa_format_info_from_sample_spec(), because that function always sets the sample format.
|
PA_STREAM_FIX_RATE | Use the sample rate of the sink, and possibly ignore the rate the sample spec contains. Usage similar to PA_STREAM_FIX_FORMAT. Only supported when the server is at least PA 0.9.8. It is ignored on older servers. When creating streams with pa_stream_new_extended(), this flag has no effect. If you specify a format with PCM encoding, and you want the server to choose the sample rate, then you should leave the rate unspecified in the pa_format_info object. This also means that you can't use pa_format_info_from_sample_spec(), because that function always sets the sample rate.
|
PA_STREAM_FIX_CHANNELS | Use the number of channels and the channel map of the sink, and possibly ignore the number of channels and the map the sample spec and the passed channel map contain. Usage similar to PA_STREAM_FIX_FORMAT. Only supported when the server is at least PA 0.9.8. It is ignored on older servers. When creating streams with pa_stream_new_extended(), this flag has no effect. If you specify a format with PCM encoding, and you want the server to choose the channel count and/or channel map, then you should leave the channels and/or the channel map unspecified in the pa_format_info object. This also means that you can't use pa_format_info_from_sample_spec(), because that function always sets the channel count (but if you only want to leave the channel map unspecified, then pa_format_info_from_sample_spec() works, because it accepts a NULL channel map).
|
PA_STREAM_DONT_MOVE | Don't allow moving of this stream to another sink/device. Useful if you use any of the PA_STREAM_FIX_ flags and want to make sure that resampling never takes place – which might happen if the stream is moved to another sink/source with a different sample spec/channel map. Only supported when the server is at least PA 0.9.8. It is ignored on older servers.
|
PA_STREAM_VARIABLE_RATE | Allow dynamic changing of the sampling rate during playback with pa_stream_update_sample_rate(). Only supported when the server is at least PA 0.9.8. It is ignored on older servers.
|
PA_STREAM_PEAK_DETECT | Find peaks instead of resampling.
|
PA_STREAM_START_MUTED | Create in muted state. If neither PA_STREAM_START_UNMUTED nor PA_STREAM_START_MUTED are set, it is left to the server to decide whether to create the stream in muted or in unmuted state.
|
PA_STREAM_ADJUST_LATENCY | Try to adjust the latency of the sink/source based on the requested buffer metrics and adjust buffer metrics accordingly. Also see pa_buffer_attr. This option may not be specified at the same time as PA_STREAM_EARLY_REQUESTS.
|
PA_STREAM_EARLY_REQUESTS | Enable compatibility mode for legacy clients that rely on a "classic" hardware device fragment-style playback model. If this option is set, the minreq value of the buffer metrics gets a new meaning: instead of just specifying that no requests asking for less new data than this value will be made to the client it will also guarantee that requests are generated as early as this limit is reached. This flag should only be set in very few situations where compatibility with a fragment-based playback model needs to be kept and the client applications cannot deal with data requests that are delayed to the latest moment possible. (Usually these are programs that use usleep() or a similar call in their playback loops instead of sleeping on the device itself.) Also see pa_buffer_attr. This option may not be specified at the same time as PA_STREAM_ADJUST_LATENCY.
|
PA_STREAM_DONT_INHIBIT_AUTO_SUSPEND | If set this stream won't be taken into account when it is checked whether the device this stream is connected to should auto-suspend.
|
PA_STREAM_START_UNMUTED | Create in unmuted state. If neither PA_STREAM_START_UNMUTED nor PA_STREAM_START_MUTED are set it is left to the server to decide whether to create the stream in muted or in unmuted state.
|
PA_STREAM_FAIL_ON_SUSPEND | If the sink/source this stream is connected to is suspended during the creation of this stream, cause it to fail. If the sink/source is being suspended during creation of this stream, make sure this stream is terminated.
|
PA_STREAM_RELATIVE_VOLUME | If a volume is passed when this stream is created, consider it relative to the sink's current volume, never as absolute device volume. If this is not specified the volume will be consider absolute when the sink is in flat volume mode, relative otherwise.
|
PA_STREAM_PASSTHROUGH | Used to tag content that will be rendered by passthrough sinks. The data will be left as is and not reformatted, resampled.
|
enum pa_stream_state |
The state of a stream.
Subscription event types, as used by pa_context_subscribe()
enum pa_subscription_mask |
Subscription event mask, as used by pa_context_subscribe()