File tree Expand file tree Collapse file tree 5 files changed +17
-7
lines changed Expand file tree Collapse file tree 5 files changed +17
-7
lines changed Original file line number Diff line number Diff line change @@ -76,7 +76,7 @@ class OpenALAudioDeviceModule : public ExtendedADM {
7676 static rtc::scoped_refptr<OpenALAudioDeviceModule> Create (
7777 AudioLayer audio_layer,
7878 webrtc::TaskQueueFactory* task_queue_factory,
79- webrtc::AudioProcessing* audio_processing);
79+ const std::unique_ptr<rtc::scoped_refptr< webrtc::AudioProcessing>>& audio_processing);
8080
8181 // Main initialization and termination.
8282 int32_t Init () override ;
Original file line number Diff line number Diff line change @@ -128,7 +128,7 @@ std::unique_ptr<AudioDeviceModule> create_audio_device_module(
128128 Thread& worker_thread,
129129 AudioLayer audio_layer,
130130 TaskQueueFactory& task_queue_factory,
131- const AudioProcessing& ap);
131+ const std::unique_ptr< AudioProcessing> & ap);
132132
133133// Initializes the native audio parts required for each platform.
134134int32_t init_audio_device_module (const AudioDeviceModule& audio_device_module);
Original file line number Diff line number Diff line change @@ -1488,7 +1488,7 @@ pub(crate) mod webrtc {
14881488 worker_thread : Pin < & mut Thread > ,
14891489 audio_layer : AudioLayer ,
14901490 task_queue_factory : Pin < & mut TaskQueueFactory > ,
1491- ap : & AudioProcessing ,
1491+ ap : & UniquePtr < AudioProcessing > ,
14921492 ) -> UniquePtr < AudioDeviceModule > ;
14931493
14941494 /// Initializes the given [`AudioDeviceModule`].
Original file line number Diff line number Diff line change @@ -165,10 +165,14 @@ int32_t OpenALAudioDeviceModule::ActiveAudioLayer(
165165rtc::scoped_refptr<OpenALAudioDeviceModule> OpenALAudioDeviceModule::Create (
166166 AudioLayer audio_layer,
167167 webrtc::TaskQueueFactory* task_queue_factory,
168- webrtc::AudioProcessing* audio_processing) {
168+ const std::unique_ptr<rtc::scoped_refptr< webrtc::AudioProcessing>>& audio_processing) {
169169 auto adm = rtc::make_ref_counted<OpenALAudioDeviceModule>();
170170
171- adm->audio_processing_ = audio_processing;
171+ if (!audio_processing.get ()) {
172+ adm->audio_processing_ = nullptr ;
173+ } else {
174+ adm->audio_processing_ = audio_processing.get ()->get ();
175+ }
172176 adm->audio_device_buffer_ =
173177 std::make_unique<webrtc::AudioDeviceBuffer>(task_queue_factory);
174178
@@ -843,6 +847,12 @@ bool OpenALAudioDeviceModule::RecordingIsInitialized() const {
843847}
844848
845849int32_t OpenALAudioDeviceModule::StartRecording () {
850+ for (const auto & [_, recorder] : _recorders) {
851+ recorder->StartCapture ();
852+ }
853+ ensureThreadStarted ();
854+ startCaptureOnThread ();
855+
846856 return 0 ;
847857}
848858
Original file line number Diff line number Diff line change @@ -113,13 +113,13 @@ std::unique_ptr<AudioDeviceModule> create_audio_device_module(
113113 Thread& worker_thread,
114114 AudioLayer audio_layer,
115115 TaskQueueFactory& task_queue_factory,
116- const AudioProcessing& ap) {
116+ const std::unique_ptr< AudioProcessing> & ap) {
117117 AudioDeviceModule adm = worker_thread.BlockingCall ([audio_layer,
118118 &task_queue_factory,
119119 &ap] {
120120 return ::OpenALAudioDeviceModule::Create (audio_layer,
121121 &task_queue_factory,
122- ap. get () );
122+ ap);
123123 });
124124
125125 if (adm == nullptr ) {
You can’t perform that action at this time.
0 commit comments