Module libpulse_binding::stream::flags
source · Expand description
Some special flags for stream connections.
Constants
Try to adjust the latency of the sink/source based on the requested buffer metrics and
adjust buffer metrics accordingly. Also see
::def::BufferAttr. This option may not be
specified at the same time as EARLY_REQUESTS.If set timing update requests are issued periodically automatically. Combined with
INTERPOLATE_TIMING you will be able to query the current time and latency with
Stream::get_time and Stream::get_latency at all times without a packet round trip.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.
Don’t allow moving of this stream to another sink/device. Useful if you use any of the
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.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 ::def::BufferAttr. This option
may not be specified at the same time as ADJUST_LATENCY.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.
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 contains. Usage similar
to
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
Stream::get_sample_spec. Also,
if you specified manual buffer metrics it is recommended to update them with
Stream::set_buffer_attr to compensate for the changed frame sizes.Use the sample rate of the sink, and possibly ignore the rate the sample spec contains.
Usage similar to
FIX_FORMAT.Interpolate the latency for this stream. When enabled,
Stream::get_latency and
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 round trip 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 AUTO_TIMING_UPDATE.Flag to pass when no specific options are needed.
Don’t force the time to increase monotonically. If this option is enabled,
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.Don’t remap channels by their name, instead map them simply by their index. Implies
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.
Used to tag content that will be rendered by passthrough sinks. The data will be left as is
and not reformatted, resampled.
Find peaks instead of resampling.
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.
Create the stream corked, requiring an explicit
Stream::uncork call to uncork it.Create in muted state. If neither
START_UNMUTED nor this is specified, it is left to the
server to decide whether to create the stream in muted or in un-muted state.Create in unmuted state. If neither
START_MUTED nor this is specified, it is left to the
server to decide whether to create the stream in muted or in unmuted state.Allow dynamic changing of the sampling rate during playback with
Stream::update_sample_rate.