Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(669)

Side by Side Diff: media/renderers/video_renderer_impl.h

Issue 1874733002: media: split GpuMemoryBufferVideoFramePool into GpuMemoryBufferVideoFrameCopier/Pool Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: add GpuMemoryBufferVideoFramePoolTest Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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_RENDERERS_VIDEO_RENDERER_IMPL_H_ 5 #ifndef MEDIA_RENDERERS_VIDEO_RENDERER_IMPL_H_
6 #define MEDIA_RENDERERS_VIDEO_RENDERER_IMPL_H_ 6 #define MEDIA_RENDERERS_VIDEO_RENDERER_IMPL_H_
7 7
8 #include <stddef.h> 8 #include <stddef.h>
9 #include <stdint.h> 9 #include <stdint.h>
10 10
(...skipping 11 matching lines...) Expand all
22 #include "media/base/demuxer_stream.h" 22 #include "media/base/demuxer_stream.h"
23 #include "media/base/media_log.h" 23 #include "media/base/media_log.h"
24 #include "media/base/pipeline_status.h" 24 #include "media/base/pipeline_status.h"
25 #include "media/base/video_decoder.h" 25 #include "media/base/video_decoder.h"
26 #include "media/base/video_frame.h" 26 #include "media/base/video_frame.h"
27 #include "media/base/video_renderer.h" 27 #include "media/base/video_renderer.h"
28 #include "media/base/video_renderer_sink.h" 28 #include "media/base/video_renderer_sink.h"
29 #include "media/filters/decoder_stream.h" 29 #include "media/filters/decoder_stream.h"
30 #include "media/filters/video_renderer_algorithm.h" 30 #include "media/filters/video_renderer_algorithm.h"
31 #include "media/renderers/gpu_video_accelerator_factories.h" 31 #include "media/renderers/gpu_video_accelerator_factories.h"
32 #include "media/video/gpu_memory_buffer_video_frame_pool.h" 32 #include "media/video/gpu_memory_buffer_video_frame_copier.h"
33 33
34 namespace base { 34 namespace base {
35 class SingleThreadTaskRunner; 35 class SingleThreadTaskRunner;
36 class TickClock; 36 class TickClock;
37 } 37 }
38 38
39 namespace media { 39 namespace media {
40 40
41 // VideoRendererImpl handles reading from a VideoFrameStream storing the 41 // VideoRendererImpl handles reading from a VideoFrameStream storing the
42 // results in a queue of decoded frames and executing a callback when a frame is 42 // results in a queue of decoded frames and executing a callback when a frame is
(...skipping 28 matching lines...) Expand all
71 const base::Closure& ended_cb, 71 const base::Closure& ended_cb,
72 const PipelineStatusCB& error_cb, 72 const PipelineStatusCB& error_cb,
73 const TimeSource::WallClockTimeCB& wall_clock_time_cb, 73 const TimeSource::WallClockTimeCB& wall_clock_time_cb,
74 const base::Closure& waiting_for_decryption_key_cb) override; 74 const base::Closure& waiting_for_decryption_key_cb) override;
75 void Flush(const base::Closure& callback) override; 75 void Flush(const base::Closure& callback) override;
76 void StartPlayingFrom(base::TimeDelta timestamp) override; 76 void StartPlayingFrom(base::TimeDelta timestamp) override;
77 void OnTimeStateChanged(bool time_progressing) override; 77 void OnTimeStateChanged(bool time_progressing) override;
78 78
79 void SetTickClockForTesting(scoped_ptr<base::TickClock> tick_clock); 79 void SetTickClockForTesting(scoped_ptr<base::TickClock> tick_clock);
80 void SetGpuMemoryBufferVideoForTesting( 80 void SetGpuMemoryBufferVideoForTesting(
81 scoped_ptr<GpuMemoryBufferVideoFramePool> gpu_memory_buffer_pool); 81 scoped_ptr<GpuMemoryBufferVideoFrameCopier> gpu_memory_buffer_copier);
82 82
83 // VideoRendererSink::RenderCallback implementation. 83 // VideoRendererSink::RenderCallback implementation.
84 scoped_refptr<VideoFrame> Render(base::TimeTicks deadline_min, 84 scoped_refptr<VideoFrame> Render(base::TimeTicks deadline_min,
85 base::TimeTicks deadline_max, 85 base::TimeTicks deadline_max,
86 bool background_rendering) override; 86 bool background_rendering) override;
87 void OnFrameDropped() override; 87 void OnFrameDropped() override;
88 88
89 private: 89 private:
90 // Callback for |video_frame_stream_| initialization. 90 // Callback for |video_frame_stream_| initialization.
91 void OnVideoFrameStreamInitialized(bool success); 91 void OnVideoFrameStreamInitialized(bool success);
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
167 VideoRendererSink* const sink_; 167 VideoRendererSink* const sink_;
168 bool sink_started_; 168 bool sink_started_;
169 169
170 // Used for accessing data members. 170 // Used for accessing data members.
171 base::Lock lock_; 171 base::Lock lock_;
172 172
173 // Provides video frames to VideoRendererImpl. 173 // Provides video frames to VideoRendererImpl.
174 scoped_ptr<VideoFrameStream> video_frame_stream_; 174 scoped_ptr<VideoFrameStream> video_frame_stream_;
175 175
176 // Pool of GpuMemoryBuffers and resources used to create hardware frames. 176 // Pool of GpuMemoryBuffers and resources used to create hardware frames.
177 scoped_ptr<GpuMemoryBufferVideoFramePool> gpu_memory_buffer_pool_; 177 scoped_ptr<GpuMemoryBufferVideoFrameCopier> gpu_memory_buffer_copier_;
178 178
179 scoped_refptr<MediaLog> media_log_; 179 scoped_refptr<MediaLog> media_log_;
180 180
181 // Flag indicating low-delay mode. 181 // Flag indicating low-delay mode.
182 bool low_delay_; 182 bool low_delay_;
183 183
184 // Keeps track of whether we received the end of stream buffer and finished 184 // Keeps track of whether we received the end of stream buffer and finished
185 // rendering. 185 // rendering.
186 bool received_end_of_stream_; 186 bool received_end_of_stream_;
187 bool rendered_end_of_stream_; 187 bool rendered_end_of_stream_;
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
271 271
272 // NOTE: Weak pointers must be invalidated before all other member variables. 272 // NOTE: Weak pointers must be invalidated before all other member variables.
273 base::WeakPtrFactory<VideoRendererImpl> weak_factory_; 273 base::WeakPtrFactory<VideoRendererImpl> weak_factory_;
274 274
275 DISALLOW_COPY_AND_ASSIGN(VideoRendererImpl); 275 DISALLOW_COPY_AND_ASSIGN(VideoRendererImpl);
276 }; 276 };
277 277
278 } // namespace media 278 } // namespace media
279 279
280 #endif // MEDIA_RENDERERS_VIDEO_RENDERER_IMPL_H_ 280 #endif // MEDIA_RENDERERS_VIDEO_RENDERER_IMPL_H_
OLDNEW
« no previous file with comments | « media/renderers/mock_gpu_memory_buffer_video_frame_pool.cc ('k') | media/renderers/video_renderer_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698