| 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 |