annotate postproc/rgb2rgb.h @ 18715:30d7ddf08889

Fix window position when changing videos while in fullscreen and for window managers that modify position on Map. Oked by Alexander Strasser.
author reimar
date Thu, 15 Jun 2006 08:00:37 +0000
parents e91f944f6ed9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2694
2924350d92ed bgr32to16, bgr32to15 (needed for palette stuff)
michael
parents: 2677
diff changeset
1 /*
2504
13e1c5ab417a vo_vesa: rgb2rgb support
nick
parents:
diff changeset
2 *
2506
501752469c39 vo_vesa: more rgb2rgb support
nick
parents: 2505
diff changeset
3 * rgb2rgb.h, Software RGB to RGB convertor
2732
ae79207a3055 Move yuv2rgb to postprocess
nick
parents: 2725
diff changeset
4 * pluralize by Software PAL8 to RGB convertor
ae79207a3055 Move yuv2rgb to postprocess
nick
parents: 2725
diff changeset
5 * Software YUV to YUV convertor
ae79207a3055 Move yuv2rgb to postprocess
nick
parents: 2725
diff changeset
6 * Software YUV to RGB convertor
2504
13e1c5ab417a vo_vesa: rgb2rgb support
nick
parents:
diff changeset
7 */
13e1c5ab417a vo_vesa: rgb2rgb support
nick
parents:
diff changeset
8
13e1c5ab417a vo_vesa: rgb2rgb support
nick
parents:
diff changeset
9 #ifndef RGB2RGB_INCLUDED
13e1c5ab417a vo_vesa: rgb2rgb support
nick
parents:
diff changeset
10 #define RGB2RGB_INCLUDED
13e1c5ab417a vo_vesa: rgb2rgb support
nick
parents:
diff changeset
11
10895
2da8559e5f33 reversed for cause of code obsolescence
pl
parents: 10890
diff changeset
12 // Note: do not fix the dependence on stdio.h
10890
7777dded6caa printf() requires stdio.h
pl
parents: 10233
diff changeset
13
6606
50b5d8367318 merging changes from mplayerxp (rgb2rgb*.{c,h} only)
michael
parents: 6582
diff changeset
14 /* A full collection of rgb to rgb(bgr) convertors */
16739
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
15 extern void (*rgb24to32)(const uint8_t *src,uint8_t *dst,long src_size);
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
16 extern void (*rgb24to16)(const uint8_t *src,uint8_t *dst,long src_size);
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
17 extern void (*rgb24to15)(const uint8_t *src,uint8_t *dst,long src_size);
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
18 extern void (*rgb32to24)(const uint8_t *src,uint8_t *dst,long src_size);
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
19 extern void (*rgb32to16)(const uint8_t *src,uint8_t *dst,long src_size);
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
20 extern void (*rgb32to15)(const uint8_t *src,uint8_t *dst,long src_size);
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
21 extern void (*rgb15to16)(const uint8_t *src,uint8_t *dst,long src_size);
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
22 extern void (*rgb15to24)(const uint8_t *src,uint8_t *dst,long src_size);
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
23 extern void (*rgb15to32)(const uint8_t *src,uint8_t *dst,long src_size);
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
24 extern void (*rgb16to15)(const uint8_t *src,uint8_t *dst,long src_size);
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
25 extern void (*rgb16to24)(const uint8_t *src,uint8_t *dst,long src_size);
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
26 extern void (*rgb16to32)(const uint8_t *src,uint8_t *dst,long src_size);
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
27 extern void (*rgb24tobgr24)(const uint8_t *src, uint8_t *dst, long src_size);
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
28 extern void (*rgb24tobgr16)(const uint8_t *src, uint8_t *dst, long src_size);
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
29 extern void (*rgb24tobgr15)(const uint8_t *src, uint8_t *dst, long src_size);
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
30 extern void (*rgb32tobgr32)(const uint8_t *src, uint8_t *dst, long src_size);
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
31 extern void (*rgb32tobgr16)(const uint8_t *src, uint8_t *dst, long src_size);
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
32 extern void (*rgb32tobgr15)(const uint8_t *src, uint8_t *dst, long src_size);
9987
988c2ffc5bc1 remove remaining cpudetect dependancy
michael
parents: 9476
diff changeset
33
16739
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
34 extern void rgb24tobgr32(const uint8_t *src, uint8_t *dst, long src_size);
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
35 extern void rgb32tobgr24(const uint8_t *src, uint8_t *dst, long src_size);
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
36 extern void rgb16tobgr32(const uint8_t *src, uint8_t *dst, long src_size);
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
37 extern void rgb16tobgr24(const uint8_t *src, uint8_t *dst, long src_size);
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
38 extern void rgb16tobgr16(const uint8_t *src, uint8_t *dst, long src_size);
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
39 extern void rgb16tobgr15(const uint8_t *src, uint8_t *dst, long src_size);
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
40 extern void rgb15tobgr32(const uint8_t *src, uint8_t *dst, long src_size);
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
41 extern void rgb15tobgr24(const uint8_t *src, uint8_t *dst, long src_size);
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
42 extern void rgb15tobgr16(const uint8_t *src, uint8_t *dst, long src_size);
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
43 extern void rgb15tobgr15(const uint8_t *src, uint8_t *dst, long src_size);
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
44 extern void rgb8tobgr8(const uint8_t *src, uint8_t *dst, long src_size);
2504
13e1c5ab417a vo_vesa: rgb2rgb support
nick
parents:
diff changeset
45
2694
2924350d92ed bgr32to16, bgr32to15 (needed for palette stuff)
michael
parents: 2677
diff changeset
46
16739
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
47 extern void palette8torgb32(const uint8_t *src, uint8_t *dst, long num_pixels, const uint8_t *palette);
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
48 extern void palette8tobgr32(const uint8_t *src, uint8_t *dst, long num_pixels, const uint8_t *palette);
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
49 extern void palette8torgb24(const uint8_t *src, uint8_t *dst, long num_pixels, const uint8_t *palette);
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
50 extern void palette8tobgr24(const uint8_t *src, uint8_t *dst, long num_pixels, const uint8_t *palette);
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
51 extern void palette8torgb16(const uint8_t *src, uint8_t *dst, long num_pixels, const uint8_t *palette);
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
52 extern void palette8tobgr16(const uint8_t *src, uint8_t *dst, long num_pixels, const uint8_t *palette);
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
53 extern void palette8torgb15(const uint8_t *src, uint8_t *dst, long num_pixels, const uint8_t *palette);
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
54 extern void palette8tobgr15(const uint8_t *src, uint8_t *dst, long num_pixels, const uint8_t *palette);
2718
9c5e64493742 Well - old algorithms and new stuff rgb24to16(15)
nick
parents: 2711
diff changeset
55
9987
988c2ffc5bc1 remove remaining cpudetect dependancy
michael
parents: 9476
diff changeset
56 /**
988c2ffc5bc1 remove remaining cpudetect dependancy
michael
parents: 9476
diff changeset
57 *
988c2ffc5bc1 remove remaining cpudetect dependancy
michael
parents: 9476
diff changeset
58 * height should be a multiple of 2 and width should be a multiple of 16 (if this is a
988c2ffc5bc1 remove remaining cpudetect dependancy
michael
parents: 9476
diff changeset
59 * problem for anyone then tell me, and ill fix it)
988c2ffc5bc1 remove remaining cpudetect dependancy
michael
parents: 9476
diff changeset
60 * chrominance data is only taken from every secound line others are ignored FIXME write HQ version
988c2ffc5bc1 remove remaining cpudetect dependancy
michael
parents: 9476
diff changeset
61 */
988c2ffc5bc1 remove remaining cpudetect dependancy
michael
parents: 9476
diff changeset
62 //void uyvytoyv12(const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8_t *vdst,
988c2ffc5bc1 remove remaining cpudetect dependancy
michael
parents: 9476
diff changeset
63
988c2ffc5bc1 remove remaining cpudetect dependancy
michael
parents: 9476
diff changeset
64 /**
988c2ffc5bc1 remove remaining cpudetect dependancy
michael
parents: 9476
diff changeset
65 *
988c2ffc5bc1 remove remaining cpudetect dependancy
michael
parents: 9476
diff changeset
66 * height should be a multiple of 2 and width should be a multiple of 16 (if this is a
988c2ffc5bc1 remove remaining cpudetect dependancy
michael
parents: 9476
diff changeset
67 * problem for anyone then tell me, and ill fix it)
988c2ffc5bc1 remove remaining cpudetect dependancy
michael
parents: 9476
diff changeset
68 */
988c2ffc5bc1 remove remaining cpudetect dependancy
michael
parents: 9476
diff changeset
69 extern void (*yv12toyuy2)(const uint8_t *ysrc, const uint8_t *usrc, const uint8_t *vsrc, uint8_t *dst,
16739
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
70 long width, long height,
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
71 long lumStride, long chromStride, long dstStride);
9987
988c2ffc5bc1 remove remaining cpudetect dependancy
michael
parents: 9476
diff changeset
72
988c2ffc5bc1 remove remaining cpudetect dependancy
michael
parents: 9476
diff changeset
73 /**
988c2ffc5bc1 remove remaining cpudetect dependancy
michael
parents: 9476
diff changeset
74 *
988c2ffc5bc1 remove remaining cpudetect dependancy
michael
parents: 9476
diff changeset
75 * width should be a multiple of 16
988c2ffc5bc1 remove remaining cpudetect dependancy
michael
parents: 9476
diff changeset
76 */
988c2ffc5bc1 remove remaining cpudetect dependancy
michael
parents: 9476
diff changeset
77 extern void (*yuv422ptoyuy2)(const uint8_t *ysrc, const uint8_t *usrc, const uint8_t *vsrc, uint8_t *dst,
16739
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
78 long width, long height,
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
79 long lumStride, long chromStride, long dstStride);
9987
988c2ffc5bc1 remove remaining cpudetect dependancy
michael
parents: 9476
diff changeset
80
988c2ffc5bc1 remove remaining cpudetect dependancy
michael
parents: 9476
diff changeset
81 /**
988c2ffc5bc1 remove remaining cpudetect dependancy
michael
parents: 9476
diff changeset
82 *
988c2ffc5bc1 remove remaining cpudetect dependancy
michael
parents: 9476
diff changeset
83 * height should be a multiple of 2 and width should be a multiple of 16 (if this is a
988c2ffc5bc1 remove remaining cpudetect dependancy
michael
parents: 9476
diff changeset
84 * problem for anyone then tell me, and ill fix it)
988c2ffc5bc1 remove remaining cpudetect dependancy
michael
parents: 9476
diff changeset
85 */
988c2ffc5bc1 remove remaining cpudetect dependancy
michael
parents: 9476
diff changeset
86 extern void (*yuy2toyv12)(const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8_t *vdst,
16739
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
87 long width, long height,
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
88 long lumStride, long chromStride, long srcStride);
9987
988c2ffc5bc1 remove remaining cpudetect dependancy
michael
parents: 9476
diff changeset
89
988c2ffc5bc1 remove remaining cpudetect dependancy
michael
parents: 9476
diff changeset
90 /**
988c2ffc5bc1 remove remaining cpudetect dependancy
michael
parents: 9476
diff changeset
91 *
11070
michael
parents: 10895
diff changeset
92 * height should be a multiple of 2 and width should be a multiple of 16 (if this is a
michael
parents: 10895
diff changeset
93 * problem for anyone then tell me, and ill fix it)
michael
parents: 10895
diff changeset
94 */
michael
parents: 10895
diff changeset
95 extern void (*yv12touyvy)(const uint8_t *ysrc, const uint8_t *usrc, const uint8_t *vsrc, uint8_t *dst,
16739
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
96 long width, long height,
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
97 long lumStride, long chromStride, long dstStride);
11070
michael
parents: 10895
diff changeset
98
michael
parents: 10895
diff changeset
99 /**
michael
parents: 10895
diff changeset
100 *
9987
988c2ffc5bc1 remove remaining cpudetect dependancy
michael
parents: 9476
diff changeset
101 * height should be a multiple of 2 and width should be a multiple of 2 (if this is a
988c2ffc5bc1 remove remaining cpudetect dependancy
michael
parents: 9476
diff changeset
102 * problem for anyone then tell me, and ill fix it)
988c2ffc5bc1 remove remaining cpudetect dependancy
michael
parents: 9476
diff changeset
103 * chrominance data is only taken from every secound line others are ignored FIXME write HQ version
988c2ffc5bc1 remove remaining cpudetect dependancy
michael
parents: 9476
diff changeset
104 */
988c2ffc5bc1 remove remaining cpudetect dependancy
michael
parents: 9476
diff changeset
105 extern void (*rgb24toyv12)(const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8_t *vdst,
16739
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
106 long width, long height,
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
107 long lumStride, long chromStride, long srcStride);
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
108 extern void (*planar2x)(const uint8_t *src, uint8_t *dst, long width, long height,
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
109 long srcStride, long dstStride);
2701
9b47bc409083 yv12 <-> yuy2 in C
michael
parents: 2697
diff changeset
110
9987
988c2ffc5bc1 remove remaining cpudetect dependancy
michael
parents: 9476
diff changeset
111 extern void (*interleaveBytes)(uint8_t *src1, uint8_t *src2, uint8_t *dst,
16739
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
112 long width, long height, long src1Stride,
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
113 long src2Stride, long dstStride);
6606
50b5d8367318 merging changes from mplayerxp (rgb2rgb*.{c,h} only)
michael
parents: 6582
diff changeset
114
9987
988c2ffc5bc1 remove remaining cpudetect dependancy
michael
parents: 9476
diff changeset
115 extern void (*vu9_to_vu12)(const uint8_t *src1, const uint8_t *src2,
6606
50b5d8367318 merging changes from mplayerxp (rgb2rgb*.{c,h} only)
michael
parents: 6582
diff changeset
116 uint8_t *dst1, uint8_t *dst2,
16739
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
117 long width, long height,
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
118 long srcStride1, long srcStride2,
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
119 long dstStride1, long dstStride2);
6606
50b5d8367318 merging changes from mplayerxp (rgb2rgb*.{c,h} only)
michael
parents: 6582
diff changeset
120
9987
988c2ffc5bc1 remove remaining cpudetect dependancy
michael
parents: 9476
diff changeset
121 extern void (*yvu9_to_yuy2)(const uint8_t *src1, const uint8_t *src2, const uint8_t *src3,
6606
50b5d8367318 merging changes from mplayerxp (rgb2rgb*.{c,h} only)
michael
parents: 6582
diff changeset
122 uint8_t *dst,
16739
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
123 long width, long height,
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
124 long srcStride1, long srcStride2,
e91f944f6ed9 Change unsigned->signed and int->long, this fits the asm code better on 64
reimar
parents: 11070
diff changeset
125 long srcStride3, long dstStride);
5337
0bd1c35aa42c byte interleaving for mga
michael
parents: 3633
diff changeset
126
0bd1c35aa42c byte interleaving for mga
michael
parents: 3633
diff changeset
127
2732
ae79207a3055 Move yuv2rgb to postprocess
nick
parents: 2725
diff changeset
128 #define MODE_RGB 0x1
ae79207a3055 Move yuv2rgb to postprocess
nick
parents: 2725
diff changeset
129 #define MODE_BGR 0x2
ae79207a3055 Move yuv2rgb to postprocess
nick
parents: 2725
diff changeset
130
9476
eff727517e6b yuv2rgb brightness/contrast/saturation/different colorspaces support finished
michael
parents: 9392
diff changeset
131 static void yuv2rgb(uint8_t * image, uint8_t * py,
2732
ae79207a3055 Move yuv2rgb to postprocess
nick
parents: 2725
diff changeset
132 uint8_t * pu, uint8_t * pv,
6492
e7635c03910f sync with mplayer xp
arpi
parents: 5588
diff changeset
133 unsigned h_size, unsigned v_size,
9476
eff727517e6b yuv2rgb brightness/contrast/saturation/different colorspaces support finished
michael
parents: 9392
diff changeset
134 int rgb_stride, int y_stride, int uv_stride){
eff727517e6b yuv2rgb brightness/contrast/saturation/different colorspaces support finished
michael
parents: 9392
diff changeset
135 printf("broken, this should use the swscaler\n");
eff727517e6b yuv2rgb brightness/contrast/saturation/different colorspaces support finished
michael
parents: 9392
diff changeset
136 }
2732
ae79207a3055 Move yuv2rgb to postprocess
nick
parents: 2725
diff changeset
137
9476
eff727517e6b yuv2rgb brightness/contrast/saturation/different colorspaces support finished
michael
parents: 9392
diff changeset
138 static void yuv2rgb_init (unsigned bpp, int mode){
eff727517e6b yuv2rgb brightness/contrast/saturation/different colorspaces support finished
michael
parents: 9392
diff changeset
139 printf("broken, this should use the swscaler\n");
eff727517e6b yuv2rgb brightness/contrast/saturation/different colorspaces support finished
michael
parents: 9392
diff changeset
140 }
2732
ae79207a3055 Move yuv2rgb to postprocess
nick
parents: 2725
diff changeset
141
10233
35f52ad860a0 vf_scale.h & related cleanup & some small warning fix by dominik
michael
parents: 9987
diff changeset
142 void sws_rgb2rgb_init(int flags);
35f52ad860a0 vf_scale.h & related cleanup & some small warning fix by dominik
michael
parents: 9987
diff changeset
143
2504
13e1c5ab417a vo_vesa: rgb2rgb support
nick
parents:
diff changeset
144 #endif