]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/CORTEX_A53_64-bit_UltraScale_MPSoC/RTOSDemo_A53_bsp/psu_cortexa53_0/libsrc/avbuf_v2_1/src/xavbuf_videoformats.c
Update Zynq, MPSoc Cortex-A53 and MPSoc Cortex-R5 demo projects to build with the...
[freertos] / FreeRTOS / Demo / CORTEX_A53_64-bit_UltraScale_MPSoC / RTOSDemo_A53_bsp / psu_cortexa53_0 / libsrc / avbuf_v2_1 / src / xavbuf_videoformats.c
1 /*******************************************************************************
2  *
3  * Copyright (C) 2017 Xilinx, Inc.  All rights reserved.
4  *
5  * Permission is hereby granted, free of charge, to any person obtaining a copy
6  * of this software and associated documentation files (the "Software"), to deal
7  * in the Software without restriction, including without limitation the rights
8  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9  * copies of the Software, and to permit persons to whom the Software is
10  * furnished to do so, subject to the following conditions:
11  *
12  * The above copyright notice and this permission notice shall be included in
13  * all copies or substantial portions of the Software.
14  *
15  * Use of the Software is limited solely to applications:
16  * (a) running on a Xilinx device, or
17  * (b) that interact with a Xilinx device through a bus or interconnect.
18  *
19  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
22  * XILINX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
23  * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
24  * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
25  * SOFTWARE.
26  *
27  * Except as contained in this notice, the name of the Xilinx shall not be used
28  * in advertising or otherwise to promote the sale, use or other dealings in
29  * this Software without prior written authorization from Xilinx.
30  *
31 *******************************************************************************/
32 /******************************************************************************/
33 /**
34  *
35  * @file xavbuf_videoformats.c
36  * @addtogroup xavbuf_v2_1
37  * @{
38  *
39  * Contains attributes of the video formats mapped to the hardware
40  *
41  * @note        None.
42  *
43  * <pre>
44  * MODIFICATION HISTORY:
45  *
46  * Ver   Who  Date     Changes
47  * ----- ---- -------- -----------------------------------------------
48  * 1.0   aad  03/10/17 Initial release.
49  * 2.0   aad  02/22/18 Fixed scaling factors and bits per pixel
50  * </pre>
51  *
52 *******************************************************************************/
53
54 /******************************* Include Files ********************************/
55
56 #include "xavbuf.h"
57
58
59 /**************************** Variable Definitions ****************************/
60 #ifdef __cplusplus
61 extern "C"
62 #endif
63
64 const XAVBuf_VideoAttribute XAVBuf_SupportedFormats[XAVBUF_NUM_SUPPORTED] =
65 {
66         /* Non - Live Video Formats */
67         { CbY0CrY1, 0, Interleaved,
68                 {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
69                 TRUE, FALSE, FALSE, 16},
70         { CrY0CbY1, 1, Interleaved,
71                 {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
72                 TRUE, FALSE, FALSE, 16},
73         { Y0CrY1Cb, 2, Interleaved,
74                 {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
75                 TRUE, FALSE, FALSE, 16},
76         { Y0CbY1Cr, 3, Interleaved,
77                 {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
78                 TRUE, FALSE, FALSE, 16},
79         { YV16, 4, Planar,
80                 {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
81                 TRUE, FALSE, FALSE, 16},
82         { YV24, 5, Planar,
83                 {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
84                 FALSE, FALSE, FALSE, 24},
85         { YV16Ci, 6, SemiPlanar,
86                 {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
87                 TRUE, FALSE, FALSE, 16},
88         { MONOCHROME, 7, Interleaved,
89                 {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
90                 TRUE, FALSE, FALSE, 8},
91         { YV16Ci2, 8, SemiPlanar,
92                 {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
93                 TRUE, FALSE, TRUE, 16},
94         { YUV444, 9, Interleaved,
95                 {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
96                 FALSE, FALSE, FALSE, 24},
97         { RGB888, 10, Interleaved,
98                 {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
99                 FALSE, TRUE, FALSE, 24},
100         { RGBA8880, 11, Interleaved,
101                 {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
102                 FALSE, TRUE, FALSE, 32},
103         { RGB888_10BPC, 12, Interleaved,
104                 {XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF},
105                 FALSE, TRUE, FALSE, 30},
106         { YUV444_10BPC, 13, Interleaved,
107                 {XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF},
108                 FALSE, FALSE, FALSE, 30},
109         { YV16Ci2_10BPC, 14, SemiPlanar,
110                 {XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF},
111                 TRUE, FALSE, TRUE, 20},
112         { YV16Ci_10BPC, 15, SemiPlanar,
113                 {XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF},
114                 TRUE, FALSE, FALSE, 20},
115         { YV16_10BPC, 16, Planar,
116                 {XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF},
117                 TRUE, FALSE, FALSE, 20},
118         { YV24_10BPC, 17, Planar,
119                 {XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF},
120                 FALSE, FALSE, FALSE, 30},
121         { MONOCHROME_10BPC, 18, Interleaved,
122                 {XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF},
123                 TRUE, FALSE, FALSE, 10},
124         { YV16_420, 19, Planar,
125                 {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
126                 TRUE, FALSE, FALSE, 16},
127         { YV16Ci_420, 20, SemiPlanar,
128                 {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
129                 TRUE, FALSE, FALSE, 16},
130         { YV16Ci2_420, 21, SemiPlanar,
131                 {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
132                 TRUE, FALSE, TRUE, 16},
133         { YV16_420_10BPC, 22, Planar,
134                 {XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF},
135                 TRUE, FALSE, FALSE, 20},
136         { YV16Ci_420_10BPC, 23, SemiPlanar,
137                 {XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF},
138                 TRUE, FALSE, FALSE, 20},
139         { YV16Ci2_420_10BPC, 24, SemiPlanar,
140                 {XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF},
141                 TRUE, FALSE, TRUE, 20},
142
143         /* Non-Live Graphics formats */
144         { RGBA8888, 0, Interleaved,
145                 {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
146                 FALSE, TRUE, FALSE, 32},
147         { ABGR8888, 1, Interleaved,
148                 {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
149                 FALSE, TRUE, FALSE, 32},
150         { RGB888_GFX, 2, Interleaved,
151                 {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
152                 FALSE, TRUE, FALSE, 24},
153         { BGR888, 3, Interleaved,
154                 {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
155                 FALSE, TRUE, FALSE, 24},
156         { RGBA5551, 4, Interleaved,
157                 {XAVBUF_BUF_5BIT_SF, XAVBUF_BUF_5BIT_SF, XAVBUF_BUF_5BIT_SF},
158                 FALSE, TRUE, FALSE, 16},
159         { RGBA4444, 5, Interleaved,
160                 {XAVBUF_BUF_4BIT_SF, XAVBUF_BUF_4BIT_SF, XAVBUF_BUF_4BIT_SF},
161                 FALSE, TRUE, FALSE, 16},
162         { RGB565, 6, Interleaved,
163                 {XAVBUF_BUF_5BIT_SF, XAVBUF_BUF_6BIT_SF, XAVBUF_BUF_5BIT_SF},
164                 FALSE, TRUE, FALSE, 16},
165         { BPP8, 7, Interleaved,
166                 {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
167                 FALSE, TRUE, FALSE, 8},
168         { BPP4, 8, Interleaved,
169                 {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
170                 FALSE, TRUE, FALSE, 4},
171         { BPP2, 9, Interleaved,
172                 {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
173                 FALSE, TRUE, FALSE, 2},
174         { BPP1, 10, Interleaved,
175                 {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
176                 FALSE, TRUE, FALSE, 1},
177         { YUV422, 11, Interleaved,
178                 {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
179                 FALSE, FALSE, FALSE, 24},
180
181         /* Video Formats for Live Video/Graphics input and output sources */
182         { RGB_6BPC, 0, Interleaved,
183                 {XAVBUF_BUF_6BIT_SF, XAVBUF_BUF_6BIT_SF, XAVBUF_BUF_6BIT_SF},
184                 FALSE, TRUE, FALSE, 18},
185         { RGB_8BPC, 0, Interleaved,
186                 {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
187                 FALSE, TRUE, FALSE, 24},
188         { RGB_10BPC, 0, Interleaved,
189                 {XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF},
190                 FALSE, TRUE, FALSE, 30},
191         { RGB_12BPC, 0, Interleaved,
192                 {XAVBUF_BUF_12BIT_SF, XAVBUF_BUF_12BIT_SF, XAVBUF_BUF_12BIT_SF},
193                 FALSE, TRUE, FALSE, 36},
194         { YCbCr444_6BPC, 1, Interleaved,
195                 {XAVBUF_BUF_6BIT_SF, XAVBUF_BUF_6BIT_SF, XAVBUF_BUF_6BIT_SF},
196                 FALSE, FALSE, FALSE, 18},
197         { YCbCr444_8BPC, 1, Interleaved,
198                 {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
199                 FALSE, FALSE, FALSE, 24},
200         { YCbCr444_10BPC, 1, Interleaved,
201                 {XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF},
202                 FALSE, FALSE, FALSE, 30},
203         { YCbCr444_12BPC, 1, Interleaved,
204                 {XAVBUF_BUF_12BIT_SF, XAVBUF_BUF_12BIT_SF, XAVBUF_BUF_12BIT_SF},
205                 FALSE, FALSE, FALSE, 36},
206         { YCbCr422_8BPC, 2, Interleaved,
207                 {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
208                 TRUE, FALSE, FALSE, 24},
209         { YCbCr422_10BPC, 2, Interleaved,
210                 {XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF},
211                 TRUE, FALSE, FALSE, 30},
212         { YCbCr422_12BPC, 2, Interleaved,
213                 {XAVBUF_BUF_12BIT_SF, XAVBUF_BUF_12BIT_SF, XAVBUF_BUF_12BIT_SF},
214                 TRUE, FALSE, FALSE, 36},
215         { YOnly_8BPC, 3, Interleaved,
216                 {XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF, XAVBUF_BUF_8BIT_SF},
217                 TRUE, FALSE, FALSE, 24},
218         { YOnly_10BPC, 3, Interleaved,
219                 {XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF, XAVBUF_BUF_10BIT_SF},
220                 TRUE, FALSE, FALSE, 30},
221         { YOnly_12BPC, 3, Interleaved,
222                 {XAVBUF_BUF_12BIT_SF, XAVBUF_BUF_12BIT_SF, XAVBUF_BUF_12BIT_SF},
223                 TRUE, FALSE, FALSE, 36},
224
225 };
226
227 /** @} */