summaryrefslogtreecommitdiffstats
path: root/media/video/capture
diff options
context:
space:
mode:
authormiu <miu@chromium.org>2015-06-12 20:32:32 -0700
committerCommit bot <commit-bot@chromium.org>2015-06-13 03:33:46 +0000
commit8388f277f8f889af895e17fbf28d5d3a538b9fbc (patch)
treeade2e79534f14f3c96123a9342c9d9309e67c732 /media/video/capture
parent19567f2ed8ea038ee0f49d8683300471ef3cd1a5 (diff)
downloadchromium_src-8388f277f8f889af895e17fbf28d5d3a538b9fbc.zip
chromium_src-8388f277f8f889af895e17fbf28d5d3a538b9fbc.tar.gz
chromium_src-8388f277f8f889af895e17fbf28d5d3a538b9fbc.tar.bz2
Add VideoCaptureDevice::Client::GetBufferPoolUtilization()
Addes a new method to the VideoCaptureDevice::Client interface to allow querying of the current buffer pool utilization. This will be used, in an upcoming change, as a feedback signal to throttle tab/screen capture data volumes. BUG=156767 R=mcasas@chromium.org Review URL: https://codereview.chromium.org/1185813003 Cr-Commit-Position: refs/heads/master@{#334320}
Diffstat (limited to 'media/video/capture')
-rw-r--r--media/video/capture/fake_video_capture_device_unittest.cc2
-rw-r--r--media/video/capture/video_capture_device.h4
-rw-r--r--media/video/capture/video_capture_device_unittest.cc1
3 files changed, 7 insertions, 0 deletions
diff --git a/media/video/capture/fake_video_capture_device_unittest.cc b/media/video/capture/fake_video_capture_device_unittest.cc
index 386849e..ee0c2af 100644
--- a/media/video/capture/fake_video_capture_device_unittest.cc
+++ b/media/video/capture/fake_video_capture_device_unittest.cc
@@ -103,6 +103,8 @@ class MockClient : public VideoCaptureDevice::Client {
frame_cb_.Run(format);
}
+ double GetBufferPoolUtilization() const override { return 0.0; }
+
private:
base::Callback<void(const VideoCaptureFormat&)> frame_cb_;
};
diff --git a/media/video/capture/video_capture_device.h b/media/video/capture/video_capture_device.h
index 6fbfd7d..72aac2e 100644
--- a/media/video/capture/video_capture_device.h
+++ b/media/video/capture/video_capture_device.h
@@ -270,6 +270,10 @@ class MEDIA_EXPORT VideoCaptureDevice {
// VideoCaptureDevice requests the |message| to be logged.
virtual void OnLog(const std::string& message) {}
+
+ // Returns the current buffer pool utilization, in the range 0.0 (no buffers
+ // are in use by producers or consumers) to 1.0 (all buffers are in use).
+ virtual double GetBufferPoolUtilization() const = 0;
};
virtual ~VideoCaptureDevice();
diff --git a/media/video/capture/video_capture_device_unittest.cc b/media/video/capture/video_capture_device_unittest.cc
index a89385b..610be86 100644
--- a/media/video/capture/video_capture_device_unittest.cc
+++ b/media/video/capture/video_capture_device_unittest.cc
@@ -82,6 +82,7 @@ class MockClient : public VideoCaptureDevice::Client {
MOCK_METHOD0(DoOnIncomingCapturedBuffer, void(void));
MOCK_METHOD0(DoOnIncomingCapturedVideoFrame, void(void));
MOCK_METHOD1(OnError, void(const std::string& reason));
+ MOCK_CONST_METHOD0(GetBufferPoolUtilization, double(void));
explicit MockClient(base::Callback<void(const VideoCaptureFormat&)> frame_cb)
: main_thread_(base::ThreadTaskRunnerHandle::Get()),