| Index: webrtc/modules/audio_mixer/include/audio_mixer_defines.h
 | 
| diff --git a/webrtc/modules/audio_mixer/include/audio_mixer_defines.h b/webrtc/modules/audio_mixer/include/audio_mixer_defines.h
 | 
| index e204435c1a30f09114bf406967352769e359d9b8..a1574ac2405f9ebe148a9b0ae45bcafcfd22e938 100644
 | 
| --- a/webrtc/modules/audio_mixer/include/audio_mixer_defines.h
 | 
| +++ b/webrtc/modules/audio_mixer/include/audio_mixer_defines.h
 | 
| @@ -21,22 +21,6 @@ class NewMixHistory;
 | 
|  // A callback class that all mixer participants must inherit from/implement.
 | 
|  class MixerAudioSource {
 | 
|   public:
 | 
| -  // The implementation of this function should update audioFrame with new
 | 
| -  // audio every time it's called.
 | 
| -  //
 | 
| -  // If it returns -1, the frame will not be added to the mix.
 | 
| -  //
 | 
| -  // NOTE: This function should not be called. It will remain for a short
 | 
| -  // time so that subclasses can override it without getting warnings.
 | 
| -  // TODO(henrik.lundin) Remove this function.
 | 
| -  virtual int32_t GetAudioFrame(int32_t id, AudioFrame* audioFrame) {
 | 
| -    RTC_CHECK(false);
 | 
| -    return -1;
 | 
| -  }
 | 
| -
 | 
| -  // The implementation of GetAudioFrameWithMuted should update audio_frame
 | 
| -  // with new audio every time it's called. The return value will be
 | 
| -  // interpreted as follows.
 | 
|    enum class AudioFrameInfo {
 | 
|      kNormal,  // The samples in audio_frame are valid and should be used.
 | 
|      kMuted,   // The samples in audio_frame should not be used, but should be
 | 
| @@ -45,11 +29,19 @@ class MixerAudioSource {
 | 
|      kError    // audio_frame will not be used.
 | 
|    };
 | 
|  
 | 
| -  virtual AudioFrameInfo GetAudioFrameWithMuted(int32_t id,
 | 
| -                                                AudioFrame* audio_frame) {
 | 
| -    return GetAudioFrame(id, audio_frame) == -1 ? AudioFrameInfo::kError
 | 
| -                                                : AudioFrameInfo::kNormal;
 | 
| -  }
 | 
| +  struct AudioFrameWithInfo {
 | 
| +    AudioFrame* audio_frame;
 | 
| +    AudioFrameInfo audio_frame_info;
 | 
| +  };
 | 
| +
 | 
| +  // The implementation of GetAudioFrameWithMuted should update
 | 
| +  // audio_frame with new audio every time it's called. Implementing
 | 
| +  // classes are allowed to return the same AudioFrame pointer on
 | 
| +  // different calls. The pointer must stay valid until the next
 | 
| +  // mixing call or until this audio source is disconnected from the
 | 
| +  // mixer.
 | 
| +  virtual AudioFrameWithInfo GetAudioFrameWithMuted(int32_t id,
 | 
| +                                                    int sample_rate_hz) = 0;
 | 
|  
 | 
|    // Returns true if the participant was mixed this mix iteration.
 | 
|    bool IsMixed() const;
 | 
| 
 |