Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(151)

Unified Diff: webrtc/modules/audio_mixer/audio_mixer.h

Issue 2104363003: A simple copy of the old mixer to a new directory. I also plan to run 'git cl format'. In another C… (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Fixed cpplint complaints in old code. Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/modules/audio_mixer/DEPS ('k') | webrtc/modules/audio_mixer/audio_mixer.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/modules/audio_mixer/audio_mixer.h
diff --git a/webrtc/modules/audio_mixer/audio_mixer.h b/webrtc/modules/audio_mixer/audio_mixer.h
new file mode 100644
index 0000000000000000000000000000000000000000..ddcebe56258ae9d89ac862a41c51e64653eb1133
--- /dev/null
+++ b/webrtc/modules/audio_mixer/audio_mixer.h
@@ -0,0 +1,127 @@
+/*
+ * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
+ *
+ * Use of this source code is governed by a BSD-style license
+ * that can be found in the LICENSE file in the root of the source
+ * tree. An additional intellectual property rights grant can be found
+ * in the file PATENTS. All contributing project authors may
+ * be found in the AUTHORS file in the root of the source tree.
+ */
+
+#ifndef WEBRTC_MODULES_AUDIO_MIXER_AUDIO_MIXER_H_
+#define WEBRTC_MODULES_AUDIO_MIXER_AUDIO_MIXER_H_
+
+#include "webrtc/base/criticalsection.h"
+#include "webrtc/common_audio/resampler/include/push_resampler.h"
+#include "webrtc/common_types.h"
+#include "webrtc/modules/audio_mixer/include/new_audio_conference_mixer.h"
+#include "webrtc/modules/audio_mixer/include/audio_mixer_defines.h"
+#include "webrtc/modules/utility/include/file_recorder.h"
+#include "webrtc/voice_engine/level_indicator.h"
+#include "webrtc/voice_engine/voice_engine_defines.h"
+
+namespace webrtc {
+
+class AudioProcessing;
+class FileWrapper;
+class VoEMediaProcess;
+
+namespace voe {
+class Statistics;
+
+// Note: this class is in the process of being rewritten and merged
+// with AudioConferenceMixer. Expect inheritance chains to be changed,
+// member functions removed or renamed.
+class AudioMixer : public OldAudioMixerOutputReceiver, public FileCallback {
+ public:
+ static int32_t Create(AudioMixer*& mixer, uint32_t instanceId); // NOLINT
+
+ static void Destroy(AudioMixer*& mixer); // NOLINT
+
+ int32_t SetEngineInformation(Statistics& engineStatistics); // NOLINT
+
+ int32_t SetAudioProcessingModule(AudioProcessing* audioProcessingModule);
+
+ // VoEExternalMedia
+ int RegisterExternalMediaProcessing(VoEMediaProcess& // NOLINT
+ proccess_object);
+
+ int DeRegisterExternalMediaProcessing();
+
+ int32_t MixActiveChannels();
+
+ int32_t DoOperationsOnCombinedSignal(bool feed_data_to_apm);
+
+ int32_t SetMixabilityStatus(MixerAudioSource& participant, // NOLINT
+ bool mixable);
+
+ int32_t SetAnonymousMixabilityStatus(MixerAudioSource& participant, // NOLINT
+ bool mixable);
+
+ int GetMixedAudio(int sample_rate_hz,
+ size_t num_channels,
+ AudioFrame* audioFrame);
+
+ // VoEVolumeControl
+ int GetSpeechOutputLevel(uint32_t& level); // NOLINT
+
+ int GetSpeechOutputLevelFullRange(uint32_t& level); // NOLINT
+
+ int SetOutputVolumePan(float left, float right);
+
+ int GetOutputVolumePan(float& left, float& right); // NOLINT
+
+ // VoEFile
+ int StartRecordingPlayout(const char* fileName, const CodecInst* codecInst);
+
+ int StartRecordingPlayout(OutStream* stream, const CodecInst* codecInst);
+ int StopRecordingPlayout();
+
+ virtual ~AudioMixer();
+
+ // from AudioMixerOutputReceiver
+ virtual void NewMixedAudio(int32_t id,
+ const AudioFrame& generalAudioFrame,
+ const AudioFrame** uniqueAudioFrames,
+ uint32_t size);
+
+ // For file recording
+ void PlayNotification(int32_t id, uint32_t durationMs);
+
+ void RecordNotification(int32_t id, uint32_t durationMs);
+
+ void PlayFileEnded(int32_t id);
+ void RecordFileEnded(int32_t id);
+
+ private:
+ explicit AudioMixer(uint32_t instanceId);
+
+ // uses
+ Statistics* _engineStatisticsPtr;
+ AudioProcessing* _audioProcessingModulePtr;
+
+ rtc::CriticalSection _callbackCritSect;
+ // protect the _outputFileRecorderPtr and _outputFileRecording
+ rtc::CriticalSection _fileCritSect;
+ NewAudioConferenceMixer& _mixerModule;
+ AudioFrame _audioFrame;
+ // Converts mixed audio to the audio device output rate.
+ PushResampler<int16_t> resampler_;
+ // Converts mixed audio to the audio processing rate.
+ PushResampler<int16_t> audioproc_resampler_;
+ AudioLevel _audioLevel; // measures audio level for the combined signal
+ int _instanceId;
+ VoEMediaProcess* _externalMediaCallbackPtr;
+ bool _externalMedia;
+ float _panLeft;
+ float _panRight;
+ int _mixingFrequencyHz;
+ FileRecorder* _outputFileRecorderPtr;
+ bool _outputFileRecording;
+};
+
+} // namespace voe
+
+} // namespace webrtc
+
+#endif // WEBRTC_MODULES_AUDIO_MIXER_AUDIO_MIXER_H_
« no previous file with comments | « webrtc/modules/audio_mixer/DEPS ('k') | webrtc/modules/audio_mixer/audio_mixer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698