| Index: content/renderer/media/media_stream_source.h
|
| diff --git a/content/renderer/media/media_stream_source_extra_data.h b/content/renderer/media/media_stream_source.h
|
| similarity index 65%
|
| rename from content/renderer/media/media_stream_source_extra_data.h
|
| rename to content/renderer/media/media_stream_source.h
|
| index 4b88c147f8be3261cc862317bf124c92efed1931..203bf835672188d4d2ac520979c3fe7c8e16ad71 100644
|
| --- a/content/renderer/media/media_stream_source_extra_data.h
|
| +++ b/content/renderer/media/media_stream_source.h
|
| @@ -2,45 +2,52 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -#ifndef CONTENT_RENDERER_MEDIA_MEDIA_STREAM_SOURCE_EXTRA_DATA_H_
|
| -#define CONTENT_RENDERER_MEDIA_MEDIA_STREAM_SOURCE_EXTRA_DATA_H_
|
| +#ifndef CONTENT_RENDERER_MEDIA_MEDIA_STREAM_SOURCE_H_
|
| +#define CONTENT_RENDERER_MEDIA_MEDIA_STREAM_SOURCE_H_
|
|
|
| #include "base/callback.h"
|
| #include "base/compiler_specific.h"
|
| #include "content/common/content_export.h"
|
| #include "content/common/media/media_stream_options.h"
|
| #include "content/renderer/media/media_stream_source_observer.h"
|
| +#include "content/renderer/media/media_stream_dependency_factory.h"
|
| #include "content/renderer/media/webrtc_audio_capturer.h"
|
| +#include "content/renderer/render_thread_impl.h"
|
| #include "third_party/libjingle/source/talk/app/webrtc/videosourceinterface.h"
|
| #include "third_party/WebKit/public/platform/WebMediaStreamSource.h"
|
|
|
| +namespace blink {
|
| +class WebMediaStreamTrack;
|
| +} // namespace blink
|
| +
|
| namespace content {
|
|
|
| -class CONTENT_EXPORT MediaStreamSourceExtraData
|
| +class CONTENT_EXPORT MediaStreamSource
|
| : NON_EXPORTED_BASE(public blink::WebMediaStreamSource::ExtraData) {
|
| public:
|
| typedef base::Callback<void(const blink::WebMediaStreamSource& source)>
|
| SourceStopCallback;
|
|
|
| - MediaStreamSourceExtraData(const StreamDeviceInfo& device_info,
|
| - const SourceStopCallback& stop_callback);
|
| - MediaStreamSourceExtraData();
|
| - virtual ~MediaStreamSourceExtraData();
|
| + typedef base::Callback<void(MediaStreamSource* source,
|
| + bool success)> ConstraintsCallback;
|
| +
|
| + MediaStreamSource(const StreamDeviceInfo& device_info,
|
| + const SourceStopCallback& stop_callback);
|
| +
|
| + MediaStreamSource();
|
| + virtual ~MediaStreamSource();
|
| +
|
| + virtual void ApplyConstraints(const blink::WebMediaStreamTrack& track,
|
| + const blink::WebMediaConstraints& constraints,
|
| + const ConstraintsCallback& callback);
|
|
|
| // Return device information about the camera or microphone.
|
| const StreamDeviceInfo& device_info() const {
|
| return device_info_;
|
| }
|
|
|
| - void SetVideoSource(webrtc::VideoSourceInterface* source) {
|
| - video_source_ = source;
|
| - source_observer_.reset(new MediaStreamSourceObserver(source, this));
|
| - }
|
| -
|
| void SetLocalAudioSource(webrtc::AudioSourceInterface* source) {
|
| local_audio_source_ = source;
|
| - // TODO(perkj): Implement a local source observer for audio.
|
| - // See |source_observer_|.
|
| }
|
|
|
| void SetAudioCapturer(WebRtcAudioCapturer* capturer) {
|
| @@ -61,18 +68,27 @@ class CONTENT_EXPORT MediaStreamSourceExtraData
|
| return NULL;
|
| }
|
|
|
| - webrtc::VideoSourceInterface* video_source() { return video_source_.get(); }
|
| webrtc::AudioSourceInterface* local_audio_source() {
|
| return local_audio_source_.get();
|
| }
|
|
|
| void OnLocalSourceStop();
|
|
|
| + protected:
|
| + // Set device information about the camera or microphone.
|
| + void SetDeviceInfo(const StreamDeviceInfo& device_info) {
|
| + device_info_ = device_info;
|
| + }
|
| +
|
| + // Set a callback that is triggered when OnLocalSourceStop is called.
|
| + void SetStopCallback(const SourceStopCallback& stop_callback) {
|
| + DCHECK(stop_callback_.is_null());
|
| + stop_callback_ = stop_callback;
|
| + }
|
| +
|
| private:
|
| StreamDeviceInfo device_info_;
|
|
|
| - scoped_refptr<webrtc::VideoSourceInterface> video_source_;
|
| -
|
| // This member holds an instance of webrtc::LocalAudioSource. This is used
|
| // as a container for audio options.
|
| // TODO(hclam): This should be merged with |audio_source_| such that it
|
| @@ -84,7 +100,7 @@ class CONTENT_EXPORT MediaStreamSourceExtraData
|
|
|
| SourceStopCallback stop_callback_;
|
|
|
| - DISALLOW_COPY_AND_ASSIGN(MediaStreamSourceExtraData);
|
| + DISALLOW_COPY_AND_ASSIGN(MediaStreamSource);
|
| };
|
|
|
| } // namespace content
|
|
|