나는 avcodec_decode_video2 함수를 사용하고 있습니다. 스트림의 인코딩 변경시 -1094995529가 반환됩니다. 문서는 상태 : 음의 값이 반환됩니다 더 프레임이 압축 해제되지 않을 수 있다면, 그렇지 않으면 바이트 의 수가 제로 사용 오류에이 ffmpeg 오류 코드의 의미를 어떻게 알 수 있습니까?
.
그러나 리턴 코드 또는 다른 형식의 문서 열거 형은없는 것 같습니다. 오류의 의미는 무엇이며 어떻게 일반적으로이를 결정할 수 있습니까? 이것은 당신이 만날 수있는 오류의 전체 집합입니다
#include <errno.h>
#if EINVAL > 0
#define AVERROR(e) (-(e)) /**< Returns a negative error code from a POSIX error code, to return from library functions. */
#define AVUNERROR(e) (-(e)) /**< Returns a POSIX error code from a library function error return value. */
#else
/* Some platforms have E* and errno already negated. */
#define AVERROR(e) (e)
#define AVUNERROR(e) (e)
#endif
#define AVERROR_UNKNOWN AVERROR(EINVAL) /**< unknown error */
#define AVERROR_IO AVERROR(EIO) /**< I/O error */
#define AVERROR_NUMEXPECTED AVERROR(EDOM) /**< Number syntax expected in filename. */
#define AVERROR_INVALIDDATA AVERROR(EINVAL) /**< invalid data found */
#define AVERROR_NOMEM AVERROR(ENOMEM) /**< not enough memory */
#define AVERROR_NOFMT AVERROR(EILSEQ) /**< unknown format */
#define AVERROR_NOTSUPP AVERROR(ENOSYS) /**< Operation not supported. */
#define AVERROR_NOENT AVERROR(ENOENT) /**< No such file or directory. */
#define AVERROR_EOF AVERROR(EPIPE) /**< End of file. */
#define AVERROR_PATCHWELCOME -MKTAG('P','A','W','E') /**< Not yet implemented in FFmpeg. Patches welcome. */
avcodec.h \ 위해 libavcodec 파일
: 언급
감사합니다. 그러나 나는 이것들을 발견했다. 그들은 모두 1-131의 범위에있는 errno.h를 기반으로한다. 저는 -1094995529와 같은 큰 값이 어떻게 반환 될 수 있는지 이해하지 못합니다. – Asik
위 코드에서 부정으로 노는 것을 찾을 수 있습니다. 그럼에도 불구하고 우리 번호는 이상하게 보입니다. 그렇다면 왜 쓰지 않는가? if (retcode == AVERROR (EINVAL)) { printf ("unknown error"); } –