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/media_stream_dependency_factory.h" | 5 #include "content/renderer/media/media_stream_dependency_factory.h" |
6 | 6 |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
(...skipping 380 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
391 } | 391 } |
392 | 392 |
393 void MediaStreamDependencyFactory::CreateNativeLocalMediaStream( | 393 void MediaStreamDependencyFactory::CreateNativeLocalMediaStream( |
394 blink::WebMediaStream* web_stream) { | 394 blink::WebMediaStream* web_stream) { |
395 DVLOG(1) << "MediaStreamDependencyFactory::CreateNativeLocalMediaStream()"; | 395 DVLOG(1) << "MediaStreamDependencyFactory::CreateNativeLocalMediaStream()"; |
396 if (!EnsurePeerConnectionFactory()) { | 396 if (!EnsurePeerConnectionFactory()) { |
397 DVLOG(1) << "EnsurePeerConnectionFactory() failed!"; | 397 DVLOG(1) << "EnsurePeerConnectionFactory() failed!"; |
398 return; | 398 return; |
399 } | 399 } |
400 | 400 |
401 std::string label = UTF16ToUTF8(web_stream->id()); | 401 std::string label = base::UTF16ToUTF8(web_stream->id()); |
402 scoped_refptr<webrtc::MediaStreamInterface> native_stream = | 402 scoped_refptr<webrtc::MediaStreamInterface> native_stream = |
403 CreateLocalMediaStream(label); | 403 CreateLocalMediaStream(label); |
404 MediaStreamExtraData* extra_data = | 404 MediaStreamExtraData* extra_data = |
405 new MediaStreamExtraData(native_stream.get(), true); | 405 new MediaStreamExtraData(native_stream.get(), true); |
406 web_stream->setExtraData(extra_data); | 406 web_stream->setExtraData(extra_data); |
407 | 407 |
408 // Add audio tracks. | 408 // Add audio tracks. |
409 blink::WebVector<blink::WebMediaStreamTrack> audio_tracks; | 409 blink::WebVector<blink::WebMediaStreamTrack> audio_tracks; |
410 web_stream->audioTracks(audio_tracks); | 410 web_stream->audioTracks(audio_tracks); |
411 for (size_t i = 0; i < audio_tracks.size(); ++i) { | 411 for (size_t i = 0; i < audio_tracks.size(); ++i) { |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
455 source_data = | 455 source_data = |
456 static_cast<MediaStreamSourceExtraData*>(source.extraData()); | 456 static_cast<MediaStreamSourceExtraData*>(source.extraData()); |
457 } else { | 457 } else { |
458 // TODO(perkj): Implement support for sources from | 458 // TODO(perkj): Implement support for sources from |
459 // remote MediaStreams. | 459 // remote MediaStreams. |
460 NOTIMPLEMENTED(); | 460 NOTIMPLEMENTED(); |
461 return NULL; | 461 return NULL; |
462 } | 462 } |
463 } | 463 } |
464 | 464 |
465 std::string track_id = UTF16ToUTF8(track.id()); | 465 std::string track_id = base::UTF16ToUTF8(track.id()); |
466 scoped_refptr<WebRtcAudioCapturer> capturer; | 466 scoped_refptr<WebRtcAudioCapturer> capturer; |
467 if (GetWebRtcAudioDevice()) | 467 if (GetWebRtcAudioDevice()) |
468 capturer = GetWebRtcAudioDevice()->GetDefaultCapturer(); | 468 capturer = GetWebRtcAudioDevice()->GetDefaultCapturer(); |
469 | 469 |
470 scoped_refptr<webrtc::AudioTrackInterface> audio_track( | 470 scoped_refptr<webrtc::AudioTrackInterface> audio_track( |
471 CreateLocalAudioTrack(track_id, | 471 CreateLocalAudioTrack(track_id, |
472 capturer, | 472 capturer, |
473 webaudio_source.get(), | 473 webaudio_source.get(), |
474 source_data->local_audio_source(), | 474 source_data->local_audio_source(), |
475 &track_constraints)); | 475 &track_constraints)); |
(...skipping 17 matching lines...) Expand all Loading... |
493 MediaStreamSourceExtraData* source_data = | 493 MediaStreamSourceExtraData* source_data = |
494 static_cast<MediaStreamSourceExtraData*>(source.extraData()); | 494 static_cast<MediaStreamSourceExtraData*>(source.extraData()); |
495 | 495 |
496 if (!source_data) { | 496 if (!source_data) { |
497 // TODO(perkj): Implement support for sources from | 497 // TODO(perkj): Implement support for sources from |
498 // remote MediaStreams. | 498 // remote MediaStreams. |
499 NOTIMPLEMENTED(); | 499 NOTIMPLEMENTED(); |
500 return NULL; | 500 return NULL; |
501 } | 501 } |
502 | 502 |
503 std::string track_id = UTF16ToUTF8(track.id()); | 503 std::string track_id = base::UTF16ToUTF8(track.id()); |
504 scoped_refptr<webrtc::VideoTrackInterface> video_track( | 504 scoped_refptr<webrtc::VideoTrackInterface> video_track( |
505 CreateLocalVideoTrack(track_id, source_data->video_source())); | 505 CreateLocalVideoTrack(track_id, source_data->video_source())); |
506 AddNativeTrackToBlinkTrack(video_track.get(), track, true); | 506 AddNativeTrackToBlinkTrack(video_track.get(), track, true); |
507 | 507 |
508 video_track->set_enabled(track.isEnabled()); | 508 video_track->set_enabled(track.isEnabled()); |
509 | 509 |
510 return video_track; | 510 return video_track; |
511 } | 511 } |
512 | 512 |
513 void MediaStreamDependencyFactory::CreateNativeMediaStreamTrack( | 513 void MediaStreamDependencyFactory::CreateNativeMediaStreamTrack( |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
575 | 575 |
576 // Add the native track to native stream | 576 // Add the native track to native stream |
577 webrtc::MediaStreamInterface* native_stream = | 577 webrtc::MediaStreamInterface* native_stream = |
578 GetNativeMediaStream(*stream); | 578 GetNativeMediaStream(*stream); |
579 DCHECK(native_stream); | 579 DCHECK(native_stream); |
580 native_stream->AddTrack(native_track.get()); | 580 native_stream->AddTrack(native_track.get()); |
581 | 581 |
582 // Create a new webkit video track. | 582 // Create a new webkit video track. |
583 blink::WebMediaStreamTrack webkit_track; | 583 blink::WebMediaStreamTrack webkit_track; |
584 blink::WebMediaStreamSource webkit_source; | 584 blink::WebMediaStreamSource webkit_source; |
585 blink::WebString webkit_track_id(UTF8ToUTF16(track_id)); | 585 blink::WebString webkit_track_id(base::UTF8ToUTF16(track_id)); |
586 blink::WebMediaStreamSource::Type type = | 586 blink::WebMediaStreamSource::Type type = |
587 blink::WebMediaStreamSource::TypeVideo; | 587 blink::WebMediaStreamSource::TypeVideo; |
588 webkit_source.initialize(webkit_track_id, type, webkit_track_id); | 588 webkit_source.initialize(webkit_track_id, type, webkit_track_id); |
589 | 589 |
590 webkit_track.initialize(webkit_track_id, webkit_source); | 590 webkit_track.initialize(webkit_track_id, webkit_source); |
591 AddNativeTrackToBlinkTrack(native_track.get(), webkit_track, true); | 591 AddNativeTrackToBlinkTrack(native_track.get(), webkit_track, true); |
592 | 592 |
593 // Add the track to WebMediaStream. | 593 // Add the track to WebMediaStream. |
594 stream->addTrack(webkit_track); | 594 stream->addTrack(webkit_track); |
595 return true; | 595 return true; |
596 } | 596 } |
597 | 597 |
598 bool MediaStreamDependencyFactory::RemoveNativeMediaStreamTrack( | 598 bool MediaStreamDependencyFactory::RemoveNativeMediaStreamTrack( |
599 const blink::WebMediaStream& stream, | 599 const blink::WebMediaStream& stream, |
600 const blink::WebMediaStreamTrack& track) { | 600 const blink::WebMediaStreamTrack& track) { |
601 MediaStreamExtraData* extra_data = | 601 MediaStreamExtraData* extra_data = |
602 static_cast<MediaStreamExtraData*>(stream.extraData()); | 602 static_cast<MediaStreamExtraData*>(stream.extraData()); |
603 webrtc::MediaStreamInterface* native_stream = extra_data->stream().get(); | 603 webrtc::MediaStreamInterface* native_stream = extra_data->stream().get(); |
604 DCHECK(native_stream); | 604 DCHECK(native_stream); |
605 std::string track_id = UTF16ToUTF8(track.id()); | 605 std::string track_id = base::UTF16ToUTF8(track.id()); |
606 switch (track.source().type()) { | 606 switch (track.source().type()) { |
607 case blink::WebMediaStreamSource::TypeAudio: | 607 case blink::WebMediaStreamSource::TypeAudio: |
608 return native_stream->RemoveTrack( | 608 return native_stream->RemoveTrack( |
609 native_stream->FindAudioTrack(track_id)); | 609 native_stream->FindAudioTrack(track_id)); |
610 case blink::WebMediaStreamSource::TypeVideo: | 610 case blink::WebMediaStreamSource::TypeVideo: |
611 return native_stream->RemoveTrack( | 611 return native_stream->RemoveTrack( |
612 native_stream->FindVideoTrack(track_id)); | 612 native_stream->FindVideoTrack(track_id)); |
613 } | 613 } |
614 return false; | 614 return false; |
615 } | 615 } |
(...skipping 427 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1043 if (!aec_dump_file_stream) { | 1043 if (!aec_dump_file_stream) { |
1044 VLOG(1) << "Could not open AEC dump file."; | 1044 VLOG(1) << "Could not open AEC dump file."; |
1045 base::ClosePlatformFile(aec_dump_file); | 1045 base::ClosePlatformFile(aec_dump_file); |
1046 } else { | 1046 } else { |
1047 // |pc_factory_| takes ownership of |aec_dump_file_stream|. | 1047 // |pc_factory_| takes ownership of |aec_dump_file_stream|. |
1048 pc_factory_->StartAecDump(aec_dump_file_stream); | 1048 pc_factory_->StartAecDump(aec_dump_file_stream); |
1049 } | 1049 } |
1050 } | 1050 } |
1051 | 1051 |
1052 } // namespace content | 1052 } // namespace content |
OLD | NEW |