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

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

Issue 14200016: Added implementation of RemoteMediaStreams. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix nits Created 7 years, 8 months 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/peer_connection_handler_base.h" 5 #include "content/renderer/media/peer_connection_handler_base.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/utf_string_conversions.h" 8 #include "base/utf_string_conversions.h"
9 #include "content/renderer/media/media_stream_dependency_factory.h" 9 #include "content/renderer/media/media_stream_dependency_factory.h"
10 #include "content/renderer/media/media_stream_extra_data.h" 10 #include "content/renderer/media/media_stream_extra_data.h"
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 } 44 }
45 45
46 void PeerConnectionHandlerBase::RemoveStream( 46 void PeerConnectionHandlerBase::RemoveStream(
47 const WebKit::WebMediaStream& stream) { 47 const WebKit::WebMediaStream& stream) {
48 webrtc::MediaStreamInterface* native_stream = GetNativeMediaStream(stream); 48 webrtc::MediaStreamInterface* native_stream = GetNativeMediaStream(stream);
49 if (native_stream) 49 if (native_stream)
50 native_peer_connection_->RemoveStream(native_stream); 50 native_peer_connection_->RemoveStream(native_stream);
51 DCHECK(native_stream); 51 DCHECK(native_stream);
52 } 52 }
53 53
54 WebKit::WebMediaStream
55 PeerConnectionHandlerBase::CreateRemoteWebKitMediaStream(
56 webrtc::MediaStreamInterface* stream) {
57 webrtc::AudioTrackVector audio_tracks = stream->GetAudioTracks();
58 webrtc::VideoTrackVector video_tracks = stream->GetVideoTracks();
59 WebKit::WebVector<WebKit::WebMediaStreamSource> audio_source_vector(
60 audio_tracks.size());
61 WebKit::WebVector<WebKit::WebMediaStreamSource> video_source_vector(
62 video_tracks.size());
63
64 // Add audio tracks.
65 size_t i = 0;
66 for (; i < audio_tracks.size(); ++i) {
67 webrtc::AudioTrackInterface* audio_track = audio_tracks[i];
68 DCHECK(audio_track);
69 audio_source_vector[i].initialize(
70 UTF8ToUTF16(audio_track->id()),
71 WebKit::WebMediaStreamSource::TypeAudio,
72 UTF8ToUTF16(audio_track->id()));
73 }
74
75 // Add video tracks.
76 for (i = 0; i < video_tracks.size(); ++i) {
77 webrtc::VideoTrackInterface* video_track = video_tracks[i];
78 DCHECK(video_track);
79 video_source_vector[i].initialize(
80 UTF8ToUTF16(video_track->id()),
81 WebKit::WebMediaStreamSource::TypeVideo,
82 UTF8ToUTF16(video_track->id()));
83 }
84 WebKit::WebMediaStream descriptor;
85 descriptor.initialize(UTF8ToUTF16(stream->label()),
86 audio_source_vector, video_source_vector);
87 descriptor.setExtraData(new MediaStreamExtraData(stream, false));
88 return descriptor;
89 }
90
91 webrtc::MediaStreamTrackInterface* 54 webrtc::MediaStreamTrackInterface*
92 PeerConnectionHandlerBase::GetNativeMediaStreamTrack( 55 PeerConnectionHandlerBase::GetNativeMediaStreamTrack(
93 const WebKit::WebMediaStream& stream, 56 const WebKit::WebMediaStream& stream,
94 const WebKit::WebMediaStreamTrack& track) { 57 const WebKit::WebMediaStreamTrack& track) {
95 std::string track_id = UTF16ToUTF8(track.id()); 58 std::string track_id = UTF16ToUTF8(track.id());
96 webrtc::MediaStreamInterface* native_stream = GetNativeMediaStream(stream); 59 webrtc::MediaStreamInterface* native_stream = GetNativeMediaStream(stream);
97 if (!native_stream) { 60 if (!native_stream) {
98 return NULL; 61 return NULL;
99 } 62 }
100 if (track.source().type() == WebKit::WebMediaStreamSource::TypeAudio) { 63 if (track.source().type() == WebKit::WebMediaStreamSource::TypeAudio) {
101 return native_stream->FindAudioTrack(track_id); 64 return native_stream->FindAudioTrack(track_id);
102 } 65 }
103 if (track.source().type() == WebKit::WebMediaStreamSource::TypeVideo) { 66 if (track.source().type() == WebKit::WebMediaStreamSource::TypeVideo) {
104 return native_stream->FindVideoTrack(track_id); 67 return native_stream->FindVideoTrack(track_id);
105 } 68 }
106 NOTIMPLEMENTED(); // We have an unknown type of media stream track. 69 NOTIMPLEMENTED(); // We have an unknown type of media stream track.
107 return NULL; 70 return NULL;
108 } 71 }
109 72
110 } // namespace content 73 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698