diff options
Diffstat (limited to 'src/status_code.cc')
-rw-r--r-- | src/status_code.cc | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/src/status_code.cc b/src/status_code.cc new file mode 100644 index 0000000..34def08 --- /dev/null +++ b/src/status_code.cc @@ -0,0 +1,57 @@ +// Copyright 2019 The libgav1 Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "src/gav1/status_code.h" + +extern "C" { + +const char* Libgav1GetErrorString(Libgav1StatusCode status) { + switch (status) { + case kLibgav1StatusOk: + return "Success."; + case kLibgav1StatusUnknownError: + return "Unknown error."; + case kLibgav1StatusInvalidArgument: + return "Invalid function argument."; + case kLibgav1StatusOutOfMemory: + return "Memory allocation failure."; + case kLibgav1StatusResourceExhausted: + return "Ran out of a resource (other than memory)."; + case kLibgav1StatusNotInitialized: + return "The object is not initialized."; + case kLibgav1StatusAlready: + return "An operation that can only be performed once has already been " + "performed."; + case kLibgav1StatusUnimplemented: + return "Not implemented."; + case kLibgav1StatusInternalError: + return "Internal error in libgav1."; + case kLibgav1StatusBitstreamError: + return "The bitstream is not encoded correctly or violates a bitstream " + "conformance requirement."; + case kLibgav1StatusTryAgain: + return "The operation is not allowed at the moment. Try again later."; + case kLibgav1StatusNothingToDequeue: + return "There are no enqueued frames, so there is nothing to dequeue. " + "Try enqueuing a frame before trying to dequeue again."; + // This switch statement does not have a default case. This way the compiler + // will warn if we neglect to update this function after adding a new value + // to the Libgav1StatusCode enum type. + case kLibgav1StatusReservedForFutureExpansionUseDefaultInSwitchInstead_: + break; + } + return "Unrecognized status code."; +} + +} // extern "C" |