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

Side by Side Diff: webkit/media/webmediaplayer_impl.h

Issue 12989009: Remove reference counting from media::VideoDecoder and friends. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: client proxy :( Created 7 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 | Annotate | Revision Log
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 // 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 246 matching lines...) Expand 10 before | Expand all | Expand 10 after
257 // Gets the duration value reported by the pipeline. 257 // Gets the duration value reported by the pipeline.
258 double GetPipelineDuration() const; 258 double GetPipelineDuration() const;
259 259
260 // Notifies WebKit of the duration change. 260 // Notifies WebKit of the duration change.
261 void OnDurationChange(); 261 void OnDurationChange();
262 262
263 // Called by VideoRendererBase on its internal thread with the new frame to be 263 // Called by VideoRendererBase on its internal thread with the new frame to be
264 // painted. 264 // painted.
265 void FrameReady(const scoped_refptr<media::VideoFrame>& frame); 265 void FrameReady(const scoped_refptr<media::VideoFrame>& frame);
266 266
267 // Builds a FilterCollection based on the current configuration of
268 // WebMediaPlayerImpl.
269 scoped_ptr<media::FilterCollection> BuildFilterCollection();
270
267 WebKit::WebFrame* frame_; 271 WebKit::WebFrame* frame_;
268 272
269 // TODO(hclam): get rid of these members and read from the pipeline directly. 273 // TODO(hclam): get rid of these members and read from the pipeline directly.
270 WebKit::WebMediaPlayer::NetworkState network_state_; 274 WebKit::WebMediaPlayer::NetworkState network_state_;
271 WebKit::WebMediaPlayer::ReadyState ready_state_; 275 WebKit::WebMediaPlayer::ReadyState ready_state_;
272 276
273 // Keep a list of buffered time ranges. 277 // Keep a list of buffered time ranges.
274 WebKit::WebTimeRanges buffered_; 278 WebKit::WebTimeRanges buffered_;
275 279
276 // Message loops for posting tasks on Chrome's main thread. Also used 280 // Message loops for posting tasks on Chrome's main thread. Also used
277 // for DCHECKs so methods calls won't execute in the wrong thread. 281 // for DCHECKs so methods calls won't execute in the wrong thread.
278 const scoped_refptr<base::MessageLoopProxy> main_loop_; 282 const scoped_refptr<base::MessageLoopProxy> main_loop_;
279 283
280 scoped_ptr<media::FilterCollection> filter_collection_;
281 scoped_refptr<media::Pipeline> pipeline_; 284 scoped_refptr<media::Pipeline> pipeline_;
282 base::Thread media_thread_; 285 base::Thread media_thread_;
283 286
284 // The currently selected key system. Empty string means that no key system 287 // The currently selected key system. Empty string means that no key system
285 // has been selected. 288 // has been selected.
286 WebKit::WebString current_key_system_; 289 WebKit::WebString current_key_system_;
287 290
288 // Playback state. 291 // Playback state.
289 // 292 //
290 // TODO(scherkus): we have these because Pipeline favours the simplicity of a 293 // TODO(scherkus): we have these because Pipeline favours the simplicity of a
(...skipping 23 matching lines...) Expand all
314 MediaStreamClient* media_stream_client_; 317 MediaStreamClient* media_stream_client_;
315 318
316 scoped_refptr<media::MediaLog> media_log_; 319 scoped_refptr<media::MediaLog> media_log_;
317 320
318 // Since accelerated compositing status is only known after the first layout, 321 // Since accelerated compositing status is only known after the first layout,
319 // we delay reporting it to UMA until that time. 322 // we delay reporting it to UMA until that time.
320 bool accelerated_compositing_reported_; 323 bool accelerated_compositing_reported_;
321 324
322 bool incremented_externally_allocated_memory_; 325 bool incremented_externally_allocated_memory_;
323 326
327 // Factories for supporting GpuVideoDecoder. May be null.
328 scoped_refptr<media::GpuVideoDecoder::Factories> gpu_factories_;
329
324 // Routes audio playback to either AudioRendererSink or WebAudio. 330 // Routes audio playback to either AudioRendererSink or WebAudio.
325 scoped_refptr<WebAudioSourceProviderImpl> audio_source_provider_; 331 scoped_refptr<WebAudioSourceProviderImpl> audio_source_provider_;
326 332
327 bool is_local_source_; 333 bool is_local_source_;
328 bool supports_save_; 334 bool supports_save_;
329 335
330 // The decryptor that manages decryption keys and decrypts encrypted frames. 336 // The decryptor that manages decryption keys and decrypts encrypted frames.
331 scoped_ptr<ProxyDecryptor> decryptor_; 337 scoped_ptr<ProxyDecryptor> decryptor_;
332 338
333 bool starting_; 339 bool starting_;
(...skipping 19 matching lines...) Expand all
353 bool pending_repaint_; 359 bool pending_repaint_;
354 360
355 // The compositor layer for displaying the video content when using composited 361 // The compositor layer for displaying the video content when using composited
356 // playback. 362 // playback.
357 scoped_ptr<webkit::WebLayerImpl> video_weblayer_; 363 scoped_ptr<webkit::WebLayerImpl> video_weblayer_;
358 364
359 // A pointer back to the compositor to inform it about state changes. This is 365 // A pointer back to the compositor to inform it about state changes. This is
360 // not NULL while the compositor is actively using this webmediaplayer. 366 // not NULL while the compositor is actively using this webmediaplayer.
361 cc::VideoFrameProvider::Client* video_frame_provider_client_; 367 cc::VideoFrameProvider::Client* video_frame_provider_client_;
362 368
363 scoped_refptr<media::GpuVideoDecoder::Factories> gpu_factories_;
364
365 DISALLOW_COPY_AND_ASSIGN(WebMediaPlayerImpl); 369 DISALLOW_COPY_AND_ASSIGN(WebMediaPlayerImpl);
366 }; 370 };
367 371
368 } // namespace webkit_media 372 } // namespace webkit_media
369 373
370 #endif // WEBKIT_MEDIA_WEBMEDIAPLAYER_IMPL_H_ 374 #endif // WEBKIT_MEDIA_WEBMEDIAPLAYER_IMPL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698