Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(370)

Unified Diff: webkit/media/webmediaplayer_util.cc

Issue 15927003: Fix MediaPlayerDelegate error handling so it passes the webkitmediasource-errors.html LayoutTest. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webkit/media/webmediaplayer_util.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webkit/media/webmediaplayer_util.cc
diff --git a/webkit/media/webmediaplayer_util.cc b/webkit/media/webmediaplayer_util.cc
index ebac0f88f84a754a9da3a4838120746ca234ecc6..49aa4827f4a4b812c34f3eac89ca539b4f6aaa2f 100644
--- a/webkit/media/webmediaplayer_util.cc
+++ b/webkit/media/webmediaplayer_util.cc
@@ -24,4 +24,43 @@ WebKit::WebTimeRanges ConvertToWebTimeRanges(
return result;
}
+WebKit::WebMediaPlayer::NetworkState PipelineErrorToNetworkState(
+ media::PipelineStatus error) {
+ DCHECK_NE(error, media::PIPELINE_OK);
+
+ switch (error) {
+ case media::PIPELINE_ERROR_NETWORK:
+ case media::PIPELINE_ERROR_READ:
+ return WebKit::WebMediaPlayer::NetworkStateNetworkError;
+
+ // 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_COULD_NOT_RENDER:
+ case media::PIPELINE_ERROR_URL_NOT_FOUND:
+ case media::DEMUXER_ERROR_COULD_NOT_OPEN:
+ case media::DEMUXER_ERROR_COULD_NOT_PARSE:
+ case media::DEMUXER_ERROR_NO_SUPPORTED_STREAMS:
+ case media::DECODER_ERROR_NOT_SUPPORTED:
+ return WebKit::WebMediaPlayer::NetworkStateFormatError;
+
+ case media::PIPELINE_ERROR_DECODE:
+ case media::PIPELINE_ERROR_ABORT:
+ case media::PIPELINE_ERROR_OPERATION_PENDING:
+ case media::PIPELINE_ERROR_INVALID_STATE:
+ return WebKit::WebMediaPlayer::NetworkStateDecodeError;
+
+ case media::PIPELINE_ERROR_DECRYPT:
+ // TODO(xhwang): Change to use NetworkStateDecryptError once it's added in
+ // Webkit (see http://crbug.com/124486).
+ return WebKit::WebMediaPlayer::NetworkStateDecodeError;
+
+ case media::PIPELINE_OK:
+ case media::PIPELINE_STATUS_MAX:
+ NOTREACHED() << "Unexpected status! " << error;
+ }
+ return WebKit::WebMediaPlayer::NetworkStateFormatError;
+}
+
} // namespace webkit_media
« no previous file with comments | « webkit/media/webmediaplayer_util.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698