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

Side by Side Diff: webkit/glue/webmediaplayer_impl.cc

Issue 7566054: Revert 95542 - Plumb media data from renderers up to MediaInternals in the browser process. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 4 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
« no previous file with comments | « webkit/glue/webmediaplayer_impl.h ('k') | webkit/support/webkit_support.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 #include "webkit/glue/webmediaplayer_impl.h" 5 #include "webkit/glue/webmediaplayer_impl.h"
6 6
7 #include <limits> 7 #include <limits>
8 #include <string> 8 #include <string>
9 9
10 #include "base/callback.h" 10 #include "base/callback.h"
11 #include "base/command_line.h" 11 #include "base/command_line.h"
12 #include "media/base/composite_data_source_factory.h" 12 #include "media/base/composite_data_source_factory.h"
13 #include "media/base/filter_collection.h" 13 #include "media/base/filter_collection.h"
14 #include "media/base/limits.h" 14 #include "media/base/limits.h"
15 #include "media/base/media_log.h"
16 #include "media/base/media_switches.h" 15 #include "media/base/media_switches.h"
17 #include "media/base/pipeline_impl.h" 16 #include "media/base/pipeline_impl.h"
18 #include "media/base/video_frame.h" 17 #include "media/base/video_frame.h"
19 #include "media/filters/adaptive_demuxer.h" 18 #include "media/filters/adaptive_demuxer.h"
20 #include "media/filters/chunk_demuxer_factory.h" 19 #include "media/filters/chunk_demuxer_factory.h"
21 #include "media/filters/ffmpeg_audio_decoder.h" 20 #include "media/filters/ffmpeg_audio_decoder.h"
22 #include "media/filters/ffmpeg_demuxer_factory.h" 21 #include "media/filters/ffmpeg_demuxer_factory.h"
23 #include "media/filters/ffmpeg_video_decoder.h" 22 #include "media/filters/ffmpeg_video_decoder.h"
24 #include "media/filters/null_audio_renderer.h" 23 #include "media/filters/null_audio_renderer.h"
25 #include "third_party/WebKit/Source/WebKit/chromium/public/WebRect.h" 24 #include "third_party/WebKit/Source/WebKit/chromium/public/WebRect.h"
(...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after
313 chunk_demuxer_ = NULL; 312 chunk_demuxer_ = NULL;
314 } 313 }
315 314
316 ///////////////////////////////////////////////////////////////////////////// 315 /////////////////////////////////////////////////////////////////////////////
317 // WebMediaPlayerImpl implementation 316 // WebMediaPlayerImpl implementation
318 317
319 WebMediaPlayerImpl::WebMediaPlayerImpl( 318 WebMediaPlayerImpl::WebMediaPlayerImpl(
320 WebKit::WebMediaPlayerClient* client, 319 WebKit::WebMediaPlayerClient* client,
321 media::FilterCollection* collection, 320 media::FilterCollection* collection,
322 media::MessageLoopFactory* message_loop_factory, 321 media::MessageLoopFactory* message_loop_factory,
323 MediaStreamClient* media_stream_client, 322 MediaStreamClient* media_stream_client)
324 media::MediaLog* media_log)
325 : network_state_(WebKit::WebMediaPlayer::Empty), 323 : network_state_(WebKit::WebMediaPlayer::Empty),
326 ready_state_(WebKit::WebMediaPlayer::HaveNothing), 324 ready_state_(WebKit::WebMediaPlayer::HaveNothing),
327 main_loop_(NULL), 325 main_loop_(NULL),
328 filter_collection_(collection), 326 filter_collection_(collection),
329 pipeline_(NULL), 327 pipeline_(NULL),
330 message_loop_factory_(message_loop_factory), 328 message_loop_factory_(message_loop_factory),
331 paused_(true), 329 paused_(true),
332 seeking_(false), 330 seeking_(false),
333 playback_rate_(0.0f), 331 playback_rate_(0.0f),
334 client_(client), 332 client_(client),
335 proxy_(NULL), 333 proxy_(NULL),
336 media_stream_client_(media_stream_client), 334 media_stream_client_(media_stream_client) {
337 media_log_(media_log) {
338 // Saves the current message loop. 335 // Saves the current message loop.
339 DCHECK(!main_loop_); 336 DCHECK(!main_loop_);
340 main_loop_ = MessageLoop::current(); 337 main_loop_ = MessageLoop::current();
341 media_log_->AddEventOfType(media::MediaLogEvent::CREATING);
342 } 338 }
343 339
344 bool WebMediaPlayerImpl::Initialize( 340 bool WebMediaPlayerImpl::Initialize(
345 WebKit::WebFrame* frame, 341 WebKit::WebFrame* frame,
346 bool use_simple_data_source, 342 bool use_simple_data_source,
347 scoped_refptr<WebVideoRenderer> web_video_renderer) { 343 scoped_refptr<WebVideoRenderer> web_video_renderer) {
348 MessageLoop* pipeline_message_loop = 344 MessageLoop* pipeline_message_loop =
349 message_loop_factory_->GetMessageLoop("PipelineThread"); 345 message_loop_factory_->GetMessageLoop("PipelineThread");
350 if (!pipeline_message_loop) { 346 if (!pipeline_message_loop) {
351 NOTREACHED() << "Could not start PipelineThread"; 347 NOTREACHED() << "Could not start PipelineThread";
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
418 filter_collection_->AddAudioDecoder(new media::FFmpegAudioDecoder( 414 filter_collection_->AddAudioDecoder(new media::FFmpegAudioDecoder(
419 message_loop_factory_->GetMessageLoop("AudioDecoderThread"))); 415 message_loop_factory_->GetMessageLoop("AudioDecoderThread")));
420 filter_collection_->AddVideoDecoder(new media::FFmpegVideoDecoder( 416 filter_collection_->AddVideoDecoder(new media::FFmpegVideoDecoder(
421 message_loop_factory_->GetMessageLoop("VideoDecoderThread"), NULL)); 417 message_loop_factory_->GetMessageLoop("VideoDecoderThread"), NULL));
422 filter_collection_->AddAudioRenderer(new media::NullAudioRenderer()); 418 filter_collection_->AddAudioRenderer(new media::NullAudioRenderer());
423 419
424 return true; 420 return true;
425 } 421 }
426 422
427 WebMediaPlayerImpl::~WebMediaPlayerImpl() { 423 WebMediaPlayerImpl::~WebMediaPlayerImpl() {
428 media_log_->AddEventOfType(media::MediaLogEvent::DESTROYING);
429 Destroy(); 424 Destroy();
430 425
431 // Finally tell the |main_loop_| we don't want to be notified of destruction 426 // Finally tell the |main_loop_| we don't want to be notified of destruction
432 // event. 427 // event.
433 if (main_loop_) { 428 if (main_loop_) {
434 main_loop_->RemoveDestructionObserver(this); 429 main_loop_->RemoveDestructionObserver(this);
435 } 430 }
436 } 431 }
437 432
438 void WebMediaPlayerImpl::load(const WebKit::WebURL& url) { 433 void WebMediaPlayerImpl::load(const WebKit::WebURL& url) {
(...skipping 17 matching lines...) Expand all
456 setPreload(GetClient()->preload()); 451 setPreload(GetClient()->preload());
457 452
458 // Initialize the pipeline. 453 // Initialize the pipeline.
459 SetNetworkState(WebKit::WebMediaPlayer::Loading); 454 SetNetworkState(WebKit::WebMediaPlayer::Loading);
460 SetReadyState(WebKit::WebMediaPlayer::HaveNothing); 455 SetReadyState(WebKit::WebMediaPlayer::HaveNothing);
461 pipeline_->Start( 456 pipeline_->Start(
462 filter_collection_.release(), 457 filter_collection_.release(),
463 url.spec(), 458 url.spec(),
464 NewCallback(proxy_.get(), 459 NewCallback(proxy_.get(),
465 &WebMediaPlayerImpl::Proxy::PipelineInitializationCallback)); 460 &WebMediaPlayerImpl::Proxy::PipelineInitializationCallback));
466
467 media_log_->Load(url.spec());
468 } 461 }
469 462
470 void WebMediaPlayerImpl::cancelLoad() { 463 void WebMediaPlayerImpl::cancelLoad() {
471 DCHECK(MessageLoop::current() == main_loop_); 464 DCHECK(MessageLoop::current() == main_loop_);
472 } 465 }
473 466
474 void WebMediaPlayerImpl::play() { 467 void WebMediaPlayerImpl::play() {
475 DCHECK(MessageLoop::current() == main_loop_); 468 DCHECK(MessageLoop::current() == main_loop_);
476 469
477 paused_ = false; 470 paused_ = false;
478 pipeline_->SetPlaybackRate(playback_rate_); 471 pipeline_->SetPlaybackRate(playback_rate_);
479
480 media_log_->AddEventOfType(media::MediaLogEvent::PLAY);
481 } 472 }
482 473
483 void WebMediaPlayerImpl::pause() { 474 void WebMediaPlayerImpl::pause() {
484 DCHECK(MessageLoop::current() == main_loop_); 475 DCHECK(MessageLoop::current() == main_loop_);
485 476
486 paused_ = true; 477 paused_ = true;
487 pipeline_->SetPlaybackRate(0.0f); 478 pipeline_->SetPlaybackRate(0.0f);
488 paused_time_ = pipeline_->GetCurrentTime(); 479 paused_time_ = pipeline_->GetCurrentTime();
489
490 media_log_->AddEventOfType(media::MediaLogEvent::PAUSE);
491 } 480 }
492 481
493 bool WebMediaPlayerImpl::supportsFullscreen() const { 482 bool WebMediaPlayerImpl::supportsFullscreen() const {
494 DCHECK(MessageLoop::current() == main_loop_); 483 DCHECK(MessageLoop::current() == main_loop_);
495 return true; 484 return true;
496 } 485 }
497 486
498 bool WebMediaPlayerImpl::supportsSave() const { 487 bool WebMediaPlayerImpl::supportsSave() const {
499 DCHECK(MessageLoop::current() == main_loop_); 488 DCHECK(MessageLoop::current() == main_loop_);
500 return true; 489 return true;
(...skipping 542 matching lines...) Expand 10 before | Expand all | Expand 10 after
1043 } 1032 }
1044 } 1033 }
1045 1034
1046 WebKit::WebMediaPlayerClient* WebMediaPlayerImpl::GetClient() { 1035 WebKit::WebMediaPlayerClient* WebMediaPlayerImpl::GetClient() {
1047 DCHECK(MessageLoop::current() == main_loop_); 1036 DCHECK(MessageLoop::current() == main_loop_);
1048 DCHECK(client_); 1037 DCHECK(client_);
1049 return client_; 1038 return client_;
1050 } 1039 }
1051 1040
1052 } // namespace webkit_glue 1041 } // namespace webkit_glue
OLDNEW
« no previous file with comments | « webkit/glue/webmediaplayer_impl.h ('k') | webkit/support/webkit_support.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698