| Index: webrtc/modules/desktop_capture/screen_capture_frame_queue.h
|
| diff --git a/webrtc/modules/desktop_capture/screen_capture_frame_queue.h b/webrtc/modules/desktop_capture/screen_capture_frame_queue.h
|
| index 21af0f320fc277952c4515b547d9ab98492a2a15..b15ae4bc733e8f05d2d6b0660a43fb244c0ad3f7 100644
|
| --- a/webrtc/modules/desktop_capture/screen_capture_frame_queue.h
|
| +++ b/webrtc/modules/desktop_capture/screen_capture_frame_queue.h
|
| @@ -13,8 +13,8 @@
|
|
|
| #include <memory>
|
|
|
| +#include "webrtc/modules/desktop_capture/screen_capture_content_queue.h"
|
| #include "webrtc/modules/desktop_capture/shared_desktop_frame.h"
|
| -#include "webrtc/typedefs.h"
|
|
|
| namespace webrtc {
|
| class DesktopFrame;
|
| @@ -35,10 +35,16 @@ namespace webrtc {
|
| // Frame consumer is expected to never hold more than kQueueLength frames
|
| // created by this function and it should release the earliest one before trying
|
| // to capture a new frame (i.e. before MoveToNextFrame() is called).
|
| -class ScreenCaptureFrameQueue {
|
| +//
|
| +// Users do not expect to call functions from
|
| +// ScreenCaptureContentQueue<SharedDesktopFrame>, since extra assertions or
|
| +// wrappers are applied.
|
| +class ScreenCaptureFrameQueue : ScreenCaptureContentQueue<SharedDesktopFrame> {
|
| public:
|
| - ScreenCaptureFrameQueue();
|
| - ~ScreenCaptureFrameQueue();
|
| + ScreenCaptureFrameQueue() = default;
|
| + virtual ~ScreenCaptureFrameQueue() = default;
|
| +
|
| + using ScreenCaptureContentQueue<SharedDesktopFrame>::Reset;
|
|
|
| // Moves to the next frame in the queue, moving the 'current' frame to become
|
| // the 'previous' one.
|
| @@ -48,25 +54,14 @@ class ScreenCaptureFrameQueue {
|
| // existing frame (if any) is destroyed. Takes ownership of |frame|.
|
| void ReplaceCurrentFrame(DesktopFrame* frame);
|
|
|
| - // Marks all frames obsolete and resets the previous frame pointer. No
|
| - // frames are freed though as the caller can still access them.
|
| - void Reset();
|
| -
|
| SharedDesktopFrame* current_frame() const {
|
| - return frames_[current_].get();
|
| + return current();
|
| }
|
|
|
| SharedDesktopFrame* previous_frame() const {
|
| - return frames_[(current_ + kQueueLength - 1) % kQueueLength].get();
|
| + return previous();
|
| }
|
|
|
| - private:
|
| - // Index of the current frame.
|
| - int current_;
|
| -
|
| - static const int kQueueLength = 2;
|
| - std::unique_ptr<SharedDesktopFrame> frames_[kQueueLength];
|
| -
|
| RTC_DISALLOW_COPY_AND_ASSIGN(ScreenCaptureFrameQueue);
|
| };
|
|
|
|
|