OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/renderer/media/webrtc/webrtc_local_audio_track_adapter.h" | 5 #include "content/renderer/media/webrtc/webrtc_local_audio_track_adapter.h" |
6 #include "content/renderer/media/webrtc_local_audio_track.h" | 6 #include "content/renderer/media/webrtc_local_audio_track.h" |
7 #include "testing/gmock/include/gmock/gmock.h" | 7 #include "testing/gmock/include/gmock/gmock.h" |
8 #include "testing/gtest/include/gtest/gtest.h" | 8 #include "testing/gtest/include/gtest/gtest.h" |
9 #include "third_party/libjingle/source/talk/app/webrtc/mediastreaminterface.h" | 9 #include "third_party/libjingle/source/talk/app/webrtc/mediastreaminterface.h" |
10 | 10 |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
55 // Adds and Removes a WebRtcAudioSink to a local audio track. | 55 // Adds and Removes a WebRtcAudioSink to a local audio track. |
56 TEST_F(WebRtcLocalAudioTrackAdapterTest, AddAndRemoveSink) { | 56 TEST_F(WebRtcLocalAudioTrackAdapterTest, AddAndRemoveSink) { |
57 // Add a sink to the webrtc track. | 57 // Add a sink to the webrtc track. |
58 scoped_ptr<MockWebRtcAudioSink> sink(new MockWebRtcAudioSink()); | 58 scoped_ptr<MockWebRtcAudioSink> sink(new MockWebRtcAudioSink()); |
59 webrtc::AudioTrackInterface* webrtc_track = | 59 webrtc::AudioTrackInterface* webrtc_track = |
60 static_cast<webrtc::AudioTrackInterface*>(adapter_.get()); | 60 static_cast<webrtc::AudioTrackInterface*>(adapter_.get()); |
61 webrtc_track->AddSink(sink.get()); | 61 webrtc_track->AddSink(sink.get()); |
62 | 62 |
63 // Send a packet via |track_| and it data should reach the sink of the | 63 // Send a packet via |track_| and it data should reach the sink of the |
64 // |adapter_|. | 64 // |adapter_|. |
65 scoped_ptr<int16[]> data( | 65 const int length = params_.frames_per_buffer() * params_.channels(); |
66 new int16[params_.frames_per_buffer() * params_.channels()]); | 66 scoped_ptr<int16[]> data(new int16[length]); |
| 67 // Initialize the data to 0 to avoid Memcheck:Uninitialized warning. |
| 68 memset(data.get(), 0, length * sizeof(data[0])); |
| 69 |
67 EXPECT_CALL(*sink, | 70 EXPECT_CALL(*sink, |
68 OnData(_, 16, params_.sample_rate(), params_.channels(), | 71 OnData(_, 16, params_.sample_rate(), params_.channels(), |
69 params_.frames_per_buffer())); | 72 params_.frames_per_buffer())); |
70 track_->Capture(data.get(), base::TimeDelta(), 255, false, false); | 73 track_->Capture(data.get(), base::TimeDelta(), 255, false, false); |
71 | 74 |
72 // Remove the sink from the webrtc track. | 75 // Remove the sink from the webrtc track. |
73 webrtc_track->RemoveSink(sink.get()); | 76 webrtc_track->RemoveSink(sink.get()); |
74 sink.reset(); | 77 sink.reset(); |
75 | 78 |
76 // Verify that no more callback gets into the sink. | 79 // Verify that no more callback gets into the sink. |
77 track_->Capture(data.get(), base::TimeDelta(), 255, false, false); | 80 track_->Capture(data.get(), base::TimeDelta(), 255, false, false); |
78 } | 81 } |
79 | 82 |
80 } // namespace content | 83 } // namespace content |
OLD | NEW |