OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/user_media_client_impl.h" | 5 #include "content/renderer/media/user_media_client_impl.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
11 #include "base/message_loop/message_loop.h" | 11 #include "base/message_loop/message_loop.h" |
12 #include "base/strings/utf_string_conversions.h" | 12 #include "base/strings/utf_string_conversions.h" |
13 #include "content/child/child_process.h" | 13 #include "content/child/child_process.h" |
14 #include "content/renderer/media/media_stream.h" | 14 #include "content/renderer/media/media_stream.h" |
15 #include "content/renderer/media/media_stream_audio_source.h" | |
16 #include "content/renderer/media/media_stream_track.h" | 15 #include "content/renderer/media/media_stream_track.h" |
17 #include "content/renderer/media/mock_media_stream_dispatcher.h" | 16 #include "content/renderer/media/mock_media_stream_dispatcher.h" |
18 #include "content/renderer/media/mock_media_stream_video_source.h" | 17 #include "content/renderer/media/mock_media_stream_video_source.h" |
19 #include "content/renderer/media/webrtc/mock_peer_connection_dependency_factory.
h" | 18 #include "content/renderer/media/webrtc/mock_peer_connection_dependency_factory.
h" |
20 #include "testing/gtest/include/gtest/gtest.h" | 19 #include "testing/gtest/include/gtest/gtest.h" |
21 #include "third_party/WebKit/public/platform/WebMediaDeviceInfo.h" | 20 #include "third_party/WebKit/public/platform/WebMediaDeviceInfo.h" |
22 #include "third_party/WebKit/public/platform/WebMediaStream.h" | 21 #include "third_party/WebKit/public/platform/WebMediaStream.h" |
23 #include "third_party/WebKit/public/platform/WebMediaStreamSource.h" | 22 #include "third_party/WebKit/public/platform/WebMediaStreamSource.h" |
24 #include "third_party/WebKit/public/platform/WebMediaStreamTrack.h" | 23 #include "third_party/WebKit/public/platform/WebMediaStreamTrack.h" |
25 #include "third_party/WebKit/public/platform/WebMediaStreamTrackSourcesRequest.h
" | 24 #include "third_party/WebKit/public/platform/WebMediaStreamTrackSourcesRequest.h
" |
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
278 EXPECT_EQ(desc1_video_tracks[0].source().getExtraData(), | 277 EXPECT_EQ(desc1_video_tracks[0].source().getExtraData(), |
279 desc2_video_tracks[0].source().getExtraData()); | 278 desc2_video_tracks[0].source().getExtraData()); |
280 | 279 |
281 blink::WebVector<blink::WebMediaStreamTrack> desc1_audio_tracks; | 280 blink::WebVector<blink::WebMediaStreamTrack> desc1_audio_tracks; |
282 desc1.audioTracks(desc1_audio_tracks); | 281 desc1.audioTracks(desc1_audio_tracks); |
283 blink::WebVector<blink::WebMediaStreamTrack> desc2_audio_tracks; | 282 blink::WebVector<blink::WebMediaStreamTrack> desc2_audio_tracks; |
284 desc2.audioTracks(desc2_audio_tracks); | 283 desc2.audioTracks(desc2_audio_tracks); |
285 EXPECT_EQ(desc1_audio_tracks[0].source().id(), | 284 EXPECT_EQ(desc1_audio_tracks[0].source().id(), |
286 desc2_audio_tracks[0].source().id()); | 285 desc2_audio_tracks[0].source().id()); |
287 | 286 |
288 EXPECT_EQ(MediaStreamAudioSource::From(desc1_audio_tracks[0].source()), | 287 EXPECT_EQ(desc1_audio_tracks[0].source().getExtraData(), |
289 MediaStreamAudioSource::From(desc2_audio_tracks[0].source())); | 288 desc2_audio_tracks[0].source().getExtraData()); |
290 } | 289 } |
291 | 290 |
292 // Test that the same source object is not used if two MediaStreams are | 291 // Test that the same source object is not used if two MediaStreams are |
293 // generated using different sources. | 292 // generated using different sources. |
294 TEST_F(UserMediaClientImplTest, GenerateTwoMediaStreamsWithDifferentSources) { | 293 TEST_F(UserMediaClientImplTest, GenerateTwoMediaStreamsWithDifferentSources) { |
295 blink::WebMediaStream desc1 = RequestLocalMediaStream(); | 294 blink::WebMediaStream desc1 = RequestLocalMediaStream(); |
296 // Make sure another device is selected (another |session_id|) in the next | 295 // Make sure another device is selected (another |session_id|) in the next |
297 // gUM request. | 296 // gUM request. |
298 ms_dispatcher_->IncrementSessionId(); | 297 ms_dispatcher_->IncrementSessionId(); |
299 blink::WebMediaStream desc2 = RequestLocalMediaStream(); | 298 blink::WebMediaStream desc2 = RequestLocalMediaStream(); |
300 | 299 |
301 blink::WebVector<blink::WebMediaStreamTrack> desc1_video_tracks; | 300 blink::WebVector<blink::WebMediaStreamTrack> desc1_video_tracks; |
302 desc1.videoTracks(desc1_video_tracks); | 301 desc1.videoTracks(desc1_video_tracks); |
303 blink::WebVector<blink::WebMediaStreamTrack> desc2_video_tracks; | 302 blink::WebVector<blink::WebMediaStreamTrack> desc2_video_tracks; |
304 desc2.videoTracks(desc2_video_tracks); | 303 desc2.videoTracks(desc2_video_tracks); |
305 EXPECT_NE(desc1_video_tracks[0].source().id(), | 304 EXPECT_NE(desc1_video_tracks[0].source().id(), |
306 desc2_video_tracks[0].source().id()); | 305 desc2_video_tracks[0].source().id()); |
307 | 306 |
308 EXPECT_NE(desc1_video_tracks[0].source().getExtraData(), | 307 EXPECT_NE(desc1_video_tracks[0].source().getExtraData(), |
309 desc2_video_tracks[0].source().getExtraData()); | 308 desc2_video_tracks[0].source().getExtraData()); |
310 | 309 |
311 blink::WebVector<blink::WebMediaStreamTrack> desc1_audio_tracks; | 310 blink::WebVector<blink::WebMediaStreamTrack> desc1_audio_tracks; |
312 desc1.audioTracks(desc1_audio_tracks); | 311 desc1.audioTracks(desc1_audio_tracks); |
313 blink::WebVector<blink::WebMediaStreamTrack> desc2_audio_tracks; | 312 blink::WebVector<blink::WebMediaStreamTrack> desc2_audio_tracks; |
314 desc2.audioTracks(desc2_audio_tracks); | 313 desc2.audioTracks(desc2_audio_tracks); |
315 EXPECT_NE(desc1_audio_tracks[0].source().id(), | 314 EXPECT_NE(desc1_audio_tracks[0].source().id(), |
316 desc2_audio_tracks[0].source().id()); | 315 desc2_audio_tracks[0].source().id()); |
317 | 316 |
318 EXPECT_NE(MediaStreamAudioSource::From(desc1_audio_tracks[0].source()), | 317 EXPECT_NE(desc1_audio_tracks[0].source().getExtraData(), |
319 MediaStreamAudioSource::From(desc2_audio_tracks[0].source())); | 318 desc2_audio_tracks[0].source().getExtraData()); |
320 } | 319 } |
321 | 320 |
322 TEST_F(UserMediaClientImplTest, StopLocalTracks) { | 321 TEST_F(UserMediaClientImplTest, StopLocalTracks) { |
323 // Generate a stream with both audio and video. | 322 // Generate a stream with both audio and video. |
324 blink::WebMediaStream mixed_desc = RequestLocalMediaStream(); | 323 blink::WebMediaStream mixed_desc = RequestLocalMediaStream(); |
325 | 324 |
326 blink::WebVector<blink::WebMediaStreamTrack> audio_tracks; | 325 blink::WebVector<blink::WebMediaStreamTrack> audio_tracks; |
327 mixed_desc.audioTracks(audio_tracks); | 326 mixed_desc.audioTracks(audio_tracks); |
328 MediaStreamTrack* audio_track = MediaStreamTrack::GetTrack(audio_tracks[0]); | 327 MediaStreamTrack* audio_track = MediaStreamTrack::GetTrack(audio_tracks[0]); |
329 audio_track->Stop(); | 328 audio_track->Stop(); |
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
570 | 569 |
571 // Video input device environment facing. | 570 // Video input device environment facing. |
572 source = &used_media_impl_->last_sources()[3]; | 571 source = &used_media_impl_->last_sources()[3]; |
573 EXPECT_FALSE(source->id().isEmpty()); | 572 EXPECT_FALSE(source->id().isEmpty()); |
574 EXPECT_EQ(blink::WebSourceInfo::SourceKindVideo, source->kind()); | 573 EXPECT_EQ(blink::WebSourceInfo::SourceKindVideo, source->kind()); |
575 EXPECT_FALSE(source->label().isEmpty()); | 574 EXPECT_FALSE(source->label().isEmpty()); |
576 EXPECT_EQ(blink::WebSourceInfo::VideoFacingModeEnvironment, source->facing()); | 575 EXPECT_EQ(blink::WebSourceInfo::VideoFacingModeEnvironment, source->facing()); |
577 } | 576 } |
578 | 577 |
579 } // namespace content | 578 } // namespace content |
OLD | NEW |