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

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

Issue 2688383006: [Media, Video] Update WMPI when the pipeline gets a new average keyframe distance. (Closed)
Patch Set: Created 3 years, 10 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
« no previous file with comments | « media/base/pipeline_impl.h ('k') | media/blink/webmediaplayer_impl.h » ('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) 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_impl.h" 5 #include "media/base/pipeline_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/bind_helpers.h" 10 #include "base/bind_helpers.h"
(...skipping 630 matching lines...) Expand 10 before | Expand all | Expand 10 after
641 DCHECK(media_task_runner_->BelongsToCurrentThread()); 641 DCHECK(media_task_runner_->BelongsToCurrentThread());
642 642
643 base::AutoLock auto_lock(shared_state_lock_); 643 base::AutoLock auto_lock(shared_state_lock_);
644 shared_state_.statistics.audio_bytes_decoded += stats.audio_bytes_decoded; 644 shared_state_.statistics.audio_bytes_decoded += stats.audio_bytes_decoded;
645 shared_state_.statistics.video_bytes_decoded += stats.video_bytes_decoded; 645 shared_state_.statistics.video_bytes_decoded += stats.video_bytes_decoded;
646 shared_state_.statistics.video_frames_decoded += stats.video_frames_decoded; 646 shared_state_.statistics.video_frames_decoded += stats.video_frames_decoded;
647 shared_state_.statistics.video_frames_dropped += stats.video_frames_dropped; 647 shared_state_.statistics.video_frames_dropped += stats.video_frames_dropped;
648 shared_state_.statistics.audio_memory_usage += stats.audio_memory_usage; 648 shared_state_.statistics.audio_memory_usage += stats.audio_memory_usage;
649 shared_state_.statistics.video_memory_usage += stats.video_memory_usage; 649 shared_state_.statistics.video_memory_usage += stats.video_memory_usage;
650 650
651 base::TimeDelta old_average =
652 shared_state_.statistics.video_keyframe_distance_average;
651 if (stats.video_keyframe_distance_average != kNoTimestamp) { 653 if (stats.video_keyframe_distance_average != kNoTimestamp) {
652 shared_state_.statistics.video_keyframe_distance_average = 654 shared_state_.statistics.video_keyframe_distance_average =
653 stats.video_keyframe_distance_average; 655 stats.video_keyframe_distance_average;
654 } 656 }
657
658 if (shared_state_.statistics.video_keyframe_distance_average != old_average) {
659 main_task_runner_->PostTask(
660 FROM_HERE,
661 base::Bind(&PipelineImpl::OnVideoAverageKeyframeDistanceUpdate,
662 weak_pipeline_));
663 }
655 } 664 }
656 665
657 void PipelineImpl::RendererWrapper::OnBufferingStateChange( 666 void PipelineImpl::RendererWrapper::OnBufferingStateChange(
658 BufferingState state) { 667 BufferingState state) {
659 DCHECK(media_task_runner_->BelongsToCurrentThread()); 668 DCHECK(media_task_runner_->BelongsToCurrentThread());
660 DVLOG(2) << __func__ << "(" << state << ") "; 669 DVLOG(2) << __func__ << "(" << state << ") ";
661 670
662 main_task_runner_->PostTask( 671 main_task_runner_->PostTask(
663 FROM_HERE, 672 FROM_HERE,
664 base::Bind(&PipelineImpl::OnBufferingStateChange, weak_pipeline_, state)); 673 base::Bind(&PipelineImpl::OnBufferingStateChange, weak_pipeline_, state));
(...skipping 652 matching lines...) Expand 10 before | Expand all | Expand 10 after
1317 1326
1318 void PipelineImpl::OnVideoOpacityChange(bool opaque) { 1327 void PipelineImpl::OnVideoOpacityChange(bool opaque) {
1319 DVLOG(2) << __func__; 1328 DVLOG(2) << __func__;
1320 DCHECK(thread_checker_.CalledOnValidThread()); 1329 DCHECK(thread_checker_.CalledOnValidThread());
1321 DCHECK(IsRunning()); 1330 DCHECK(IsRunning());
1322 1331
1323 DCHECK(client_); 1332 DCHECK(client_);
1324 client_->OnVideoOpacityChange(opaque); 1333 client_->OnVideoOpacityChange(opaque);
1325 } 1334 }
1326 1335
1336 void PipelineImpl::OnVideoAverageKeyframeDistanceUpdate() {
1337 DVLOG(2) << __func__;
1338 DCHECK(thread_checker_.CalledOnValidThread());
1339 DCHECK(IsRunning());
1340
1341 DCHECK(client_);
1342 client_->OnVideoAverageKeyframeDistanceUpdate();
1343 }
1344
1327 void PipelineImpl::OnSeekDone() { 1345 void PipelineImpl::OnSeekDone() {
1328 DVLOG(3) << __func__; 1346 DVLOG(3) << __func__;
1329 DCHECK(thread_checker_.CalledOnValidThread()); 1347 DCHECK(thread_checker_.CalledOnValidThread());
1330 DCHECK(IsRunning()); 1348 DCHECK(IsRunning());
1331 1349
1332 seek_time_ = kNoTimestamp; 1350 seek_time_ = kNoTimestamp;
1333 1351
1334 DCHECK(!seek_cb_.is_null()); 1352 DCHECK(!seek_cb_.is_null());
1335 base::ResetAndReturn(&seek_cb_).Run(PIPELINE_OK); 1353 base::ResetAndReturn(&seek_cb_).Run(PIPELINE_OK);
1336 } 1354 }
1337 1355
1338 void PipelineImpl::OnSuspendDone() { 1356 void PipelineImpl::OnSuspendDone() {
1339 DVLOG(3) << __func__; 1357 DVLOG(3) << __func__;
1340 DCHECK(thread_checker_.CalledOnValidThread()); 1358 DCHECK(thread_checker_.CalledOnValidThread());
1341 DCHECK(IsRunning()); 1359 DCHECK(IsRunning());
1342 1360
1343 DCHECK(!suspend_cb_.is_null()); 1361 DCHECK(!suspend_cb_.is_null());
1344 base::ResetAndReturn(&suspend_cb_).Run(PIPELINE_OK); 1362 base::ResetAndReturn(&suspend_cb_).Run(PIPELINE_OK);
1345 } 1363 }
1346 1364
1347 } // namespace media 1365 } // namespace media
OLDNEW
« no previous file with comments | « media/base/pipeline_impl.h ('k') | media/blink/webmediaplayer_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698