| OLD | NEW |
| 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 "content/renderer/media/android/webmediaplayer_android.h" | 5 #include "content/renderer/media/android/webmediaplayer_android.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <limits> | 9 #include <limits> |
| 10 | 10 |
| (...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 137 int frame_id, | 137 int frame_id, |
| 138 bool enable_texture_copy, | 138 bool enable_texture_copy, |
| 139 const media::WebMediaPlayerParams& params) | 139 const media::WebMediaPlayerParams& params) |
| 140 : frame_(frame), | 140 : frame_(frame), |
| 141 client_(client), | 141 client_(client), |
| 142 delegate_(delegate), | 142 delegate_(delegate), |
| 143 delegate_id_(0), | 143 delegate_id_(0), |
| 144 defer_load_cb_(params.defer_load_cb()), | 144 defer_load_cb_(params.defer_load_cb()), |
| 145 buffered_(static_cast<size_t>(1)), | 145 buffered_(static_cast<size_t>(1)), |
| 146 media_task_runner_(params.media_task_runner()), | 146 media_task_runner_(params.media_task_runner()), |
| 147 ignore_metadata_duration_change_(false), | |
| 148 pending_seek_(false), | 147 pending_seek_(false), |
| 149 seeking_(false), | 148 seeking_(false), |
| 150 did_loading_progress_(false), | 149 did_loading_progress_(false), |
| 151 player_manager_(player_manager), | 150 player_manager_(player_manager), |
| 152 network_state_(WebMediaPlayer::NetworkStateEmpty), | 151 network_state_(WebMediaPlayer::NetworkStateEmpty), |
| 153 ready_state_(WebMediaPlayer::ReadyStateHaveNothing), | 152 ready_state_(WebMediaPlayer::ReadyStateHaveNothing), |
| 154 texture_id_(0), | 153 texture_id_(0), |
| 155 stream_id_(0), | 154 stream_id_(0), |
| 156 is_player_initialized_(false), | 155 is_player_initialized_(false), |
| 157 is_playing_(false), | 156 is_playing_(false), |
| (...skipping 524 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 682 if (is_local_resource_) | 681 if (is_local_resource_) |
| 683 UpdateNetworkState(WebMediaPlayer::NetworkStateLoaded); | 682 UpdateNetworkState(WebMediaPlayer::NetworkStateLoaded); |
| 684 | 683 |
| 685 // For HLS streams, the reported duration may be zero for infinite streams. | 684 // For HLS streams, the reported duration may be zero for infinite streams. |
| 686 // See http://crbug.com/501213. | 685 // See http://crbug.com/501213. |
| 687 if (duration.is_zero() && IsHLSStream()) | 686 if (duration.is_zero() && IsHLSStream()) |
| 688 duration = media::kInfiniteDuration; | 687 duration = media::kInfiniteDuration; |
| 689 | 688 |
| 690 // Update duration, if necessary, prior to ready state updates that may | 689 // Update duration, if necessary, prior to ready state updates that may |
| 691 // cause duration() query. | 690 // cause duration() query. |
| 692 if (!ignore_metadata_duration_change_ && duration_ != duration) { | 691 if (duration_ != duration) { |
| 693 duration_ = duration; | 692 duration_ = duration; |
| 694 if (is_local_resource_) | 693 if (is_local_resource_) |
| 695 buffered_[0].end = duration_.InSecondsF(); | 694 buffered_[0].end = duration_.InSecondsF(); |
| 696 // Client readyState transition from HAVE_NOTHING to HAVE_METADATA | 695 // Client readyState transition from HAVE_NOTHING to HAVE_METADATA |
| 697 // already triggers a durationchanged event. If this is a different | 696 // already triggers a durationchanged event. If this is a different |
| 698 // transition, remember to signal durationchanged. | 697 // transition, remember to signal durationchanged. |
| 699 if (ready_state_ > WebMediaPlayer::ReadyStateHaveNothing) | 698 if (ready_state_ > WebMediaPlayer::ReadyStateHaveNothing) |
| 700 need_to_signal_duration_changed = true; | 699 need_to_signal_duration_changed = true; |
| 701 } | 700 } |
| 702 | 701 |
| (...skipping 521 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1224 } else { | 1223 } else { |
| 1225 // Even if OnPlaybackComplete() has not been called yet, Blink may have | 1224 // Even if OnPlaybackComplete() has not been called yet, Blink may have |
| 1226 // already fired the ended event based on current time relative to | 1225 // already fired the ended event based on current time relative to |
| 1227 // duration -- so we need to check both possibilities here. | 1226 // duration -- so we need to check both possibilities here. |
| 1228 delegate_->DidPause(delegate_id_, | 1227 delegate_->DidPause(delegate_id_, |
| 1229 playback_completed_ || currentTime() >= duration()); | 1228 playback_completed_ || currentTime() >= duration()); |
| 1230 } | 1229 } |
| 1231 } | 1230 } |
| 1232 } | 1231 } |
| 1233 | 1232 |
| 1234 void WebMediaPlayerAndroid::setContentDecryptionModule( | |
| 1235 blink::WebContentDecryptionModule* cdm, | |
| 1236 blink::WebContentDecryptionModuleResult result) { | |
| 1237 DCHECK(main_thread_checker_.CalledOnValidThread()); | |
| 1238 | |
| 1239 result.completeWithError( | |
| 1240 blink::WebContentDecryptionModuleExceptionInvalidStateError, 0, | |
| 1241 "EME is not supported for this playback."); | |
| 1242 } | |
| 1243 | |
| 1244 void WebMediaPlayerAndroid::OnHidden() { | 1233 void WebMediaPlayerAndroid::OnHidden() { |
| 1245 // Pause audible video preserving its session. | 1234 // Pause audible video preserving its session. |
| 1246 if (hasVideo() && IsBackgroundVideoCandidate() && !paused()) { | 1235 if (hasVideo() && IsBackgroundVideoCandidate() && !paused()) { |
| 1247 Pause(false); | 1236 Pause(false); |
| 1248 is_play_pending_ = true; | 1237 is_play_pending_ = true; |
| 1249 return; | 1238 return; |
| 1250 } | 1239 } |
| 1251 | 1240 |
| 1252 OnSuspendRequested(false); | 1241 OnSuspendRequested(false); |
| 1253 } | 1242 } |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1347 if (base::CommandLine::ForCurrentProcess()->HasSwitch( | 1336 if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
| 1348 switches::kDisableMediaSuspend)) { | 1337 switches::kDisableMediaSuspend)) { |
| 1349 return false; | 1338 return false; |
| 1350 } | 1339 } |
| 1351 | 1340 |
| 1352 return base::FeatureList::IsEnabled(media::kResumeBackgroundVideo) && | 1341 return base::FeatureList::IsEnabled(media::kResumeBackgroundVideo) && |
| 1353 hasAudio() && !isRemote() && delegate_ && delegate_->IsHidden(); | 1342 hasAudio() && !isRemote() && delegate_ && delegate_->IsHidden(); |
| 1354 } | 1343 } |
| 1355 | 1344 |
| 1356 } // namespace content | 1345 } // namespace content |
| OLD | NEW |