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 MEDIA_FILTERS_VIDEO_RENDERER_BASE_H_ | 5 #ifndef MEDIA_FILTERS_VIDEO_RENDERER_BASE_H_ |
6 #define MEDIA_FILTERS_VIDEO_RENDERER_BASE_H_ | 6 #define MEDIA_FILTERS_VIDEO_RENDERER_BASE_H_ |
7 | 7 |
8 #include <deque> | 8 #include <deque> |
9 | 9 |
10 #include "base/memory/ref_counted.h" | 10 #include "base/memory/ref_counted.h" |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
79 | 79 |
80 protected: | 80 protected: |
81 virtual ~VideoRendererBase(); | 81 virtual ~VideoRendererBase(); |
82 | 82 |
83 private: | 83 private: |
84 // Callback from the video decoder delivering decoded video frames and | 84 // Callback from the video decoder delivering decoded video frames and |
85 // reporting video decoder status. | 85 // reporting video decoder status. |
86 void FrameReady(VideoDecoder::DecoderStatus status, | 86 void FrameReady(VideoDecoder::DecoderStatus status, |
87 const scoped_refptr<VideoFrame>& frame); | 87 const scoped_refptr<VideoFrame>& frame); |
88 | 88 |
| 89 // Helper method for adding a frame to |ready_frames_| |
| 90 void AddReadyFrame(const scoped_refptr<VideoFrame>& frame); |
| 91 |
89 // Helper method that schedules an asynchronous read from the decoder as long | 92 // Helper method that schedules an asynchronous read from the decoder as long |
90 // as there isn't a pending read and we have capacity. | 93 // as there isn't a pending read and we have capacity. |
91 void AttemptRead_Locked(); | 94 void AttemptRead_Locked(); |
92 | 95 |
93 // Called when the VideoDecoder Flush() completes. | 96 // Called when the VideoDecoder Flush() completes. |
94 void OnDecoderFlushDone(); | 97 void OnDecoderFlushDone(); |
95 | 98 |
96 // Attempts to complete flushing and transition into the flushed state. | 99 // Attempts to complete flushing and transition into the flushed state. |
97 void AttemptFlush_Locked(); | 100 void AttemptFlush_Locked(); |
98 | 101 |
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
207 StatisticsCB statistics_cb_; | 210 StatisticsCB statistics_cb_; |
208 TimeCB time_cb_; | 211 TimeCB time_cb_; |
209 NaturalSizeChangedCB size_changed_cb_; | 212 NaturalSizeChangedCB size_changed_cb_; |
210 base::Closure ended_cb_; | 213 base::Closure ended_cb_; |
211 PipelineStatusCB error_cb_; | 214 PipelineStatusCB error_cb_; |
212 TimeDeltaCB get_time_cb_; | 215 TimeDeltaCB get_time_cb_; |
213 TimeDeltaCB get_duration_cb_; | 216 TimeDeltaCB get_duration_cb_; |
214 | 217 |
215 base::TimeDelta preroll_timestamp_; | 218 base::TimeDelta preroll_timestamp_; |
216 | 219 |
| 220 // Delayed frame used during kPrerolling to determine whether |
| 221 // |preroll_timestamp_| is between this frame and the next one. |
| 222 scoped_refptr<VideoFrame> prerolling_delayed_frame_; |
| 223 |
217 // Embedder callback for notifying a new frame is available for painting. | 224 // Embedder callback for notifying a new frame is available for painting. |
218 base::Closure paint_cb_; | 225 base::Closure paint_cb_; |
219 | 226 |
220 // Callback to execute to inform the player if the video decoder's output is | 227 // Callback to execute to inform the player if the video decoder's output is |
221 // opaque. | 228 // opaque. |
222 SetOpaqueCB set_opaque_cb_; | 229 SetOpaqueCB set_opaque_cb_; |
223 | 230 |
224 DISALLOW_COPY_AND_ASSIGN(VideoRendererBase); | 231 DISALLOW_COPY_AND_ASSIGN(VideoRendererBase); |
225 }; | 232 }; |
226 | 233 |
227 } // namespace media | 234 } // namespace media |
228 | 235 |
229 #endif // MEDIA_FILTERS_VIDEO_RENDERER_BASE_H_ | 236 #endif // MEDIA_FILTERS_VIDEO_RENDERER_BASE_H_ |
OLD | NEW |