Hi guys,
I found the following logic when I change the volume while playing
audio.I guess there is some audio expertise here, would you please tell
me the principle, thanks a lot!
In the file sink-input.c(./src/pulsecore/sink-input.c), why does pa need
to invoke the function pa_sink_input_request_rewind to rewrite and
rewind the data?
void pa_sink_input_set_volume(...) {
...
pa_assert_se(pa_asyncmsgq_send(i->sink->asyncmsgq, PA_MSGOBJECT(i),
PA_SINK_INPUT_MESSAGE_SET_SOFT_VOLUME, NULL, 0, NULL) == 0);
}
...
}
int pa_sink_input_process_msg(...) {
...
switch (code) {
case PA_SINK_INPUT_MESSAGE_SET_SOFT_VOLUME:
if (!pa_cvolume_equal(&i->thread_info.soft_volume,
&i->soft_volume)) {
i->thread_info.soft_volume = i->soft_volume;
pa_sink_input_request_rewind(i, 0, true, false, false);
}
return 0;
...
}
Best Regards,
Chengyi
_______________________________________________
pulseaudio-discuss mailing list
pulseaudio-discuss@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss