mirror of
				https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
				synced 2025-11-03 09:01:50 -05:00 
			
		
		
		
	sink, source: Fix error reporting style for rate updates
This commit is contained in:
		
							parent
							
								
									a32c5e4354
								
							
						
					
					
						commit
						441a5a422c
					
				
					 8 changed files with 41 additions and 41 deletions
				
			
		| 
						 | 
					@ -1593,7 +1593,7 @@ static bool sink_set_formats(pa_sink *s, pa_idxset *formats) {
 | 
				
			||||||
    return true;
 | 
					    return true;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static bool sink_update_rate_cb(pa_sink *s, uint32_t rate) {
 | 
					static int sink_update_rate_cb(pa_sink *s, uint32_t rate) {
 | 
				
			||||||
    struct userdata *u = s->userdata;
 | 
					    struct userdata *u = s->userdata;
 | 
				
			||||||
    int i;
 | 
					    int i;
 | 
				
			||||||
    bool supported = false;
 | 
					    bool supported = false;
 | 
				
			||||||
| 
						 | 
					@ -1609,16 +1609,16 @@ static bool sink_update_rate_cb(pa_sink *s, uint32_t rate) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (!supported) {
 | 
					    if (!supported) {
 | 
				
			||||||
        pa_log_info("Sink does not support sample rate of %d Hz", rate);
 | 
					        pa_log_info("Sink does not support sample rate of %d Hz", rate);
 | 
				
			||||||
        return false;
 | 
					        return -1;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (!PA_SINK_IS_OPENED(s->state)) {
 | 
					    if (!PA_SINK_IS_OPENED(s->state)) {
 | 
				
			||||||
        pa_log_info("Updating rate for device %s, new rate is %d",u->device_name, rate);
 | 
					        pa_log_info("Updating rate for device %s, new rate is %d",u->device_name, rate);
 | 
				
			||||||
        u->sink->sample_spec.rate = rate;
 | 
					        u->sink->sample_spec.rate = rate;
 | 
				
			||||||
        return true;
 | 
					        return 0;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return false;
 | 
					    return -1;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int process_rewind(struct userdata *u) {
 | 
					static int process_rewind(struct userdata *u) {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1401,7 +1401,7 @@ static void source_update_requested_latency_cb(pa_source *s) {
 | 
				
			||||||
    update_sw_params(u);
 | 
					    update_sw_params(u);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static bool source_update_rate_cb(pa_source *s, uint32_t rate) {
 | 
					static int source_update_rate_cb(pa_source *s, uint32_t rate) {
 | 
				
			||||||
    struct userdata *u = s->userdata;
 | 
					    struct userdata *u = s->userdata;
 | 
				
			||||||
    int i;
 | 
					    int i;
 | 
				
			||||||
    bool supported = false;
 | 
					    bool supported = false;
 | 
				
			||||||
| 
						 | 
					@ -1417,16 +1417,16 @@ static bool source_update_rate_cb(pa_source *s, uint32_t rate) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (!supported) {
 | 
					    if (!supported) {
 | 
				
			||||||
        pa_log_info("Source does not support sample rate of %d Hz", rate);
 | 
					        pa_log_info("Source does not support sample rate of %d Hz", rate);
 | 
				
			||||||
        return false;
 | 
					        return -1;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (!PA_SOURCE_IS_OPENED(s->state)) {
 | 
					    if (!PA_SOURCE_IS_OPENED(s->state)) {
 | 
				
			||||||
        pa_log_info("Updating rate for device %s, new rate is %d", u->device_name, rate);
 | 
					        pa_log_info("Updating rate for device %s, new rate is %d", u->device_name, rate);
 | 
				
			||||||
        u->source->sample_spec.rate = rate;
 | 
					        u->source->sample_spec.rate = rate;
 | 
				
			||||||
        return true;
 | 
					        return 0;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return false;
 | 
					    return -1;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void thread_func(void *userdata) {
 | 
					static void thread_func(void *userdata) {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -426,7 +426,7 @@ int pa_sink_input_new(
 | 
				
			||||||
           module-suspend-on-idle can resume a sink */
 | 
					           module-suspend-on-idle can resume a sink */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        pa_log_info("Trying to change sample rate");
 | 
					        pa_log_info("Trying to change sample rate");
 | 
				
			||||||
        if (pa_sink_update_rate(data->sink, data->sample_spec.rate, pa_sink_input_new_data_is_passthrough(data)) == true)
 | 
					        if (pa_sink_update_rate(data->sink, data->sample_spec.rate, pa_sink_input_new_data_is_passthrough(data)) >= 0)
 | 
				
			||||||
            pa_log_info("Rate changed to %u Hz", data->sink->sample_spec.rate);
 | 
					            pa_log_info("Rate changed to %u Hz", data->sink->sample_spec.rate);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1829,7 +1829,7 @@ int pa_sink_input_finish_move(pa_sink_input *i, pa_sink *dest, bool save) {
 | 
				
			||||||
           SINK_INPUT_MOVE_FINISH hook */
 | 
					           SINK_INPUT_MOVE_FINISH hook */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        pa_log_info("Trying to change sample rate");
 | 
					        pa_log_info("Trying to change sample rate");
 | 
				
			||||||
        if (pa_sink_update_rate(dest, i->sample_spec.rate, pa_sink_input_is_passthrough(i)) == true)
 | 
					        if (pa_sink_update_rate(dest, i->sample_spec.rate, pa_sink_input_is_passthrough(i)) >= 0)
 | 
				
			||||||
            pa_log_info("Rate changed to %u Hz", dest->sample_spec.rate);
 | 
					            pa_log_info("Rate changed to %u Hz", dest->sample_spec.rate);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1377,8 +1377,8 @@ void pa_sink_render_full(pa_sink *s, size_t length, pa_memchunk *result) {
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Called from main thread */
 | 
					/* Called from main thread */
 | 
				
			||||||
bool pa_sink_update_rate(pa_sink *s, uint32_t rate, bool passthrough) {
 | 
					int pa_sink_update_rate(pa_sink *s, uint32_t rate, bool passthrough) {
 | 
				
			||||||
    bool ret = false;
 | 
					    int ret = -1;
 | 
				
			||||||
    uint32_t desired_rate = rate;
 | 
					    uint32_t desired_rate = rate;
 | 
				
			||||||
    uint32_t default_rate = s->default_sample_rate;
 | 
					    uint32_t default_rate = s->default_sample_rate;
 | 
				
			||||||
    uint32_t alternate_rate = s->alternate_sample_rate;
 | 
					    uint32_t alternate_rate = s->alternate_sample_rate;
 | 
				
			||||||
| 
						 | 
					@ -1387,32 +1387,32 @@ bool pa_sink_update_rate(pa_sink *s, uint32_t rate, bool passthrough) {
 | 
				
			||||||
    bool use_alternate = false;
 | 
					    bool use_alternate = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (rate == s->sample_spec.rate)
 | 
					    if (rate == s->sample_spec.rate)
 | 
				
			||||||
        return true;
 | 
					        return 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (!s->update_rate)
 | 
					    if (!s->update_rate)
 | 
				
			||||||
        return false;
 | 
					        return -1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (PA_UNLIKELY(default_rate == alternate_rate && !passthrough)) {
 | 
					    if (PA_UNLIKELY(default_rate == alternate_rate && !passthrough)) {
 | 
				
			||||||
        pa_log_debug("Default and alternate sample rates are the same.");
 | 
					        pa_log_debug("Default and alternate sample rates are the same.");
 | 
				
			||||||
        return false;
 | 
					        return -1;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (PA_SINK_IS_RUNNING(s->state)) {
 | 
					    if (PA_SINK_IS_RUNNING(s->state)) {
 | 
				
			||||||
        pa_log_info("Cannot update rate, SINK_IS_RUNNING, will keep using %u Hz",
 | 
					        pa_log_info("Cannot update rate, SINK_IS_RUNNING, will keep using %u Hz",
 | 
				
			||||||
                    s->sample_spec.rate);
 | 
					                    s->sample_spec.rate);
 | 
				
			||||||
        return false;
 | 
					        return -1;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (s->monitor_source) {
 | 
					    if (s->monitor_source) {
 | 
				
			||||||
        if (PA_SOURCE_IS_RUNNING(s->monitor_source->state) == true) {
 | 
					        if (PA_SOURCE_IS_RUNNING(s->monitor_source->state) == true) {
 | 
				
			||||||
            pa_log_info("Cannot update rate, monitor source is RUNNING");
 | 
					            pa_log_info("Cannot update rate, monitor source is RUNNING");
 | 
				
			||||||
            return false;
 | 
					            return -1;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (PA_UNLIKELY (desired_rate < 8000 ||
 | 
					    if (PA_UNLIKELY (desired_rate < 8000 ||
 | 
				
			||||||
                     desired_rate > PA_RATE_MAX))
 | 
					                     desired_rate > PA_RATE_MAX))
 | 
				
			||||||
        return false;
 | 
					        return -1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (!passthrough) {
 | 
					    if (!passthrough) {
 | 
				
			||||||
        pa_assert((default_rate % 4000 == 0) || (default_rate % 11025 == 0));
 | 
					        pa_assert((default_rate % 4000 == 0) || (default_rate % 11025 == 0));
 | 
				
			||||||
| 
						 | 
					@ -1436,15 +1436,15 @@ bool pa_sink_update_rate(pa_sink *s, uint32_t rate, bool passthrough) {
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (desired_rate == s->sample_spec.rate)
 | 
					    if (desired_rate == s->sample_spec.rate)
 | 
				
			||||||
        return false;
 | 
					        return -1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (!passthrough && pa_sink_used_by(s) > 0)
 | 
					    if (!passthrough && pa_sink_used_by(s) > 0)
 | 
				
			||||||
        return false;
 | 
					        return -1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    pa_log_debug("Suspending sink %s due to changing the sample rate.", s->name);
 | 
					    pa_log_debug("Suspending sink %s due to changing the sample rate.", s->name);
 | 
				
			||||||
    pa_sink_suspend(s, true, PA_SUSPEND_INTERNAL);
 | 
					    pa_sink_suspend(s, true, PA_SUSPEND_INTERNAL);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (s->update_rate(s, desired_rate) == true) {
 | 
					    if (s->update_rate(s, desired_rate) >= 0) {
 | 
				
			||||||
        /* update monitor source as well */
 | 
					        /* update monitor source as well */
 | 
				
			||||||
        if (s->monitor_source && !passthrough)
 | 
					        if (s->monitor_source && !passthrough)
 | 
				
			||||||
            pa_source_update_rate(s->monitor_source, desired_rate, false);
 | 
					            pa_source_update_rate(s->monitor_source, desired_rate, false);
 | 
				
			||||||
| 
						 | 
					@ -1455,7 +1455,7 @@ bool pa_sink_update_rate(pa_sink *s, uint32_t rate, bool passthrough) {
 | 
				
			||||||
                pa_sink_input_update_rate(i);
 | 
					                pa_sink_input_update_rate(i);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        ret = true;
 | 
					        ret = 0;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    pa_sink_suspend(s, false, PA_SUSPEND_INTERNAL);
 | 
					    pa_sink_suspend(s, false, PA_SUSPEND_INTERNAL);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -230,7 +230,7 @@ struct pa_sink {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* Called whenever the sampling frequency shall be changed. Called from
 | 
					    /* Called whenever the sampling frequency shall be changed. Called from
 | 
				
			||||||
     * main thread. */
 | 
					     * main thread. */
 | 
				
			||||||
    bool (*update_rate)(pa_sink *s, uint32_t rate);
 | 
					    int (*update_rate)(pa_sink *s, uint32_t rate);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* Contains copies of the above data so that the real-time worker
 | 
					    /* Contains copies of the above data so that the real-time worker
 | 
				
			||||||
     * thread can work without access locking */
 | 
					     * thread can work without access locking */
 | 
				
			||||||
| 
						 | 
					@ -411,7 +411,7 @@ unsigned pa_device_init_priority(pa_proplist *p);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**** May be called by everyone, from main context */
 | 
					/**** May be called by everyone, from main context */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool pa_sink_update_rate(pa_sink *s, uint32_t rate, bool passthrough);
 | 
					int pa_sink_update_rate(pa_sink *s, uint32_t rate, bool passthrough);
 | 
				
			||||||
void pa_sink_set_latency_offset(pa_sink *s, int64_t offset);
 | 
					void pa_sink_set_latency_offset(pa_sink *s, int64_t offset);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* The returned value is supposed to be in the time domain of the sound card! */
 | 
					/* The returned value is supposed to be in the time domain of the sound card! */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -366,7 +366,7 @@ int pa_source_output_new(
 | 
				
			||||||
           module-suspend-on-idle can resume a source */
 | 
					           module-suspend-on-idle can resume a source */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        pa_log_info("Trying to change sample rate");
 | 
					        pa_log_info("Trying to change sample rate");
 | 
				
			||||||
        if (pa_source_update_rate(data->source, data->sample_spec.rate, pa_source_output_new_data_is_passthrough(data)) == true)
 | 
					        if (pa_source_update_rate(data->source, data->sample_spec.rate, pa_source_output_new_data_is_passthrough(data)) >= 0)
 | 
				
			||||||
            pa_log_info("Rate changed to %u Hz", data->source->sample_spec.rate);
 | 
					            pa_log_info("Rate changed to %u Hz", data->source->sample_spec.rate);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1449,7 +1449,7 @@ int pa_source_output_finish_move(pa_source_output *o, pa_source *dest, bool save
 | 
				
			||||||
           SOURCE_OUTPUT_MOVE_FINISH hook */
 | 
					           SOURCE_OUTPUT_MOVE_FINISH hook */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        pa_log_info("Trying to change sample rate");
 | 
					        pa_log_info("Trying to change sample rate");
 | 
				
			||||||
        if (pa_source_update_rate(dest, o->sample_spec.rate, pa_source_output_is_passthrough(o)) == true)
 | 
					        if (pa_source_update_rate(dest, o->sample_spec.rate, pa_source_output_is_passthrough(o)) >= 0)
 | 
				
			||||||
            pa_log_info("Rate changed to %u Hz", dest->sample_spec.rate);
 | 
					            pa_log_info("Rate changed to %u Hz", dest->sample_spec.rate);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -967,40 +967,40 @@ void pa_source_post_direct(pa_source*s, pa_source_output *o, const pa_memchunk *
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Called from main thread */
 | 
					/* Called from main thread */
 | 
				
			||||||
bool pa_source_update_rate(pa_source *s, uint32_t rate, bool passthrough) {
 | 
					int pa_source_update_rate(pa_source *s, uint32_t rate, bool passthrough) {
 | 
				
			||||||
    bool ret = false;
 | 
					    int ret;
 | 
				
			||||||
    uint32_t desired_rate = rate;
 | 
					    uint32_t desired_rate = rate;
 | 
				
			||||||
    uint32_t default_rate = s->default_sample_rate;
 | 
					    uint32_t default_rate = s->default_sample_rate;
 | 
				
			||||||
    uint32_t alternate_rate = s->alternate_sample_rate;
 | 
					    uint32_t alternate_rate = s->alternate_sample_rate;
 | 
				
			||||||
    bool use_alternate = false;
 | 
					    bool use_alternate = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (rate == s->sample_spec.rate)
 | 
					    if (rate == s->sample_spec.rate)
 | 
				
			||||||
        return true;
 | 
					        return 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (!s->update_rate && !s->monitor_of)
 | 
					    if (!s->update_rate && !s->monitor_of)
 | 
				
			||||||
        return false;
 | 
					        return -1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (PA_UNLIKELY(default_rate == alternate_rate && !passthrough)) {
 | 
					    if (PA_UNLIKELY(default_rate == alternate_rate && !passthrough)) {
 | 
				
			||||||
        pa_log_debug("Default and alternate sample rates are the same.");
 | 
					        pa_log_debug("Default and alternate sample rates are the same.");
 | 
				
			||||||
        return false;
 | 
					        return -1;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (PA_SOURCE_IS_RUNNING(s->state)) {
 | 
					    if (PA_SOURCE_IS_RUNNING(s->state)) {
 | 
				
			||||||
        pa_log_info("Cannot update rate, SOURCE_IS_RUNNING, will keep using %u Hz",
 | 
					        pa_log_info("Cannot update rate, SOURCE_IS_RUNNING, will keep using %u Hz",
 | 
				
			||||||
                    s->sample_spec.rate);
 | 
					                    s->sample_spec.rate);
 | 
				
			||||||
        return false;
 | 
					        return -1;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (s->monitor_of) {
 | 
					    if (s->monitor_of) {
 | 
				
			||||||
        if (PA_SINK_IS_RUNNING(s->monitor_of->state)) {
 | 
					        if (PA_SINK_IS_RUNNING(s->monitor_of->state)) {
 | 
				
			||||||
            pa_log_info("Cannot update rate, this is a monitor source and the sink is running.");
 | 
					            pa_log_info("Cannot update rate, this is a monitor source and the sink is running.");
 | 
				
			||||||
            return false;
 | 
					            return -1;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (PA_UNLIKELY (desired_rate < 8000 ||
 | 
					    if (PA_UNLIKELY (desired_rate < 8000 ||
 | 
				
			||||||
                     desired_rate > PA_RATE_MAX))
 | 
					                     desired_rate > PA_RATE_MAX))
 | 
				
			||||||
        return false;
 | 
					        return -1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (!passthrough) {
 | 
					    if (!passthrough) {
 | 
				
			||||||
        pa_assert((default_rate % 4000 == 0) || (default_rate % 11025 == 0));
 | 
					        pa_assert((default_rate % 4000 == 0) || (default_rate % 11025 == 0));
 | 
				
			||||||
| 
						 | 
					@ -1024,10 +1024,10 @@ bool pa_source_update_rate(pa_source *s, uint32_t rate, bool passthrough) {
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (desired_rate == s->sample_spec.rate)
 | 
					    if (desired_rate == s->sample_spec.rate)
 | 
				
			||||||
        return false;
 | 
					        return -1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (!passthrough && pa_source_used_by(s) > 0)
 | 
					    if (!passthrough && pa_source_used_by(s) > 0)
 | 
				
			||||||
        return false;
 | 
					        return -1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    pa_log_debug("Suspending source %s due to changing the sample rate.", s->name);
 | 
					    pa_log_debug("Suspending source %s due to changing the sample rate.", s->name);
 | 
				
			||||||
    pa_source_suspend(s, true, PA_SUSPEND_INTERNAL);
 | 
					    pa_source_suspend(s, true, PA_SUSPEND_INTERNAL);
 | 
				
			||||||
| 
						 | 
					@ -1046,7 +1046,7 @@ bool pa_source_update_rate(pa_source *s, uint32_t rate, bool passthrough) {
 | 
				
			||||||
            s->sample_spec.rate = desired_rate;
 | 
					            s->sample_spec.rate = desired_rate;
 | 
				
			||||||
            ret = pa_sink_update_rate(s->monitor_of, desired_rate, false);
 | 
					            ret = pa_sink_update_rate(s->monitor_of, desired_rate, false);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (!ret) {
 | 
					            if (ret < 0) {
 | 
				
			||||||
                /* Changing the sink rate failed, roll back the old rate for
 | 
					                /* Changing the sink rate failed, roll back the old rate for
 | 
				
			||||||
                 * the monitor source. Why did we set the source rate before
 | 
					                 * the monitor source. Why did we set the source rate before
 | 
				
			||||||
                 * calling pa_sink_update_rate(), you may ask. The reason is
 | 
					                 * calling pa_sink_update_rate(), you may ask. The reason is
 | 
				
			||||||
| 
						 | 
					@ -1060,10 +1060,10 @@ bool pa_source_update_rate(pa_source *s, uint32_t rate, bool passthrough) {
 | 
				
			||||||
                s->sample_spec.rate = old_rate;
 | 
					                s->sample_spec.rate = old_rate;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        } else
 | 
					        } else
 | 
				
			||||||
            ret = false;
 | 
					            ret = -1;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (ret) {
 | 
					    if (ret >= 0) {
 | 
				
			||||||
        uint32_t idx;
 | 
					        uint32_t idx;
 | 
				
			||||||
        pa_source_output *o;
 | 
					        pa_source_output *o;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -187,7 +187,7 @@ struct pa_source {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* Called whenever the sampling frequency shall be changed. Called from
 | 
					    /* Called whenever the sampling frequency shall be changed. Called from
 | 
				
			||||||
     * main thread. */
 | 
					     * main thread. */
 | 
				
			||||||
    bool (*update_rate)(pa_source *s, uint32_t rate);
 | 
					    int (*update_rate)(pa_source *s, uint32_t rate);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* Contains copies of the above data so that the real-time worker
 | 
					    /* Contains copies of the above data so that the real-time worker
 | 
				
			||||||
     * thread can work without access locking */
 | 
					     * thread can work without access locking */
 | 
				
			||||||
| 
						 | 
					@ -382,7 +382,7 @@ bool pa_source_update_proplist(pa_source *s, pa_update_mode_t mode, pa_proplist
 | 
				
			||||||
int pa_source_set_port(pa_source *s, const char *name, bool save);
 | 
					int pa_source_set_port(pa_source *s, const char *name, bool save);
 | 
				
			||||||
void pa_source_set_mixer_dirty(pa_source *s, bool is_dirty);
 | 
					void pa_source_set_mixer_dirty(pa_source *s, bool is_dirty);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool pa_source_update_rate(pa_source *s, uint32_t rate, bool passthrough);
 | 
					int pa_source_update_rate(pa_source *s, uint32_t rate, bool passthrough);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
unsigned pa_source_linked_by(pa_source *s); /* Number of connected streams */
 | 
					unsigned pa_source_linked_by(pa_source *s); /* Number of connected streams */
 | 
				
			||||||
unsigned pa_source_used_by(pa_source *s); /* Number of connected streams that are not corked */
 | 
					unsigned pa_source_used_by(pa_source *s); /* Number of connected streams that are not corked */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue