Mercurial > libavcodec.hg
changeset 4520:9bf957e669f0 libavcodec
This fixes error handling for BeOS, removing the need for some ifdefs.
AVERROR_ defines are moved to avcodec.h as they are needed in there as well. Feel free to move that to avutil/common.h.
Bumped up avcodec/format version numbers as though it's binary compatible we will want to rebuild apps as error values changed.
Please from now on use return AVERROR(EFOO) instead of the ugly return -EFOO in your code.
This also removes the need for berrno.h.
author | mmu_man |
---|---|
date | Tue, 13 Feb 2007 18:26:14 +0000 |
parents | b08a4d11e01c |
children | 891590781d9e |
files | avcodec.h dv.c g726.c gifdec.c sonic.c |
diffstat | 5 files changed, 24 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/avcodec.h Tue Feb 13 16:06:50 2007 +0000 +++ b/avcodec.h Tue Feb 13 18:26:14 2007 +0000 @@ -37,8 +37,8 @@ #define AV_STRINGIFY(s) AV_TOSTRING(s) #define AV_TOSTRING(s) #s -#define LIBAVCODEC_VERSION_INT ((51<<16)+(32<<8)+0) -#define LIBAVCODEC_VERSION 51.32.0 +#define LIBAVCODEC_VERSION_INT ((51<<16)+(33<<8)+0) +#define LIBAVCODEC_VERSION 51.33.0 #define LIBAVCODEC_BUILD LIBAVCODEC_VERSION_INT #define LIBAVCODEC_IDENT "Lavc" AV_STRINGIFY(LIBAVCODEC_VERSION) @@ -2699,6 +2699,23 @@ extern unsigned int av_xiphlacing(unsigned char *s, unsigned int v); +/* error handling */ +#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 */ + #ifdef __cplusplus } #endif
--- a/dv.c Tue Feb 13 16:06:50 2007 +0000 +++ b/dv.c Tue Feb 13 18:26:14 2007 +0000 @@ -125,7 +125,7 @@ dv_vlc_map = av_mallocz_static(DV_VLC_MAP_LEV_SIZE*DV_VLC_MAP_RUN_SIZE*sizeof(struct dv_vlc_pair)); if (!dv_vlc_map) - return -ENOMEM; + return AVERROR(ENOMEM); /* dv_anchor lets each thread know its Id */ for (i=0; i<DV_ANCHOR_SIZE; i++) @@ -157,7 +157,7 @@ dv_rl_vlc = av_mallocz_static(dv_vlc.table_size * sizeof(RL_VLC_ELEM)); if (!dv_rl_vlc) - return -ENOMEM; + return AVERROR(ENOMEM); for(i = 0; i < dv_vlc.table_size; i++){ int code= dv_vlc.table[i][0];
--- a/g726.c Tue Feb 13 16:06:50 2007 +0000 +++ b/g726.c Tue Feb 13 18:26:14 2007 +0000 @@ -341,7 +341,7 @@ avctx->coded_frame = avcodec_alloc_frame(); if (!avctx->coded_frame) - return -ENOMEM; + return AVERROR(ENOMEM); avctx->coded_frame->key_frame = 1; return 0;
--- a/gifdec.c Tue Feb 13 16:06:50 2007 +0000 +++ b/gifdec.c Tue Feb 13 18:26:14 2007 +0000 @@ -87,7 +87,7 @@ /* verify that all the image is inside the screen dimensions */ if (left + width > s->screen_width || top + height > s->screen_height) - return -EINVAL; + return AVERROR(EINVAL); /* build the palette */ n = (1 << bits_per_pixel);
--- a/sonic.c Tue Feb 13 16:06:50 2007 +0000 +++ b/sonic.c Tue Feb 13 18:26:14 2007 +0000 @@ -601,7 +601,7 @@ avctx->coded_frame = avcodec_alloc_frame(); if (!avctx->coded_frame) - return -ENOMEM; + return AVERROR(ENOMEM); avctx->coded_frame->key_frame = 1; avctx->frame_size = s->block_align*s->downsampling;