]> code.delx.au - pulseaudio/blobdiff - src/pulsecore/sample-util.c
Remove unnecessary #includes
[pulseaudio] / src / pulsecore / sample-util.c
index 6e97e5a90372745f6387a2dd268391bb75fcfb1b..8a13495cbb883c9abaea09923e5be581f2726504 100644 (file)
@@ -29,6 +29,7 @@
 #include <stdlib.h>
 #include <stdio.h>
 #include <errno.h>
+#include <math.h>
 
 #include <pulse/timeval.h>
 
@@ -37,9 +38,9 @@
 #include <pulsecore/macro.h>
 #include <pulsecore/g711.h>
 #include <pulsecore/core-util.h>
+#include <pulsecore/endianmacros.h>
 
 #include "sample-util.h"
-#include "endianmacros.h"
 
 #define PA_SILENCE_MAX (PA_PAGE_SIZE*16)
 
@@ -137,7 +138,7 @@ static void calc_linear_float_volume(float linear[], const pa_cvolume *volume) {
 
 static void calc_linear_integer_stream_volumes(pa_mix_info streams[], unsigned nstreams, const pa_cvolume *volume, const pa_sample_spec *spec) {
     unsigned k, channel;
-    float linear[PA_CHANNELS_MAX];
+    float linear[PA_CHANNELS_MAX + VOLUME_PADDING];
 
     pa_assert(streams);
     pa_assert(spec);
@@ -156,7 +157,7 @@ static void calc_linear_integer_stream_volumes(pa_mix_info streams[], unsigned n
 
 static void calc_linear_float_stream_volumes(pa_mix_info streams[], unsigned nstreams, const pa_cvolume *volume, const pa_sample_spec *spec) {
     unsigned k, channel;
-    float linear[PA_CHANNELS_MAX];
+    float linear[PA_CHANNELS_MAX + VOLUME_PADDING];
 
     pa_assert(streams);
     pa_assert(spec);
@@ -752,7 +753,7 @@ void pa_volume_memchunk(
       return;
     }
 
-    do_volume = pa_get_volume_func (spec->format);
+    do_volume = pa_get_volume_func(spec->format);
     pa_assert(do_volume);
 
     calc_volume_table[spec->format] ((void *)linear, volume);
@@ -1007,7 +1008,7 @@ void pa_memchunk_dump_to_file(pa_memchunk *c, const char *fn) {
 
     /* Only for debugging purposes */
 
-    f = fopen(fn, "a");
+    f = pa_fopen_cloexec(fn, "a");
 
     if (!f) {
         pa_log_warn("Failed to open '%s': %s", fn, pa_cstrerror(errno));
@@ -1056,3 +1057,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);
+}