| 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_media_stream_adapter.h" | 5 #include "content/renderer/media/webrtc/webrtc_media_stream_adapter.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <memory> | 9 #include <memory> |
| 10 | 10 |
| (...skipping 29 matching lines...) Expand all Loading... |
| 40 void TearDown() override { | 40 void TearDown() override { |
| 41 adapter_.reset(); | 41 adapter_.reset(); |
| 42 blink::WebHeap::collectAllGarbageForTesting(); | 42 blink::WebHeap::collectAllGarbageForTesting(); |
| 43 } | 43 } |
| 44 | 44 |
| 45 blink::WebMediaStream CreateBlinkMediaStream(bool audio, bool video) { | 45 blink::WebMediaStream CreateBlinkMediaStream(bool audio, bool video) { |
| 46 blink::WebVector<blink::WebMediaStreamTrack> audio_track_vector( | 46 blink::WebVector<blink::WebMediaStreamTrack> audio_track_vector( |
| 47 audio ? static_cast<size_t>(1) : 0); | 47 audio ? static_cast<size_t>(1) : 0); |
| 48 if (audio) { | 48 if (audio) { |
| 49 blink::WebMediaStreamSource audio_source; | 49 blink::WebMediaStreamSource audio_source; |
| 50 audio_source.initialize("audio", blink::WebMediaStreamSource::TypeAudio, | 50 audio_source.initialize("audio", |
| 51 "audio"); | 51 blink::WebMediaStreamSource::TypeAudio, |
| 52 "audio", |
| 53 false /* remote */); |
| 52 ProcessedLocalAudioSource* const source = new ProcessedLocalAudioSource( | 54 ProcessedLocalAudioSource* const source = new ProcessedLocalAudioSource( |
| 53 -1 /* consumer_render_frame_id is N/A for non-browser tests */, | 55 -1 /* consumer_render_frame_id is N/A for non-browser tests */, |
| 54 StreamDeviceInfo(MEDIA_DEVICE_AUDIO_CAPTURE, "Mock audio device", | 56 StreamDeviceInfo(MEDIA_DEVICE_AUDIO_CAPTURE, "Mock audio device", |
| 55 "mock_audio_device_id", | 57 "mock_audio_device_id", |
| 56 media::AudioParameters::kAudioCDSampleRate, | 58 media::AudioParameters::kAudioCDSampleRate, |
| 57 media::CHANNEL_LAYOUT_STEREO, | 59 media::CHANNEL_LAYOUT_STEREO, |
| 58 media::AudioParameters::kAudioCDSampleRate / 50), | 60 media::AudioParameters::kAudioCDSampleRate / 50), |
| 59 MockConstraintFactory().CreateWebMediaConstraints(), | 61 MockConstraintFactory().CreateWebMediaConstraints(), |
| 60 base::Bind(&WebRtcMediaStreamAdapterTest::OnAudioSourceStarted), | 62 base::Bind(&WebRtcMediaStreamAdapterTest::OnAudioSourceStarted), |
| 61 dependency_factory_.get()); | 63 dependency_factory_.get()); |
| 62 source->SetAllowInvalidRenderFrameIdForTesting(true); | 64 source->SetAllowInvalidRenderFrameIdForTesting(true); |
| 63 audio_source.setExtraData(source); // Takes ownership. | 65 audio_source.setExtraData(source); // Takes ownership. |
| 64 audio_track_vector[0].initialize(audio_source); | 66 audio_track_vector[0].initialize(audio_source); |
| 65 EXPECT_CALL(*mock_audio_device_factory_.mock_capturer_source(), | 67 EXPECT_CALL(*mock_audio_device_factory_.mock_capturer_source(), |
| 66 Initialize(_, _, -1)); | 68 Initialize(_, _, -1)); |
| 67 EXPECT_CALL(*mock_audio_device_factory_.mock_capturer_source(), | 69 EXPECT_CALL(*mock_audio_device_factory_.mock_capturer_source(), |
| 68 SetAutomaticGainControl(true)); | 70 SetAutomaticGainControl(true)); |
| 69 EXPECT_CALL(*mock_audio_device_factory_.mock_capturer_source(), Start()); | 71 EXPECT_CALL(*mock_audio_device_factory_.mock_capturer_source(), Start()); |
| 70 EXPECT_CALL(*mock_audio_device_factory_.mock_capturer_source(), Stop()); | 72 EXPECT_CALL(*mock_audio_device_factory_.mock_capturer_source(), Stop()); |
| 71 CHECK(source->ConnectToTrack(audio_track_vector[0])); | 73 CHECK(source->ConnectToTrack(audio_track_vector[0])); |
| 72 } | 74 } |
| 73 | 75 |
| 74 blink::WebVector<blink::WebMediaStreamTrack> video_track_vector( | 76 blink::WebVector<blink::WebMediaStreamTrack> video_track_vector( |
| 75 video ? static_cast<size_t>(1) : 0); | 77 video ? static_cast<size_t>(1) : 0); |
| 76 MediaStreamSource::SourceStoppedCallback dummy_callback; | 78 MediaStreamSource::SourceStoppedCallback dummy_callback; |
| 77 if (video) { | 79 if (video) { |
| 78 blink::WebMediaStreamSource video_source; | 80 blink::WebMediaStreamSource video_source; |
| 79 video_source.initialize("video", blink::WebMediaStreamSource::TypeVideo, | 81 video_source.initialize("video", |
| 80 "video"); | 82 blink::WebMediaStreamSource::TypeVideo, |
| 83 "video", |
| 84 false /* remote */); |
| 81 MediaStreamVideoSource* native_source = | 85 MediaStreamVideoSource* native_source = |
| 82 new MockMediaStreamVideoSource(false); | 86 new MockMediaStreamVideoSource(false); |
| 83 video_source.setExtraData(native_source); | 87 video_source.setExtraData(native_source); |
| 84 blink::WebMediaConstraints constraints; | 88 blink::WebMediaConstraints constraints; |
| 85 constraints.initialize(); | 89 constraints.initialize(); |
| 86 video_track_vector[0] = MediaStreamVideoTrack::CreateVideoTrack( | 90 video_track_vector[0] = MediaStreamVideoTrack::CreateVideoTrack( |
| 87 native_source, constraints, | 91 native_source, constraints, |
| 88 MediaStreamVideoSource::ConstraintsCallback(), true); | 92 MediaStreamVideoSource::ConstraintsCallback(), true); |
| 89 } | 93 } |
| 90 | 94 |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 132 } | 136 } |
| 133 | 137 |
| 134 // Test that we don't crash if a MediaStream is created in Blink with an unknown | 138 // Test that we don't crash if a MediaStream is created in Blink with an unknown |
| 135 // audio sources. This can happen if a MediaStream is created with | 139 // audio sources. This can happen if a MediaStream is created with |
| 136 // remote audio track. | 140 // remote audio track. |
| 137 TEST_F(WebRtcMediaStreamAdapterTest, | 141 TEST_F(WebRtcMediaStreamAdapterTest, |
| 138 CreateWebRtcMediaStreamWithoutAudioSource) { | 142 CreateWebRtcMediaStreamWithoutAudioSource) { |
| 139 // Create a blink MediaStream description. | 143 // Create a blink MediaStream description. |
| 140 blink::WebMediaStreamSource audio_source; | 144 blink::WebMediaStreamSource audio_source; |
| 141 audio_source.initialize("audio source", | 145 audio_source.initialize("audio source", |
| 142 blink::WebMediaStreamSource::TypeAudio, "something"); | 146 blink::WebMediaStreamSource::TypeAudio, |
| 147 "something", |
| 148 false /* remote */); |
| 143 | 149 |
| 144 blink::WebVector<blink::WebMediaStreamTrack> audio_tracks( | 150 blink::WebVector<blink::WebMediaStreamTrack> audio_tracks( |
| 145 static_cast<size_t>(1)); | 151 static_cast<size_t>(1)); |
| 146 audio_tracks[0].initialize(audio_source.id(), audio_source); | 152 audio_tracks[0].initialize(audio_source.id(), audio_source); |
| 147 blink::WebVector<blink::WebMediaStreamTrack> video_tracks( | 153 blink::WebVector<blink::WebMediaStreamTrack> video_tracks( |
| 148 static_cast<size_t>(0)); | 154 static_cast<size_t>(0)); |
| 149 | 155 |
| 150 blink::WebMediaStream blink_stream; | 156 blink::WebMediaStream blink_stream; |
| 151 blink_stream.initialize("new stream", audio_tracks, video_tracks); | 157 blink_stream.initialize("new stream", audio_tracks, video_tracks); |
| 152 blink_stream.setExtraData(new content::MediaStream()); | 158 blink_stream.setExtraData(new content::MediaStream()); |
| (...skipping 19 matching lines...) Expand all Loading... |
| 172 EXPECT_TRUE(webrtc_stream()->GetVideoTracks().empty()); | 178 EXPECT_TRUE(webrtc_stream()->GetVideoTracks().empty()); |
| 173 | 179 |
| 174 native_stream->AddTrack(audio_tracks[0]); | 180 native_stream->AddTrack(audio_tracks[0]); |
| 175 EXPECT_EQ(1u, webrtc_stream()->GetAudioTracks().size()); | 181 EXPECT_EQ(1u, webrtc_stream()->GetAudioTracks().size()); |
| 176 | 182 |
| 177 native_stream->AddTrack(video_tracks[0]); | 183 native_stream->AddTrack(video_tracks[0]); |
| 178 EXPECT_EQ(1u, webrtc_stream()->GetVideoTracks().size()); | 184 EXPECT_EQ(1u, webrtc_stream()->GetVideoTracks().size()); |
| 179 } | 185 } |
| 180 | 186 |
| 181 } // namespace content | 187 } // namespace content |
| OLD | NEW |