sample-util: add pa_convert_size() call for converting sizes between two sample specs
authorLennart Poettering <lennart@poettering.net>
Wed, 9 Sep 2009 02:27:16 +0000 (04:27 +0200)
committerLennart Poettering <lennart@poettering.net>
Wed, 9 Sep 2009 02:27:16 +0000 (04:27 +0200)
src/pulsecore/sample-util.c
src/pulsecore/sample-util.h

index 5fae192..a26dc87 100644 (file)
@@ -1056,3 +1056,13 @@ void pa_memchunk_sine(pa_memchunk *c, pa_mempool *pool, unsigned rate, unsigned
     calc_sine(p, c->length, freq * l / rate);
     pa_memblock_release(c->memblock);
 }
+
+size_t pa_convert_size(size_t size, const pa_sample_spec *from, const pa_sample_spec *to) {
+    pa_usec_t usec;
+
+    pa_assert(from);
+    pa_assert(to);
+
+    usec = pa_bytes_to_usec_round_up(size, from);
+    return pa_usec_to_bytes_round_up(usec, to);
+}
index 34df5cf..d0235d6 100644 (file)
@@ -91,6 +91,8 @@ typedef void (*pa_do_volume_func_t) (void *samples, void *volumes, unsigned chan
 pa_do_volume_func_t pa_get_volume_func(pa_sample_format_t f);
 void pa_set_volume_func(pa_sample_format_t f, pa_do_volume_func_t func);
 
+size_t pa_convert_size(size_t size, const pa_sample_spec *from, const pa_sample_spec *to);
+
 #define PA_CHANNEL_POSITION_MASK_LEFT                                   \
     (PA_CHANNEL_POSITION_MASK(PA_CHANNEL_POSITION_FRONT_LEFT)           \
      | PA_CHANNEL_POSITION_MASK(PA_CHANNEL_POSITION_REAR_LEFT)          \