roar_vs_position(3) | RoarAudio Programmer's Manual | roar_vs_position(3) |
roar_vs_position, roar_vs_latency, roar_vs_latency2 - Get stream position information
#include <roaraudio.h>
ssize_t roar_vs_position(roar_vs_t * vss, int backend, int * error);
roar_mus_t roar_vs_latency(roar_vs_t * vss, int backend, int * error);
roar_mus_t roar_vs_latency2(roar_vs_t * vss, int backend, int wait, int * error);
roar_vs_position() returns the current server site position of the stream plus the current offset for the selected backend.
roar_vs_latency() returns the latency between the client site stream position and the server site position plus the latency by the backend.
Use of roar_vs_latency() is not recommended as it requires the codec to use a true constant bit rate.
roar_vs_latency2() is perfectly equivalent to roar_vs_latency() expect that it takes the additional parameter wait. The wait parameter may have the values ROAR_VS_WAIT, ROAR_VS_NOWAIT and ROAR_VS_ASYNC. If it is ROAR_VS_WAIT the function does the same as roar_vs_latency(). If the parameter is ROAR_VS_NOWAIT roar_vs_latency2() will return interpolated data based on old data collected by calls to roar_vs_latency(), roar_vs_latency2() or roar_vs_position(). ROAR_VS_ASYNC is used to trigger asyncron updates to this internal state. Asyncron operations need to be enabled before they can be used. See roar_vs_ctl(3).
Calling these functions too often will result in bad performance and incorrect data (pool interval smaller than server response time). Polling up to 20 times per second shoudn't be a problem.
roar_vs_position() returns the stream position on success and -1 on error. Stream position is the current position of the stream in units of samples (not frames!).
roar_vs_latency() returns the stream latency on success and zero on error. However zero is a valid value. In case of error error is set to the error. In case of no error but zero latency error is cleared (set to ROAR_ERROR_NONE). Latency is retruned in mu-seconds (1/10^-6s).
FIXME
June 2011 | RoarAudio |