rgb2rgb.h 2.61 KB
Newer Older
1
/*
Nick Kurshev's avatar
Nick Kurshev committed
2
 *
3
 *  rgb2rgb.h, Software RGB to RGB convertor
4 5 6
 *  pluralize by Software PAL8 to RGB convertor
 *               Software YUV to YUV convertor
 *               Software YUV to RGB convertor
Nick Kurshev's avatar
Nick Kurshev committed
7 8 9 10 11
 */

#ifndef RGB2RGB_INCLUDED
#define RGB2RGB_INCLUDED

12 13 14
extern void rgb24to32(const uint8_t *src,uint8_t *dst,unsigned src_size);
extern void rgb32to24(const uint8_t *src,uint8_t *dst,unsigned src_size);
extern void rgb15to16(const uint8_t *src,uint8_t *dst,unsigned src_size);
Nick Kurshev's avatar
Nick Kurshev committed
15 16 17 18
extern void rgb32to16(const uint8_t *src,uint8_t *dst,unsigned src_size);
extern void rgb32to15(const uint8_t *src,uint8_t *dst,unsigned src_size);
extern void rgb24to16(const uint8_t *src,uint8_t *dst,unsigned src_size);
extern void rgb24to15(const uint8_t *src,uint8_t *dst,unsigned src_size);
19
extern void rgb32tobgr32(const uint8_t *src, uint8_t *dst, unsigned src_size);
Michael Niedermayer's avatar
Michael Niedermayer committed
20
extern void rgb24tobgr24(const uint8_t *src, uint8_t *dst, unsigned src_size);
Nick Kurshev's avatar
Nick Kurshev committed
21

22

23 24 25 26 27
extern void palette8torgb32(const uint8_t *src, uint8_t *dst, unsigned num_pixels, const uint8_t *palette);
extern void palette8torgb16(const uint8_t *src, uint8_t *dst, unsigned num_pixels, const uint8_t *palette);
extern void palette8torgb15(const uint8_t *src, uint8_t *dst, unsigned num_pixels, const uint8_t *palette);
extern void palette8torgb24(const uint8_t *src, uint8_t *dst, unsigned num_pixels, const uint8_t *palette);

Michael Niedermayer's avatar
Michael Niedermayer committed
28
extern void yv12toyuy2(const uint8_t *ysrc, const uint8_t *usrc, const uint8_t *vsrc, uint8_t *dst,
29 30 31
	unsigned int width, unsigned int height,
	unsigned int lumStride, unsigned int chromStride, unsigned int dstStride);
extern void yuv422ptoyuy2(const uint8_t *ysrc, const uint8_t *usrc, const uint8_t *vsrc, uint8_t *dst,
Michael Niedermayer's avatar
Michael Niedermayer committed
32 33
	unsigned int width, unsigned int height,
	unsigned int lumStride, unsigned int chromStride, unsigned int dstStride);
34
extern void yuy2toyv12(const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8_t *vdst,
Michael Niedermayer's avatar
Michael Niedermayer committed
35 36
	unsigned int width, unsigned int height,
	unsigned int lumStride, unsigned int chromStride, unsigned int srcStride);
Michael Niedermayer's avatar
Michael Niedermayer committed
37 38 39
extern void rgb24toyv12(const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8_t *vdst,
	unsigned int width, unsigned int height,
	unsigned int lumStride, unsigned int chromStride, unsigned int srcStride);
Michael Niedermayer's avatar
Michael Niedermayer committed
40

41 42 43 44
extern void interleaveBytes(uint8_t *src1, uint8_t *src2, uint8_t *dst,
			    int width, int height, int src1Stride, int src2Stride, int dstStride);
	

45 46 47 48 49 50 51 52 53 54 55 56
#define MODE_RGB  0x1
#define MODE_BGR  0x2

typedef void (* yuv2rgb_fun) (uint8_t * image, uint8_t * py,
			      uint8_t * pu, uint8_t * pv,
			      int h_size, int v_size,
			      int rgb_stride, int y_stride, int uv_stride);

extern yuv2rgb_fun yuv2rgb;

void yuv2rgb_init (int bpp, int mode);

Nick Kurshev's avatar
Nick Kurshev committed
57
#endif