summaryrefslogtreecommitdiffstats
path: root/webkit
diff options
context:
space:
mode:
authorvrk@chromium.org <vrk@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-07-14 00:01:04 +0000
committervrk@chromium.org <vrk@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-07-14 00:01:04 +0000
commit2cc4fd29938b21378dfce7d075601ac3fa1ff753 (patch)
tree81ba555b1e1906cae3303ab7dd974f14886a439b /webkit
parent206387a513aa87efb15f8bd1122f85592b70fda4 (diff)
downloadchromium_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.cc7
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: