Revision 8a322796 libswscale/rgb2rgb.h
libswscale/rgb2rgb.h  

1  1 
/* 
2 
* rgb2rgb.h, Software RGB to RGB convertor


3 
* pluralize by Software PAL8 to RGB convertor


4 
* Software YUV to YUV convertor


5 
* Software YUV to RGB convertor


2 
* software RGB to RGB converter


3 
* pluralize by Software PAL8 to RGB converter


4 
* Software YUV to YUV converter


5 
* Software YUV to RGB converter


6  6 
* Written by Nick Kurshev. 
7  7 
* palette & YUV & runtime CPU stuff by Michael (michaelni@gmx.at) 
8  8 
* 
...  ...  
28  28  
29  29 
#include <inttypes.h> 
30  30  
31 
/* A full collection of rgb to rgb(bgr) convertors */


31 
/* A full collection of RGB to RGB(BGR) converters */


32  32 
extern void (*rgb24to32) (const uint8_t *src, uint8_t *dst, long src_size); 
33  33 
extern void (*rgb24to16) (const uint8_t *src, uint8_t *dst, long src_size); 
34  34 
extern void (*rgb24to15) (const uint8_t *src, uint8_t *dst, long src_size); 
...  ...  
71  71 
extern void palette8tobgr15(const uint8_t *src, uint8_t *dst, long num_pixels, const uint8_t *palette); 
72  72  
73  73 
/** 
74 
* 

75 
* height should be a multiple of 2 and width should be a multiple of 16 (if this is a


76 
* problem for anyone then tell me, and ill fix it)


77 
* chrominance data is only taken from every secound line others are ignored FIXME write HQ version


74 
* Height should be a multiple of 2 and width should be a multiple of 16.


75 
* (If this is a problem for anyone then tell me, and I will fix it.)


76 
* Chrominance data is only taken from every second line, others are ignored.


77 
* FIXME: Write HQ version.


78  78 
*/ 
79  79 
//void uyvytoyv12(const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8_t *vdst, 
80  80  
81  81 
/** 
82 
* 

83 
* height should be a multiple of 2 and width should be a multiple of 16 (if this is a 

84 
* problem for anyone then tell me, and ill fix it) 

82 
* Height should be a multiple of 2 and width should be a multiple of 16. 

83 
* (If this is a problem for anyone then tell me, and I will fix it.) 

85  84 
*/ 
86  85 
extern void (*yv12toyuy2)(const uint8_t *ysrc, const uint8_t *usrc, const uint8_t *vsrc, uint8_t *dst, 
87  86 
long width, long height, 
88  87 
long lumStride, long chromStride, long dstStride); 
89  88  
90  89 
/** 
91 
* 

92 
* width should be a multiple of 16 

90 
* Width should be a multiple of 16. 

93  91 
*/ 
94  92 
extern void (*yuv422ptoyuy2)(const uint8_t *ysrc, const uint8_t *usrc, const uint8_t *vsrc, uint8_t *dst, 
95  93 
long width, long height, 
96  94 
long lumStride, long chromStride, long dstStride); 
97  95  
98  96 
/** 
99 
* 

100 
* height should be a multiple of 2 and width should be a multiple of 16 (if this is a 

101 
* problem for anyone then tell me, and ill fix it) 

97 
* Height should be a multiple of 2 and width should be a multiple of 16. 

98 
* (If this is a problem for anyone then tell me, and I will fix it.) 

102  99 
*/ 
103  100 
extern void (*yuy2toyv12)(const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8_t *vdst, 
104  101 
long width, long height, 
105  102 
long lumStride, long chromStride, long srcStride); 
106  103  
107  104 
/** 
108 
* 

109 
* height should be a multiple of 2 and width should be a multiple of 16 (if this is a 

110 
* problem for anyone then tell me, and ill fix it) 

105 
* Height should be a multiple of 2 and width should be a multiple of 16. 

106 
* (If this is a problem for anyone then tell me, and I will fix it.) 

111  107 
*/ 
112  108 
extern void (*yv12touyvy)(const uint8_t *ysrc, const uint8_t *usrc, const uint8_t *vsrc, uint8_t *dst, 
113  109 
long width, long height, 
114  110 
long lumStride, long chromStride, long dstStride); 
115  111  
116  112 
/** 
117 
* 

118 
* height should be a multiple of 2 and width should be a multiple of 2 (if this is a


119 
* problem for anyone then tell me, and ill fix it)


120 
* chrominance data is only taken from every secound line others are ignored FIXME write HQ version


113 
* Height should be a multiple of 2 and width should be a multiple of 2.


114 
* (If this is a problem for anyone then tell me, and I will fix it.)


115 
* Chrominance data is only taken from every second line, others are ignored.


116 
* FIXME: Write HQ version.


121  117 
*/ 
122  118 
extern void (*rgb24toyv12)(const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8_t *vdst, 
123  119 
long width, long height, 
Also available in: Unified diff