Mercurial > libavcodec.hg
diff imgconvert_template.h @ 1208:0f37976aa436 libavcodec
added img_get_alpha_info()
author | bellard |
---|---|
date | Mon, 21 Apr 2003 21:20:46 +0000 |
parents | e55580ae9969 |
children | 766a2f4edbea |
line wrap: on
line diff
--- a/imgconvert_template.h Mon Apr 21 15:15:59 2003 +0000 +++ b/imgconvert_template.h Mon Apr 21 21:20:46 2003 +0000 @@ -814,6 +814,34 @@ #endif /* defined(FMT_RGB24) || defined(FMT_RGBA32) */ +#ifdef RGBA_IN + +static int glue(get_alpha_info_, RGB_NAME)(AVPicture *src, int width, int height) +{ + const unsigned char *p; + int src_wrap, ret, x, y; + unsigned int r, g, b, a; + + p = src->data[0]; + src_wrap = src->linesize[0] - BPP * width; + ret = 0; + for(y=0;y<height;y++) { + for(x=0;x<width;x++) { + RGBA_IN(r, g, b, a, p); + if (a == 0x00) { + ret |= FF_ALPHA_TRANSP; + } else if (a != 0xff) { + ret |= FF_ALPHA_SEMI_TRANSP; + } + p += BPP; + } + p += src_wrap; + } + return ret; +} + +#endif /* RGBA_IN */ + #undef RGB_IN #undef RGBA_IN #undef RGB_OUT