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

Side by Side Diff: content/renderer/media/media_stream_audio_sink_owner.cc

Issue 90743004: Add generic interfaces for the sinks of the media stream audio track (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: addressed Per's comments. Created 7 years 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 | Annotate | Revision Log
OLDNEW
(Empty)
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 namespace content {
8
9 MediaStreamAudioSinkOwner::MediaStreamAudioSinkOwner(
10 MediaStreamAudioSink* sink)
11 : media_stream_delegate_(sink),
12 peer_connection_delegate_(NULL) {
13 }
14
15 MediaStreamAudioSinkOwner::MediaStreamAudioSinkOwner(
16 PeerConnectionAudioSink* sink)
17 : media_stream_delegate_(NULL),
18 peer_connection_delegate_(sink) {
19 }
20
21 int MediaStreamAudioSinkOwner::OnData(const int16* audio_data,
22 int sample_rate,
23 int number_of_channels,
24 int number_of_frames,
25 const std::vector<int>& channels,
26 int audio_delay_milliseconds,
27 int current_volume,
28 bool need_audio_processing,
29 bool key_pressed) {
30 base::AutoLock lock(lock_);
31 if (media_stream_delegate_) {
32 DCHECK(!peer_connection_delegate_);
33 media_stream_delegate_->OnData(audio_data,
34 sample_rate,
35 number_of_channels,
36 number_of_frames);
37 return 0;
38 }
39
40 if (peer_connection_delegate_) {
41 return peer_connection_delegate_->OnData(audio_data,
42 sample_rate,
43 number_of_channels,
44 number_of_frames,
45 channels,
46 audio_delay_milliseconds,
47 current_volume,
48 need_audio_processing,
49 key_pressed);
50 }
51
52 return 0;
53 }
54
55 void MediaStreamAudioSinkOwner::OnSetFormat(
56 const media::AudioParameters& params) {
57 base::AutoLock lock(lock_);
58 if (media_stream_delegate_) {
59 DCHECK(!peer_connection_delegate_);
60 media_stream_delegate_->OnSetFormat(params);
61 return;
62 }
63
64 if (peer_connection_delegate_)
65 peer_connection_delegate_->OnSetFormat(params);
66 }
67
68 bool MediaStreamAudioSinkOwner::IsEqual(
Jói 2013/11/27 17:35:02 This will return true if |other| is NULL and media
no longer working on chromium 2013/11/28 17:27:18 Added a DCHECK(other);
no longer working on chromium 2013/11/28 19:22:22 I just realized that I forgot to commit the local
69 const MediaStreamAudioSink* other) const {
70 base::AutoLock lock(lock_);
71 return (other == media_stream_delegate_);
72 }
73
74 bool MediaStreamAudioSinkOwner::IsEqual(
75 const PeerConnectionAudioSink* other) const {
76 base::AutoLock lock(lock_);
77 return (other == peer_connection_delegate_);
78 }
79
80 void MediaStreamAudioSinkOwner::Reset() {
81 base::AutoLock lock(lock_);
82 media_stream_delegate_ = NULL;
83 peer_connection_delegate_ = NULL;
84 }
85
86 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698