| Index: content/renderer/media/media_stream_impl.cc
|
| diff --git a/content/renderer/media/media_stream_impl.cc b/content/renderer/media/media_stream_impl.cc
|
| index b8af5a8c3474221b15d62b412ebd9294d3c7dc91..e1bb11196e0a3830eac72eff46bf3c17cf0a2cfe 100644
|
| --- a/content/renderer/media/media_stream_impl.cc
|
| +++ b/content/renderer/media/media_stream_impl.cc
|
| @@ -11,26 +11,20 @@
|
| #include "base/strings/stringprintf.h"
|
| #include "base/strings/utf_string_conversions.h"
|
| #include "content/renderer/media/media_stream.h"
|
| -#include "content/renderer/media/media_stream_audio_renderer.h"
|
| #include "content/renderer/media/media_stream_audio_source.h"
|
| #include "content/renderer/media/media_stream_dispatcher.h"
|
| #include "content/renderer/media/media_stream_video_capturer_source.h"
|
| #include "content/renderer/media/media_stream_video_track.h"
|
| #include "content/renderer/media/peer_connection_tracker.h"
|
| -#include "content/renderer/media/rtc_video_renderer.h"
|
| #include "content/renderer/media/webrtc/webrtc_video_capturer_adapter.h"
|
| #include "content/renderer/media/webrtc_audio_capturer.h"
|
| -#include "content/renderer/media/webrtc_audio_renderer.h"
|
| -#include "content/renderer/media/webrtc_local_audio_renderer.h"
|
| #include "content/renderer/media/webrtc_logging.h"
|
| #include "content/renderer/media/webrtc_uma_histograms.h"
|
| #include "content/renderer/render_thread_impl.h"
|
| -#include "media/base/audio_hardware_config.h"
|
| #include "third_party/WebKit/public/platform/WebMediaConstraints.h"
|
| #include "third_party/WebKit/public/platform/WebMediaStreamTrack.h"
|
| #include "third_party/WebKit/public/web/WebDocument.h"
|
| #include "third_party/WebKit/public/web/WebLocalFrame.h"
|
| -#include "third_party/WebKit/public/web/WebMediaStreamRegistry.h"
|
|
|
| namespace content {
|
| namespace {
|
| @@ -57,15 +51,6 @@ void CopyStreamConstraints(const blink::WebMediaConstraints& constraints,
|
|
|
| static int g_next_request_id = 0;
|
|
|
| -void GetDefaultOutputDeviceParams(
|
| - int* output_sample_rate, int* output_buffer_size) {
|
| - // Fetch the default audio output hardware config.
|
| - media::AudioHardwareConfig* hardware_config =
|
| - RenderThreadImpl::current()->GetAudioHardwareConfig();
|
| - *output_sample_rate = hardware_config->GetOutputSampleRate();
|
| - *output_buffer_size = hardware_config->GetOutputBufferSize();
|
| -}
|
| -
|
| } // namespace
|
|
|
| MediaStreamImpl::MediaStreamImpl(
|
| @@ -185,99 +170,6 @@ void MediaStreamImpl::cancelUserMediaRequest(
|
| }
|
| }
|
|
|
| -blink::WebMediaStream MediaStreamImpl::GetMediaStream(
|
| - const GURL& url) {
|
| - return blink::WebMediaStreamRegistry::lookupMediaStreamDescriptor(url);
|
| -}
|
| -
|
| -bool MediaStreamImpl::IsMediaStream(const GURL& url) {
|
| - blink::WebMediaStream web_stream(
|
| - blink::WebMediaStreamRegistry::lookupMediaStreamDescriptor(url));
|
| -
|
| - return (!web_stream.isNull() &&
|
| - (MediaStream::GetMediaStream(web_stream) != NULL));
|
| -}
|
| -
|
| -scoped_refptr<VideoFrameProvider>
|
| -MediaStreamImpl::GetVideoFrameProvider(
|
| - const GURL& url,
|
| - const base::Closure& error_cb,
|
| - const VideoFrameProvider::RepaintCB& repaint_cb) {
|
| - DCHECK(CalledOnValidThread());
|
| - blink::WebMediaStream web_stream(GetMediaStream(url));
|
| -
|
| - if (web_stream.isNull() || !web_stream.extraData())
|
| - return NULL; // This is not a valid stream.
|
| -
|
| - DVLOG(1) << "MediaStreamImpl::GetVideoFrameProvider stream:"
|
| - << base::UTF16ToUTF8(web_stream.id());
|
| -
|
| - blink::WebVector<blink::WebMediaStreamTrack> video_tracks;
|
| - web_stream.videoTracks(video_tracks);
|
| - if (video_tracks.isEmpty() ||
|
| - !MediaStreamVideoTrack::GetTrack(video_tracks[0])) {
|
| - return NULL;
|
| - }
|
| -
|
| - return new RTCVideoRenderer(video_tracks[0], error_cb, repaint_cb);
|
| -}
|
| -
|
| -scoped_refptr<MediaStreamAudioRenderer>
|
| -MediaStreamImpl::GetAudioRenderer(const GURL& url, int render_frame_id) {
|
| - DCHECK(CalledOnValidThread());
|
| - blink::WebMediaStream web_stream(GetMediaStream(url));
|
| -
|
| - if (web_stream.isNull() || !web_stream.extraData())
|
| - return NULL; // This is not a valid stream.
|
| -
|
| - DVLOG(1) << "MediaStreamImpl::GetAudioRenderer stream:"
|
| - << base::UTF16ToUTF8(web_stream.id());
|
| -
|
| - MediaStream* native_stream = MediaStream::GetMediaStream(web_stream);
|
| -
|
| - // TODO(tommi): MediaStreams do not have a 'local or not' concept.
|
| - // Tracks _might_, but even so, we need to fix the data flow so that
|
| - // it works the same way for all track implementations, local, remote or what
|
| - // have you.
|
| - // In this function, we should simply create a renderer object that receives
|
| - // and mixes audio from all the tracks that belong to the media stream.
|
| - // We need to remove the |is_local| property from MediaStreamExtraData since
|
| - // this concept is peerconnection specific (is a previously recorded stream
|
| - // local or remote?).
|
| - if (native_stream->is_local()) {
|
| - // Create the local audio renderer if the stream contains audio tracks.
|
| - blink::WebVector<blink::WebMediaStreamTrack> audio_tracks;
|
| - web_stream.audioTracks(audio_tracks);
|
| - if (audio_tracks.isEmpty())
|
| - return NULL;
|
| -
|
| - // TODO(xians): Add support for the case where the media stream contains
|
| - // multiple audio tracks.
|
| - return CreateLocalAudioRenderer(audio_tracks[0], render_frame_id);
|
| - }
|
| -
|
| - webrtc::MediaStreamInterface* stream =
|
| - MediaStream::GetAdapter(web_stream);
|
| - if (stream->GetAudioTracks().empty())
|
| - return NULL;
|
| -
|
| - // This is a remote WebRTC media stream.
|
| - WebRtcAudioDeviceImpl* audio_device =
|
| - dependency_factory_->GetWebRtcAudioDevice();
|
| -
|
| - // Share the existing renderer if any, otherwise create a new one.
|
| - scoped_refptr<WebRtcAudioRenderer> renderer(audio_device->renderer());
|
| - if (!renderer.get()) {
|
| - renderer = CreateRemoteAudioRenderer(stream, render_frame_id);
|
| -
|
| - if (renderer.get() && !audio_device->SetAudioRenderer(renderer.get()))
|
| - renderer = NULL;
|
| - }
|
| -
|
| - return renderer.get() ?
|
| - renderer->CreateSharedAudioRendererProxy(stream) : NULL;
|
| -}
|
| -
|
| // Callback from MediaStreamDispatcher.
|
| // The requested stream have been generated by the MediaStreamDispatcher.
|
| void MediaStreamImpl::OnStreamGenerated(
|
| @@ -718,66 +610,6 @@ void MediaStreamImpl::StopLocalSource(
|
| source_impl->StopSource();
|
| }
|
|
|
| -scoped_refptr<WebRtcAudioRenderer> MediaStreamImpl::CreateRemoteAudioRenderer(
|
| - webrtc::MediaStreamInterface* stream,
|
| - int render_frame_id) {
|
| - if (stream->GetAudioTracks().empty())
|
| - return NULL;
|
| -
|
| - DVLOG(1) << "MediaStreamImpl::CreateRemoteAudioRenderer label:"
|
| - << stream->label();
|
| -
|
| - // TODO(tommi): Change the default value of session_id to be
|
| - // StreamDeviceInfo::kNoId. Also update AudioOutputDevice etc.
|
| - int session_id = 0, sample_rate = 0, buffer_size = 0;
|
| - if (!GetAuthorizedDeviceInfoForAudioRenderer(&session_id,
|
| - &sample_rate,
|
| - &buffer_size)) {
|
| - GetDefaultOutputDeviceParams(&sample_rate, &buffer_size);
|
| - }
|
| -
|
| - return new WebRtcAudioRenderer(
|
| - stream, RenderViewObserver::routing_id(), render_frame_id, session_id,
|
| - sample_rate, buffer_size);
|
| -}
|
| -
|
| -scoped_refptr<WebRtcLocalAudioRenderer>
|
| -MediaStreamImpl::CreateLocalAudioRenderer(
|
| - const blink::WebMediaStreamTrack& audio_track,
|
| - int render_frame_id) {
|
| - DVLOG(1) << "MediaStreamImpl::CreateLocalAudioRenderer";
|
| -
|
| - int session_id = 0, sample_rate = 0, buffer_size = 0;
|
| - if (!GetAuthorizedDeviceInfoForAudioRenderer(&session_id,
|
| - &sample_rate,
|
| - &buffer_size)) {
|
| - GetDefaultOutputDeviceParams(&sample_rate, &buffer_size);
|
| - }
|
| -
|
| - // Create a new WebRtcLocalAudioRenderer instance and connect it to the
|
| - // existing WebRtcAudioCapturer so that the renderer can use it as source.
|
| - return new WebRtcLocalAudioRenderer(
|
| - audio_track,
|
| - RenderViewObserver::routing_id(),
|
| - render_frame_id,
|
| - session_id,
|
| - buffer_size);
|
| -}
|
| -
|
| -bool MediaStreamImpl::GetAuthorizedDeviceInfoForAudioRenderer(
|
| - int* session_id,
|
| - int* output_sample_rate,
|
| - int* output_frames_per_buffer) {
|
| - DCHECK(CalledOnValidThread());
|
| - WebRtcAudioDeviceImpl* audio_device =
|
| - dependency_factory_->GetWebRtcAudioDevice();
|
| - if (!audio_device)
|
| - return false;
|
| -
|
| - return audio_device->GetAuthorizedDeviceInfoForAudioRenderer(
|
| - session_id, output_sample_rate, output_frames_per_buffer);
|
| -}
|
| -
|
| MediaStreamImpl::UserMediaRequestInfo::UserMediaRequestInfo(
|
| int request_id,
|
| blink::WebFrame* frame,
|
|
|