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 // Delegate calls from WebCore::MediaPlayerPrivate to Chrome's video player. | 5 // Delegate calls from WebCore::MediaPlayerPrivate to Chrome's video player. |
6 // It contains Pipeline which is the actual media player pipeline, it glues | 6 // It contains Pipeline which is the actual media player pipeline, it glues |
7 // the media player pipeline, data source, audio renderer and renderer. | 7 // the media player pipeline, data source, audio renderer and renderer. |
8 // Pipeline would creates multiple threads and access some public methods | 8 // Pipeline would creates multiple threads and access some public methods |
9 // of this class, so we need to be extra careful about concurrent access of | 9 // of this class, so we need to be extra careful about concurrent access of |
10 // methods and members. | 10 // methods and members. |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
49 #define WEBKIT_MEDIA_WEBMEDIAPLAYER_IMPL_H_ | 49 #define WEBKIT_MEDIA_WEBMEDIAPLAYER_IMPL_H_ |
50 | 50 |
51 #include <string> | 51 #include <string> |
52 | 52 |
53 #include "base/memory/ref_counted.h" | 53 #include "base/memory/ref_counted.h" |
54 #include "base/memory/scoped_ptr.h" | 54 #include "base/memory/scoped_ptr.h" |
55 #include "base/memory/weak_ptr.h" | 55 #include "base/memory/weak_ptr.h" |
56 #include "base/message_loop.h" | 56 #include "base/message_loop.h" |
57 #include "googleurl/src/gurl.h" | 57 #include "googleurl/src/gurl.h" |
58 #include "media/base/audio_renderer_sink.h" | 58 #include "media/base/audio_renderer_sink.h" |
| 59 #include "media/base/decryptor.h" |
59 #include "media/base/filters.h" | 60 #include "media/base/filters.h" |
60 #include "media/base/message_loop_factory.h" | 61 #include "media/base/message_loop_factory.h" |
61 #include "media/base/pipeline.h" | 62 #include "media/base/pipeline.h" |
62 #include "media/crypto/aes_decryptor.h" | |
63 #include "skia/ext/platform_canvas.h" | 63 #include "skia/ext/platform_canvas.h" |
64 #include "third_party/WebKit/Source/WebKit/chromium/public/WebAudioSourceProvide
r.h" | 64 #include "third_party/WebKit/Source/WebKit/chromium/public/WebAudioSourceProvide
r.h" |
65 #include "third_party/WebKit/Source/WebKit/chromium/public/WebMediaPlayer.h" | 65 #include "third_party/WebKit/Source/WebKit/chromium/public/WebMediaPlayer.h" |
66 #include "third_party/WebKit/Source/WebKit/chromium/public/WebMediaPlayerClient.
h" | 66 #include "third_party/WebKit/Source/WebKit/chromium/public/WebMediaPlayerClient.
h" |
67 | 67 |
68 class RenderAudioSourceProvider; | 68 class RenderAudioSourceProvider; |
69 | 69 |
70 namespace WebKit { | 70 namespace WebKit { |
71 class WebAudioSourceProvider; | 71 class WebAudioSourceProvider; |
72 class WebFrame; | 72 class WebFrame; |
73 } | 73 } |
74 | 74 |
75 namespace media { | 75 namespace media { |
76 class AesDecryptor; | |
77 class MediaLog; | 76 class MediaLog; |
78 } | 77 } |
79 | 78 |
80 namespace webkit_media { | 79 namespace webkit_media { |
81 | 80 |
82 class MediaStreamClient; | 81 class MediaStreamClient; |
83 class WebMediaPlayerDelegate; | 82 class WebMediaPlayerDelegate; |
84 class WebMediaPlayerProxy; | 83 class WebMediaPlayerProxy; |
85 | 84 |
86 class WebMediaPlayerImpl | 85 class WebMediaPlayerImpl |
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
225 void Repaint(); | 224 void Repaint(); |
226 | 225 |
227 void OnPipelineInitialize(media::PipelineStatus status); | 226 void OnPipelineInitialize(media::PipelineStatus status); |
228 void OnPipelineSeek(media::PipelineStatus status); | 227 void OnPipelineSeek(media::PipelineStatus status); |
229 void OnPipelineEnded(media::PipelineStatus status); | 228 void OnPipelineEnded(media::PipelineStatus status); |
230 void OnPipelineError(media::PipelineStatus error); | 229 void OnPipelineError(media::PipelineStatus error); |
231 void OnDemuxerOpened(); | 230 void OnDemuxerOpened(); |
232 void OnKeyAdded(const std::string& key_system, const std::string& session_id); | 231 void OnKeyAdded(const std::string& key_system, const std::string& session_id); |
233 void OnKeyError(const std::string& key_system, | 232 void OnKeyError(const std::string& key_system, |
234 const std::string& session_id, | 233 const std::string& session_id, |
235 media::AesDecryptor::KeyError error_code, | 234 media::Decryptor::KeyError error_code, |
236 int system_code); | 235 int system_code); |
237 void OnKeyMessage(const std::string& key_system, | 236 void OnKeyMessage(const std::string& key_system, |
238 const std::string& session_id, | 237 const std::string& session_id, |
239 scoped_array<uint8> message, | 238 scoped_array<uint8> message, |
240 int message_length, | 239 int message_length, |
241 const std::string& default_url); | 240 const std::string& default_url); |
242 void OnNeedKey(const std::string& key_system, | 241 void OnNeedKey(const std::string& key_system, |
243 const std::string& session_id, | 242 const std::string& session_id, |
244 scoped_array<uint8> init_data, | 243 scoped_array<uint8> init_data, |
245 int init_data_size); | 244 int init_data_size); |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
287 | 286 |
288 // The media pipeline and a bool tracking whether we have started it yet. | 287 // The media pipeline and a bool tracking whether we have started it yet. |
289 // | 288 // |
290 // TODO(scherkus): replace |started_| with a pointer check for |pipeline_| and | 289 // TODO(scherkus): replace |started_| with a pointer check for |pipeline_| and |
291 // have WebMediaPlayerImpl return the default values to WebKit instead of | 290 // have WebMediaPlayerImpl return the default values to WebKit instead of |
292 // relying on Pipeline to take care of default values. | 291 // relying on Pipeline to take care of default values. |
293 scoped_refptr<media::Pipeline> pipeline_; | 292 scoped_refptr<media::Pipeline> pipeline_; |
294 bool started_; | 293 bool started_; |
295 | 294 |
296 // The decryptor that manages decryption keys and decrypts encrypted frames. | 295 // The decryptor that manages decryption keys and decrypts encrypted frames. |
297 scoped_ptr<media::AesDecryptor> decryptor_; | 296 scoped_ptr<media::Decryptor> decryptor_; |
298 | 297 |
299 scoped_ptr<media::MessageLoopFactory> message_loop_factory_; | 298 scoped_ptr<media::MessageLoopFactory> message_loop_factory_; |
300 | 299 |
301 // Playback state. | 300 // Playback state. |
302 // | 301 // |
303 // TODO(scherkus): we have these because Pipeline favours the simplicity of a | 302 // TODO(scherkus): we have these because Pipeline favours the simplicity of a |
304 // single "playback rate" over worrying about paused/stopped etc... It forces | 303 // single "playback rate" over worrying about paused/stopped etc... It forces |
305 // all clients to manage the pause+playback rate externally, but is that | 304 // all clients to manage the pause+playback rate externally, but is that |
306 // really a bad thing? | 305 // really a bad thing? |
307 // | 306 // |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
339 WebKit::WebAudioSourceProvider* audio_source_provider_; | 338 WebKit::WebAudioSourceProvider* audio_source_provider_; |
340 | 339 |
341 bool is_local_source_; | 340 bool is_local_source_; |
342 | 341 |
343 DISALLOW_COPY_AND_ASSIGN(WebMediaPlayerImpl); | 342 DISALLOW_COPY_AND_ASSIGN(WebMediaPlayerImpl); |
344 }; | 343 }; |
345 | 344 |
346 } // namespace webkit_media | 345 } // namespace webkit_media |
347 | 346 |
348 #endif // WEBKIT_MEDIA_WEBMEDIAPLAYER_IMPL_H_ | 347 #endif // WEBKIT_MEDIA_WEBMEDIAPLAYER_IMPL_H_ |
OLD | NEW |