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

Unified Diff: webrtc/modules/video_capture/video_capture_impl.cc

Issue 2534553002: Replace VideoCaptureDataCallback by VideoSinkInterface. (Closed)
Patch Set: Add webrtc/media/base to video_capturer include_rules. Created 4 years, 1 month 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 side-by-side diff with in-line comments
Download patch
Index: webrtc/modules/video_capture/video_capture_impl.cc
diff --git a/webrtc/modules/video_capture/video_capture_impl.cc b/webrtc/modules/video_capture/video_capture_impl.cc
index 90ac26713a2cd9ccd8ec1911bb5bce0c17fe2e23..4c6b5b88564fff8ff80c692ad21c13206ffaf0a7 100644
--- a/webrtc/modules/video_capture/video_capture_impl.cc
+++ b/webrtc/modules/video_capture/video_capture_impl.cc
@@ -25,10 +25,9 @@
namespace webrtc {
namespace videocapturemodule {
rtc::scoped_refptr<VideoCaptureModule> VideoCaptureImpl::Create(
- const int32_t id,
VideoCaptureExternal*& externalCapture) {
rtc::scoped_refptr<VideoCaptureImpl> implementation(
- new rtc::RefCountedObject<VideoCaptureImpl>(id));
+ new rtc::RefCountedObject<VideoCaptureImpl>());
externalCapture = implementation.get();
return implementation;
}
@@ -94,64 +93,20 @@ void VideoCaptureImpl::Process()
{
CriticalSectionScoped cs(&_callBackCs);
nisse-webrtc 2016/11/29 13:58:17 And it seems _callBackCs can also be deleted? In a
perkj_webrtc 2016/11/30 06:28:48 You can use GUARDED_BY().. But yes, there is no re
- const int64_t now_ns = rtc::TimeNanos();
_lastProcessTimeNanos = rtc::TimeNanos();
- // Handle No picture alarm
-
- if (_lastProcessFrameTimeNanos == _incomingFrameTimesNanos[0] &&
- _captureAlarm != Raised)
- {
- if (_noPictureAlarmCallBack && _captureCallBack)
- {
- _captureAlarm = Raised;
- _captureCallBack->OnNoPictureAlarm(_id, _captureAlarm);
- }
- }
- else if (_lastProcessFrameTimeNanos != _incomingFrameTimesNanos[0] &&
- _captureAlarm != Cleared)
- {
- if (_noPictureAlarmCallBack && _captureCallBack)
- {
- _captureAlarm = Cleared;
- _captureCallBack->OnNoPictureAlarm(_id, _captureAlarm);
-
- }
- }
-
- // Handle frame rate callback
- if ((now_ns - _lastFrameRateCallbackTimeNanos) /
- rtc::kNumNanosecsPerMillisec
- > kFrameRateCallbackInterval)
- {
- if (_frameRateCallBack && _captureCallBack)
- {
- const uint32_t frameRate = CalculateFrameRate(now_ns);
- _captureCallBack->OnCaptureFrameRate(_id, frameRate);
- }
- // Can be set by EnableFrameRateCallback
- _lastFrameRateCallbackTimeNanos = now_ns;
-
- }
-
_lastProcessFrameTimeNanos = _incomingFrameTimesNanos[0];
}
-VideoCaptureImpl::VideoCaptureImpl(const int32_t id)
- : _id(id),
- _deviceUniqueId(NULL),
+VideoCaptureImpl::VideoCaptureImpl()
+ : _deviceUniqueId(NULL),
_apiCs(*CriticalSectionWrapper::CreateCriticalSection()),
_captureDelay(0),
_requestedCapability(),
_callBackCs(*CriticalSectionWrapper::CreateCriticalSection()),
_lastProcessTimeNanos(rtc::TimeNanos()),
_lastFrameRateCallbackTimeNanos(rtc::TimeNanos()),
- _frameRateCallBack(false),
- _noPictureAlarmCallBack(false),
- _captureAlarm(Cleared),
- _setCaptureDelay(0),
_dataCallBack(NULL),
- _captureCallBack(NULL),
_lastProcessFrameTimeNanos(rtc::TimeNanos()),
_rotateFrame(kVideoRotation_0),
apply_rotation_(false) {
@@ -166,7 +121,6 @@ VideoCaptureImpl::VideoCaptureImpl(const int32_t id)
VideoCaptureImpl::~VideoCaptureImpl()
{
DeRegisterCaptureDataCallback();
- DeRegisterCaptureCallback();
delete &_callBackCs;
delete &_apiCs;
@@ -175,10 +129,10 @@ VideoCaptureImpl::~VideoCaptureImpl()
}
void VideoCaptureImpl::RegisterCaptureDataCallback(
- VideoCaptureDataCallback& dataCallBack) {
+ rtc::VideoSinkInterface<VideoFrame>* dataCallBack) {
CriticalSectionScoped cs(&_apiCs);
CriticalSectionScoped cs2(&_callBackCs);
- _dataCallBack = &dataCallBack;
+ _dataCallBack = dataCallBack;
}
void VideoCaptureImpl::DeRegisterCaptureDataCallback() {
@@ -186,42 +140,11 @@ void VideoCaptureImpl::DeRegisterCaptureDataCallback() {
CriticalSectionScoped cs2(&_callBackCs);
_dataCallBack = NULL;
}
-void VideoCaptureImpl::RegisterCaptureCallback(VideoCaptureFeedBack& callBack) {
-
- CriticalSectionScoped cs(&_apiCs);
- CriticalSectionScoped cs2(&_callBackCs);
- _captureCallBack = &callBack;
-}
-void VideoCaptureImpl::DeRegisterCaptureCallback() {
-
- CriticalSectionScoped cs(&_apiCs);
- CriticalSectionScoped cs2(&_callBackCs);
- _captureCallBack = NULL;
-}
-void VideoCaptureImpl::SetCaptureDelay(int32_t delayMS) {
- CriticalSectionScoped cs(&_apiCs);
- _captureDelay = delayMS;
-}
-int32_t VideoCaptureImpl::CaptureDelay()
-{
- CriticalSectionScoped cs(&_apiCs);
- return _setCaptureDelay;
-}
-
int32_t VideoCaptureImpl::DeliverCapturedFrame(VideoFrame& captureFrame) {
UpdateFrameCount(); // frame count used for local frame rate callback.
- const bool callOnCaptureDelayChanged = _setCaptureDelay != _captureDelay;
- // Capture delay changed
- if (_setCaptureDelay != _captureDelay) {
- _setCaptureDelay = _captureDelay;
- }
-
if (_dataCallBack) {
- if (callOnCaptureDelayChanged) {
- _dataCallBack->OnCaptureDelayChanged(_id, _captureDelay);
- }
- _dataCallBack->OnIncomingCapturedFrame(_id, captureFrame);
+ _dataCallBack->OnFrame(captureFrame);
}
return 0;
@@ -313,16 +236,6 @@ int32_t VideoCaptureImpl::SetCaptureRotation(VideoRotation rotation) {
return 0;
}
-void VideoCaptureImpl::EnableFrameRateCallback(const bool enable) {
- CriticalSectionScoped cs(&_apiCs);
- CriticalSectionScoped cs2(&_callBackCs);
- _frameRateCallBack = enable;
- if (enable)
- {
- _lastFrameRateCallbackTimeNanos = rtc::TimeNanos();
- }
-}
-
bool VideoCaptureImpl::SetApplyRotation(bool enable) {
// We can't take any lock here as it'll cause deadlock with IncomingFrame.
@@ -331,12 +244,6 @@ bool VideoCaptureImpl::SetApplyRotation(bool enable) {
return true;
}
-void VideoCaptureImpl::EnableNoPictureAlarm(const bool enable) {
- CriticalSectionScoped cs(&_apiCs);
- CriticalSectionScoped cs2(&_callBackCs);
- _noPictureAlarmCallBack = enable;
-}
-
void VideoCaptureImpl::UpdateFrameCount()
{
if (_incomingFrameTimesNanos[0] / rtc::kNumNanosecsPerMicrosec == 0)
« no previous file with comments | « webrtc/modules/video_capture/video_capture_impl.h ('k') | webrtc/modules/video_capture/windows/device_info_ds.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698