1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef CONTENT_RENDERER_MEDIA_WEBRTC_WEBRTC_AUDIO_SINK_ADAPTER_H_ 6 #define CONTENT_RENDERER_MEDIA_WEBRTC_WEBRTC_AUDIO_SINK_ADAPTER_H_ 7 8 #include "base/memory/scoped_ptr.h" 9 #include "content/public/renderer/media_stream_audio_sink.h" 10 11 namespace webrtc { 12 class AudioTrackSinkInterface; 13 } // namespace webrtc 14 15 namespace content { 16 17 // Adapter to the webrtc::AudioTrackSinkInterface of the audio track. 18 // This class is used in between the MediaStreamAudioSink and 19 // webrtc::AudioTrackSinkInterface. It gets data callback via the 20 // MediaStreamAudioSink::OnData() interface and pass the data to 21 // webrtc::AudioTrackSinkInterface. 22 class WebRtcAudioSinkAdapter : public MediaStreamAudioSink { 23 public: 24 explicit WebRtcAudioSinkAdapter( 25 webrtc::AudioTrackSinkInterface* sink); 26 virtual ~WebRtcAudioSinkAdapter(); 27 28 bool IsEqual(const webrtc::AudioTrackSinkInterface* other) const; 29 30 private: 31 // MediaStreamAudioSink implementation. 32 virtual void OnData(const int16* audio_data, 33 int sample_rate, 34 int number_of_channels, 35 int number_of_frames) OVERRIDE; 36 virtual void OnSetFormat(const media::AudioParameters& params) OVERRIDE; 37 38 webrtc::AudioTrackSinkInterface* const sink_; 39 40 DISALLOW_COPY_AND_ASSIGN(WebRtcAudioSinkAdapter); 41 }; 42 43 } // namespace content 44 45 #endif // CONTENT_RENDERER_MEDIA_WEBRTC_WEBRTC_AUDIO_SINK_ADAPTER_H_ 46