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

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: fix 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 // The play state is updated because the player might have left the autoplay
541 // muted state.
542 UpdatePlayState();
539 } 543 }
540 544
541 void WebMediaPlayerImpl::setSinkId( 545 void WebMediaPlayerImpl::setSinkId(
542 const blink::WebString& sink_id, 546 const blink::WebString& sink_id,
543 const blink::WebSecurityOrigin& security_origin, 547 const blink::WebSecurityOrigin& security_origin,
544 blink::WebSetSinkIdCallbacks* web_callback) { 548 blink::WebSetSinkIdCallbacks* web_callback) {
545 DCHECK(main_task_runner_->BelongsToCurrentThread()); 549 DCHECK(main_task_runner_->BelongsToCurrentThread());
546 DVLOG(1) << __func__; 550 DVLOG(1) << __func__;
547 551
548 media::OutputDeviceStatusCB callback = 552 media::OutputDeviceStatusCB callback =
(...skipping 1028 matching lines...) Expand 10 before | Expand all | Expand 10 after
1577 bool is_backgrounded = 1581 bool is_backgrounded =
1578 IsBackgroundedSuspendEnabled() && delegate_ && delegate_->IsHidden(); 1582 IsBackgroundedSuspendEnabled() && delegate_ && delegate_->IsHidden();
1579 PlayState state = UpdatePlayState_ComputePlayState(is_remote, is_suspended, 1583 PlayState state = UpdatePlayState_ComputePlayState(is_remote, is_suspended,
1580 is_backgrounded); 1584 is_backgrounded);
1581 SetDelegateState(state.delegate_state); 1585 SetDelegateState(state.delegate_state);
1582 SetMemoryReportingState(state.is_memory_reporting_enabled); 1586 SetMemoryReportingState(state.is_memory_reporting_enabled);
1583 SetSuspendState(state.is_suspended || pending_suspend_resume_cycle_); 1587 SetSuspendState(state.is_suspended || pending_suspend_resume_cycle_);
1584 } 1588 }
1585 1589
1586 void WebMediaPlayerImpl::SetDelegateState(DelegateState new_state) { 1590 void WebMediaPlayerImpl::SetDelegateState(DelegateState new_state) {
1587 if (!delegate_ || delegate_state_ == new_state) 1591 if (!delegate_)
1588 return; 1592 return;
1589 1593
1594 if (delegate_state_ == new_state) {
1595 if (delegate_state_ != DelegateState::PLAYING ||
1596 autoplay_muted_ == client_->isAutoplayingMuted()) {
1597 return;
1598 }
1599 }
1600
1590 delegate_state_ = new_state; 1601 delegate_state_ = new_state;
1591 1602
1592 switch (delegate_state_) { 1603 switch (delegate_state_) {
1593 case DelegateState::GONE: 1604 case DelegateState::GONE:
1594 delegate_->PlayerGone(delegate_id_); 1605 delegate_->PlayerGone(delegate_id_);
1595 break; 1606 break;
1596 case DelegateState::PLAYING: 1607 case DelegateState::PLAYING: {
1608 autoplay_muted_ = client_->isAutoplayingMuted();
1609 bool has_audio = autoplay_muted_ ? false : hasAudio();
1597 delegate_->DidPlay( 1610 delegate_->DidPlay(
1598 delegate_id_, hasVideo(), hasAudio(), false, 1611 delegate_id_, hasVideo(), has_audio, false,
1599 media::DurationToMediaContentType(pipeline_.GetMediaDuration())); 1612 media::DurationToMediaContentType(pipeline_.GetMediaDuration()));
1600 break; 1613 break;
1614 }
1601 case DelegateState::PAUSED: 1615 case DelegateState::PAUSED:
1602 delegate_->DidPause(delegate_id_, false); 1616 delegate_->DidPause(delegate_id_, false);
1603 break; 1617 break;
1604 case DelegateState::ENDED: 1618 case DelegateState::ENDED:
1605 delegate_->DidPause(delegate_id_, true); 1619 delegate_->DidPause(delegate_id_, true);
1606 break; 1620 break;
1607 } 1621 }
1608 } 1622 }
1609 1623
1610 void WebMediaPlayerImpl::SetMemoryReportingState( 1624 void WebMediaPlayerImpl::SetMemoryReportingState(
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after
1815 pipeline_metadata_.natural_size, 1829 pipeline_metadata_.natural_size,
1816 base::Bind(&GetCurrentTimeInternal, this))); 1830 base::Bind(&GetCurrentTimeInternal, this)));
1817 watch_time_reporter_->OnVolumeChange(volume_); 1831 watch_time_reporter_->OnVolumeChange(volume_);
1818 if (delegate_ && delegate_->IsHidden()) 1832 if (delegate_ && delegate_->IsHidden())
1819 watch_time_reporter_->OnHidden(); 1833 watch_time_reporter_->OnHidden();
1820 else 1834 else
1821 watch_time_reporter_->OnShown(); 1835 watch_time_reporter_->OnShown();
1822 } 1836 }
1823 1837
1824 } // namespace media 1838 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698