[pulseaudio-discuss] Alternative smoother implementation
Georg Chini
georg at chini.tk
Fri Feb 17 09:04:59 UTC 2017
Hi,
to get even better latency stability of module-loopback, I am still
working on an alternative
smoother implementation. I am at the point where I have created a set of
functions similar
to the original implementation:
/* Create new smoother */
pa_smoother_2* pa_smoother_2_new(pa_usec_t window, size_t frame_size,
uint32_t rate);
/* Free the smoother */
void pa_smoother_2_free(pa_smoother_2* s);
/* Reset the smoother */
void pa_smoother_2_reset(pa_smoother_2 *s);
/* Add a new data point and re-calculate time conversion factor */
void pa_smoother_2_put(pa_smoother_2 *s, pa_usec_t time_stamp, int64_t
byte_count);
/* Calculate the current latency. For a source, the sign must be inverted */
int64_t pa_smoother_2_get_delay(pa_smoother_2 *s, pa_usec_t time_stamp,
size_t byte_count);
/* Convert a time interval from sound card time to system time */
pa_usec_t pa_smoother_2_get(pa_smoother_2 *s, pa_usec_t time_stamp);
/* Convert system time to sound card time */
pa_usec_t pa_smoother_2_translate(pa_smoother_2 *s, pa_usec_t
time_difference);
/* Enable USB hack */
void pa_smoother_2_usb_hack_enable(pa_smoother_2 *s, bool enable,
pa_usec_t offset);
/* Set user time offset */
void pa_smoother_2_set_time_offset(pa_smoother_2 *s, pa_usec_t offset);
My question is how I should integrate this with the current code. I see
two possibilities:
- Replace the old smoother wherever it is used
- Add a parameter to daemon.conf (use-alternative-smoother) so that you
can choose
between the two implementations.
Probably the second option is preferable. What do you think? Any better
idea?
Regards
Georg
More information about the pulseaudio-discuss
mailing list