| 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" |
| 11 #include "base/synchronization/waitable_event.h" | 11 #include "base/synchronization/waitable_event.h" |
| 12 #include "content/public/common/content_switches.h" | 12 #include "content/public/common/content_switches.h" |
| 13 #include "content/renderer/media/media_stream_source_extra_data.h" | 13 #include "content/renderer/media/media_stream_source_extra_data.h" |
| 14 #include "content/renderer/media/media_stream_track_extra_data.h" | 14 #include "content/renderer/media/media_stream_track_extra_data.h" |
| 15 #include "content/renderer/media/peer_connection_identity_service.h" | 15 #include "content/renderer/media/peer_connection_identity_service.h" |
| 16 #include "content/renderer/media/rtc_media_constraints.h" | 16 #include "content/renderer/media/rtc_media_constraints.h" |
| 17 #include "content/renderer/media/rtc_peer_connection_handler.h" | 17 #include "content/renderer/media/rtc_peer_connection_handler.h" |
| 18 #include "content/renderer/media/rtc_video_capturer.h" | 18 #include "content/renderer/media/rtc_video_capturer.h" |
| 19 #include "content/renderer/media/rtc_video_decoder_factory.h" | 19 #include "content/renderer/media/rtc_video_decoder_factory.h" |
| 20 #include "content/renderer/media/rtc_video_encoder_factory.h" | 20 #include "content/renderer/media/rtc_video_encoder_factory.h" |
| 21 #include "content/renderer/media/video_capture_impl_manager.h" | 21 #include "content/renderer/media/video_capture_impl_manager.h" |
| 22 #include "content/renderer/media/video_track.h" |
| 22 #include "content/renderer/media/webaudio_capturer_source.h" | 23 #include "content/renderer/media/webaudio_capturer_source.h" |
| 23 #include "content/renderer/media/webrtc_audio_device_impl.h" | 24 #include "content/renderer/media/webrtc_audio_device_impl.h" |
| 24 #include "content/renderer/media/webrtc_local_audio_track.h" | 25 #include "content/renderer/media/webrtc_local_audio_track.h" |
| 25 #include "content/renderer/media/webrtc_uma_histograms.h" | 26 #include "content/renderer/media/webrtc_uma_histograms.h" |
| 26 #include "content/renderer/p2p/ipc_network_manager.h" | 27 #include "content/renderer/p2p/ipc_network_manager.h" |
| 27 #include "content/renderer/p2p/ipc_socket_factory.h" | 28 #include "content/renderer/p2p/ipc_socket_factory.h" |
| 28 #include "content/renderer/p2p/port_allocator.h" | 29 #include "content/renderer/p2p/port_allocator.h" |
| 29 #include "content/renderer/render_thread_impl.h" | 30 #include "content/renderer/render_thread_impl.h" |
| 30 #include "jingle/glue/thread_wrapper.h" | 31 #include "jingle/glue/thread_wrapper.h" |
| 31 #include "media/filters/gpu_video_accelerator_factories.h" | 32 #include "media/filters/gpu_video_accelerator_factories.h" |
| (...skipping 825 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 857 GetWebRtcAudioDevice()->AddAudioCapturer(capturer); | 858 GetWebRtcAudioDevice()->AddAudioCapturer(capturer); |
| 858 | 859 |
| 859 return capturer; | 860 return capturer; |
| 860 } | 861 } |
| 861 | 862 |
| 862 void MediaStreamDependencyFactory::AddNativeTrackToBlinkTrack( | 863 void MediaStreamDependencyFactory::AddNativeTrackToBlinkTrack( |
| 863 webrtc::MediaStreamTrackInterface* native_track, | 864 webrtc::MediaStreamTrackInterface* native_track, |
| 864 const blink::WebMediaStreamTrack& webkit_track) { | 865 const blink::WebMediaStreamTrack& webkit_track) { |
| 865 DCHECK(!webkit_track.isNull() && !webkit_track.extraData()); | 866 DCHECK(!webkit_track.isNull() && !webkit_track.extraData()); |
| 866 blink::WebMediaStreamTrack track = webkit_track; | 867 blink::WebMediaStreamTrack track = webkit_track; |
| 867 track.setExtraData(new MediaStreamTrackExtraData(native_track)); | 868 |
| 869 if (track.source().type() == blink::WebMediaStreamSource::TypeVideo) { |
| 870 // TODO(perkj): Is it better to have multiple implementations of |
| 871 // AddNativeTrackToBlinkTrack with different types of |native_track|? |
| 872 DCHECK(native_track->kind() == "video"); |
| 873 track.setExtraData(new VideoTrack( |
| 874 static_cast<webrtc::VideoTrackInterface*> (native_track))); |
| 875 } else { |
| 876 track.setExtraData(new MediaStreamTrackExtraData(native_track)); |
| 877 } |
| 868 } | 878 } |
| 869 | 879 |
| 870 webrtc::MediaStreamInterface* | 880 webrtc::MediaStreamInterface* |
| 871 MediaStreamDependencyFactory::GetNativeMediaStream( | 881 MediaStreamDependencyFactory::GetNativeMediaStream( |
| 872 const blink::WebMediaStream& stream) { | 882 const blink::WebMediaStream& stream) { |
| 873 if (stream.isNull()) | 883 if (stream.isNull()) |
| 874 return NULL; | 884 return NULL; |
| 875 MediaStreamExtraData* extra_data = | 885 MediaStreamExtraData* extra_data = |
| 876 static_cast<MediaStreamExtraData*>(stream.extraData()); | 886 static_cast<MediaStreamExtraData*>(stream.extraData()); |
| 877 return extra_data ? extra_data->stream().get() : NULL; | 887 return extra_data ? extra_data->stream().get() : NULL; |
| 878 } | 888 } |
| 879 | 889 |
| 880 webrtc::MediaStreamTrackInterface* | 890 webrtc::MediaStreamTrackInterface* |
| 881 MediaStreamDependencyFactory::GetNativeMediaStreamTrack( | 891 MediaStreamDependencyFactory::GetNativeMediaStreamTrack( |
| 882 const blink::WebMediaStreamTrack& track) { | 892 const blink::WebMediaStreamTrack& track) { |
| 883 if (track.isNull()) | 893 if (track.isNull()) |
| 884 return NULL; | 894 return NULL; |
| 885 MediaStreamTrackExtraData* extra_data = | 895 MediaStreamTrackExtraData* extra_data = |
| 886 static_cast<MediaStreamTrackExtraData*>(track.extraData()); | 896 static_cast<MediaStreamTrackExtraData*>(track.extraData()); |
| 887 return extra_data ? extra_data->track().get() : NULL; | 897 return extra_data ? extra_data->track().get() : NULL; |
| 888 } | 898 } |
| 889 | 899 |
| 890 } // namespace content | 900 } // namespace content |
| OLD | NEW |