diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/polyp/sample.c | 6 | ||||
-rw-r--r-- | src/polyp/sample.h | 3 |
2 files changed, 9 insertions, 0 deletions
diff --git a/src/polyp/sample.c b/src/polyp/sample.c index 668a485e..320e31a0 100644 --- a/src/polyp/sample.c +++ b/src/polyp/sample.c @@ -66,6 +66,12 @@ pa_usec_t pa_bytes_to_usec(uint64_t length, const pa_sample_spec *spec) { return (pa_usec_t) (((double) length/pa_frame_size(spec)*1000000)/spec->rate); } +size_t pa_usec_to_bytes(pa_usec_t t, const pa_sample_spec *spec) { + assert(spec); + + return ((double) t * spec->rate / 1000000)*pa_frame_size(spec); +} + int pa_sample_spec_valid(const pa_sample_spec *spec) { assert(spec); diff --git a/src/polyp/sample.h b/src/polyp/sample.h index 09b12fd7..2a9a72fe 100644 --- a/src/polyp/sample.h +++ b/src/polyp/sample.h @@ -160,6 +160,9 @@ size_t pa_sample_size(const pa_sample_spec *spec); /** Calculate the time the specified bytes take to play with the specified sample type */ pa_usec_t pa_bytes_to_usec(uint64_t length, const pa_sample_spec *spec); +/** Calculates the number of bytes that are required for the specified time. \since 0.9 */ +size_t pa_usec_to_bytes(pa_usec_t t, const pa_sample_spec *spec); + /** Return non-zero when the sample type specification is valid */ int pa_sample_spec_valid(const pa_sample_spec *spec); |