summaryrefslogtreecommitdiff
path: root/chromium/media/base/pipeline_status.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/media/base/pipeline_status.cc')
-rw-r--r--chromium/media/base/pipeline_status.cc110
1 files changed, 90 insertions, 20 deletions
diff --git a/chromium/media/base/pipeline_status.cc b/chromium/media/base/pipeline_status.cc
index 17e47f1e48e..ab7dfbee853 100644
--- a/chromium/media/base/pipeline_status.cc
+++ b/chromium/media/base/pipeline_status.cc
@@ -8,6 +8,96 @@
namespace media {
+base::Optional<PipelineStatus> StatusCodeToPipelineStatus(StatusCode status) {
+ switch (status) {
+ case StatusCode::kOk:
+ return PIPELINE_OK;
+ case StatusCode::kPipelineErrorNetwork:
+ return PIPELINE_ERROR_NETWORK;
+ case StatusCode::kPipelineErrorDecode:
+ return PIPELINE_ERROR_DECODE;
+ case StatusCode::kPipelineErrorAbort:
+ return PIPELINE_ERROR_ABORT;
+ case StatusCode::kPipelineErrorInitializationFailed:
+ return PIPELINE_ERROR_INITIALIZATION_FAILED;
+ case StatusCode::kPipelineErrorCouldNotRender:
+ return PIPELINE_ERROR_COULD_NOT_RENDER;
+ case StatusCode::kPipelineErrorRead:
+ return PIPELINE_ERROR_READ;
+ case StatusCode::kPipelineErrorInvalidState:
+ return PIPELINE_ERROR_INVALID_STATE;
+ case StatusCode::kPipelineErrorDemuxerErrorCouldNotOpen:
+ return DEMUXER_ERROR_COULD_NOT_OPEN;
+ case StatusCode::kPipelineErrorDemuxerErrorCouldNotParse:
+ return DEMUXER_ERROR_COULD_NOT_PARSE;
+ case StatusCode::kPipelineErrorDemuxerErrorNoSupportedStreams:
+ return DEMUXER_ERROR_NO_SUPPORTED_STREAMS;
+ case StatusCode::kPipelineErrorDecoderErrorNotSupported:
+ return DECODER_ERROR_NOT_SUPPORTED;
+ case StatusCode::kPipelineErrorChuckDemuxerErrorAppendFailed:
+ return CHUNK_DEMUXER_ERROR_APPEND_FAILED;
+ case StatusCode::kPipelineErrorChunkDemuxerErrorEosStatusDecodeError:
+ return CHUNK_DEMUXER_ERROR_EOS_STATUS_DECODE_ERROR;
+ case StatusCode::kPipelineErrorChunkDemuxerErrorEosStatusNetworkError:
+ return CHUNK_DEMUXER_ERROR_EOS_STATUS_NETWORK_ERROR;
+ case StatusCode::kPipelineErrorAudioRendererError:
+ return AUDIO_RENDERER_ERROR;
+ case StatusCode::kPipelineErrorExternalRendererFailed:
+ return PIPELINE_ERROR_EXTERNAL_RENDERER_FAILED;
+ case StatusCode::kPipelineErrorDemuxerErrorDetectedHLS:
+ return DEMUXER_ERROR_DETECTED_HLS;
+ default:
+ NOTREACHED();
+ return base::nullopt;
+ }
+}
+
+StatusCode PipelineStatusToStatusCode(PipelineStatus status) {
+ switch (status) {
+ case PIPELINE_OK:
+ return StatusCode::kOk;
+ case PIPELINE_ERROR_NETWORK:
+ return StatusCode::kPipelineErrorNetwork;
+ case PIPELINE_ERROR_DECODE:
+ return StatusCode::kPipelineErrorDecode;
+ case PIPELINE_ERROR_ABORT:
+ return StatusCode::kPipelineErrorAbort;
+ case PIPELINE_ERROR_INITIALIZATION_FAILED:
+ return StatusCode::kPipelineErrorInitializationFailed;
+ case PIPELINE_ERROR_COULD_NOT_RENDER:
+ return StatusCode::kPipelineErrorCouldNotRender;
+ case PIPELINE_ERROR_READ:
+ return StatusCode::kPipelineErrorRead;
+ case PIPELINE_ERROR_INVALID_STATE:
+ return StatusCode::kPipelineErrorInvalidState;
+ case DEMUXER_ERROR_COULD_NOT_OPEN:
+ return StatusCode::kPipelineErrorDemuxerErrorCouldNotOpen;
+ case DEMUXER_ERROR_COULD_NOT_PARSE:
+ return StatusCode::kPipelineErrorDemuxerErrorCouldNotParse;
+ case DEMUXER_ERROR_NO_SUPPORTED_STREAMS:
+ return StatusCode::kPipelineErrorDemuxerErrorNoSupportedStreams;
+ case DECODER_ERROR_NOT_SUPPORTED:
+ return StatusCode::kPipelineErrorDecoderErrorNotSupported;
+ case CHUNK_DEMUXER_ERROR_APPEND_FAILED:
+ return StatusCode::kPipelineErrorChuckDemuxerErrorAppendFailed;
+ case CHUNK_DEMUXER_ERROR_EOS_STATUS_DECODE_ERROR:
+ return StatusCode::kPipelineErrorChunkDemuxerErrorEosStatusDecodeError;
+ case CHUNK_DEMUXER_ERROR_EOS_STATUS_NETWORK_ERROR:
+ return StatusCode::kPipelineErrorChunkDemuxerErrorEosStatusNetworkError;
+ case AUDIO_RENDERER_ERROR:
+ return StatusCode::kPipelineErrorAudioRendererError;
+ case PIPELINE_ERROR_EXTERNAL_RENDERER_FAILED:
+ return StatusCode::kPipelineErrorExternalRendererFailed;
+ case DEMUXER_ERROR_DETECTED_HLS:
+ return StatusCode::kPipelineErrorDemuxerErrorDetectedHLS;
+ }
+
+ NOTREACHED();
+ // TODO(crbug.com/1153465): Log pipeline status that failed to convert.
+ // Return a generic decode error.
+ return StatusCode::kPipelineErrorDecode;
+}
+
std::string PipelineStatusToString(PipelineStatus status) {
#define STRINGIFY_STATUS_CASE(status) \
case status: \
@@ -72,24 +162,4 @@ bool operator!=(const PipelineStatistics& first,
return !(first == second);
}
-bool operator==(const PipelineDecoderInfo& first,
- const PipelineDecoderInfo& second) {
- return first.decoder_name == second.decoder_name &&
- first.is_platform_decoder == second.is_platform_decoder &&
- first.has_decrypting_demuxer_stream ==
- second.has_decrypting_demuxer_stream;
-}
-
-bool operator!=(const PipelineDecoderInfo& first,
- const PipelineDecoderInfo& second) {
- return !(first == second);
-}
-
-std::ostream& operator<<(std::ostream& out, const PipelineDecoderInfo& info) {
- return out << "{decoder_name:" << info.decoder_name << ","
- << "is_platform_decoder:" << info.is_platform_decoder << ","
- << "has_decrypting_demuxer_stream:"
- << info.has_decrypting_demuxer_stream << "}";
-}
-
} // namespace media