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

Side by Side Diff: content/renderer/media/media_stream_video_renderer_sink.h

Issue 2529263004: Move passing of WebRTC rendering frames to IO thread (Closed)
Patch Set: ncarter@ comment. Created 4 years 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 (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_RENDERER_MEDIA_RTC_VIDEO_RENDERER_H_ 5 #ifndef CONTENT_RENDERER_MEDIA_RTC_VIDEO_RENDERER_H_
6 #define CONTENT_RENDERER_MEDIA_RTC_VIDEO_RENDERER_H_ 6 #define CONTENT_RENDERER_MEDIA_RTC_VIDEO_RENDERER_H_
7 7
8 #include "base/callback.h" 8 #include "base/callback.h"
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "base/threading/thread_checker.h" 10 #include "base/threading/thread_checker.h"
(...skipping 29 matching lines...) Expand all
40 // http://src.chromium.org/viewvc/chrome/trunk/src/content/renderer/media/rtc_vi 40 // http://src.chromium.org/viewvc/chrome/trunk/src/content/renderer/media/rtc_vi
41 // deo_decoder_unittest.cc?revision=180591&view=markup 41 // deo_decoder_unittest.cc?revision=180591&view=markup
42 class CONTENT_EXPORT MediaStreamVideoRendererSink 42 class CONTENT_EXPORT MediaStreamVideoRendererSink
43 : NON_EXPORTED_BASE(public MediaStreamVideoRenderer), 43 : NON_EXPORTED_BASE(public MediaStreamVideoRenderer),
44 NON_EXPORTED_BASE(public MediaStreamVideoSink) { 44 NON_EXPORTED_BASE(public MediaStreamVideoSink) {
45 public: 45 public:
46 MediaStreamVideoRendererSink( 46 MediaStreamVideoRendererSink(
47 const blink::WebMediaStreamTrack& video_track, 47 const blink::WebMediaStreamTrack& video_track,
48 const base::Closure& error_cb, 48 const base::Closure& error_cb,
49 const MediaStreamVideoRenderer::RepaintCB& repaint_cb, 49 const MediaStreamVideoRenderer::RepaintCB& repaint_cb,
50 const scoped_refptr<base::SingleThreadTaskRunner>& compositor_task_runner, 50 const scoped_refptr<base::SingleThreadTaskRunner>& io_task_runner,
51 const scoped_refptr<base::SingleThreadTaskRunner>& media_task_runner, 51 const scoped_refptr<base::SingleThreadTaskRunner>& media_task_runner,
52 const scoped_refptr<base::TaskRunner>& worker_task_runner, 52 const scoped_refptr<base::TaskRunner>& worker_task_runner,
53 media::GpuVideoAcceleratorFactories* gpu_factories); 53 media::GpuVideoAcceleratorFactories* gpu_factories);
54 54
55 // MediaStreamVideoRenderer implementation. Called on the main thread. 55 // MediaStreamVideoRenderer implementation. Called on the main thread.
56 void Start() override; 56 void Start() override;
57 void Stop() override; 57 void Stop() override;
58 void Resume() override; 58 void Resume() override;
59 void Pause() override; 59 void Pause() override;
60 60
(...skipping 14 matching lines...) Expand all
75 75
76 // Helper methods used for testing. 76 // Helper methods used for testing.
77 State GetStateForTesting(); 77 State GetStateForTesting();
78 void SetGpuMemoryBufferVideoForTesting( 78 void SetGpuMemoryBufferVideoForTesting(
79 media::GpuMemoryBufferVideoFramePool* gpu_memory_buffer_pool); 79 media::GpuMemoryBufferVideoFramePool* gpu_memory_buffer_pool);
80 80
81 const base::Closure error_cb_; 81 const base::Closure error_cb_;
82 const RepaintCB repaint_cb_; 82 const RepaintCB repaint_cb_;
83 const blink::WebMediaStreamTrack video_track_; 83 const blink::WebMediaStreamTrack video_track_;
84 84
85 // Inner class used for trampolining received frames from IO thread to
86 // compositor thread.
87 class FrameReceiver;
88 std::unique_ptr<FrameReceiver> frame_receiver_;
89 // Inner class used for transfering frames on compositor thread and running 85 // Inner class used for transfering frames on compositor thread and running
90 // |repaint_cb_|. 86 // |repaint_cb_|.
91 class FrameDeliverer; 87 class FrameDeliverer;
92 std::unique_ptr<FrameDeliverer> frame_deliverer_; 88 std::unique_ptr<FrameDeliverer> frame_deliverer_;
93 89
94 const scoped_refptr<base::SingleThreadTaskRunner> compositor_task_runner_; 90 const scoped_refptr<base::SingleThreadTaskRunner> io_task_runner_;
95 const scoped_refptr<base::SingleThreadTaskRunner> media_task_runner_; 91 const scoped_refptr<base::SingleThreadTaskRunner> media_task_runner_;
96 const scoped_refptr<base::TaskRunner> worker_task_runner_; 92 const scoped_refptr<base::TaskRunner> worker_task_runner_;
97 media::GpuVideoAcceleratorFactories* const gpu_factories_; 93 media::GpuVideoAcceleratorFactories* const gpu_factories_;
98 94
99 base::ThreadChecker main_thread_checker_; 95 base::ThreadChecker main_thread_checker_;
100 96
101 DISALLOW_COPY_AND_ASSIGN(MediaStreamVideoRendererSink); 97 DISALLOW_COPY_AND_ASSIGN(MediaStreamVideoRendererSink);
102 }; 98 };
103 99
104 } // namespace content 100 } // namespace content
105 101
106 #endif // CONTENT_RENDERER_MEDIA_RTC_VIDEO_RENDERER_H_ 102 #endif // CONTENT_RENDERER_MEDIA_RTC_VIDEO_RENDERER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698