Chromium Code Reviews| 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 717 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 728 // already triggers a durationchanged event. If this is a different | 728 // already triggers a durationchanged event. If this is a different |
| 729 // transition, remember to signal durationchanged. | 729 // transition, remember to signal durationchanged. |
| 730 // Do not ever signal durationchanged on metadata change in MSE case | 730 // Do not ever signal durationchanged on metadata change in MSE case |
| 731 // because OnDurationChanged() handles this. | 731 // because OnDurationChanged() handles this. |
| 732 if (ready_state_ > WebMediaPlayer::ReadyStateHaveNothing && | 732 if (ready_state_ > WebMediaPlayer::ReadyStateHaveNothing && |
| 733 player_type_ != MEDIA_PLAYER_TYPE_MEDIA_SOURCE) { | 733 player_type_ != MEDIA_PLAYER_TYPE_MEDIA_SOURCE) { |
| 734 need_to_signal_duration_changed = true; | 734 need_to_signal_duration_changed = true; |
| 735 } | 735 } |
| 736 } | 736 } |
| 737 | 737 |
| 738 has_valid_metadata_ = success; | |
|
xhwang
2014/09/15 23:59:43
Add a comment that setting it here instead of late
qinmin
2014/09/16 00:30:52
Done.
| |
| 738 if (ready_state_ != WebMediaPlayer::ReadyStateHaveEnoughData) { | 739 if (ready_state_ != WebMediaPlayer::ReadyStateHaveEnoughData) { |
| 739 UpdateReadyState(WebMediaPlayer::ReadyStateHaveMetadata); | 740 UpdateReadyState(WebMediaPlayer::ReadyStateHaveMetadata); |
| 740 UpdateReadyState(WebMediaPlayer::ReadyStateHaveEnoughData); | 741 UpdateReadyState(WebMediaPlayer::ReadyStateHaveEnoughData); |
| 741 } | 742 } |
| 742 | 743 |
| 743 // TODO(wolenetz): Should we just abort early and set network state to an | 744 // TODO(wolenetz): Should we just abort early and set network state to an |
| 744 // error if success == false? See http://crbug.com/248399 | 745 // error if success == false? See http://crbug.com/248399 |
| 745 if (success) | 746 if (success) |
| 746 OnVideoSizeChanged(width, height); | 747 OnVideoSizeChanged(width, height); |
| 747 | 748 |
| 748 has_valid_metadata_ = success; | |
| 749 | |
| 750 if (need_to_signal_duration_changed) | 749 if (need_to_signal_duration_changed) |
| 751 client_->durationChanged(); | 750 client_->durationChanged(); |
| 752 } | 751 } |
| 753 | 752 |
| 754 void WebMediaPlayerAndroid::OnPlaybackComplete() { | 753 void WebMediaPlayerAndroid::OnPlaybackComplete() { |
| 755 // When playback is about to finish, android media player often stops | 754 // When playback is about to finish, android media player often stops |
| 756 // at a time which is smaller than the duration. This makes webkit never | 755 // at a time which is smaller than the duration. This makes webkit never |
| 757 // know that the playback has finished. To solve this, we set the | 756 // know that the playback has finished. To solve this, we set the |
| 758 // current time to media duration when OnPlaybackComplete() get called. | 757 // current time to media duration when OnPlaybackComplete() get called. |
| 759 interpolator_.SetBounds(duration_, duration_); | 758 interpolator_.SetBounds(duration_, duration_); |
| (...skipping 1031 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1791 | 1790 |
| 1792 bool WebMediaPlayerAndroid::IsHLSStream() const { | 1791 bool WebMediaPlayerAndroid::IsHLSStream() const { |
| 1793 std::string mime; | 1792 std::string mime; |
| 1794 GURL url = redirected_url_.is_empty() ? url_ : redirected_url_; | 1793 GURL url = redirected_url_.is_empty() ? url_ : redirected_url_; |
| 1795 if (!net::GetMimeTypeFromFile(base::FilePath(url.path()), &mime)) | 1794 if (!net::GetMimeTypeFromFile(base::FilePath(url.path()), &mime)) |
| 1796 return false; | 1795 return false; |
| 1797 return !mime.compare("application/x-mpegurl"); | 1796 return !mime.compare("application/x-mpegurl"); |
| 1798 } | 1797 } |
| 1799 | 1798 |
| 1800 } // namespace content | 1799 } // namespace content |
| OLD | NEW |