summaryrefslogtreecommitdiffstats
path: root/media/blink
diff options
context:
space:
mode:
authorsandersd <sandersd@chromium.org>2016-03-08 17:49:07 -0800
committerCommit bot <commit-bot@chromium.org>2016-03-09 01:50:55 +0000
commitb5e21461a3ca9bb8e59f53870883e84c7229c47c (patch)
tree58f374aeb5dd57287fbf090f939daa5054b2fe58 /media/blink
parent64bf5c1464447e711764247530a171dfcdbbd7b9 (diff)
downloadchromium_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.cc6
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),