OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CONTENT_PORT_BROWSER_RENDER_WIDGET_HOST_VIEW_FRAME_SUBSCRIBER_H_ | 5 #ifndef CONTENT_PORT_BROWSER_RENDER_WIDGET_HOST_VIEW_FRAME_SUBSCRIBER_H_ |
6 #define CONTENT_PORT_BROWSER_RENDER_WIDGET_HOST_VIEW_FRAME_SUBSCRIBER_H_ | 6 #define CONTENT_PORT_BROWSER_RENDER_WIDGET_HOST_VIEW_FRAME_SUBSCRIBER_H_ |
7 | 7 |
8 #include "base/callback.h" | 8 #include "base/callback.h" |
9 #include "base/time/time.h" | 9 #include "base/time/time.h" |
10 | 10 |
(...skipping 22 matching lines...) Expand all Loading... |
33 | 33 |
34 // Called when a captured frame is available or the frame is no longer | 34 // Called when a captured frame is available or the frame is no longer |
35 // needed by the platform layer. | 35 // needed by the platform layer. |
36 // | 36 // |
37 // If |frame_captured| is true then frame provided contains valid content and | 37 // If |frame_captured| is true then frame provided contains valid content and |
38 // |timestamp| is the time when the frame was painted. | 38 // |timestamp| is the time when the frame was painted. |
39 // | 39 // |
40 // If |frame_captured| is false then the content in frame provided is | 40 // If |frame_captured| is false then the content in frame provided is |
41 // invalid. There was an error during the process of frame capture or the | 41 // invalid. There was an error during the process of frame capture or the |
42 // platform layer is shutting down. |timestamp| is also invalid in this case. | 42 // platform layer is shutting down. |timestamp| is also invalid in this case. |
43 typedef base::Callback<void( | 43 typedef base::Callback<void(base::TimeTicks /* timestamp */, |
44 base::Time /* timestamp */, | 44 bool /* frame_captured */)> DeliverFrameCallback; |
45 bool /* frame_captured */)> DeliverFrameCallback; | |
46 | 45 |
47 // Called when a new frame is going to be presented at time | 46 // Called when a new frame is going to be presented at time |
48 // |present_time|. Implementation can decide whether the current frame should | 47 // |present_time|. Implementation can decide whether the current frame should |
49 // be captured or not. | 48 // be captured or not. |
50 // | 49 // |
51 // Return true if the current frame should be captured. If so, |storage| | 50 // Return true if the current frame should be captured. If so, |storage| |
52 // should will be set to hold an appropriately sized and allocated buffer | 51 // should will be set to hold an appropriately sized and allocated buffer |
53 // into which to copy the frame. The platform presenter will perform scaling | 52 // into which to copy the frame. The platform presenter will perform scaling |
54 // and color space conversion to fit into the output frame. | 53 // and color space conversion to fit into the output frame. |
55 // | 54 // |
56 // Destination format is determined by |storage|, currently only | 55 // Destination format is determined by |storage|, currently only |
57 // media::VideoFrame::YV12 is supported. Platform layer will perform color | 56 // media::VideoFrame::YV12 is supported. Platform layer will perform color |
58 // space conversion if needed. | 57 // space conversion if needed. |
59 // | 58 // |
60 // When the frame is available |callback| will be called. It is up to the | 59 // When the frame is available |callback| will be called. It is up to the |
61 // platform layer to decide when to deliver a captured frame. | 60 // platform layer to decide when to deliver a captured frame. |
62 // | 61 // |
63 // Return false if the current frame should not be captured. | 62 // Return false if the current frame should not be captured. |
64 virtual bool ShouldCaptureFrame( | 63 virtual bool ShouldCaptureFrame(base::TimeTicks present_time, |
65 base::Time present_time, | 64 scoped_refptr<media::VideoFrame>* storage, |
66 scoped_refptr<media::VideoFrame>* storage, | 65 DeliverFrameCallback* callback) = 0; |
67 DeliverFrameCallback* callback) = 0; | |
68 }; | 66 }; |
69 | 67 |
70 } // namespace content | 68 } // namespace content |
71 | 69 |
72 #endif // CONTENT_PORT_BROWSER_RENDER_WIDGET_HOST_VIEW_FRAME_SUBSCRIBER_H_ | 70 #endif // CONTENT_PORT_BROWSER_RENDER_WIDGET_HOST_VIEW_FRAME_SUBSCRIBER_H_ |
OLD | NEW |