Index: webrtc/media/base/videocapturer.h |
diff --git a/webrtc/media/base/videocapturer.h b/webrtc/media/base/videocapturer.h |
index c9c96eeb1d299cb06eaad73c8d4734cfdc357eac..9aab5e26691023b51b4f05f224ef6dcf9a85b9a1 100644 |
--- a/webrtc/media/base/videocapturer.h |
+++ b/webrtc/media/base/videocapturer.h |
@@ -24,9 +24,7 @@ |
#include "webrtc/media/base/videosourceinterface.h" |
#include "webrtc/base/sigslot.h" |
#include "webrtc/base/thread_checker.h" |
-#include "webrtc/base/timestampaligner.h" |
-#include "webrtc/media/base/videoadapter.h" |
-#include "webrtc/media/base/videobroadcaster.h" |
+#include "webrtc/media/base/adaptedvideosource.h" |
#include "webrtc/media/base/videocommon.h" |
#include "webrtc/media/base/videoframefactory.h" |
@@ -203,10 +201,8 @@ class VideoCapturer : public sigslot::has_slots<>, |
// If true, run video adaptation. By default, video adaptation is enabled |
// and users must call video_adapter()->OnOutputFormatRequest() |
// to receive frames. |
- bool enable_video_adapter() const { return enable_video_adapter_; } |
- void set_enable_video_adapter(bool enable_video_adapter) { |
- enable_video_adapter_ = enable_video_adapter; |
- } |
+ bool enable_video_adapter() const; |
+ void set_enable_video_adapter(bool enable_video_adapter); |
// Takes ownership. |
void set_frame_factory(VideoFrameFactory* frame_factory); |
@@ -223,34 +219,6 @@ class VideoCapturer : public sigslot::has_slots<>, |
// when a sink changes its VideoSinkWants by calling AddOrUpdateSink. |
virtual void OnSinkWantsChanged(const rtc::VideoSinkWants& wants); |
- // Reports the appropriate frame size after adaptation. Returns true |
- // if a frame is wanted. Returns false if there are no interested |
- // sinks, or if the VideoAdapter decides to drop the frame. |
- |
- // This function also implements timestamp translation/filtering. |
- // |camera_time_ns| is the camera's timestamp for the captured |
- // frame; it is expected to have good accuracy, but it may use an |
- // arbitrary epoch and a small possibly free-running with a frequency |
- // slightly different from the system clock. |system_time_us| is the |
- // monotonic system time (in the same scale as rtc::TimeMicros) when |
- // the frame was captured; the application is expected to read the |
- // system time as soon as possible after frame capture, but it may |
- // suffer scheduling jitter or poor system clock resolution. The |
- // output |translated_camera_time_us| is a combined timestamp, |
- // taking advantage of the supposedly higher accuracy in the camera |
- // timestamp, but using the same epoch and frequency as system time. |
- bool AdaptFrame(int width, |
- int height, |
- int64_t camera_time_us, |
- int64_t system_time_us, |
- int* out_width, |
- int* out_height, |
- int* crop_width, |
- int* crop_height, |
- int* crop_x, |
- int* crop_y, |
- int64_t* translated_camera_time_us); |
- |
// Callback attached to SignalFrameCaptured where SignalVideoFrames is called. |
void OnFrameCaptured(VideoCapturer* video_capturer, |
const CapturedFrame* captured_frame); |
@@ -261,7 +229,7 @@ class VideoCapturer : public sigslot::has_slots<>, |
// orig_width and orig_height are used only to produce stats. |
void OnFrame(const VideoFrame& frame, int orig_width, int orig_height); |
- VideoAdapter* video_adapter() { return &video_adapter_; } |
+ VideoAdapter* video_adapter() { return adapted_source_.video_adapter(); } |
void SetCaptureState(CaptureState state); |
@@ -313,9 +281,7 @@ class VideoCapturer : public sigslot::has_slots<>, |
int scaled_width_; // Current output size from ComputeScale. |
int scaled_height_; |
- rtc::VideoBroadcaster broadcaster_; |
- bool enable_video_adapter_; |
- VideoAdapter video_adapter_; |
+ rtc::AdaptedVideoSource adapted_source_; |
rtc::CriticalSection frame_stats_crit_; |
// The captured frame size before potential adapation. |