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

Side by Side Diff: media/blink/webmediaplayer_params.h

Issue 445013002: media: Optimize HW Video to 2D Canvas copy. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase to ToT. Address nits Created 6 years, 2 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_BLINK_WEBMEDIAPLAYER_PARAMS_H_ 5 #ifndef MEDIA_BLINK_WEBMEDIAPLAYER_PARAMS_H_
6 #define MEDIA_BLINK_WEBMEDIAPLAYER_PARAMS_H_ 6 #define MEDIA_BLINK_WEBMEDIAPLAYER_PARAMS_H_
7 7
8 #include "base/callback.h" 8 #include "base/callback.h"
9 #include "base/memory/ref_counted.h" 9 #include "base/memory/ref_counted.h"
10 #include "cc/output/context_provider.h"
10 #include "media/base/media_export.h" 11 #include "media/base/media_export.h"
11 #include "media/blink/encrypted_media_player_support.h" 12 #include "media/blink/encrypted_media_player_support.h"
12 13
13 namespace base { 14 namespace base {
14 class SingleThreadTaskRunner; 15 class SingleThreadTaskRunner;
15 } 16 }
16 17
17 namespace blink { 18 namespace blink {
18 class WebMediaPlayerClient; 19 class WebMediaPlayerClient;
19 } 20 }
20 21
21 namespace media { 22 namespace media {
22 class AudioHardwareConfig; 23 class AudioHardwareConfig;
23 class AudioRendererSink; 24 class AudioRendererSink;
24 class GpuVideoAcceleratorFactories; 25 class GpuVideoAcceleratorFactories;
25 class MediaLog; 26 class MediaLog;
26 27
27 // Holds parameters for constructing WebMediaPlayerImpl without having 28 // Holds parameters for constructing WebMediaPlayerImpl without having
28 // to plumb arguments through various abstraction layers. 29 // to plumb arguments through various abstraction layers.
29 class MEDIA_EXPORT WebMediaPlayerParams { 30 class MEDIA_EXPORT WebMediaPlayerParams {
30 public: 31 public:
31 // Callback used to create EncryptedMediaPlayerSupport instances. This 32 // Callback used to create EncryptedMediaPlayerSupport instances. This
32 // callback must always return a valid EncryptedMediaPlayerSupport object. 33 // callback must always return a valid EncryptedMediaPlayerSupport object.
33 typedef base::Callback<scoped_ptr<EncryptedMediaPlayerSupport>( 34 typedef base::Callback<scoped_ptr<EncryptedMediaPlayerSupport>(
34 blink::WebMediaPlayerClient*)> EncryptedMediaPlayerSupportCreateCB; 35 blink::WebMediaPlayerClient*)> EncryptedMediaPlayerSupportCreateCB;
35 typedef base::Callback<void(const base::Closure&)> DeferLoadCB; 36 typedef base::Callback<void(const base::Closure&)> DeferLoadCB;
37 typedef base::Callback<cc::ContextProvider*()> ContextProviderCB;
36 38
37 // |defer_load_cb|, |audio_renderer_sink|, and |compositor_task_runner| may be 39 // |defer_load_cb|, |audio_renderer_sink|, and |compositor_task_runner| may be
38 // null. 40 // null.
39 WebMediaPlayerParams( 41 WebMediaPlayerParams(
40 const DeferLoadCB& defer_load_cb, 42 const DeferLoadCB& defer_load_cb,
41 const scoped_refptr<AudioRendererSink>& audio_renderer_sink, 43 const scoped_refptr<AudioRendererSink>& audio_renderer_sink,
42 const AudioHardwareConfig& audio_hardware_config, 44 const AudioHardwareConfig& audio_hardware_config,
43 const scoped_refptr<MediaLog>& media_log, 45 const scoped_refptr<MediaLog>& media_log,
44 const scoped_refptr<GpuVideoAcceleratorFactories>& gpu_factories, 46 const scoped_refptr<GpuVideoAcceleratorFactories>& gpu_factories,
45 const scoped_refptr<base::SingleThreadTaskRunner>& media_task_runner, 47 const scoped_refptr<base::SingleThreadTaskRunner>& media_task_runner,
46 const scoped_refptr<base::SingleThreadTaskRunner>& compositor_task_runner, 48 const scoped_refptr<base::SingleThreadTaskRunner>& compositor_task_runner,
47 const EncryptedMediaPlayerSupportCreateCB& 49 const EncryptedMediaPlayerSupportCreateCB&
48 encrypted_media_player_support_cb, 50 encrypted_media_player_support_cb,
51 const ContextProviderCB& shared_main_thread_context_provider_cb,
49 blink::WebContentDecryptionModule* initial_cdm); 52 blink::WebContentDecryptionModule* initial_cdm);
50 53
51 ~WebMediaPlayerParams(); 54 ~WebMediaPlayerParams();
52 55
53 base::Callback<void(const base::Closure&)> defer_load_cb() const { 56 DeferLoadCB defer_load_cb() const { return defer_load_cb_; }
54 return defer_load_cb_;
55 }
56 57
57 const scoped_refptr<AudioRendererSink>& audio_renderer_sink() const { 58 const scoped_refptr<AudioRendererSink>& audio_renderer_sink() const {
58 return audio_renderer_sink_; 59 return audio_renderer_sink_;
59 } 60 }
60 61
61 const AudioHardwareConfig& audio_hardware_config() const { 62 const AudioHardwareConfig& audio_hardware_config() const {
62 return audio_hardware_config_; 63 return audio_hardware_config_;
63 } 64 }
64 65
65 const scoped_refptr<MediaLog>& media_log() const { 66 const scoped_refptr<MediaLog>& media_log() const {
(...skipping 11 matching lines...) Expand all
77 } 78 }
78 79
79 const scoped_refptr<base::SingleThreadTaskRunner>& 80 const scoped_refptr<base::SingleThreadTaskRunner>&
80 compositor_task_runner() const { 81 compositor_task_runner() const {
81 return compositor_task_runner_; 82 return compositor_task_runner_;
82 } 83 }
83 84
84 scoped_ptr<EncryptedMediaPlayerSupport> 85 scoped_ptr<EncryptedMediaPlayerSupport>
85 CreateEncryptedMediaPlayerSupport(blink::WebMediaPlayerClient* client) const; 86 CreateEncryptedMediaPlayerSupport(blink::WebMediaPlayerClient* client) const;
86 87
88 ContextProviderCB shared_main_thread_context_provider_cb() const {
89 return shared_main_thread_context_provider_cb_;
90 }
91
87 private: 92 private:
88 base::Callback<void(const base::Closure&)> defer_load_cb_; 93 DeferLoadCB defer_load_cb_;
89 scoped_refptr<AudioRendererSink> audio_renderer_sink_; 94 scoped_refptr<AudioRendererSink> audio_renderer_sink_;
90 const AudioHardwareConfig& audio_hardware_config_; 95 const AudioHardwareConfig& audio_hardware_config_;
91 scoped_refptr<MediaLog> media_log_; 96 scoped_refptr<MediaLog> media_log_;
92 scoped_refptr<GpuVideoAcceleratorFactories> gpu_factories_; 97 scoped_refptr<GpuVideoAcceleratorFactories> gpu_factories_;
93 scoped_refptr<base::SingleThreadTaskRunner> media_task_runner_; 98 scoped_refptr<base::SingleThreadTaskRunner> media_task_runner_;
94 scoped_refptr<base::SingleThreadTaskRunner> compositor_task_runner_; 99 scoped_refptr<base::SingleThreadTaskRunner> compositor_task_runner_;
95 EncryptedMediaPlayerSupportCreateCB encrypted_media_player_support_cb_; 100 EncryptedMediaPlayerSupportCreateCB encrypted_media_player_support_cb_;
101 ContextProviderCB shared_main_thread_context_provider_cb_;
96 blink::WebContentDecryptionModule* initial_cdm_; 102 blink::WebContentDecryptionModule* initial_cdm_;
97 103
98 DISALLOW_IMPLICIT_CONSTRUCTORS(WebMediaPlayerParams); 104 DISALLOW_IMPLICIT_CONSTRUCTORS(WebMediaPlayerParams);
99 }; 105 };
100 106
101 } // namespace media 107 } // namespace media
102 108
103 #endif // MEDIA_BLINK_WEBMEDIAPLAYER_PARAMS_H_ 109 #endif // MEDIA_BLINK_WEBMEDIAPLAYER_PARAMS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698