Return the current playback/recording time. This is based on the
* data in the timing info structure returned by
* pa_stream_get_timing_info(). The returned time is in the sound card
* clock domain, which usually runs at a slightly different rate than
* the system clock.
*
* This function will usually only return new data if a timing info
* update has been received. Only if timing interpolation has been
* requested (PA_STREAM_INTERPOLATE_TIMING) the data from the last
* timing update is used for an estimation of the current
* playback/recording time based on the local time that passed since
* the timing info structure has been acquired.
*
* The time value returned by this function is guaranteed to increase
* monotonically (the returned value is always greater
* or equal to the value returned by the last call). This behaviour
* can be disabled by using PA_STREAM_NOT_MONOTONIC. This may be
* desirable to better deal with bad estimations of transport
* latencies, but may have strange effects if the application is not
* able to deal with time going 'backwards'.
*
* The time interpolator activated by PA_STREAM_INTERPOLATE_TIMING
* favours 'smooth' time graphs over accurate ones to improve the
* smoothness of UI operations that are tied to the audio clock. If
* accuracy is more important to you, you might need to estimate your
* timing based on the data from pa_stream_get_timing_info() yourself
* or not work with interpolated timing at all and instead always
* query the server side for the most up to date timing with
* pa_stream_update_timing_info().
*
* If no timing information has been
* received yet this call will return -PA_ERR_NODATA. For more details
* see pa_stream_get_timing_info().
*
* Returns zero on success, negative on error.
Return the current playback/recording time. This is based on the * data in the timing info structure returned by * pa_stream_get_timing_info(). The returned time is in the sound card * clock domain, which usually runs at a slightly different rate than * the system clock. * * This function will usually only return new data if a timing info * update has been received. Only if timing interpolation has been * requested (PA_STREAM_INTERPOLATE_TIMING) the data from the last * timing update is used for an estimation of the current * playback/recording time based on the local time that passed since * the timing info structure has been acquired. * * The time value returned by this function is guaranteed to increase * monotonically (the returned value is always greater * or equal to the value returned by the last call). This behaviour * can be disabled by using PA_STREAM_NOT_MONOTONIC. This may be * desirable to better deal with bad estimations of transport * latencies, but may have strange effects if the application is not * able to deal with time going 'backwards'. * * The time interpolator activated by PA_STREAM_INTERPOLATE_TIMING * favours 'smooth' time graphs over accurate ones to improve the * smoothness of UI operations that are tied to the audio clock. If * accuracy is more important to you, you might need to estimate your * timing based on the data from pa_stream_get_timing_info() yourself * or not work with interpolated timing at all and instead always * query the server side for the most up to date timing with * pa_stream_update_timing_info(). * * If no timing information has been * received yet this call will return -PA_ERR_NODATA. For more details * see pa_stream_get_timing_info(). * * Returns zero on success, negative on error.