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

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

Issue 2109133003: Added empty directory with myself as owner for new mixer. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Renamed to avoid compilation crashes and added build file. Created 4 years, 6 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
Index: webrtc/modules/audio_mixer/output_mixer.h
diff --git a/webrtc/modules/audio_mixer/output_mixer.h b/webrtc/modules/audio_mixer/output_mixer.h
new file mode 100644
index 0000000000000000000000000000000000000000..6fb17b3c7f5dc69116e54b3641c87b40e9c49f5e
--- /dev/null
+++ b/webrtc/modules/audio_mixer/output_mixer.h
@@ -0,0 +1,123 @@
+/*
+ * 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_VOICE_ENGINE_OUTPUT_MIXER_H_
+#define WEBRTC_VOICE_ENGINE_OUTPUT_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_conference_mixer/include/audio_conference_mixer.h"
+#include "webrtc/modules/audio_conference_mixer/include/audio_conference_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;
+
+class OutputMixer : public AudioMixerOutputReceiver, public FileCallback {
+ public:
+ static int32_t Create(OutputMixer*& mixer, uint32_t instanceId);
+
+ static void Destroy(OutputMixer*& mixer);
+
+ int32_t SetEngineInformation(Statistics& engineStatistics);
+
+ int32_t SetAudioProcessingModule(AudioProcessing* audioProcessingModule);
+
+ // VoEExternalMedia
+ int RegisterExternalMediaProcessing(VoEMediaProcess& proccess_object);
+
+ int DeRegisterExternalMediaProcessing();
+
+ int32_t MixActiveChannels();
+
+ int32_t DoOperationsOnCombinedSignal(bool feed_data_to_apm);
+
+ int32_t SetMixabilityStatus(MixerParticipant& participant, bool mixable);
+
+ int32_t SetAnonymousMixabilityStatus(MixerParticipant& participant,
+ bool mixable);
+
+ int GetMixedAudio(int sample_rate_hz,
+ size_t num_channels,
+ AudioFrame* audioFrame);
+
+ // VoEVolumeControl
+ int GetSpeechOutputLevel(uint32_t& level);
+
+ int GetSpeechOutputLevelFullRange(uint32_t& level);
+
+ int SetOutputVolumePan(float left, float right);
+
+ int GetOutputVolumePan(float& left, float& right);
+
+ // VoEFile
+ int StartRecordingPlayout(const char* fileName, const CodecInst* codecInst);
+
+ int StartRecordingPlayout(OutStream* stream, const CodecInst* codecInst);
+ int StopRecordingPlayout();
+
+ virtual ~OutputMixer();
+
+ // 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:
+ OutputMixer(uint32_t instanceId);
+
+ // uses
+ Statistics* _engineStatisticsPtr;
+ AudioProcessing* _audioProcessingModulePtr;
+
+ rtc::CriticalSection _callbackCritSect;
+ // protect the _outputFileRecorderPtr and _outputFileRecording
+ rtc::CriticalSection _fileCritSect;
+ AudioConferenceMixer& _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 werbtc
+
+#endif // VOICE_ENGINE_OUTPUT_MIXER_H_
« no previous file with comments | « webrtc/modules/audio_mixer/include/audio_conference_mixer_defines.h ('k') | webrtc/modules/audio_mixer/output_mixer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698