diff options
Diffstat (limited to 'libswscale/swscale_internal.h')
-rw-r--r-- | libswscale/swscale_internal.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/libswscale/swscale_internal.h b/libswscale/swscale_internal.h index b3f20ccca0..7795f67a84 100644 --- a/libswscale/swscale_internal.h +++ b/libswscale/swscale_internal.h @@ -30,6 +30,7 @@ #include "libavutil/avassert.h" #include "libavutil/avutil.h" #include "libavutil/common.h" +#include "libavutil/intreadwrite.h" #include "libavutil/log.h" #include "libavutil/pixfmt.h" #include "libavutil/pixdesc.h" @@ -769,4 +770,24 @@ void ff_sws_init_output_funcs(SwsContext *c, void ff_sws_init_swScale_altivec(SwsContext *c); void ff_sws_init_swScale_mmx(SwsContext *c); +static inline void fillPlane16(uint8_t *plane, int stride, int width, int height, int y, + int alpha, int bits, const int big_endian) +{ + int i, j; + uint8_t *ptr = plane + stride * y; + int v = alpha ? 0xFFFF>>(15-bits) : (1<<bits); + for (i = 0; i < height; i++) { +#define FILL(wfunc) \ + for (j = 0; j < width; j++) {\ + wfunc(ptr+2*j, v);\ + } + if (big_endian) { + FILL(AV_WB16); + } else { + FILL(AV_WL16); + } + ptr += stride; + } +} + #endif /* SWSCALE_SWSCALE_INTERNAL_H */ |