pa_sink_input_new_data_set_sink(data, sink, false);
}
- pa_return_val_if_fail(PA_SINK_IS_LINKED(pa_sink_get_state(data->sink)), -PA_ERR_BADSTATE);
- pa_return_val_if_fail(!data->sync_base || (data->sync_base->sink == data->sink
- && pa_sink_input_get_state(data->sync_base) == PA_SINK_INPUT_CORKED),
- -PA_ERR_INVALID);
-
- /* Routing's done, we have a sink. Now let's fix the format. */
-
/* If something didn't pick a format for us, pick the top-most format since
* we assume this is sorted in priority order */
if (!data->format && data->nego_formats && !pa_idxset_isempty(data->nego_formats))
return -PA_ERR_NOTSUPPORTED;
}
+ pa_return_val_if_fail(PA_SINK_IS_LINKED(pa_sink_get_state(data->sink)), -PA_ERR_BADSTATE);
+ pa_return_val_if_fail(!data->sync_base || (data->sync_base->sink == data->sink
+ && pa_sink_input_get_state(data->sync_base) == PA_SINK_INPUT_CORKED),
+ -PA_ERR_INVALID);
+
+ /* Routing is done. We have a sink and a format. */
+
if (data->volume_is_set && pa_format_info_is_pcm(data->format)) {
/* If volume is set, we need to save the original data->channel_map,
* so that we can remap the volume from the original channel map to the
i->process_rewind(i, amount);
called = true;
- /* Convert back to to sink domain */
+ /* Convert back to sink domain */
if (i->thread_info.resampler)
amount = pa_resampler_result(i->thread_info.resampler, amount);
pa_assert_ctl_context();
pa_assert(PA_SINK_INPUT_IS_LINKED(i->state));
- v = pa_hashmap_remove(i->volume_factor_items, key);
-
- if (!v)
+ if (pa_hashmap_remove_and_free(i->volume_factor_items, key) < 0)
return -1;
- volume_factor_entry_free(v);
-
switch (pa_hashmap_size(i->volume_factor_items)) {
case 0:
pa_cvolume_reset(&i->volume_factor, i->sample_spec.channels);
pa_assert_ctl_context();
pa_assert(PA_SINK_INPUT_IS_LINKED(i->state));
- if (!i->muted == !mute) {
- i->save_muted = i->save_muted || mute;
+ if (mute == i->muted) {
+ i->save_muted |= save;
return;
}
i->requested_resample_method,
((i->flags & PA_SINK_INPUT_VARIABLE_RATE) ? PA_RESAMPLER_VARIABLE_RATE : 0) |
((i->flags & PA_SINK_INPUT_NO_REMAP) ? PA_RESAMPLER_NO_REMAP : 0) |
- (i->core->disable_remixing || (i->flags & PA_SINK_INPUT_NO_REMIX) ? PA_RESAMPLER_NO_REMIX : 0));
+ (i->core->disable_remixing || (i->flags & PA_SINK_INPUT_NO_REMIX) ? PA_RESAMPLER_NO_REMIX : 0) |
+ (i->core->disable_lfe_remixing ? PA_RESAMPLER_NO_LFE : 0));
if (!new_resampler) {
pa_log_warn("Unsupported resampling operation.");