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

Side by Side Diff: media/base/pipeline.cc

Issue 1409123005: Add methods for telling V8 how much memory audio/video is using. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix mock filter. Created 5 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 (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 #include "media/base/pipeline.h" 5 #include "media/base/pipeline.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/callback.h" 10 #include "base/callback.h"
(...skipping 28 matching lines...) Expand all
39 volume_(1.0f), 39 volume_(1.0f),
40 playback_rate_(0.0), 40 playback_rate_(0.0),
41 status_(PIPELINE_OK), 41 status_(PIPELINE_OK),
42 state_(kCreated), 42 state_(kCreated),
43 renderer_ended_(false), 43 renderer_ended_(false),
44 text_renderer_ended_(false), 44 text_renderer_ended_(false),
45 demuxer_(NULL), 45 demuxer_(NULL),
46 pending_cdm_context_(nullptr), 46 pending_cdm_context_(nullptr),
47 weak_factory_(this) { 47 weak_factory_(this) {
48 media_log_->AddEvent(media_log_->CreatePipelineStateChangedEvent(kCreated)); 48 media_log_->AddEvent(media_log_->CreatePipelineStateChangedEvent(kCreated));
49
50 // By default these values are initialized to -1 to indicate no data, but
51 // Pipeline clients should always see a zero value in these cases.
xhwang 2015/10/25 17:01:56 In this case, why do we need the concept of "no da
DaleCurtis 2015/10/27 23:14:20 Removed in favor of returning delta stats from ren
52 statistics_.audio_memory_usage = 0;
53 statistics_.video_memory_usage = 0;
49 } 54 }
50 55
51 Pipeline::~Pipeline() { 56 Pipeline::~Pipeline() {
52 DCHECK(thread_checker_.CalledOnValidThread()) 57 DCHECK(thread_checker_.CalledOnValidThread())
53 << "Pipeline must be destroyed on same thread that created it"; 58 << "Pipeline must be destroyed on same thread that created it";
54 DCHECK(!running_) << "Stop() must complete before destroying object"; 59 DCHECK(!running_) << "Stop() must complete before destroying object";
55 DCHECK(stop_cb_.is_null()); 60 DCHECK(stop_cb_.is_null());
56 DCHECK(seek_cb_.is_null()); 61 DCHECK(seek_cb_.is_null());
57 } 62 }
58 63
(...skipping 406 matching lines...) Expand 10 before | Expand all | Expand 10 after
465 did_loading_progress_ = true; 470 did_loading_progress_ = true;
466 } 471 }
467 472
468 // Called from any thread. 473 // Called from any thread.
469 void Pipeline::OnUpdateStatistics(const PipelineStatistics& stats) { 474 void Pipeline::OnUpdateStatistics(const PipelineStatistics& stats) {
470 base::AutoLock auto_lock(lock_); 475 base::AutoLock auto_lock(lock_);
471 statistics_.audio_bytes_decoded += stats.audio_bytes_decoded; 476 statistics_.audio_bytes_decoded += stats.audio_bytes_decoded;
472 statistics_.video_bytes_decoded += stats.video_bytes_decoded; 477 statistics_.video_bytes_decoded += stats.video_bytes_decoded;
473 statistics_.video_frames_decoded += stats.video_frames_decoded; 478 statistics_.video_frames_decoded += stats.video_frames_decoded;
474 statistics_.video_frames_dropped += stats.video_frames_dropped; 479 statistics_.video_frames_dropped += stats.video_frames_dropped;
480
481 if (stats.audio_memory_usage >= 0)
482 statistics_.audio_memory_usage = stats.audio_memory_usage;
483 if (stats.video_memory_usage >= 0)
484 statistics_.video_memory_usage = stats.video_memory_usage;
475 } 485 }
476 486
477 void Pipeline::StartTask() { 487 void Pipeline::StartTask() {
478 DCHECK(task_runner_->BelongsToCurrentThread()); 488 DCHECK(task_runner_->BelongsToCurrentThread());
479 489
480 CHECK_EQ(kCreated, state_) 490 CHECK_EQ(kCreated, state_)
481 << "Media pipeline cannot be started more than once"; 491 << "Media pipeline cannot be started more than once";
482 492
483 text_renderer_ = CreateTextRenderer(); 493 text_renderer_ = CreateTextRenderer();
484 if (text_renderer_) { 494 if (text_renderer_) {
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after
727 metadata_cb_.Run(metadata); 737 metadata_cb_.Run(metadata);
728 } 738 }
729 739
730 void Pipeline::BufferingStateChanged(BufferingState new_buffering_state) { 740 void Pipeline::BufferingStateChanged(BufferingState new_buffering_state) {
731 DVLOG(1) << __FUNCTION__ << "(" << new_buffering_state << ") "; 741 DVLOG(1) << __FUNCTION__ << "(" << new_buffering_state << ") ";
732 DCHECK(task_runner_->BelongsToCurrentThread()); 742 DCHECK(task_runner_->BelongsToCurrentThread());
733 buffering_state_cb_.Run(new_buffering_state); 743 buffering_state_cb_.Run(new_buffering_state);
734 } 744 }
735 745
736 } // namespace media 746 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698