Commit 7e63a015 authored by tonyg's avatar tonyg Committed by Commit bot

Revert "If duration of media source is unknown then return NaN."

This reverts commit 536be704.

Revert "Fix an issue that video is not seekable"

This reverts commit 21f1f757.

The first causes the tough_video_cases benchmark to hang and the
second depends on it. Details in bug.

BUG=412897
TBR=qinmin@chromium.org

Review URL: https://codereview.chromium.org/580673002

Cr-Commit-Position: refs/heads/master@{#295282}
parent 31c5ce8d
......@@ -141,7 +141,6 @@ WebMediaPlayerAndroid::WebMediaPlayerAndroid(
RenderThreadImpl::current()->compositor_message_loop_proxy()),
stream_texture_factory_(factory),
needs_external_surface_(false),
has_valid_metadata_(false),
video_frame_provider_client_(NULL),
pending_playback_(false),
player_type_(MEDIA_PLAYER_TYPE_URL),
......@@ -448,8 +447,7 @@ bool WebMediaPlayerAndroid::seeking() const {
double WebMediaPlayerAndroid::duration() const {
DCHECK(main_thread_checker_.CalledOnValidThread());
// HTML5 spec requires duration to be NaN if readyState is HAVE_NOTHING
if (ready_state_ == WebMediaPlayer::ReadyStateHaveNothing ||
!has_valid_metadata_)
if (ready_state_ == WebMediaPlayer::ReadyStateHaveNothing)
return std::numeric_limits<double>::quiet_NaN();
if (duration_ == media::kInfiniteDuration())
......@@ -505,8 +503,7 @@ WebTimeRanges WebMediaPlayerAndroid::buffered() const {
double WebMediaPlayerAndroid::maxTimeSeekable() const {
// If we haven't even gotten to ReadyStateHaveMetadata yet then just
// return 0 so that the seekable range is empty.
if (ready_state_ < WebMediaPlayer::ReadyStateHaveMetadata ||
!has_valid_metadata_)
if (ready_state_ < WebMediaPlayer::ReadyStateHaveMetadata)
return 0.0;
return duration();
......@@ -747,10 +744,6 @@ void WebMediaPlayerAndroid::OnMediaMetadataChanged(
}
}
// UpdateReadyState(WebMediaPlayer::ReadyStateHaveMetadata) will trigger a
// call to duration(), which checks |has_valid_metadata_|. so
// |has_valid_metadata_| has to be updated before calling UpdateReadyState().
has_valid_metadata_ = success;
if (ready_state_ != WebMediaPlayer::ReadyStateHaveEnoughData) {
UpdateReadyState(WebMediaPlayer::ReadyStateHaveMetadata);
UpdateReadyState(WebMediaPlayer::ReadyStateHaveEnoughData);
......@@ -784,7 +777,7 @@ void WebMediaPlayerAndroid::OnPlaybackComplete() {
}
void WebMediaPlayerAndroid::OnBufferingUpdate(int percentage) {
buffered_[0].end = has_valid_metadata_ ? duration() * percentage / 100 : 0;
buffered_[0].end = duration() * percentage / 100;
did_loading_progress_ = true;
}
......
......@@ -438,9 +438,6 @@ class WebMediaPlayerAndroid : public blink::WebMediaPlayer,
// Only used for the VIDEO_HOLE logic.
bool needs_external_surface_;
// Whether valid metadata are available
bool has_valid_metadata_;
// A pointer back to the compositor to inform it about state changes. This is
// not NULL while the compositor is actively using this webmediaplayer.
// Accessed on main thread and on compositor thread when main thread is
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment