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

Side by Side Diff: media/renderers/audio_renderer_impl.cc

Issue 2075293003: CL for perf tryjob on mac (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 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/renderers/audio_renderer_impl.h ('k') | media/renderers/video_renderer_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/renderers/audio_renderer_impl.h" 5 #include "media/renderers/audio_renderer_impl.h"
6 6
7 #include <math.h> 7 #include <math.h>
8 #include <stddef.h> 8 #include <stddef.h>
9 #include <algorithm> 9 #include <algorithm>
10 #include <utility> 10 #include <utility>
(...skipping 28 matching lines...) Expand all
39 ScopedVector<AudioDecoder> decoders, 39 ScopedVector<AudioDecoder> decoders,
40 const scoped_refptr<MediaLog>& media_log) 40 const scoped_refptr<MediaLog>& media_log)
41 : task_runner_(task_runner), 41 : task_runner_(task_runner),
42 expecting_config_changes_(false), 42 expecting_config_changes_(false),
43 sink_(sink), 43 sink_(sink),
44 audio_buffer_stream_( 44 audio_buffer_stream_(
45 new AudioBufferStream(task_runner, std::move(decoders), media_log)), 45 new AudioBufferStream(task_runner, std::move(decoders), media_log)),
46 media_log_(media_log), 46 media_log_(media_log),
47 client_(nullptr), 47 client_(nullptr),
48 tick_clock_(new base::DefaultTickClock()), 48 tick_clock_(new base::DefaultTickClock()),
49 bytes_decoded_(0),
49 last_audio_memory_usage_(0), 50 last_audio_memory_usage_(0),
50 last_decoded_sample_rate_(0), 51 last_decoded_sample_rate_(0),
51 playback_rate_(0.0), 52 playback_rate_(0.0),
52 state_(kUninitialized), 53 state_(kUninitialized),
53 buffering_state_(BUFFERING_HAVE_NOTHING), 54 buffering_state_(BUFFERING_HAVE_NOTHING),
54 rendering_(false), 55 rendering_(false),
55 sink_playing_(false), 56 sink_playing_(false),
56 pending_read_(false), 57 pending_read_(false),
57 received_end_of_stream_(false), 58 received_end_of_stream_(false),
58 rendered_end_of_stream_(false), 59 rendered_end_of_stream_(false),
(...skipping 378 matching lines...) Expand 10 before | Expand all | Expand 10 after
437 AudioHardwareConfig::GetHighLatencyBufferSize( 438 AudioHardwareConfig::GetHighLatencyBufferSize(
438 sample_rate, preferred_buffer_size)); 439 sample_rate, preferred_buffer_size));
439 } 440 }
440 441
441 audio_clock_.reset( 442 audio_clock_.reset(
442 new AudioClock(base::TimeDelta(), audio_parameters_.sample_rate())); 443 new AudioClock(base::TimeDelta(), audio_parameters_.sample_rate()));
443 444
444 audio_buffer_stream_->Initialize( 445 audio_buffer_stream_->Initialize(
445 stream, base::Bind(&AudioRendererImpl::OnAudioBufferStreamInitialized, 446 stream, base::Bind(&AudioRendererImpl::OnAudioBufferStreamInitialized,
446 weak_factory_.GetWeakPtr()), 447 weak_factory_.GetWeakPtr()),
447 cdm_context, base::Bind(&AudioRendererImpl::OnStatisticsUpdate, 448 cdm_context,
448 weak_factory_.GetWeakPtr()), 449 base::Bind(&AudioRendererImpl::BytesDecoded, weak_factory_.GetWeakPtr()),
449 base::Bind(&AudioRendererImpl::OnWaitingForDecryptionKey, 450 base::Bind(&AudioRendererImpl::OnWaitingForDecryptionKey,
450 weak_factory_.GetWeakPtr())); 451 weak_factory_.GetWeakPtr()));
451 } 452 }
452 453
453 void AudioRendererImpl::OnAudioBufferStreamInitialized(bool success) { 454 void AudioRendererImpl::OnAudioBufferStreamInitialized(bool success) {
454 DVLOG(1) << __FUNCTION__ << ": " << success; 455 DVLOG(1) << __FUNCTION__ << ": " << success;
455 DCHECK(task_runner_->BelongsToCurrentThread()); 456 DCHECK(task_runner_->BelongsToCurrentThread());
456 457
457 base::AutoLock auto_lock(lock_); 458 base::AutoLock auto_lock(lock_);
458 459
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
528 void AudioRendererImpl::OnSuspend() { 529 void AudioRendererImpl::OnSuspend() {
529 base::AutoLock auto_lock(lock_); 530 base::AutoLock auto_lock(lock_);
530 is_suspending_ = true; 531 is_suspending_ = true;
531 } 532 }
532 533
533 void AudioRendererImpl::OnResume() { 534 void AudioRendererImpl::OnResume() {
534 base::AutoLock auto_lock(lock_); 535 base::AutoLock auto_lock(lock_);
535 is_suspending_ = false; 536 is_suspending_ = false;
536 } 537 }
537 538
539 void AudioRendererImpl::BytesDecoded(uint64_t bytes) {
540 DCHECK(task_runner_->BelongsToCurrentThread());
541 base::AutoLock auto_lock(lock_);
542
543 bytes_decoded_ += bytes;
544 }
545
538 void AudioRendererImpl::DecodedAudioReady( 546 void AudioRendererImpl::DecodedAudioReady(
539 AudioBufferStream::Status status, 547 AudioBufferStream::Status status,
540 const scoped_refptr<AudioBuffer>& buffer) { 548 const scoped_refptr<AudioBuffer>& buffer) {
541 DVLOG(2) << __FUNCTION__ << "(" << status << ")"; 549 DVLOG(2) << __FUNCTION__ << "(" << status << ")";
542 DCHECK(task_runner_->BelongsToCurrentThread()); 550 DCHECK(task_runner_->BelongsToCurrentThread());
543 551
544 base::AutoLock auto_lock(lock_); 552 base::AutoLock auto_lock(lock_);
545 DCHECK(state_ != kUninitialized); 553 DCHECK(state_ != kUninitialized);
546 554
547 CHECK(pending_read_); 555 CHECK(pending_read_);
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
654 algorithm_->EnqueueBuffer(buffer); 662 algorithm_->EnqueueBuffer(buffer);
655 } 663 }
656 664
657 // Store the timestamp of the first packet so we know when to start actual 665 // Store the timestamp of the first packet so we know when to start actual
658 // audio playback. 666 // audio playback.
659 if (first_packet_timestamp_ == kNoTimestamp()) 667 if (first_packet_timestamp_ == kNoTimestamp())
660 first_packet_timestamp_ = buffer->timestamp(); 668 first_packet_timestamp_ = buffer->timestamp();
661 669
662 const size_t memory_usage = algorithm_->GetMemoryUsage(); 670 const size_t memory_usage = algorithm_->GetMemoryUsage();
663 PipelineStatistics stats; 671 PipelineStatistics stats;
672 stats.audio_bytes_decoded = bytes_decoded_;
664 stats.audio_memory_usage = memory_usage - last_audio_memory_usage_; 673 stats.audio_memory_usage = memory_usage - last_audio_memory_usage_;
674 bytes_decoded_ = 0;
665 last_audio_memory_usage_ = memory_usage; 675 last_audio_memory_usage_ = memory_usage;
666 task_runner_->PostTask(FROM_HERE, 676 task_runner_->PostTask(FROM_HERE,
667 base::Bind(&AudioRendererImpl::OnStatisticsUpdate, 677 base::Bind(&AudioRendererImpl::OnStatisticsUpdate,
668 weak_factory_.GetWeakPtr(), stats)); 678 weak_factory_.GetWeakPtr(), stats));
669 679
670 switch (state_) { 680 switch (state_) {
671 case kUninitialized: 681 case kUninitialized:
672 case kInitializing: 682 case kInitializing:
673 case kFlushing: 683 case kFlushing:
674 NOTREACHED(); 684 NOTREACHED();
(...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after
959 DCHECK_NE(buffering_state_, buffering_state); 969 DCHECK_NE(buffering_state_, buffering_state);
960 lock_.AssertAcquired(); 970 lock_.AssertAcquired();
961 buffering_state_ = buffering_state; 971 buffering_state_ = buffering_state;
962 972
963 task_runner_->PostTask( 973 task_runner_->PostTask(
964 FROM_HERE, base::Bind(&AudioRendererImpl::OnBufferingStateChange, 974 FROM_HERE, base::Bind(&AudioRendererImpl::OnBufferingStateChange,
965 weak_factory_.GetWeakPtr(), buffering_state_)); 975 weak_factory_.GetWeakPtr(), buffering_state_));
966 } 976 }
967 977
968 } // namespace media 978 } // namespace media
OLDNEW
« no previous file with comments | « media/renderers/audio_renderer_impl.h ('k') | media/renderers/video_renderer_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698