Chromium Code Reviews| Index: content/renderer/media/android/webmediaplayer_android.cc |
| diff --git a/content/renderer/media/android/webmediaplayer_android.cc b/content/renderer/media/android/webmediaplayer_android.cc |
| index af0d25b27bd433d216335118bc5fad3ad8d7f163..e6611a40efb6326f32939930fc93c5bafdcd1b9a 100644 |
| --- a/content/renderer/media/android/webmediaplayer_android.cc |
| +++ b/content/renderer/media/android/webmediaplayer_android.cc |
| @@ -461,9 +461,9 @@ double WebMediaPlayerAndroid::duration() const { |
| if (ready_state_ == WebMediaPlayer::ReadyStateHaveNothing) |
| return std::numeric_limits<double>::quiet_NaN(); |
| - // TODO(wolenetz): Correctly handle durations that MediaSourcePlayer |
| - // considers unseekable, including kInfiniteDuration(). |
| - // See http://crbug.com/248396 |
| + if (duration_ == media::kInfiniteDuration()) |
| + return std::numeric_limits<double>::infinity(); |
| + |
| return duration_.InSecondsF(); |
| } |
| @@ -502,8 +502,10 @@ double WebMediaPlayerAndroid::maxTimeSeekable() const { |
| if (ready_state_ < WebMediaPlayer::ReadyStateHaveMetadata) |
| return 0.0; |
| - // TODO(hclam): If this stream is not seekable this should return 0. |
| - return duration(); |
| + if (duration() == std::numeric_limits<double>::infinity()) |
| + return 0.0; |
| + |
| + return std::min(std::numeric_limits<int32>max(), duration()); |
|
wolenetz
2014/01/15 20:47:29
Drive-by comment: The Java media player is limited
amogh.bihani
2014/01/16 12:00:40
Done.
|
| } |
| bool WebMediaPlayerAndroid::didLoadingProgress() const { |
| @@ -619,9 +621,6 @@ void WebMediaPlayerAndroid::OnMediaMetadataChanged( |
| // Update duration, if necessary, prior to ready state updates that may |
| // cause duration() query. |
| - // TODO(wolenetz): Correctly handle durations that MediaSourcePlayer |
| - // considers unseekable, including kInfiniteDuration(). |
| - // See http://crbug.com/248396 |
| if (!ignore_metadata_duration_change_ && duration_ != duration) { |
| duration_ = duration; |
| @@ -830,9 +829,6 @@ void WebMediaPlayerAndroid::OnDurationChanged(const base::TimeDelta& duration) { |
| // Cache the new duration value and trust it over any subsequent duration |
| // values received in OnMediaMetadataChanged(). |
| - // TODO(wolenetz): Correctly handle durations that MediaSourcePlayer |
| - // considers unseekable, including kInfiniteDuration(). |
| - // See http://crbug.com/248396 |
| duration_ = duration; |
| ignore_metadata_duration_change_ = true; |