mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-10-29 05:40:23 -04:00
store requested resampling method in a seperate field and use it when create a new resampler after a move
This commit is contained in:
parent
ccd21f33cf
commit
9ba408415c
4 changed files with 12 additions and 13 deletions
|
|
@ -218,8 +218,6 @@ pa_sink_input* pa_sink_input_new(
|
|||
pa_log_warn("Unsupported resampling operation.");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
data->resample_method = pa_resampler_get_method(resampler);
|
||||
}
|
||||
|
||||
i = pa_msgobject_new(pa_sink_input);
|
||||
|
|
@ -235,7 +233,8 @@ pa_sink_input* pa_sink_input_new(
|
|||
i->sink = data->sink;
|
||||
i->client = data->client;
|
||||
|
||||
i->resample_method = data->resample_method;
|
||||
i->requested_resample_method = data->resample_method;
|
||||
i->actual_resample_method = resampler ? pa_resampler_get_method(resampler) : PA_RESAMPLER_INVALID;
|
||||
i->sample_spec = data->sample_spec;
|
||||
i->channel_map = data->channel_map;
|
||||
|
||||
|
|
@ -946,7 +945,7 @@ void pa_sink_input_set_name(pa_sink_input *i, const char *name) {
|
|||
pa_resample_method_t pa_sink_input_get_resample_method(pa_sink_input *i) {
|
||||
pa_sink_input_assert_ref(i);
|
||||
|
||||
return i->resample_method;
|
||||
return i->actual_resample_method;
|
||||
}
|
||||
|
||||
/* Called from main context */
|
||||
|
|
@ -1062,7 +1061,7 @@ int pa_sink_input_finish_move(pa_sink_input *i, pa_sink *dest) {
|
|||
i->core->mempool,
|
||||
&i->sample_spec, &i->channel_map,
|
||||
&dest->sample_spec, &dest->channel_map,
|
||||
i->resample_method,
|
||||
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)))) {
|
||||
|
|
|
|||
|
|
@ -95,7 +95,7 @@ struct pa_sink_input {
|
|||
pa_cvolume volume;
|
||||
pa_bool_t muted;
|
||||
|
||||
pa_resample_method_t resample_method;
|
||||
pa_resample_method_t requested_resample_method, actual_resample_method;
|
||||
|
||||
/* Returns the chunk of audio data and drops it from the
|
||||
* queue. Returns -1 on failure. Called from IO thread context. If
|
||||
|
|
|
|||
|
|
@ -181,8 +181,6 @@ pa_source_output* pa_source_output_new(
|
|||
pa_log_warn("Unsupported resampling operation.");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
data->resample_method = pa_resampler_get_method(resampler);
|
||||
}
|
||||
|
||||
o = pa_msgobject_new(pa_source_output);
|
||||
|
|
@ -198,7 +196,9 @@ pa_source_output* pa_source_output_new(
|
|||
o->source = data->source;
|
||||
o->client = data->client;
|
||||
|
||||
o->resample_method = data->resample_method;
|
||||
|
||||
o->actual_resample_method = resampler ? pa_resampler_get_method(resampler) : PA_RESAMPLER_INVALID;
|
||||
o->requested_resample_method = data->resample_method;
|
||||
o->sample_spec = data->sample_spec;
|
||||
o->channel_map = data->channel_map;
|
||||
|
||||
|
|
@ -628,7 +628,7 @@ pa_bool_t pa_source_output_update_proplist(pa_source_output *o, pa_update_mode_t
|
|||
pa_resample_method_t pa_source_output_get_resample_method(pa_source_output *o) {
|
||||
pa_source_output_assert_ref(o);
|
||||
|
||||
return o->resample_method;
|
||||
return o->actual_resample_method;
|
||||
}
|
||||
|
||||
/* Called from main context */
|
||||
|
|
@ -730,7 +730,7 @@ int pa_source_output_finish_move(pa_source_output *o, pa_source *dest) {
|
|||
o->core->mempool,
|
||||
&dest->sample_spec, &dest->channel_map,
|
||||
&o->sample_spec, &o->channel_map,
|
||||
o->resample_method,
|
||||
o->requested_resample_method,
|
||||
((o->flags & PA_SOURCE_OUTPUT_VARIABLE_RATE) ? PA_RESAMPLER_VARIABLE_RATE : 0) |
|
||||
((o->flags & PA_SOURCE_OUTPUT_NO_REMAP) ? PA_RESAMPLER_NO_REMAP : 0) |
|
||||
(o->core->disable_remixing || (o->flags & PA_SOURCE_OUTPUT_NO_REMIX) ? PA_RESAMPLER_NO_REMIX : 0)))) {
|
||||
|
|
|
|||
|
|
@ -79,7 +79,7 @@ struct pa_source_output {
|
|||
pa_sample_spec sample_spec;
|
||||
pa_channel_map channel_map;
|
||||
|
||||
pa_resample_method_t resample_method;
|
||||
pa_resample_method_t requested_resample_method, actual_resample_method;
|
||||
|
||||
/* Pushes a new memchunk into the output. Called from IO thread
|
||||
* context. */
|
||||
|
|
@ -139,7 +139,7 @@ struct pa_source_output {
|
|||
struct {
|
||||
pa_source_output_state_t state;
|
||||
|
||||
pa_bool_t attached; /* True only between ->attach() and ->detach() calls */
|
||||
pa_bool_t attached:1; /* True only between ->attach() and ->detach() calls */
|
||||
|
||||
pa_sample_spec sample_spec;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue