diff options
Diffstat (limited to 'chromium/media/base/pipeline_status.cc')
-rw-r--r-- | chromium/media/base/pipeline_status.cc | 110 |
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 |