forked from pool/pulseaudio
58 lines
1.9 KiB
Diff
58 lines
1.9 KiB
Diff
Fix float32le <-> float32ne <-> float32be sample converters
|
|
|
|
diff -urNad pulseaudio~/src/pulsecore/sample-util.c pulseaudio/src/pulsecore/sample-util.c
|
|
--- pulseaudio~/src/pulsecore/sample-util.c 2006-08-18 23:38:49.000000000 +0200
|
|
+++ pulseaudio/src/pulsecore/sample-util.c 2006-10-19 00:19:56.233268731 +0200
|
|
@@ -68,6 +68,7 @@
|
|
case PA_SAMPLE_S16LE:
|
|
case PA_SAMPLE_S16BE:
|
|
case PA_SAMPLE_FLOAT32:
|
|
+ case PA_SAMPLE_FLOAT32RE:
|
|
c = 0;
|
|
break;
|
|
case PA_SAMPLE_ALAW:
|
|
diff -urNad pulseaudio~/src/pulsecore/sconv.c pulseaudio/src/pulsecore/sconv.c
|
|
--- pulseaudio~/src/pulsecore/sconv.c 2006-08-18 23:29:25.000000000 +0200
|
|
+++ pulseaudio/src/pulsecore/sconv.c 2006-10-19 00:19:56.229268481 +0200
|
|
@@ -72,6 +72,22 @@
|
|
oil_memcpy(b, a, sizeof(float) * n);
|
|
}
|
|
|
|
+static void float32re_to_float32ne(unsigned n, const void *a, float *b) {
|
|
+ assert(a);
|
|
+ assert(b);
|
|
+
|
|
+ while (n-- > 0)
|
|
+ ((uint32_t *)b)[n] = UINT32_SWAP (((uint32_t *)a)[n]);
|
|
+}
|
|
+
|
|
+static void float32re_from_float32ne(unsigned n, const float *a, void *b) {
|
|
+ assert(a);
|
|
+ assert(b);
|
|
+
|
|
+ while (n-- > 0)
|
|
+ ((uint32_t *)b)[n] = UINT32_SWAP (((uint32_t *)a)[n]);
|
|
+}
|
|
+
|
|
static void ulaw_to_float32ne(unsigned n, const void *a, float *b) {
|
|
const uint8_t *ca = a;
|
|
|
|
@@ -140,6 +156,8 @@
|
|
return pa_sconv_s16be_to_float32ne;
|
|
case PA_SAMPLE_FLOAT32NE:
|
|
return float32ne_to_float32ne;
|
|
+ case PA_SAMPLE_FLOAT32RE:
|
|
+ return float32re_to_float32ne;
|
|
case PA_SAMPLE_ALAW:
|
|
return alaw_to_float32ne;
|
|
case PA_SAMPLE_ULAW:
|
|
@@ -159,6 +177,8 @@
|
|
return pa_sconv_s16be_from_float32ne;
|
|
case PA_SAMPLE_FLOAT32NE:
|
|
return float32ne_from_float32ne;
|
|
+ case PA_SAMPLE_FLOAT32RE:
|
|
+ return float32re_from_float32ne;
|
|
case PA_SAMPLE_ALAW:
|
|
return alaw_from_float32ne;
|
|
case PA_SAMPLE_ULAW:
|