LCOV - code coverage report
Current view: top level - libavutil - error.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 3 3 100.0 %
Date: 2017-12-15 02:19:58 Functions: 1 1 100.0 %

          Line data    Source code
       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             : /**
      31             :  * @addtogroup lavu_error
      32             :  *
      33             :  * @{
      34             :  */
      35             : 
      36             : 
      37             : /* error handling */
      38             : #if EDOM > 0
      39             : #define AVERROR(e) (-(e))   ///< Returns a negative error code from a POSIX error code, to return from library functions.
      40             : #define AVUNERROR(e) (-(e)) ///< Returns a POSIX error code from a library function error return value.
      41             : #else
      42             : /* Some platforms have E* and errno already negated. */
      43             : #define AVERROR(e) (e)
      44             : #define AVUNERROR(e) (e)
      45             : #endif
      46             : 
      47             : #define FFERRTAG(a, b, c, d) (-(int)MKTAG(a, b, c, d))
      48             : 
      49             : #define AVERROR_BSF_NOT_FOUND      FFERRTAG(0xF8,'B','S','F') ///< Bitstream filter not found
      50             : #define AVERROR_BUG                FFERRTAG( 'B','U','G','!') ///< Internal bug, also see AVERROR_BUG2
      51             : #define AVERROR_BUFFER_TOO_SMALL   FFERRTAG( 'B','U','F','S') ///< Buffer too small
      52             : #define AVERROR_DECODER_NOT_FOUND  FFERRTAG(0xF8,'D','E','C') ///< Decoder not found
      53             : #define AVERROR_DEMUXER_NOT_FOUND  FFERRTAG(0xF8,'D','E','M') ///< Demuxer not found
      54             : #define AVERROR_ENCODER_NOT_FOUND  FFERRTAG(0xF8,'E','N','C') ///< Encoder not found
      55             : #define AVERROR_EOF                FFERRTAG( 'E','O','F',' ') ///< End of file
      56             : #define AVERROR_EXIT               FFERRTAG( 'E','X','I','T') ///< Immediate exit was requested; the called function should not be restarted
      57             : #define AVERROR_EXTERNAL           FFERRTAG( 'E','X','T',' ') ///< Generic error in an external library
      58             : #define AVERROR_FILTER_NOT_FOUND   FFERRTAG(0xF8,'F','I','L') ///< Filter not found
      59             : #define AVERROR_INVALIDDATA        FFERRTAG( 'I','N','D','A') ///< Invalid data found when processing input
      60             : #define AVERROR_MUXER_NOT_FOUND    FFERRTAG(0xF8,'M','U','X') ///< Muxer not found
      61             : #define AVERROR_OPTION_NOT_FOUND   FFERRTAG(0xF8,'O','P','T') ///< Option not found
      62             : #define AVERROR_PATCHWELCOME       FFERRTAG( 'P','A','W','E') ///< Not yet implemented in FFmpeg, patches welcome
      63             : #define AVERROR_PROTOCOL_NOT_FOUND FFERRTAG(0xF8,'P','R','O') ///< Protocol not found
      64             : 
      65             : #define AVERROR_STREAM_NOT_FOUND   FFERRTAG(0xF8,'S','T','R') ///< Stream not found
      66             : /**
      67             :  * This is semantically identical to AVERROR_BUG
      68             :  * it has been introduced in Libav after our AVERROR_BUG and with a modified value.
      69             :  */
      70             : #define AVERROR_BUG2               FFERRTAG( 'B','U','G',' ')
      71             : #define AVERROR_UNKNOWN            FFERRTAG( 'U','N','K','N') ///< Unknown error, typically from an external library
      72             : #define AVERROR_EXPERIMENTAL       (-0x2bb2afa8) ///< Requested feature is flagged experimental. Set strict_std_compliance if you really want to use it.
      73             : #define AVERROR_INPUT_CHANGED      (-0x636e6701) ///< Input changed between calls. Reconfiguration is required. (can be OR-ed with AVERROR_OUTPUT_CHANGED)
      74             : #define AVERROR_OUTPUT_CHANGED     (-0x636e6702) ///< Output changed between calls. Reconfiguration is required. (can be OR-ed with AVERROR_INPUT_CHANGED)
      75             : /* HTTP & RTSP errors */
      76             : #define AVERROR_HTTP_BAD_REQUEST   FFERRTAG(0xF8,'4','0','0')
      77             : #define AVERROR_HTTP_UNAUTHORIZED  FFERRTAG(0xF8,'4','0','1')
      78             : #define AVERROR_HTTP_FORBIDDEN     FFERRTAG(0xF8,'4','0','3')
      79             : #define AVERROR_HTTP_NOT_FOUND     FFERRTAG(0xF8,'4','0','4')
      80             : #define AVERROR_HTTP_OTHER_4XX     FFERRTAG(0xF8,'4','X','X')
      81             : #define AVERROR_HTTP_SERVER_ERROR  FFERRTAG(0xF8,'5','X','X')
      82             : 
      83             : #define AV_ERROR_MAX_STRING_SIZE 64
      84             : 
      85             : /**
      86             :  * Put a description of the AVERROR code errnum in errbuf.
      87             :  * In case of failure the global variable errno is set to indicate the
      88             :  * error. Even in case of failure av_strerror() will print a generic
      89             :  * error message indicating the errnum provided to errbuf.
      90             :  *
      91             :  * @param errnum      error code to describe
      92             :  * @param errbuf      buffer to which description is written
      93             :  * @param errbuf_size the size in bytes of errbuf
      94             :  * @return 0 on success, a negative value if a description for errnum
      95             :  * cannot be found
      96             :  */
      97             : int av_strerror(int errnum, char *errbuf, size_t errbuf_size);
      98             : 
      99             : /**
     100             :  * Fill the provided buffer with a string containing an error string
     101             :  * corresponding to the AVERROR code errnum.
     102             :  *
     103             :  * @param errbuf         a buffer
     104             :  * @param errbuf_size    size in bytes of errbuf
     105             :  * @param errnum         error code to describe
     106             :  * @return the buffer in input, filled with the error description
     107             :  * @see av_strerror()
     108             :  */
     109         509 : static inline char *av_make_error_string(char *errbuf, size_t errbuf_size, int errnum)
     110             : {
     111         509 :     av_strerror(errnum, errbuf, errbuf_size);
     112         509 :     return errbuf;
     113             : }
     114             : 
     115             : /**
     116             :  * Convenience macro, the return value should be used only directly in
     117             :  * function arguments but never stand-alone.
     118             :  */
     119             : #define av_err2str(errnum) \
     120             :     av_make_error_string((char[AV_ERROR_MAX_STRING_SIZE]){0}, AV_ERROR_MAX_STRING_SIZE, errnum)
     121             : 
     122             : /**
     123             :  * @}
     124             :  */
     125             : 
     126             : #endif /* AVUTIL_ERROR_H */

Generated by: LCOV version 1.13