Skip to content

Commit 7337c29

Browse files
committed
Revert "Merge branch 'main' into feat/iir-filter-node"
This reverts commit b9a555b, reversing changes made to 467e599.
1 parent 3823d05 commit 7337c29

File tree

180 files changed

+2749
-2151
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

180 files changed

+2749
-2151
lines changed

packages/react-native-audio-api/.clang-format

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
ColumnLimit: 100
2+
ColumnLimit: 80
33
AccessModifierOffset: -1
44
AlignAfterOpenBracket: AlwaysBreak
55
AlignConsecutiveAssignments: false

packages/react-native-audio-api/android/src/main/cpp/audioapi/android/AudioAPIModule.cpp

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
11
#include <audioapi/android/AudioAPIModule.h>
2-
#include <memory>
3-
#include <string>
4-
#include <unordered_map>
52

63
namespace audioapi {
74

@@ -28,16 +25,20 @@ jni::local_ref<AudioAPIModule::jhybriddata> AudioAPIModule::initHybrid(
2825
jni::alias_ref<jhybridobject> jThis,
2926
jni::alias_ref<jni::JObject> jWorkletsModule,
3027
jlong jsContext,
31-
jni::alias_ref<facebook::react::CallInvokerHolder::javaobject> jsCallInvokerHolder) {
28+
jni::alias_ref<facebook::react::CallInvokerHolder::javaobject>
29+
jsCallInvokerHolder) {
3230
auto jsCallInvoker = jsCallInvokerHolder->cthis()->getCallInvoker();
3331
auto rnRuntime = reinterpret_cast<jsi::Runtime *>(jsContext);
3432
#if RN_AUDIO_API_ENABLE_WORKLETS
3533
if (jWorkletsModule) {
36-
auto castedModule = jni::static_ref_cast<WorkletsModule::javaobject>(jWorkletsModule);
34+
auto castedModule =
35+
jni::static_ref_cast<WorkletsModule::javaobject>(jWorkletsModule);
3736
auto workletsModuleProxy = castedModule->cthis()->getWorkletsModuleProxy();
38-
return makeCxxInstance(jThis, workletsModuleProxy, rnRuntime, jsCallInvoker);
37+
return makeCxxInstance(
38+
jThis, workletsModuleProxy, rnRuntime, jsCallInvoker);
3939
}
40-
throw std::runtime_error("Worklets module is required but not provided from Java/Kotlin side");
40+
throw std::runtime_error(
41+
"Worklets module is required but not provided from Java/Kotlin side");
4142
#else
4243
return makeCxxInstance(jThis, rnRuntime, jsCallInvoker);
4344
#endif
@@ -56,12 +57,16 @@ void AudioAPIModule::registerNatives() {
5657

5758
void AudioAPIModule::injectJSIBindings() {
5859
#if RN_AUDIO_API_ENABLE_WORKLETS
59-
auto uiWorkletRuntime = weakWorkletsModuleProxy_.lock()->getUIWorkletRuntime();
60+
auto uiWorkletRuntime =
61+
weakWorkletsModuleProxy_.lock()->getUIWorkletRuntime();
6062
#else
6163
auto uiWorkletRuntime = nullptr;
6264
#endif
6365
AudioAPIModuleInstaller::injectJSIBindings(
64-
jsiRuntime_, jsCallInvoker_, audioEventHandlerRegistry_, uiWorkletRuntime);
66+
jsiRuntime_,
67+
jsCallInvoker_,
68+
audioEventHandlerRegistry_,
69+
uiWorkletRuntime);
6570
}
6671

6772
void AudioAPIModule::invokeHandlerWithEventNameAndEventBody(
@@ -93,7 +98,8 @@ void AudioAPIModule::invokeHandlerWithEventNameAndEventBody(
9398
}
9499

95100
if (audioEventHandlerRegistry_ != nullptr) {
96-
audioEventHandlerRegistry_->invokeHandlerWithEventBody(eventName->toStdString(), body);
101+
audioEventHandlerRegistry_->invokeHandlerWithEventBody(
102+
eventName->toStdString(), body);
97103
}
98104
}
99105

packages/react-native-audio-api/android/src/main/cpp/audioapi/android/OnLoad.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,6 @@
55
using namespace audioapi;
66

77
JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *) {
8-
return facebook::jni::initialize(vm, [] { AudioAPIModule::registerNatives(); });
8+
return facebook::jni::initialize(
9+
vm, [] { AudioAPIModule::registerNatives(); });
910
}

packages/react-native-audio-api/android/src/main/cpp/audioapi/android/core/AndroidAudioRecorder.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@
77
#include <audioapi/utils/CircularAudioArray.h>
88
#include <audioapi/utils/CircularOverflowableAudioArray.h>
99

10-
#include <memory>
11-
1210
namespace audioapi {
1311

1412
AndroidAudioRecorder::AndroidAudioRecorder(
@@ -47,7 +45,8 @@ void AndroidAudioRecorder::start() {
4745
}
4846

4947
if (mStream_) {
50-
jni::ThreadScope::WithClassLoader([this]() { nativeAudioRecorder_->start(); });
48+
jni::ThreadScope::WithClassLoader(
49+
[this]() { nativeAudioRecorder_->start(); });
5150
mStream_->requestStart();
5251
}
5352

@@ -62,7 +61,8 @@ void AndroidAudioRecorder::stop() {
6261
isRunning_.store(false);
6362

6463
if (mStream_) {
65-
jni::ThreadScope::WithClassLoader([this]() { nativeAudioRecorder_->stop(); });
64+
jni::ThreadScope::WithClassLoader(
65+
[this]() { nativeAudioRecorder_->stop(); });
6666
mStream_->requestStop();
6767
}
6868

packages/react-native-audio-api/android/src/main/cpp/audioapi/android/core/AudioPlayer.cpp

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,15 @@
66
#include <audioapi/utils/AudioBus.h>
77
#include <jni.h>
88

9-
#include <algorithm>
10-
#include <memory>
11-
129
namespace audioapi {
1310

1411
AudioPlayer::AudioPlayer(
1512
const std::function<void(std::shared_ptr<AudioBus>, int)> &renderAudio,
1613
float sampleRate,
1714
int channelCount)
18-
: renderAudio_(renderAudio), sampleRate_(sampleRate), channelCount_(channelCount) {
15+
: renderAudio_(renderAudio),
16+
sampleRate_(sampleRate),
17+
channelCount_(channelCount) {
1918
isInitialized_ = openAudioStream();
2019

2120
nativeAudioPlayer_ = jni::make_global(NativeAudioPlayer::create());
@@ -37,17 +36,22 @@ bool AudioPlayer::openAudioStream() {
3736
auto result = builder.openStream(mStream_);
3837
if (result != oboe::Result::OK || mStream_ == nullptr) {
3938
__android_log_print(
40-
ANDROID_LOG_ERROR, "AudioPlayer", "Failed to open stream: %s", oboe::convertToText(result));
39+
ANDROID_LOG_ERROR,
40+
"AudioPlayer",
41+
"Failed to open stream: %s",
42+
oboe::convertToText(result));
4143
return false;
4244
}
4345

44-
mBus_ = std::make_shared<AudioBus>(RENDER_QUANTUM_SIZE, channelCount_, sampleRate_);
46+
mBus_ = std::make_shared<AudioBus>(
47+
RENDER_QUANTUM_SIZE, channelCount_, sampleRate_);
4548
return true;
4649
}
4750

4851
bool AudioPlayer::start() {
4952
if (mStream_) {
50-
jni::ThreadScope::WithClassLoader([this]() { nativeAudioPlayer_->start(); });
53+
jni::ThreadScope::WithClassLoader(
54+
[this]() { nativeAudioPlayer_->start(); });
5155
auto result = mStream_->requestStart();
5256
return result == oboe::Result::OK;
5357
}
@@ -90,8 +94,10 @@ bool AudioPlayer::isRunning() const {
9094
return mStream_ && mStream_->getState() == oboe::StreamState::Started;
9195
}
9296

93-
DataCallbackResult
94-
AudioPlayer::onAudioReady(AudioStream *oboeStream, void *audioData, int32_t numFrames) {
97+
DataCallbackResult AudioPlayer::onAudioReady(
98+
AudioStream *oboeStream,
99+
void *audioData,
100+
int32_t numFrames) {
95101
if (!isInitialized_) {
96102
return DataCallbackResult::Continue;
97103
}
@@ -102,7 +108,8 @@ AudioPlayer::onAudioReady(AudioStream *oboeStream, void *audioData, int32_t numF
102108
assert(buffer != nullptr);
103109

104110
while (processedFrames < numFrames) {
105-
int framesToProcess = std::min(numFrames - processedFrames, RENDER_QUANTUM_SIZE);
111+
int framesToProcess =
112+
std::min(numFrames - processedFrames, RENDER_QUANTUM_SIZE);
106113
renderAudio_(mBus_, framesToProcess);
107114

108115
// TODO: optimize this with SIMD?
@@ -119,7 +126,9 @@ AudioPlayer::onAudioReady(AudioStream *oboeStream, void *audioData, int32_t numF
119126
return DataCallbackResult::Continue;
120127
}
121128

122-
void AudioPlayer::onErrorAfterClose(oboe::AudioStream *stream, oboe::Result error) {
129+
void AudioPlayer::onErrorAfterClose(
130+
oboe::AudioStream *stream,
131+
oboe::Result error) {
123132
if (error == oboe::Result::ErrorDisconnected) {
124133
cleanup();
125134
if (openAudioStream()) {

packages/react-native-audio-api/android/src/main/cpp/audioapi/android/core/utils/AudioDecoder.cpp

Lines changed: 46 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -15,29 +15,31 @@
1515
#include <audioapi/libs/ffmpeg/FFmpegDecoding.h>
1616
#endif
1717

18-
#include <memory>
19-
#include <string>
20-
#include <vector>
21-
2218
namespace audioapi {
2319

2420
// Decoding audio in fixed-size chunks because total frame count can't be
2521
// determined in advance. Note: ma_decoder_get_length_in_pcm_frames() always
2622
// returns 0 for Vorbis decoders.
27-
std::vector<float> AudioDecoder::readAllPcmFrames(ma_decoder &decoder, int outputChannels) {
23+
std::vector<float> AudioDecoder::readAllPcmFrames(
24+
ma_decoder &decoder,
25+
int outputChannels) {
2826
std::vector<float> buffer;
2927
std::vector<float> temp(CHUNK_SIZE * outputChannels);
3028
ma_uint64 outFramesRead = 0;
3129

3230
#ifndef AUDIO_API_TEST_SUITE
3331
while (true) {
3432
ma_uint64 tempFramesDecoded = 0;
35-
ma_decoder_read_pcm_frames(&decoder, temp.data(), CHUNK_SIZE, &tempFramesDecoded);
33+
ma_decoder_read_pcm_frames(
34+
&decoder, temp.data(), CHUNK_SIZE, &tempFramesDecoded);
3635
if (tempFramesDecoded == 0) {
3736
break;
3837
}
3938

40-
buffer.insert(buffer.end(), temp.data(), temp.data() + tempFramesDecoded * outputChannels);
39+
buffer.insert(
40+
buffer.end(),
41+
temp.data(),
42+
temp.data() + tempFramesDecoded * outputChannels);
4143
outFramesRead += tempFramesDecoded;
4244
}
4345

@@ -57,7 +59,8 @@ std::shared_ptr<AudioBuffer> AudioDecoder::makeAudioBufferFromFloatBuffer(
5759
}
5860

5961
auto outputFrames = buffer.size() / outputChannels;
60-
auto audioBus = std::make_shared<AudioBus>(outputFrames, outputChannels, outputSampleRate);
62+
auto audioBus = std::make_shared<AudioBus>(
63+
outputFrames, outputChannels, outputSampleRate);
6164

6265
for (int ch = 0; ch < outputChannels; ++ch) {
6366
auto channelData = audioBus->getChannel(ch)->getData();
@@ -73,21 +76,27 @@ std::shared_ptr<AudioBuffer> AudioDecoder::decodeWithFilePath(
7376
float sampleRate) {
7477
#ifndef AUDIO_API_TEST_SUITE
7578
if (AudioDecoder::pathHasExtension(path, {".mp4", ".m4a", ".aac"})) {
76-
auto buffer = ffmpegdecoder::decodeWithFilePath(path, static_cast<int>(sampleRate));
79+
auto buffer =
80+
ffmpegdecoder::decodeWithFilePath(path, static_cast<int>(sampleRate));
7781
if (buffer == nullptr) {
7882
__android_log_print(
79-
ANDROID_LOG_ERROR, "AudioDecoder", "Failed to decode with FFmpeg: %s", path.c_str());
83+
ANDROID_LOG_ERROR,
84+
"AudioDecoder",
85+
"Failed to decode with FFmpeg: %s",
86+
path.c_str());
8087
return nullptr;
8188
}
8289
return buffer;
8390
}
8491
ma_decoder decoder;
85-
ma_decoder_config config = ma_decoder_config_init(ma_format_f32, 0, static_cast<int>(sampleRate));
92+
ma_decoder_config config =
93+
ma_decoder_config_init(ma_format_f32, 0, static_cast<int>(sampleRate));
8694
ma_decoding_backend_vtable *customBackends[] = {
8795
ma_decoding_backend_libvorbis, ma_decoding_backend_libopus};
8896

8997
config.ppCustomBackendVTables = customBackends;
90-
config.customBackendCount = sizeof(customBackends) / sizeof(customBackends[0]);
98+
config.customBackendCount =
99+
sizeof(customBackends) / sizeof(customBackends[0]);
91100

92101
if (ma_decoder_init_file(path.c_str(), &config, &decoder) != MA_SUCCESS) {
93102
__android_log_print(
@@ -104,36 +113,46 @@ std::shared_ptr<AudioBuffer> AudioDecoder::decodeWithFilePath(
104113

105114
std::vector<float> buffer = readAllPcmFrames(decoder, outputChannels);
106115
ma_decoder_uninit(&decoder);
107-
return makeAudioBufferFromFloatBuffer(buffer, outputSampleRate, outputChannels);
116+
return makeAudioBufferFromFloatBuffer(
117+
buffer, outputSampleRate, outputChannels);
108118
#else
109119
return nullptr;
110120
#endif
111121
}
112122

113-
std::shared_ptr<AudioBuffer>
114-
AudioDecoder::decodeWithMemoryBlock(const void *data, size_t size, float sampleRate) {
123+
std::shared_ptr<AudioBuffer> AudioDecoder::decodeWithMemoryBlock(
124+
const void *data,
125+
size_t size,
126+
float sampleRate) {
115127
#ifndef AUDIO_API_TEST_SUITE
116128
const AudioFormat format = AudioDecoder::detectAudioFormat(data, size);
117-
if (format == AudioFormat::MP4 || format == AudioFormat::M4A || format == AudioFormat::AAC) {
118-
auto buffer = ffmpegdecoder::decodeWithMemoryBlock(data, size, static_cast<int>(sampleRate));
129+
if (format == AudioFormat::MP4 || format == AudioFormat::M4A ||
130+
format == AudioFormat::AAC) {
131+
auto buffer = ffmpegdecoder::decodeWithMemoryBlock(
132+
data, size, static_cast<int>(sampleRate));
119133
if (buffer == nullptr) {
120-
__android_log_print(ANDROID_LOG_ERROR, "AudioDecoder", "Failed to decode with FFmpeg");
134+
__android_log_print(
135+
ANDROID_LOG_ERROR, "AudioDecoder", "Failed to decode with FFmpeg");
121136
return nullptr;
122137
}
123138
return buffer;
124139
}
125140
ma_decoder decoder;
126-
ma_decoder_config config = ma_decoder_config_init(ma_format_f32, 0, static_cast<int>(sampleRate));
141+
ma_decoder_config config =
142+
ma_decoder_config_init(ma_format_f32, 0, static_cast<int>(sampleRate));
127143

128144
ma_decoding_backend_vtable *customBackends[] = {
129145
ma_decoding_backend_libvorbis, ma_decoding_backend_libopus};
130146

131147
config.ppCustomBackendVTables = customBackends;
132-
config.customBackendCount = sizeof(customBackends) / sizeof(customBackends[0]);
148+
config.customBackendCount =
149+
sizeof(customBackends) / sizeof(customBackends[0]);
133150

134151
if (ma_decoder_init_memory(data, size, &config, &decoder) != MA_SUCCESS) {
135152
__android_log_print(
136-
ANDROID_LOG_ERROR, "AudioDecoder", "Failed to initialize decoder for memory block");
153+
ANDROID_LOG_ERROR,
154+
"AudioDecoder",
155+
"Failed to initialize decoder for memory block");
137156
ma_decoder_uninit(&decoder);
138157
return nullptr;
139158
}
@@ -143,7 +162,8 @@ AudioDecoder::decodeWithMemoryBlock(const void *data, size_t size, float sampleR
143162

144163
std::vector<float> buffer = readAllPcmFrames(decoder, outputChannels);
145164
ma_decoder_uninit(&decoder);
146-
return makeAudioBufferFromFloatBuffer(buffer, outputSampleRate, outputChannels);
165+
return makeAudioBufferFromFloatBuffer(
166+
buffer, outputSampleRate, outputChannels);
147167
#else
148168
return nullptr;
149169
#endif
@@ -156,9 +176,11 @@ std::shared_ptr<AudioBuffer> AudioDecoder::decodeWithPCMInBase64(
156176
bool interleaved) {
157177
auto decodedData = base64_decode(data, false);
158178
const auto uint8Data = reinterpret_cast<uint8_t *>(decodedData.data());
159-
size_t numFramesDecoded = decodedData.size() / (inputChannelCount * sizeof(int16_t));
179+
size_t numFramesDecoded =
180+
decodedData.size() / (inputChannelCount * sizeof(int16_t));
160181

161-
auto audioBus = std::make_shared<AudioBus>(numFramesDecoded, inputChannelCount, inputSampleRate);
182+
auto audioBus = std::make_shared<AudioBus>(
183+
numFramesDecoded, inputChannelCount, inputSampleRate);
162184

163185
for (int ch = 0; ch < inputChannelCount; ++ch) {
164186
auto channelData = audioBus->getChannel(ch)->getData();

0 commit comments

Comments
 (0)