| Index: webrtc/media/base/videocapturer.h
|
| diff --git a/webrtc/media/base/videocapturer.h b/webrtc/media/base/videocapturer.h
|
| index 3b0d05e86ec01aec08c37e4bcf92a945ee1f2d6c..3addd8f05d7a40b63272efbe90a5ab81c7fb5c98 100644
|
| --- a/webrtc/media/base/videocapturer.h
|
| +++ b/webrtc/media/base/videocapturer.h
|
| @@ -19,6 +19,7 @@
|
|
|
| #include "webrtc/base/basictypes.h"
|
| #include "webrtc/base/criticalsection.h"
|
| +#include "webrtc/media/base/videosourceinterface.h"
|
| #include "webrtc/base/messagehandler.h"
|
| #include "webrtc/base/rollingaccumulator.h"
|
| #include "webrtc/base/scoped_ptr.h"
|
| @@ -27,6 +28,7 @@
|
| #include "webrtc/base/timing.h"
|
| #include "webrtc/media/base/mediachannel.h"
|
| #include "webrtc/media/base/videoadapter.h"
|
| +#include "webrtc/media/base/videobroadcaster.h"
|
| #include "webrtc/media/base/videocommon.h"
|
| #include "webrtc/media/base/videoframefactory.h"
|
| #include "webrtc/media/devices/devicemanager.h"
|
| @@ -73,7 +75,7 @@ struct CapturedFrame {
|
| // time with nanosecond units.
|
| uint32_t data_size; // number of bytes of the frame data
|
|
|
| - webrtc::VideoRotation rotation; // rotation in degrees of the frame.
|
| + webrtc::VideoRotation rotation; // rotation in degrees of the frame.
|
|
|
| void* data; // pointer to the frame data. This object allocates the
|
| // memory or points to an existing memory.
|
| @@ -108,9 +110,9 @@ struct CapturedFrame {
|
| // media engine thread). Hence, the VideoCapture subclasses dont need to be
|
| // thread safe.
|
| //
|
| -class VideoCapturer
|
| - : public sigslot::has_slots<>,
|
| - public rtc::MessageHandler {
|
| +class VideoCapturer : public sigslot::has_slots<>,
|
| + public rtc::MessageHandler,
|
| + public rtc::VideoSourceInterface<cricket::VideoFrame> {
|
| public:
|
| // All signals are marshalled to |thread| or the creating thread if
|
| // none is provided.
|
| @@ -197,11 +199,6 @@ class VideoCapturer
|
| return capture_state_;
|
| }
|
|
|
| - // Tells videocapturer whether to apply the pending rotation. By default, the
|
| - // rotation is applied and the generated frame is up right. When set to false,
|
| - // generated frames will carry the rotation information from
|
| - // SetCaptureRotation. Return value indicates whether this operation succeeds.
|
| - virtual bool SetApplyRotation(bool enable);
|
| virtual bool GetApplyRotation() { return apply_rotation_; }
|
|
|
| // Returns true if the capturer is screencasting. This can be used to
|
| @@ -240,10 +237,6 @@ class VideoCapturer
|
| // Signal the captured frame to downstream.
|
| sigslot::signal2<VideoCapturer*, const CapturedFrame*,
|
| sigslot::multi_threaded_local> SignalFrameCaptured;
|
| - // Signal the captured and possibly adapted frame to downstream consumers
|
| - // such as the encoder.
|
| - sigslot::signal2<VideoCapturer*, const VideoFrame*,
|
| - sigslot::multi_threaded_local> SignalVideoFrame;
|
|
|
| // If true, run video adaptation. By default, video adaptation is enabled
|
| // and users must call video_adapter()->OnOutputFormatRequest()
|
| @@ -269,7 +262,16 @@ class VideoCapturer
|
| VariableInfo<double>* frame_time_stats,
|
| VideoFormat* last_captured_frame_format);
|
|
|
| + // Implements VideoSourceInterface
|
| + void AddOrUpdateSink(rtc::VideoSinkInterface<cricket::VideoFrame>* sink,
|
| + const rtc::VideoSinkWants& wants) override;
|
| + void RemoveSink(rtc::VideoSinkInterface<cricket::VideoFrame>* sink) override;
|
| +
|
| protected:
|
| + // OnSinkWantsChanged can be overridden to change the default behavior
|
| + // when a sink changes its VideoSinkWants by calling AddOrUpdateSink.
|
| + virtual void OnSinkWantsChanged(const rtc::VideoSinkWants& wants);
|
| +
|
| // Callback attached to SignalFrameCaptured where SignalVideoFrames is called.
|
| void OnFrameCaptured(VideoCapturer* video_capturer,
|
| const CapturedFrame* captured_frame);
|
| @@ -344,6 +346,7 @@ class VideoCapturer
|
| bool muted_;
|
| int black_frame_count_down_;
|
|
|
| + rtc::VideoBroadcaster broadcaster_;
|
| bool enable_video_adapter_;
|
| CoordinatedVideoAdapter video_adapter_;
|
|
|
|
|