tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

error.h (5806B)


      1 /*
      2 * This file is part of FFmpeg.
      3 *
      4 * FFmpeg is free software; you can redistribute it and/or
      5 * modify it under the terms of the GNU Lesser General Public
      6 * License as published by the Free Software Foundation; either
      7 * version 2.1 of the License, or (at your option) any later version.
      8 *
      9 * FFmpeg is distributed in the hope that it will be useful,
     10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
     11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     12 * Lesser General Public License for more details.
     13 *
     14 * You should have received a copy of the GNU Lesser General Public
     15 * License along with FFmpeg; if not, write to the Free Software
     16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
     17 */
     18 
     19 /**
     20 * @file
     21 * error code definitions
     22 */
     23 
     24 #ifndef AVUTIL_ERROR_H
     25 #define AVUTIL_ERROR_H
     26 
     27 #include <errno.h>
     28 #include <stddef.h>
     29 
     30 #include "macros.h"
     31 
     32 /**
     33 * @addtogroup lavu_error
     34 *
     35 * @{
     36 */
     37 
     38 /* error handling */
     39 #if EDOM > 0
     40 #  define AVERROR(e) \
     41    (-(e))  ///< Returns a negative error code from a POSIX error code, to
     42            ///< return from library functions.
     43 #  define AVUNERROR(e) \
     44    (-(e))  ///< Returns a POSIX error code from a library function error return
     45            ///< value.
     46 #else
     47 /* Some platforms have E* and errno already negated. */
     48 #  define AVERROR(e) (e)
     49 #  define AVUNERROR(e) (e)
     50 #endif
     51 
     52 #define FFERRTAG(a, b, c, d) (-(int)MKTAG(a, b, c, d))
     53 
     54 #define AVERROR_BSF_NOT_FOUND \
     55  FFERRTAG(0xF8, 'B', 'S', 'F')  ///< Bitstream filter not found
     56 #define AVERROR_BUG \
     57  FFERRTAG('B', 'U', 'G', '!')  ///< Internal bug, also see AVERROR_BUG2
     58 #define AVERROR_BUFFER_TOO_SMALL \
     59  FFERRTAG('B', 'U', 'F', 'S')  ///< Buffer too small
     60 #define AVERROR_DECODER_NOT_FOUND \
     61  FFERRTAG(0xF8, 'D', 'E', 'C')  ///< Decoder not found
     62 #define AVERROR_DEMUXER_NOT_FOUND \
     63  FFERRTAG(0xF8, 'D', 'E', 'M')  ///< Demuxer not found
     64 #define AVERROR_ENCODER_NOT_FOUND \
     65  FFERRTAG(0xF8, 'E', 'N', 'C')                   ///< Encoder not found
     66 #define AVERROR_EOF FFERRTAG('E', 'O', 'F', ' ')  ///< End of file
     67 #define AVERROR_EXIT \
     68  FFERRTAG('E', 'X', 'I', 'T')  ///< Immediate exit was requested; the called
     69                                ///< function should not be restarted
     70 #define AVERROR_EXTERNAL \
     71  FFERRTAG('E', 'X', 'T', ' ')  ///< Generic error in an external library
     72 #define AVERROR_FILTER_NOT_FOUND \
     73  FFERRTAG(0xF8, 'F', 'I', 'L')  ///< Filter not found
     74 #define AVERROR_INVALIDDATA \
     75  FFERRTAG('I', 'N', 'D', 'A')  ///< Invalid data found when processing input
     76 #define AVERROR_MUXER_NOT_FOUND \
     77  FFERRTAG(0xF8, 'M', 'U', 'X')  ///< Muxer not found
     78 #define AVERROR_OPTION_NOT_FOUND \
     79  FFERRTAG(0xF8, 'O', 'P', 'T')  ///< Option not found
     80 #define AVERROR_PATCHWELCOME \
     81  FFERRTAG('P', 'A', 'W',    \
     82           'E')  ///< Not yet implemented in FFmpeg, patches welcome
     83 #define AVERROR_PROTOCOL_NOT_FOUND \
     84  FFERRTAG(0xF8, 'P', 'R', 'O')  ///< Protocol not found
     85 
     86 #define AVERROR_STREAM_NOT_FOUND \
     87  FFERRTAG(0xF8, 'S', 'T', 'R')  ///< Stream not found
     88 /**
     89 * This is semantically identical to AVERROR_BUG
     90 * it has been introduced in Libav after our AVERROR_BUG and with a modified
     91 * value.
     92 */
     93 #define AVERROR_BUG2 FFERRTAG('B', 'U', 'G', ' ')
     94 #define AVERROR_UNKNOWN   \
     95  FFERRTAG('U', 'N', 'K', \
     96           'N')  ///< Unknown error, typically from an external library
     97 #define AVERROR_EXPERIMENTAL \
     98  (-0x2bb2afa8)  ///< Requested feature is flagged experimental. Set
     99                 ///< strict_std_compliance if you really want to use it.
    100 #define AVERROR_INPUT_CHANGED \
    101  (-0x636e6701)  ///< Input changed between calls. Reconfiguration is required.
    102                 ///< (can be OR-ed with AVERROR_OUTPUT_CHANGED)
    103 #define AVERROR_OUTPUT_CHANGED \
    104  (-0x636e6702)  ///< Output changed between calls. Reconfiguration is required.
    105                 ///< (can be OR-ed with AVERROR_INPUT_CHANGED)
    106 /* HTTP & RTSP errors */
    107 #define AVERROR_HTTP_BAD_REQUEST FFERRTAG(0xF8, '4', '0', '0')
    108 #define AVERROR_HTTP_UNAUTHORIZED FFERRTAG(0xF8, '4', '0', '1')
    109 #define AVERROR_HTTP_FORBIDDEN FFERRTAG(0xF8, '4', '0', '3')
    110 #define AVERROR_HTTP_NOT_FOUND FFERRTAG(0xF8, '4', '0', '4')
    111 #define AVERROR_HTTP_OTHER_4XX FFERRTAG(0xF8, '4', 'X', 'X')
    112 #define AVERROR_HTTP_SERVER_ERROR FFERRTAG(0xF8, '5', 'X', 'X')
    113 
    114 #define AV_ERROR_MAX_STRING_SIZE 64
    115 
    116 /**
    117 * Put a description of the AVERROR code errnum in errbuf.
    118 * In case of failure the global variable errno is set to indicate the
    119 * error. Even in case of failure av_strerror() will print a generic
    120 * error message indicating the errnum provided to errbuf.
    121 *
    122 * @param errnum      error code to describe
    123 * @param errbuf      buffer to which description is written
    124 * @param errbuf_size the size in bytes of errbuf
    125 * @return 0 on success, a negative value if a description for errnum
    126 * cannot be found
    127 */
    128 int av_strerror(int errnum, char* errbuf, size_t errbuf_size);
    129 
    130 /**
    131 * Fill the provided buffer with a string containing an error string
    132 * corresponding to the AVERROR code errnum.
    133 *
    134 * @param errbuf         a buffer
    135 * @param errbuf_size    size in bytes of errbuf
    136 * @param errnum         error code to describe
    137 * @return the buffer in input, filled with the error description
    138 * @see av_strerror()
    139 */
    140 static inline char* av_make_error_string(char* errbuf, size_t errbuf_size,
    141                                         int errnum) {
    142  av_strerror(errnum, errbuf, errbuf_size);
    143  return errbuf;
    144 }
    145 
    146 /**
    147 * Convenience macro, the return value should be used only directly in
    148 * function arguments but never stand-alone.
    149 */
    150 #define av_err2str(errnum)                                  \
    151  av_make_error_string((char[AV_ERROR_MAX_STRING_SIZE]){0}, \
    152                       AV_ERROR_MAX_STRING_SIZE, errnum)
    153 
    154 /**
    155 * @}
    156 */
    157 
    158 #endif /* AVUTIL_ERROR_H */