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

Side by Side Diff: media/blink/webmediaplayer_impl.cc

Issue 2251073003: Pretend the video has no audio track if it is playing as part of autoplay muted. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: unit tests Created 4 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/blink/webmediaplayer_impl.h" 5 #include "media/blink/webmediaplayer_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cmath> 8 #include <cmath>
9 #include <limits> 9 #include <limits>
10 #include <string> 10 #include <string>
(...skipping 518 matching lines...) Expand 10 before | Expand all | Expand 10 after
529 } 529 }
530 } 530 }
531 531
532 void WebMediaPlayerImpl::setVolume(double volume) { 532 void WebMediaPlayerImpl::setVolume(double volume) {
533 DVLOG(1) << __func__ << "(" << volume << ")"; 533 DVLOG(1) << __func__ << "(" << volume << ")";
534 DCHECK(main_task_runner_->BelongsToCurrentThread()); 534 DCHECK(main_task_runner_->BelongsToCurrentThread());
535 volume_ = volume; 535 volume_ = volume;
536 pipeline_.SetVolume(volume_ * volume_multiplier_); 536 pipeline_.SetVolume(volume_ * volume_multiplier_);
537 if (watch_time_reporter_) 537 if (watch_time_reporter_)
538 watch_time_reporter_->OnVolumeChange(volume); 538 watch_time_reporter_->OnVolumeChange(volume);
539
540 UpdatePlayState();
539 } 541 }
540 542
541 void WebMediaPlayerImpl::setSinkId( 543 void WebMediaPlayerImpl::setSinkId(
542 const blink::WebString& sink_id, 544 const blink::WebString& sink_id,
543 const blink::WebSecurityOrigin& security_origin, 545 const blink::WebSecurityOrigin& security_origin,
544 blink::WebSetSinkIdCallbacks* web_callback) { 546 blink::WebSetSinkIdCallbacks* web_callback) {
545 DCHECK(main_task_runner_->BelongsToCurrentThread()); 547 DCHECK(main_task_runner_->BelongsToCurrentThread());
546 DVLOG(1) << __func__; 548 DVLOG(1) << __func__;
547 549
548 media::OutputDeviceStatusCB callback = 550 media::OutputDeviceStatusCB callback =
(...skipping 1028 matching lines...) Expand 10 before | Expand all | Expand 10 after
1577 bool is_backgrounded = 1579 bool is_backgrounded =
1578 IsBackgroundedSuspendEnabled() && delegate_ && delegate_->IsHidden(); 1580 IsBackgroundedSuspendEnabled() && delegate_ && delegate_->IsHidden();
1579 PlayState state = UpdatePlayState_ComputePlayState(is_remote, is_suspended, 1581 PlayState state = UpdatePlayState_ComputePlayState(is_remote, is_suspended,
1580 is_backgrounded); 1582 is_backgrounded);
1581 SetDelegateState(state.delegate_state); 1583 SetDelegateState(state.delegate_state);
1582 SetMemoryReportingState(state.is_memory_reporting_enabled); 1584 SetMemoryReportingState(state.is_memory_reporting_enabled);
1583 SetSuspendState(state.is_suspended || pending_suspend_resume_cycle_); 1585 SetSuspendState(state.is_suspended || pending_suspend_resume_cycle_);
1584 } 1586 }
1585 1587
1586 void WebMediaPlayerImpl::SetDelegateState(DelegateState new_state) { 1588 void WebMediaPlayerImpl::SetDelegateState(DelegateState new_state) {
1587 if (!delegate_ || delegate_state_ == new_state) 1589 if (!delegate_)
1588 return; 1590 return;
1589 1591
1592 if (delegate_state_ != DelegateState::PLAYING &&
1593 delegate_state_ == new_state) {
1594 return;
1595 }
1596
1590 delegate_state_ = new_state; 1597 delegate_state_ = new_state;
1591 1598
1592 switch (delegate_state_) { 1599 switch (delegate_state_) {
1593 case DelegateState::GONE: 1600 case DelegateState::GONE:
1594 delegate_->PlayerGone(delegate_id_); 1601 delegate_->PlayerGone(delegate_id_);
1595 break; 1602 break;
1596 case DelegateState::PLAYING: 1603 case DelegateState::PLAYING: {
1604 bool has_audio = client_->isAutoplayingMuted() ? false : hasAudio();
1597 delegate_->DidPlay( 1605 delegate_->DidPlay(
1598 delegate_id_, hasVideo(), hasAudio(), false, 1606 delegate_id_, hasVideo(), has_audio, false,
1599 media::DurationToMediaContentType(pipeline_.GetMediaDuration())); 1607 media::DurationToMediaContentType(pipeline_.GetMediaDuration()));
1600 break; 1608 break;
1609 }
1601 case DelegateState::PAUSED: 1610 case DelegateState::PAUSED:
1602 delegate_->DidPause(delegate_id_, false); 1611 delegate_->DidPause(delegate_id_, false);
1603 break; 1612 break;
1604 case DelegateState::ENDED: 1613 case DelegateState::ENDED:
1605 delegate_->DidPause(delegate_id_, true); 1614 delegate_->DidPause(delegate_id_, true);
1606 break; 1615 break;
1607 } 1616 }
1608 } 1617 }
1609 1618
1610 void WebMediaPlayerImpl::SetMemoryReportingState( 1619 void WebMediaPlayerImpl::SetMemoryReportingState(
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after
1815 pipeline_metadata_.natural_size, 1824 pipeline_metadata_.natural_size,
1816 base::Bind(&GetCurrentTimeInternal, this))); 1825 base::Bind(&GetCurrentTimeInternal, this)));
1817 watch_time_reporter_->OnVolumeChange(volume_); 1826 watch_time_reporter_->OnVolumeChange(volume_);
1818 if (delegate_ && delegate_->IsHidden()) 1827 if (delegate_ && delegate_->IsHidden())
1819 watch_time_reporter_->OnHidden(); 1828 watch_time_reporter_->OnHidden();
1820 else 1829 else
1821 watch_time_reporter_->OnShown(); 1830 watch_time_reporter_->OnShown();
1822 } 1831 }
1823 1832
1824 } // namespace media 1833 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698