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 "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 1087 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1098 | 1098 |
1099 void WebMediaPlayerImpl::OnSuspendRequested(bool must_suspend) { | 1099 void WebMediaPlayerImpl::OnSuspendRequested(bool must_suspend) { |
1100 DCHECK(main_task_runner_->BelongsToCurrentThread()); | 1100 DCHECK(main_task_runner_->BelongsToCurrentThread()); |
1101 | 1101 |
1102 #if defined(OS_ANDROID) // WMPI_CAST | 1102 #if defined(OS_ANDROID) // WMPI_CAST |
1103 // If we're remote, the pipeline should already be suspended. | 1103 // If we're remote, the pipeline should already be suspended. |
1104 if (isRemote()) | 1104 if (isRemote()) |
1105 return; | 1105 return; |
1106 #endif | 1106 #endif |
1107 | 1107 |
| 1108 #if defined(OS_MACOSX) |
| 1109 // TODO(sandersd): Idle suspend is disabled on OSX since hardware decoded |
| 1110 // frames are owned by the video decoder in the GPU process. A mechanism for |
| 1111 // detaching ownership from the decoder is needed. http://crbug.com/595716. |
| 1112 return; |
| 1113 #else |
1108 // Suspend should never be requested unless required or we're already in an | 1114 // Suspend should never be requested unless required or we're already in an |
1109 // idle state (paused or ended). | 1115 // idle state (paused or ended). |
1110 DCHECK(must_suspend || paused_ || ended_); | 1116 DCHECK(must_suspend || paused_ || ended_); |
1111 | 1117 |
1112 // Always suspend, but only notify the delegate if we must; this allows any | 1118 // Always suspend, but only notify the delegate if we must; this allows any |
1113 // exposed UI for player controls to continue to function even though the | 1119 // exposed UI for player controls to continue to function even though the |
1114 // player has now been suspended. | 1120 // player has now been suspended. |
1115 pipeline_controller_.Suspend(); | 1121 pipeline_controller_.Suspend(); |
1116 if (must_suspend && delegate_) | 1122 if (must_suspend && delegate_) |
1117 delegate_->PlayerGone(delegate_id_); | 1123 delegate_->PlayerGone(delegate_id_); |
| 1124 #endif |
1118 } | 1125 } |
1119 | 1126 |
1120 void WebMediaPlayerImpl::OnPlay() { | 1127 void WebMediaPlayerImpl::OnPlay() { |
1121 play(); | 1128 play(); |
1122 client_->playbackStateChanged(); | 1129 client_->playbackStateChanged(); |
1123 } | 1130 } |
1124 | 1131 |
1125 void WebMediaPlayerImpl::OnPause() { | 1132 void WebMediaPlayerImpl::OnPause() { |
1126 pause(); | 1133 pause(); |
1127 client_->playbackStateChanged(); | 1134 client_->playbackStateChanged(); |
(...skipping 377 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1505 bool WebMediaPlayerImpl::IsAutomaticResumeAllowed() { | 1512 bool WebMediaPlayerImpl::IsAutomaticResumeAllowed() { |
1506 #if defined(OS_ANDROID) | 1513 #if defined(OS_ANDROID) |
1507 return !hasVideo() || (delegate_ && !delegate_->IsHidden()); | 1514 return !hasVideo() || (delegate_ && !delegate_->IsHidden()); |
1508 #else | 1515 #else |
1509 // On non-Android platforms Resume() is always allowed. | 1516 // On non-Android platforms Resume() is always allowed. |
1510 return true; | 1517 return true; |
1511 #endif | 1518 #endif |
1512 } | 1519 } |
1513 | 1520 |
1514 } // namespace media | 1521 } // namespace media |
OLD | NEW |