| 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 <limits> | 7 #include <limits> |
| 8 | 8 |
| 9 #include "base/android/build_info.h" | 9 #include "base/android/build_info.h" |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 316 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 327 player_manager_->Start(player_id_); | 327 player_manager_->Start(player_id_); |
| 328 UpdatePlayingState(true); | 328 UpdatePlayingState(true); |
| 329 UpdateNetworkState(WebMediaPlayer::NetworkStateLoading); | 329 UpdateNetworkState(WebMediaPlayer::NetworkStateLoading); |
| 330 } | 330 } |
| 331 | 331 |
| 332 void WebMediaPlayerAndroid::pause() { | 332 void WebMediaPlayerAndroid::pause() { |
| 333 DCHECK(main_thread_checker_.CalledOnValidThread()); | 333 DCHECK(main_thread_checker_.CalledOnValidThread()); |
| 334 Pause(true); | 334 Pause(true); |
| 335 } | 335 } |
| 336 | 336 |
| 337 void WebMediaPlayerAndroid::requestRemotePlayback() { |
| 338 player_manager_->RequestRemotePlayback(player_id_); |
| 339 } |
| 340 |
| 341 void WebMediaPlayerAndroid::requestRemotePlaybackControl() { |
| 342 player_manager_->RequestRemotePlaybackControl(player_id_); |
| 343 } |
| 344 |
| 337 void WebMediaPlayerAndroid::seek(double seconds) { | 345 void WebMediaPlayerAndroid::seek(double seconds) { |
| 338 DCHECK(main_thread_checker_.CalledOnValidThread()); | 346 DCHECK(main_thread_checker_.CalledOnValidThread()); |
| 339 DVLOG(1) << __FUNCTION__ << "(" << seconds << ")"; | 347 DVLOG(1) << __FUNCTION__ << "(" << seconds << ")"; |
| 340 | 348 |
| 341 base::TimeDelta new_seek_time = media::ConvertSecondsToTimestamp(seconds); | 349 base::TimeDelta new_seek_time = media::ConvertSecondsToTimestamp(seconds); |
| 342 | 350 |
| 343 if (seeking_) { | 351 if (seeking_) { |
| 344 if (new_seek_time == seek_time_) { | 352 if (new_seek_time == seek_time_) { |
| 345 if (media_source_delegate_) { | 353 if (media_source_delegate_) { |
| 346 if (!pending_seek_) { | 354 if (!pending_seek_) { |
| (...skipping 551 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 898 interpolator_.SetBounds(lower_bound, upper_bound); | 906 interpolator_.SetBounds(lower_bound, upper_bound); |
| 899 } | 907 } |
| 900 | 908 |
| 901 void WebMediaPlayerAndroid::OnConnectedToRemoteDevice( | 909 void WebMediaPlayerAndroid::OnConnectedToRemoteDevice( |
| 902 const std::string& remote_playback_message) { | 910 const std::string& remote_playback_message) { |
| 903 DCHECK(main_thread_checker_.CalledOnValidThread()); | 911 DCHECK(main_thread_checker_.CalledOnValidThread()); |
| 904 DCHECK(!media_source_delegate_); | 912 DCHECK(!media_source_delegate_); |
| 905 DrawRemotePlaybackText(remote_playback_message); | 913 DrawRemotePlaybackText(remote_playback_message); |
| 906 is_remote_ = true; | 914 is_remote_ = true; |
| 907 SetNeedsEstablishPeer(false); | 915 SetNeedsEstablishPeer(false); |
| 916 client_->connectedToRemoteDevice(); |
| 908 } | 917 } |
| 909 | 918 |
| 910 void WebMediaPlayerAndroid::OnDisconnectedFromRemoteDevice() { | 919 void WebMediaPlayerAndroid::OnDisconnectedFromRemoteDevice() { |
| 911 DCHECK(main_thread_checker_.CalledOnValidThread()); | 920 DCHECK(main_thread_checker_.CalledOnValidThread()); |
| 912 DCHECK(!media_source_delegate_); | 921 DCHECK(!media_source_delegate_); |
| 913 SetNeedsEstablishPeer(true); | 922 SetNeedsEstablishPeer(true); |
| 914 if (!paused()) | 923 if (!paused()) |
| 915 EstablishSurfaceTexturePeer(); | 924 EstablishSurfaceTexturePeer(); |
| 916 is_remote_ = false; | 925 is_remote_ = false; |
| 917 ReallocateVideoFrame(); | 926 ReallocateVideoFrame(); |
| 927 client_->disconnectedFromRemoteDevice(); |
| 918 } | 928 } |
| 919 | 929 |
| 920 void WebMediaPlayerAndroid::OnDidEnterFullscreen() { | 930 void WebMediaPlayerAndroid::OnDidEnterFullscreen() { |
| 921 if (!player_manager_->IsInFullscreen(frame_)) | 931 if (!player_manager_->IsInFullscreen(frame_)) |
| 922 player_manager_->DidEnterFullscreen(frame_); | 932 player_manager_->DidEnterFullscreen(frame_); |
| 923 } | 933 } |
| 924 | 934 |
| 925 void WebMediaPlayerAndroid::OnDidExitFullscreen() { | 935 void WebMediaPlayerAndroid::OnDidExitFullscreen() { |
| 926 // |needs_external_surface_| is always false on non-TV devices. | 936 // |needs_external_surface_| is always false on non-TV devices. |
| 927 if (!needs_external_surface_) | 937 if (!needs_external_surface_) |
| (...skipping 19 matching lines...) Expand all Loading... |
| 947 | 957 |
| 948 void WebMediaPlayerAndroid::OnMediaPlayerPause() { | 958 void WebMediaPlayerAndroid::OnMediaPlayerPause() { |
| 949 UpdatePlayingState(false); | 959 UpdatePlayingState(false); |
| 950 client_->playbackStateChanged(); | 960 client_->playbackStateChanged(); |
| 951 } | 961 } |
| 952 | 962 |
| 953 void WebMediaPlayerAndroid::OnRequestFullscreen() { | 963 void WebMediaPlayerAndroid::OnRequestFullscreen() { |
| 954 client_->requestFullscreen(); | 964 client_->requestFullscreen(); |
| 955 } | 965 } |
| 956 | 966 |
| 967 void WebMediaPlayerAndroid::OnRemoteRouteAvailabilityChanged( |
| 968 bool routes_available) { |
| 969 client_->remoteRouteAvailabilityChanged(routes_available); |
| 970 } |
| 971 |
| 957 void WebMediaPlayerAndroid::OnDurationChanged(const base::TimeDelta& duration) { | 972 void WebMediaPlayerAndroid::OnDurationChanged(const base::TimeDelta& duration) { |
| 958 DCHECK(main_thread_checker_.CalledOnValidThread()); | 973 DCHECK(main_thread_checker_.CalledOnValidThread()); |
| 959 // Only MSE |player_type_| registers this callback. | 974 // Only MSE |player_type_| registers this callback. |
| 960 DCHECK_EQ(player_type_, MEDIA_PLAYER_TYPE_MEDIA_SOURCE); | 975 DCHECK_EQ(player_type_, MEDIA_PLAYER_TYPE_MEDIA_SOURCE); |
| 961 | 976 |
| 962 // Cache the new duration value and trust it over any subsequent duration | 977 // Cache the new duration value and trust it over any subsequent duration |
| 963 // values received in OnMediaMetadataChanged(). | 978 // values received in OnMediaMetadataChanged(). |
| 964 duration_ = duration; | 979 duration_ = duration; |
| 965 ignore_metadata_duration_change_ = true; | 980 ignore_metadata_duration_change_ = true; |
| 966 | 981 |
| (...skipping 852 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1819 | 1834 |
| 1820 bool WebMediaPlayerAndroid::IsHLSStream() const { | 1835 bool WebMediaPlayerAndroid::IsHLSStream() const { |
| 1821 std::string mime; | 1836 std::string mime; |
| 1822 GURL url = redirected_url_.is_empty() ? url_ : redirected_url_; | 1837 GURL url = redirected_url_.is_empty() ? url_ : redirected_url_; |
| 1823 if (!net::GetMimeTypeFromFile(base::FilePath(url.path()), &mime)) | 1838 if (!net::GetMimeTypeFromFile(base::FilePath(url.path()), &mime)) |
| 1824 return false; | 1839 return false; |
| 1825 return !mime.compare("application/x-mpegurl"); | 1840 return !mime.compare("application/x-mpegurl"); |
| 1826 } | 1841 } |
| 1827 | 1842 |
| 1828 } // namespace content | 1843 } // namespace content |
| OLD | NEW |