Index: media/capture/content/screen_capture_device_core.h |
diff --git a/media/capture/content/screen_capture_device_core.h b/media/capture/content/screen_capture_device_core.h |
index 7e301545c96060202c23eba2e8a2c5ef96809516..057e89459e5f784f1fe71d4ca966bb08a40f6edb 100644 |
--- a/media/capture/content/screen_capture_device_core.h |
+++ b/media/capture/content/screen_capture_device_core.h |
@@ -46,6 +46,18 @@ class MEDIA_EXPORT VideoCaptureMachine { |
// overloading or under-utilization. |
virtual bool IsAutoThrottlingEnabled() const; |
+ // Called by ScreenCaptureDeviceCore when it failed to satisfy a "refresh |
+ // frame" request by attempting to resurrect the last video frame from the |
+ // buffer pool (this is referred to as the "passive" refresh approach). The |
+ // failure can happen for a number of reasons (e.g., the oracle decided to |
+ // change resolution, or consumers of the last video frame are not yet |
+ // finished with it). |
+ // |
+ // The implementation of this method should consult the oracle, using the |
+ // kActiveRefreshRequest event type, to decide whether to initiate a new frame |
+ // capture, and then do so if the oracle agrees. |
+ virtual void MaybeCaptureForRefresh() = 0; |
+ |
private: |
DISALLOW_COPY_AND_ASSIGN(VideoCaptureMachine); |
}; |
@@ -69,6 +81,7 @@ class MEDIA_EXPORT ScreenCaptureDeviceCore |
// Asynchronous requests to change ScreenCaptureDeviceCore state. |
void AllocateAndStart(const VideoCaptureParams& params, |
scoped_ptr<VideoCaptureDevice::Client> client); |
+ void RequestRefreshFrame(); |
void StopAndDeAllocate(); |
private: |