diff options
author | vrk@chromium.org <vrk@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-07-14 00:01:04 +0000 |
---|---|---|
committer | vrk@chromium.org <vrk@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-07-14 00:01:04 +0000 |
commit | 2cc4fd29938b21378dfce7d075601ac3fa1ff753 (patch) | |
tree | 81ba555b1e1906cae3303ab7dd974f14886a439b /webkit | |
parent | 206387a513aa87efb15f8bd1122f85592b70fda4 (diff) | |
download | chromium_src-2cc4fd29938b21378dfce7d075601ac3fa1ff753.zip chromium_src-2cc4fd29938b21378dfce7d075601ac3fa1ff753.tar.gz chromium_src-2cc4fd29938b21378dfce7d075601ac3fa1ff753.tar.bz2 |
Implement ChunkDemuxer::GetStartTime()
This CL makes ChunkDemuxer wait until it gets the first OnNewMediaSegment()
signal before notifying the Pipeline that it is initialized. ChunkDemuxer uses
the first media segment start time reported as its |start_time_|, and seeks
all streams to this time. The "first seek" logic is thus removed from
SourceBufferStream.
BUG=132815
TEST=media_unittests, 'bug 5' plays
Review URL: https://chromiumcodereview.appspot.com/10690057
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@146687 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit')
-rw-r--r-- | webkit/media/webmediaplayer_impl.cc | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/webkit/media/webmediaplayer_impl.cc b/webkit/media/webmediaplayer_impl.cc index 41bcf11..0281177 100644 --- a/webkit/media/webmediaplayer_impl.cc +++ b/webkit/media/webmediaplayer_impl.cc @@ -776,7 +776,9 @@ void WebMediaPlayerImpl::Repaint() { void WebMediaPlayerImpl::OnPipelineInitialize(PipelineStatus status) { DCHECK_EQ(main_loop_, MessageLoop::current()); if (status != media::PIPELINE_OK) { - OnPipelineError(status); + // Any error that occurs before the pipeline can initialize should be + // considered a format error. + SetNetworkState(WebMediaPlayer::NetworkStateFormatError); // Repaint to trigger UI update. Repaint(); return; @@ -840,6 +842,9 @@ void WebMediaPlayerImpl::OnPipelineError(PipelineStatus error) { SetNetworkState(WebMediaPlayer::NetworkStateNetworkError); break; + // TODO(vrk): Because OnPipelineInitialize() directly reports the + // NetworkStateFormatError instead of calling OnPipelineError(), I believe + // this block can be deleted. Should look into it! (crbug.com/126070) case media::PIPELINE_ERROR_INITIALIZATION_FAILED: case media::PIPELINE_ERROR_REQUIRED_FILTER_MISSING: case media::PIPELINE_ERROR_COULD_NOT_RENDER: |