Module libpulse_binding::stream::flags[][src]

Some special flags for stream connections.

Constants

ADJUST_LATENCY

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.

AUTO_TIMING_UPDATE

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.

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.

DONT_MOVE

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.

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 ::def::BufferAttr. This option may not be specified at the same time as ADJUST_LATENCY.

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.

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 contains. Usage similar to FIX_FORMAT.

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.

FIX_RATE

Use the sample rate of the sink, and possibly ignore the rate the sample spec contains. Usage similar to FIX_FORMAT.

INTERPOLATE_TIMING

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.

NOFLAGS

Flag to pass when no specific options are needed.

NOT_MONOTONIC

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.

NO_REMAP_CHANNELS

Don't remap channels by their name, instead map them simply by their index. Implies NO_REMIX_CHANNELS.

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.

PASSTHROUGH

Used to tag content that will be rendered by passthrough sinks. The data will be left as is and not reformatted, resampled.

PEAK_DETECT

Find peaks instead of resampling.

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.

START_CORKED

Create the stream corked, requiring an explicit Stream::uncork call to uncork it.

START_MUTED

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.

START_UNMUTED

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.

VARIABLE_RATE

Allow dynamic changing of the sampling rate during playback with Stream::update_sample_rate.