Skip to content

Commit dc7d00f

Browse files
committed
AudioProcessing to use only 16 Bit audio samples
1 parent caca82c commit dc7d00f

File tree

3 files changed

+42
-43
lines changed

3 files changed

+42
-43
lines changed

webrtc-jni/src/main/cpp/include/JNI_AudioProcessing.h

Lines changed: 8 additions & 24 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

webrtc/src/main/java/dev/onvoid/webrtc/media/audio/AudioProcessing.java

Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,11 @@
2020
import dev.onvoid.webrtc.internal.NativeLoader;
2121

2222
/**
23-
* Audio Processing provides a collection of voice processing components
24-
* designed for real-time communications software.
25-
* <br/>
26-
* Audio Processing
27-
* accepts only linear PCM audio data in chunks of 10 ms. The int16 interfaces
28-
* use interleaved data, while the float interfaces use deinterleaved data.
23+
* AudioProcessing provides a collection of voice processing components designed
24+
* for real-time communications software.
25+
* <p>
26+
* AudioProcessing accepts only linear PCM audio data in chunks of 10 ms. The
27+
* int16 interfaces use interleaved data.
2928
*
3029
* @author Alex Andres
3130
*/
@@ -56,21 +55,13 @@ public AudioProcessingStats getStatistics() {
5655
return stats;
5756
}
5857

59-
public native int ProcessStream(short[] src,
58+
public native int processStream(byte[] src,
6059
AudioProcessingStreamConfig inputConfig,
61-
AudioProcessingStreamConfig outputConfig, short[] dest);
60+
AudioProcessingStreamConfig outputConfig, byte[] dest);
6261

63-
public native int ProcessStream(float[] src,
62+
public native int processReverseStream(byte[] src,
6463
AudioProcessingStreamConfig inputConfig,
65-
AudioProcessingStreamConfig outputConfig, float[] dest);
66-
67-
public native int ProcessReverseStream(short[] src,
68-
AudioProcessingStreamConfig inputConfig,
69-
AudioProcessingStreamConfig outputConfig, short[] dest);
70-
71-
public native int ProcessReverseStream(float[] src,
72-
AudioProcessingStreamConfig inputConfig,
73-
AudioProcessingStreamConfig outputConfig, float[] dest);
64+
AudioProcessingStreamConfig outputConfig, byte[] dest);
7465

7566
@Override
7667
public native void dispose();

webrtc/src/test/java/dev/onvoid/webrtc/media/audio/AudioProcessingTests.java renamed to webrtc/src/test/java/dev/onvoid/webrtc/media/audio/AudioProcessingTest.java

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
package dev.onvoid.webrtc.media.audio;
1818

19+
import static org.junit.jupiter.api.Assertions.assertEquals;
1920
import static org.junit.jupiter.api.Assertions.assertNotNull;
2021

2122
import dev.onvoid.webrtc.TestBase;
@@ -24,7 +25,9 @@
2425
import org.junit.jupiter.api.BeforeEach;
2526
import org.junit.jupiter.api.Test;
2627

27-
class AudioProcessingTests extends TestBase {
28+
class AudioProcessingTest extends TestBase {
29+
30+
private final AudioProcessingStreamConfig streamConfig = new AudioProcessingStreamConfig(48000, 1);
2831

2932
private AudioProcessing audioProcessing;
3033

@@ -59,4 +62,25 @@ void getStats() {
5962
assertNotNull(audioProcessing.getStatistics());
6063
}
6164

65+
@Test
66+
void processByteStream() {
67+
int sampleRate = streamConfig.sampleRate;
68+
int bytesPerFrame = 2;
69+
int frameSize = sampleRate / 100 * bytesPerFrame; // 10 ms frame
70+
71+
byte[] data = new byte[frameSize];
72+
73+
assertEquals(0, audioProcessing.processStream(data, streamConfig, streamConfig, data));
74+
}
75+
76+
@Test
77+
void processReverseStream() {
78+
int sampleRate = streamConfig.sampleRate;
79+
int bytesPerFrame = 2;
80+
int frameSize = sampleRate / 100 * bytesPerFrame; // 10 ms frame
81+
82+
byte[] data = new byte[frameSize];
83+
84+
assertEquals(0, audioProcessing.processReverseStream(data, streamConfig, streamConfig, data));
85+
}
6286
}

0 commit comments

Comments
 (0)