首页 > 代码库 > 一些错误码的值

一些错误码的值

今天用av_seek_frame后,调用av_read_frame返回了错误码,花了点时间才确定错误码啥意思。

先记一下,方便以后查询和补充。

#include <stdio.h>

#define MKTAG(a,b,c,d) ((a) | ((b) << 8) | ((c) << 16) | ((unsigned)(d) << 24))


#define FFERRTAG(a, b, c, d) (-(int)MKTAG(a, b, c, d))

#define AVERROR_BSF_NOT_FOUND      FFERRTAG(0xF8,‘B‘,‘S‘,‘F‘) ///< Bitstream filter not found
#define AVERROR_BUG                FFERRTAG( ‘B‘,‘U‘,‘G‘,‘!‘) ///< Internal bug, also see AVERROR_BUG2
#define AVERROR_BUFFER_TOO_SMALL   FFERRTAG( ‘B‘,‘U‘,‘F‘,‘S‘) ///< Buffer too small
#define AVERROR_DECODER_NOT_FOUND  FFERRTAG(0xF8,‘D‘,‘E‘,‘C‘) ///< Decoder not found
#define AVERROR_DEMUXER_NOT_FOUND  FFERRTAG(0xF8,‘D‘,‘E‘,‘M‘) ///< Demuxer not found
#define AVERROR_ENCODER_NOT_FOUND  FFERRTAG(0xF8,‘E‘,‘N‘,‘C‘) ///< Encoder not found
#define AVERROR_EOF                FFERRTAG( ‘E‘,‘O‘,‘F‘,‘ ‘) ///< End of file
#define AVERROR_EXIT               FFERRTAG( ‘E‘,‘X‘,‘I‘,‘T‘) ///< Immediate exit was requested; the called function should not be r
estarted
#define AVERROR_EXTERNAL           FFERRTAG( ‘E‘,‘X‘,‘T‘,‘ ‘) ///< Generic error in an external library
#define AVERROR_FILTER_NOT_FOUND   FFERRTAG(0xF8,‘F‘,‘I‘,‘L‘) ///< Filter not found
#define AVERROR_INVALIDDATA        FFERRTAG( ‘I‘,‘N‘,‘D‘,‘A‘) ///< Invalid data found when processing input
#define AVERROR_MUXER_NOT_FOUND    FFERRTAG(0xF8,‘M‘,‘U‘,‘X‘) ///< Muxer not found
#define AVERROR_OPTION_NOT_FOUND   FFERRTAG(0xF8,‘O‘,‘P‘,‘T‘) ///< Option not found
#define AVERROR_PATCHWELCOME       FFERRTAG( ‘P‘,‘A‘,‘W‘,‘E‘) ///< Not yet implemented in FFmpeg, patches welcome
#define AVERROR_PROTOCOL_NOT_FOUND FFERRTAG(0xF8,‘P‘,‘R‘,‘O‘) ///< Protocol not found

#define AVERROR_STREAM_NOT_FOUND   FFERRTAG(0xF8,‘S‘,‘T‘,‘R‘) ///< Stream not found


int main(void)
{
    printf("AVERROR_BSF_NOT_FOUND: %d\n", AVERROR_BSF_NOT_FOUND);
    printf("AVERROR_BUG: %d\n", AVERROR_BUG);
    printf("AVERROR_BUFFER_TOO_SMALL: %d\n",AVERROR_BUFFER_TOO_SMALL);
    printf("AVERROR_DECODER_NOT_FOUND: %d\n", AVERROR_DECODER_NOT_FOUND);
    printf("AVERROR_DEMUXER_NOT_FOUND: %d\n", AVERROR_DEMUXER_NOT_FOUND);
    printf("AVERROR_ENCODER_NOT_FOUND: %d\n", AVERROR_ENCODER_NOT_FOUND);
    printf("AVERROR_EOF: %d\n", AVERROR_EOF);
    printf("AVERROR_EXIT: %d\n", AVERROR_EXIT);
    printf("AVERROR_EXTERNAL: %d\n", AVERROR_EXTERNAL);
    printf("AVERROR_FILTER_NOT_FOUND: %d\n", AVERROR_FILTER_NOT_FOUND);
    printf("AVERROR_INVALIDDATA: %d\n", AVERROR_INVALIDDATA);
    printf("AVERROR_MUXER_NOT_FOUND: %d\n", AVERROR_MUXER_NOT_FOUND);
    printf("AVERROR_OPTION_NOT_FOUND: %d\n", AVERROR_OPTION_NOT_FOUND);
    printf("AVERROR_PATCHWELCOME: %d\n", AVERROR_PATCHWELCOME);
    printf("AVERROR_PROTOCOL_NOT_FOUND: %d\n", AVERROR_PROTOCOL_NOT_FOUND);
    printf("AVERROR_STREAM_NOT_FOUND: %d\n", AVERROR_STREAM_NOT_FOUND);
    return 0;
}

返回值:

AVERROR_BSF_NOT_FOUND: -1179861752
AVERROR_BUG: -558323010
AVERROR_BUFFER_TOO_SMALL: -1397118274
AVERROR_DECODER_NOT_FOUND: -1128613112
AVERROR_DEMUXER_NOT_FOUND: -1296385272
AVERROR_ENCODER_NOT_FOUND: -1129203192
AVERROR_EOF: -541478725
AVERROR_EXIT: -1414092869
AVERROR_EXTERNAL: -542398533
AVERROR_FILTER_NOT_FOUND: -1279870712
AVERROR_INVALIDDATA: -1094995529
AVERROR_MUXER_NOT_FOUND: -1481985528
AVERROR_OPTION_NOT_FOUND: -1414549496
AVERROR_PATCHWELCOME: -1163346256
AVERROR_PROTOCOL_NOT_FOUND: -1330794744
AVERROR_STREAM_NOT_FOUND: -1381258232

 

一些错误码的值