Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(781)

Side by Side Diff: content/renderer/media/media_stream_dependency_factory.cc

Issue 90743004: Add generic interfaces for the sinks of the media stream audio track (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fixed the nits. Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 408 matching lines...) Expand 10 before | Expand all | Expand 10 after
419 scoped_refptr<WebRtcAudioCapturer> capturer; 419 scoped_refptr<WebRtcAudioCapturer> capturer;
420 if (GetWebRtcAudioDevice()) 420 if (GetWebRtcAudioDevice())
421 capturer = GetWebRtcAudioDevice()->GetDefaultCapturer(); 421 capturer = GetWebRtcAudioDevice()->GetDefaultCapturer();
422 422
423 scoped_refptr<webrtc::AudioTrackInterface> audio_track( 423 scoped_refptr<webrtc::AudioTrackInterface> audio_track(
424 CreateLocalAudioTrack(track_id, 424 CreateLocalAudioTrack(track_id,
425 capturer, 425 capturer,
426 webaudio_source.get(), 426 webaudio_source.get(),
427 source_data->local_audio_source(), 427 source_data->local_audio_source(),
428 &track_constraints)); 428 &track_constraints));
429 AddNativeTrackToBlinkTrack(audio_track.get(), track); 429 AddNativeTrackToBlinkTrack(audio_track.get(), track, true);
430 430
431 audio_track->set_enabled(track.isEnabled()); 431 audio_track->set_enabled(track.isEnabled());
432 432
433 // Pass the pointer of the source provider to the blink audio track. 433 // Pass the pointer of the source provider to the blink audio track.
434 blink::WebMediaStreamTrack writable_track = track; 434 blink::WebMediaStreamTrack writable_track = track;
435 writable_track.setSourceProvider(static_cast<WebRtcLocalAudioTrack*>( 435 writable_track.setSourceProvider(static_cast<WebRtcLocalAudioTrack*>(
436 audio_track.get())->audio_source_provider()); 436 audio_track.get())->audio_source_provider());
437 437
438 return audio_track; 438 return audio_track;
439 } 439 }
440 440
441 scoped_refptr<webrtc::VideoTrackInterface> 441 scoped_refptr<webrtc::VideoTrackInterface>
442 MediaStreamDependencyFactory::CreateNativeVideoMediaStreamTrack( 442 MediaStreamDependencyFactory::CreateNativeVideoMediaStreamTrack(
443 const blink::WebMediaStreamTrack& track) { 443 const blink::WebMediaStreamTrack& track) {
444 blink::WebMediaStreamSource source = track.source(); 444 blink::WebMediaStreamSource source = track.source();
445 DCHECK_EQ(source.type(), blink::WebMediaStreamSource::TypeVideo); 445 DCHECK_EQ(source.type(), blink::WebMediaStreamSource::TypeVideo);
446 MediaStreamSourceExtraData* source_data = 446 MediaStreamSourceExtraData* source_data =
447 static_cast<MediaStreamSourceExtraData*>(source.extraData()); 447 static_cast<MediaStreamSourceExtraData*>(source.extraData());
448 448
449 if (!source_data) { 449 if (!source_data) {
450 // TODO(perkj): Implement support for sources from 450 // TODO(perkj): Implement support for sources from
451 // remote MediaStreams. 451 // remote MediaStreams.
452 NOTIMPLEMENTED(); 452 NOTIMPLEMENTED();
453 return NULL; 453 return NULL;
454 } 454 }
455 455
456 std::string track_id = UTF16ToUTF8(track.id()); 456 std::string track_id = UTF16ToUTF8(track.id());
457 scoped_refptr<webrtc::VideoTrackInterface> video_track( 457 scoped_refptr<webrtc::VideoTrackInterface> video_track(
458 CreateLocalVideoTrack(track_id, source_data->video_source())); 458 CreateLocalVideoTrack(track_id, source_data->video_source()));
459 AddNativeTrackToBlinkTrack(video_track.get(), track); 459 AddNativeTrackToBlinkTrack(video_track.get(), track, true);
460 460
461 video_track->set_enabled(track.isEnabled()); 461 video_track->set_enabled(track.isEnabled());
462 462
463 return video_track; 463 return video_track;
464 } 464 }
465 465
466 void MediaStreamDependencyFactory::CreateNativeMediaStreamTrack( 466 void MediaStreamDependencyFactory::CreateNativeMediaStreamTrack(
467 const blink::WebMediaStreamTrack& track) { 467 const blink::WebMediaStreamTrack& track) {
468 DCHECK(!track.isNull() && !track.extraData()); 468 DCHECK(!track.isNull() && !track.extraData());
469 DCHECK(!track.source().isNull()); 469 DCHECK(!track.source().isNull());
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
534 534
535 // Create a new webkit video track. 535 // Create a new webkit video track.
536 blink::WebMediaStreamTrack webkit_track; 536 blink::WebMediaStreamTrack webkit_track;
537 blink::WebMediaStreamSource webkit_source; 537 blink::WebMediaStreamSource webkit_source;
538 blink::WebString webkit_track_id(UTF8ToUTF16(track_id)); 538 blink::WebString webkit_track_id(UTF8ToUTF16(track_id));
539 blink::WebMediaStreamSource::Type type = 539 blink::WebMediaStreamSource::Type type =
540 blink::WebMediaStreamSource::TypeVideo; 540 blink::WebMediaStreamSource::TypeVideo;
541 webkit_source.initialize(webkit_track_id, type, webkit_track_id); 541 webkit_source.initialize(webkit_track_id, type, webkit_track_id);
542 542
543 webkit_track.initialize(webkit_track_id, webkit_source); 543 webkit_track.initialize(webkit_track_id, webkit_source);
544 AddNativeTrackToBlinkTrack(native_track.get(), webkit_track); 544 AddNativeTrackToBlinkTrack(native_track.get(), webkit_track, true);
545 545
546 // Add the track to WebMediaStream. 546 // Add the track to WebMediaStream.
547 stream->addTrack(webkit_track); 547 stream->addTrack(webkit_track);
548 return true; 548 return true;
549 } 549 }
550 550
551 bool MediaStreamDependencyFactory::RemoveNativeMediaStreamTrack( 551 bool MediaStreamDependencyFactory::RemoveNativeMediaStreamTrack(
552 const blink::WebMediaStream& stream, 552 const blink::WebMediaStream& stream,
553 const blink::WebMediaStreamTrack& track) { 553 const blink::WebMediaStreamTrack& track) {
554 MediaStreamExtraData* extra_data = 554 MediaStreamExtraData* extra_data =
(...skipping 349 matching lines...) Expand 10 before | Expand all | Expand 10 after
904 904
905 // Add the capturer to the WebRtcAudioDeviceImpl if it is a new capturer. 905 // Add the capturer to the WebRtcAudioDeviceImpl if it is a new capturer.
906 if (is_new_capturer) 906 if (is_new_capturer)
907 GetWebRtcAudioDevice()->AddAudioCapturer(capturer); 907 GetWebRtcAudioDevice()->AddAudioCapturer(capturer);
908 908
909 return capturer; 909 return capturer;
910 } 910 }
911 911
912 void MediaStreamDependencyFactory::AddNativeTrackToBlinkTrack( 912 void MediaStreamDependencyFactory::AddNativeTrackToBlinkTrack(
913 webrtc::MediaStreamTrackInterface* native_track, 913 webrtc::MediaStreamTrackInterface* native_track,
914 const blink::WebMediaStreamTrack& webkit_track) { 914 const blink::WebMediaStreamTrack& webkit_track,
915 bool is_local_track) {
915 DCHECK(!webkit_track.isNull() && !webkit_track.extraData()); 916 DCHECK(!webkit_track.isNull() && !webkit_track.extraData());
916 blink::WebMediaStreamTrack track = webkit_track; 917 blink::WebMediaStreamTrack track = webkit_track;
917 track.setExtraData(new MediaStreamTrackExtraData(native_track)); 918 track.setExtraData(new MediaStreamTrackExtraData(native_track,
919 is_local_track));
918 } 920 }
919 921
920 webrtc::MediaStreamInterface* 922 webrtc::MediaStreamInterface*
921 MediaStreamDependencyFactory::GetNativeMediaStream( 923 MediaStreamDependencyFactory::GetNativeMediaStream(
922 const blink::WebMediaStream& stream) { 924 const blink::WebMediaStream& stream) {
923 if (stream.isNull()) 925 if (stream.isNull())
924 return NULL; 926 return NULL;
925 MediaStreamExtraData* extra_data = 927 MediaStreamExtraData* extra_data =
926 static_cast<MediaStreamExtraData*>(stream.extraData()); 928 static_cast<MediaStreamExtraData*>(stream.extraData());
927 return extra_data ? extra_data->stream().get() : NULL; 929 return extra_data ? extra_data->stream().get() : NULL;
928 } 930 }
929 931
930 webrtc::MediaStreamTrackInterface* 932 webrtc::MediaStreamTrackInterface*
931 MediaStreamDependencyFactory::GetNativeMediaStreamTrack( 933 MediaStreamDependencyFactory::GetNativeMediaStreamTrack(
932 const blink::WebMediaStreamTrack& track) { 934 const blink::WebMediaStreamTrack& track) {
933 if (track.isNull()) 935 if (track.isNull())
934 return NULL; 936 return NULL;
935 MediaStreamTrackExtraData* extra_data = 937 MediaStreamTrackExtraData* extra_data =
936 static_cast<MediaStreamTrackExtraData*>(track.extraData()); 938 static_cast<MediaStreamTrackExtraData*>(track.extraData());
937 return extra_data ? extra_data->track().get() : NULL; 939 return extra_data ? extra_data->track().get() : NULL;
938 } 940 }
939 941
940 } // namespace content 942 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/media/media_stream_dependency_factory.h ('k') | content/renderer/media/media_stream_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698