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

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: SkCanvasVideoRenderer use WebGraphicsContext3D Created 6 years, 1 month 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 "media/base/media_export.h" 10 #include "media/base/media_export.h"
11 #include "media/blink/encrypted_media_player_support.h" 11 #include "media/blink/encrypted_media_player_support.h"
12 #include "third_party/WebKit/public/platform/WebGraphicsContext3DProvider.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<scoped_ptr<blink::WebGraphicsContext3DProvider>()>
38 Context3DProviderCB;
36 39
37 // |defer_load_cb|, |audio_renderer_sink|, and |compositor_task_runner| may be 40 // |defer_load_cb|, |audio_renderer_sink|, |compositor_task_runner|, and
38 // null. 41 // |context_3d_provider_cb| may be null.
39 WebMediaPlayerParams( 42 WebMediaPlayerParams(
40 const DeferLoadCB& defer_load_cb, 43 const DeferLoadCB& defer_load_cb,
41 const scoped_refptr<AudioRendererSink>& audio_renderer_sink, 44 const scoped_refptr<AudioRendererSink>& audio_renderer_sink,
42 const AudioHardwareConfig& audio_hardware_config, 45 const AudioHardwareConfig& audio_hardware_config,
43 const scoped_refptr<MediaLog>& media_log, 46 const scoped_refptr<MediaLog>& media_log,
44 const scoped_refptr<GpuVideoAcceleratorFactories>& gpu_factories, 47 const scoped_refptr<GpuVideoAcceleratorFactories>& gpu_factories,
45 const scoped_refptr<base::SingleThreadTaskRunner>& media_task_runner, 48 const scoped_refptr<base::SingleThreadTaskRunner>& media_task_runner,
46 const scoped_refptr<base::SingleThreadTaskRunner>& compositor_task_runner, 49 const scoped_refptr<base::SingleThreadTaskRunner>& compositor_task_runner,
47 const EncryptedMediaPlayerSupportCreateCB& 50 const EncryptedMediaPlayerSupportCreateCB&
48 encrypted_media_player_support_cb, 51 encrypted_media_player_support_cb,
52 const Context3DProviderCB& context_3d_provider_cb,
49 blink::WebContentDecryptionModule* initial_cdm); 53 blink::WebContentDecryptionModule* initial_cdm);
50 54
51 ~WebMediaPlayerParams(); 55 ~WebMediaPlayerParams();
52 56
53 base::Callback<void(const base::Closure&)> defer_load_cb() const { 57 DeferLoadCB defer_load_cb() const { return defer_load_cb_; }
54 return defer_load_cb_;
55 }
56 58
57 const scoped_refptr<AudioRendererSink>& audio_renderer_sink() const { 59 const scoped_refptr<AudioRendererSink>& audio_renderer_sink() const {
58 return audio_renderer_sink_; 60 return audio_renderer_sink_;
59 } 61 }
60 62
61 const AudioHardwareConfig& audio_hardware_config() const { 63 const AudioHardwareConfig& audio_hardware_config() const {
62 return audio_hardware_config_; 64 return audio_hardware_config_;
63 } 65 }
64 66
65 const scoped_refptr<MediaLog>& media_log() const { 67 const scoped_refptr<MediaLog>& media_log() const {
(...skipping 11 matching lines...) Expand all
77 } 79 }
78 80
79 const scoped_refptr<base::SingleThreadTaskRunner>& 81 const scoped_refptr<base::SingleThreadTaskRunner>&
80 compositor_task_runner() const { 82 compositor_task_runner() const {
81 return compositor_task_runner_; 83 return compositor_task_runner_;
82 } 84 }
83 85
84 scoped_ptr<EncryptedMediaPlayerSupport> 86 scoped_ptr<EncryptedMediaPlayerSupport>
85 CreateEncryptedMediaPlayerSupport(blink::WebMediaPlayerClient* client) const; 87 CreateEncryptedMediaPlayerSupport(blink::WebMediaPlayerClient* client) const;
86 88
89 Context3DProviderCB context_3d_provider_cb() const {
90 return context_3d_provider_cb_;
91 }
92
87 private: 93 private:
88 base::Callback<void(const base::Closure&)> defer_load_cb_; 94 DeferLoadCB defer_load_cb_;
89 scoped_refptr<AudioRendererSink> audio_renderer_sink_; 95 scoped_refptr<AudioRendererSink> audio_renderer_sink_;
90 const AudioHardwareConfig& audio_hardware_config_; 96 const AudioHardwareConfig& audio_hardware_config_;
91 scoped_refptr<MediaLog> media_log_; 97 scoped_refptr<MediaLog> media_log_;
92 scoped_refptr<GpuVideoAcceleratorFactories> gpu_factories_; 98 scoped_refptr<GpuVideoAcceleratorFactories> gpu_factories_;
93 scoped_refptr<base::SingleThreadTaskRunner> media_task_runner_; 99 scoped_refptr<base::SingleThreadTaskRunner> media_task_runner_;
94 scoped_refptr<base::SingleThreadTaskRunner> compositor_task_runner_; 100 scoped_refptr<base::SingleThreadTaskRunner> compositor_task_runner_;
95 EncryptedMediaPlayerSupportCreateCB encrypted_media_player_support_cb_; 101 EncryptedMediaPlayerSupportCreateCB encrypted_media_player_support_cb_;
102 Context3DProviderCB context_3d_provider_cb_;
96 blink::WebContentDecryptionModule* initial_cdm_; 103 blink::WebContentDecryptionModule* initial_cdm_;
97 104
98 DISALLOW_IMPLICIT_CONSTRUCTORS(WebMediaPlayerParams); 105 DISALLOW_IMPLICIT_CONSTRUCTORS(WebMediaPlayerParams);
99 }; 106 };
100 107
101 } // namespace media 108 } // namespace media
102 109
103 #endif // MEDIA_BLINK_WEBMEDIAPLAYER_PARAMS_H_ 110 #endif // MEDIA_BLINK_WEBMEDIAPLAYER_PARAMS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698