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 |