1// Copyright 2013 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#include "content/renderer/media/media_stream_audio_sink_owner.h" 6 7#include "content/public/renderer/media_stream_audio_sink.h" 8#include "media/audio/audio_parameters.h" 9 10namespace content { 11 12MediaStreamAudioSinkOwner::MediaStreamAudioSinkOwner(MediaStreamAudioSink* sink) 13 : delegate_(sink) { 14} 15 16int MediaStreamAudioSinkOwner::OnData(const int16* audio_data, 17 int sample_rate, 18 int number_of_channels, 19 int number_of_frames, 20 const std::vector<int>& channels, 21 int audio_delay_milliseconds, 22 int current_volume, 23 bool need_audio_processing, 24 bool key_pressed) { 25 base::AutoLock lock(lock_); 26 // TODO(xians): Investigate on the possibility of not calling out with the 27 // lock. 28 if (delegate_) { 29 delegate_->OnData(audio_data, 30 sample_rate, 31 number_of_channels, 32 number_of_frames); 33 } 34 35 return 0; 36} 37 38void MediaStreamAudioSinkOwner::OnSetFormat( 39 const media::AudioParameters& params) { 40 base::AutoLock lock(lock_); 41 if (delegate_) 42 delegate_->OnSetFormat(params); 43} 44 45void MediaStreamAudioSinkOwner::OnReadyStateChanged( 46 blink::WebMediaStreamSource::ReadyState state) { 47 base::AutoLock lock(lock_); 48 if (delegate_) 49 delegate_->OnReadyStateChanged(state); 50} 51 52void MediaStreamAudioSinkOwner::Reset() { 53 base::AutoLock lock(lock_); 54 delegate_ = NULL; 55} 56 57bool MediaStreamAudioSinkOwner::IsEqual( 58 const MediaStreamAudioSink* other) const { 59 DCHECK(other); 60 base::AutoLock lock(lock_); 61 return (other == delegate_); 62} 63 64bool MediaStreamAudioSinkOwner::IsEqual( 65 const PeerConnectionAudioSink* other) const { 66 DCHECK(other); 67 return false; 68} 69 70} // namespace content 71