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

Side by Side Diff: modules/audio_conference_mixer/include/audio_conference_mixer_defines.h

Issue 3015553002: Remove voe::OutputMixer and AudioConferenceMixer. (Closed)
Patch Set: remove conference mixer from presubmit.py Created 3 years, 3 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 unified diff | Download patch
OLDNEW
(Empty)
1 /*
2 * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
11 #ifndef MODULES_AUDIO_CONFERENCE_MIXER_INCLUDE_AUDIO_CONFERENCE_MIXER_DEFINES_H_
12 #define MODULES_AUDIO_CONFERENCE_MIXER_INCLUDE_AUDIO_CONFERENCE_MIXER_DEFINES_H_
13
14 #include "modules/include/module_common_types.h"
15 #include "rtc_base/checks.h"
16 #include "typedefs.h" // NOLINT(build/include)
17
18 namespace webrtc {
19 class MixHistory;
20
21 // A callback class that all mixer participants must inherit from/implement.
22 class MixerParticipant
23 {
24 public:
25 // The implementation of this function should update audioFrame with new
26 // audio every time it's called.
27 //
28 // If it returns -1, the frame will not be added to the mix.
29 //
30 // NOTE: This function should not be called. It will remain for a short
31 // time so that subclasses can override it without getting warnings.
32 // TODO(henrik.lundin) Remove this function.
33 virtual int32_t GetAudioFrame(int32_t id,
34 AudioFrame* audioFrame) {
35 RTC_CHECK(false);
36 return -1;
37 }
38
39
40 // The implementation of GetAudioFrameWithMuted should update audio_frame
41 // with new audio every time it's called. The return value will be
42 // interpreted as follows.
43 enum class AudioFrameInfo {
44 kNormal, // The samples in audio_frame are valid and should be used.
45 kMuted, // The samples in audio_frame should not be used, but should be
46 // implicitly interpreted as zero. Other fields in audio_frame
47 // may be read and should contain meaningful values.
48 kError // audio_frame will not be used.
49 };
50
51 virtual AudioFrameInfo GetAudioFrameWithMuted(int32_t id,
52 AudioFrame* audio_frame) {
53 return GetAudioFrame(id, audio_frame) == -1 ?
54 AudioFrameInfo::kError :
55 AudioFrameInfo::kNormal;
56 }
57
58 // Returns true if the participant was mixed this mix iteration.
59 bool IsMixed() const;
60
61 // This function specifies the sampling frequency needed for the AudioFrame
62 // for future GetAudioFrame(..) calls.
63 virtual int32_t NeededFrequency(int32_t id) const = 0;
64
65 MixHistory* _mixHistory;
66 protected:
67 MixerParticipant();
68 virtual ~MixerParticipant();
69 };
70
71 class AudioMixerOutputReceiver
72 {
73 public:
74 // This callback function provides the mixed audio for this mix iteration.
75 // Note that uniqueAudioFrames is an array of AudioFrame pointers with the
76 // size according to the size parameter.
77 virtual void NewMixedAudio(const int32_t id,
78 const AudioFrame& generalAudioFrame,
79 const AudioFrame** uniqueAudioFrames,
80 const uint32_t size) = 0;
81 protected:
82 AudioMixerOutputReceiver() {}
83 virtual ~AudioMixerOutputReceiver() {}
84 };
85 } // namespace webrtc
86
87 #endif // MODULES_AUDIO_CONFERENCE_MIXER_INCLUDE_AUDIO_CONFERENCE_MIXER_DEFINES_ H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698