diff options
author | sandersd <sandersd@chromium.org> | 2016-03-08 17:49:07 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-03-09 01:50:55 +0000 |
commit | b5e21461a3ca9bb8e59f53870883e84c7229c47c (patch) | |
tree | 58f374aeb5dd57287fbf090f939daa5054b2fe58 /media/blink | |
parent | 64bf5c1464447e711764247530a171dfcdbbd7b9 (diff) | |
download | chromium_src-b5e21461a3ca9bb8e59f53870883e84c7229c47c.zip chromium_src-b5e21461a3ca9bb8e59f53870883e84c7229c47c.tar.gz chromium_src-b5e21461a3ca9bb8e59f53870883e84c7229c47c.tar.bz2 |
Move pending seek operations from ChunkDemuxer to Demuxer.
This moves StartWaitingForSeek() and CancelPendingSeek() to the Demuxer
base class. The main advantage is that this removes the need to
specialize for ChunkDemuxer; instead PipelineController can just issue
these operations for every demuxer. In the future, this may provide an
API for aborting seeks in FFmpegDemuxer.
PipelineController is changed to accept a flag that indicates whether
the data source is 'static' (meaining that the data doesn't change); for
now all data sources are static except for MSE which is never static.
Review URL: https://codereview.chromium.org/1774043002
Cr-Commit-Position: refs/heads/master@{#380026}
Diffstat (limited to 'media/blink')
-rw-r--r-- | media/blink/webmediaplayer_impl.cc | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/media/blink/webmediaplayer_impl.cc b/media/blink/webmediaplayer_impl.cc index 07e2aad..96f787e 100644 --- a/media/blink/webmediaplayer_impl.cc +++ b/media/blink/webmediaplayer_impl.cc @@ -1229,13 +1229,17 @@ void WebMediaPlayerImpl::StartPipeline() { demuxer_.reset(chunk_demuxer_); } + // TODO(sandersd): FileSystem objects may also be non-static, but due to our + // caching layer such situations are broken already. http://crbug.com/593159 + bool is_static = !chunk_demuxer_; + // ... and we're ready to go! seeking_ = true; // TODO(sandersd): On Android, defer Start() if the tab is not visible. bool is_streaming = (data_source_ && data_source_->IsStreaming()); pipeline_controller_.Start( - chunk_demuxer_, demuxer_.get(), is_streaming, + demuxer_.get(), is_streaming, is_static, BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnPipelineEnded), BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnPipelineMetadata), BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnPipelineBufferingStateChanged), |