Mercurial > libavutil.hg
annotate pixdesc.c @ 1011:ec22b0df8cf6 libavutil
Cache detected CPU flags
author | mru |
---|---|
date | Thu, 09 Sep 2010 18:51:49 +0000 |
parents | 732bb5b10aec |
children | 83021885b234 |
rev | line source |
---|---|
781 | 1 /* |
2 * pixel format descriptor | |
3 * Copyright (c) 2009 Michael Niedermayer <michaelni@gmx.at> | |
4 * | |
5 * This file is part of FFmpeg. | |
6 * | |
7 * FFmpeg is free software; you can redistribute it and/or | |
8 * modify it under the terms of the GNU Lesser General Public | |
9 * License as published by the Free Software Foundation; either | |
10 * version 2.1 of the License, or (at your option) any later version. | |
11 * | |
12 * FFmpeg is distributed in the hope that it will be useful, | |
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
15 * Lesser General Public License for more details. | |
16 * | |
17 * You should have received a copy of the GNU Lesser General Public | |
18 * License along with FFmpeg; if not, write to the Free Software | |
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | |
20 */ | |
21 | |
989 | 22 #include <stdio.h> |
23 #include <string.h> | |
781 | 24 #include "pixfmt.h" |
25 #include "pixdesc.h" | |
26 | |
836
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
27 #include "intreadwrite.h" |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
28 |
982
da1b5110dbd0
Rename read/write_line() to av_read/write_image_line().
mru
parents:
898
diff
changeset
|
29 void av_read_image_line(uint16_t *dst, const uint8_t *data[4], const int linesize[4], |
987 | 30 const AVPixFmtDescriptor *desc, int x, int y, int c, int w, int read_pal_component) |
836
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
31 { |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
32 AVComponentDescriptor comp= desc->comp[c]; |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
33 int plane= comp.plane; |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
34 int depth= comp.depth_minus1+1; |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
35 int mask = (1<<depth)-1; |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
36 int shift= comp.shift; |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
37 int step = comp.step_minus1+1; |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
38 int flags= desc->flags; |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
39 |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
40 if (flags & PIX_FMT_BITSTREAM){ |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
41 int skip = x*step + comp.offset_plus1-1; |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
42 const uint8_t *p = data[plane] + y*linesize[plane] + (skip>>3); |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
43 int shift = 8 - depth - (skip&7); |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
44 |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
45 while(w--){ |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
46 int val = (*p >> shift) & mask; |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
47 if(read_pal_component) |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
48 val= data[1][4*val + c]; |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
49 shift -= step; |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
50 p -= shift>>3; |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
51 shift &= 7; |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
52 *dst++= val; |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
53 } |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
54 } else { |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
55 const uint8_t *p = data[plane]+ y*linesize[plane] + x*step + comp.offset_plus1-1; |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
56 |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
57 while(w--){ |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
58 int val; |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
59 if(flags & PIX_FMT_BE) val= AV_RB16(p); |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
60 else val= AV_RL16(p); |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
61 val = (val>>shift) & mask; |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
62 if(read_pal_component) |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
63 val= data[1][4*val + c]; |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
64 p+= step; |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
65 *dst++= val; |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
66 } |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
67 } |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
68 } |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
69 |
982
da1b5110dbd0
Rename read/write_line() to av_read/write_image_line().
mru
parents:
898
diff
changeset
|
70 void av_write_image_line(const uint16_t *src, uint8_t *data[4], const int linesize[4], |
987 | 71 const AVPixFmtDescriptor *desc, int x, int y, int c, int w) |
836
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
72 { |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
73 AVComponentDescriptor comp = desc->comp[c]; |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
74 int plane = comp.plane; |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
75 int depth = comp.depth_minus1+1; |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
76 int step = comp.step_minus1+1; |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
77 int flags = desc->flags; |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
78 |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
79 if (flags & PIX_FMT_BITSTREAM) { |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
80 int skip = x*step + comp.offset_plus1-1; |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
81 uint8_t *p = data[plane] + y*linesize[plane] + (skip>>3); |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
82 int shift = 8 - depth - (skip&7); |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
83 |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
84 while (w--) { |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
85 *p |= *src++ << shift; |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
86 shift -= step; |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
87 p -= shift>>3; |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
88 shift &= 7; |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
89 } |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
90 } else { |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
91 int shift = comp.shift; |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
92 uint8_t *p = data[plane]+ y*linesize[plane] + x*step + comp.offset_plus1-1; |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
93 |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
94 while (w--) { |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
95 if (flags & PIX_FMT_BE) { |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
96 uint16_t val = AV_RB16(p) | (*src++<<shift); |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
97 AV_WB16(p, val); |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
98 } else { |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
99 uint16_t val = AV_RL16(p) | (*src++<<shift); |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
100 AV_WL16(p, val); |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
101 } |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
102 p+= step; |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
103 } |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
104 } |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
105 } |
af688c6fa72f
Move read_line() and write_line() definition from pixdesc.h to
stefano
parents:
827
diff
changeset
|
106 |
781 | 107 const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { |
108 [PIX_FMT_YUV420P] = { | |
109 .name = "yuv420p", | |
791
ecf67bd079fe
Rename AVPixFmtDescriptor.nb_channels to nb_components, the new name
stefano
parents:
787
diff
changeset
|
110 .nb_components= 3, |
781 | 111 .log2_chroma_w= 1, |
112 .log2_chroma_h= 1, | |
113 .comp = { | |
114 {0,0,1,0,7}, /* Y */ | |
115 {1,0,1,0,7}, /* U */ | |
116 {2,0,1,0,7}, /* V */ | |
117 }, | |
118 }, | |
119 [PIX_FMT_YUYV422] = { | |
120 .name = "yuyv422", | |
791
ecf67bd079fe
Rename AVPixFmtDescriptor.nb_channels to nb_components, the new name
stefano
parents:
787
diff
changeset
|
121 .nb_components= 3, |
781 | 122 .log2_chroma_w= 1, |
123 .log2_chroma_h= 0, | |
124 .comp = { | |
125 {0,1,1,0,7}, /* Y */ | |
126 {0,3,2,0,7}, /* U */ | |
127 {0,3,4,0,7}, /* V */ | |
128 }, | |
129 }, | |
130 [PIX_FMT_RGB24] = { | |
131 .name = "rgb24", | |
791
ecf67bd079fe
Rename AVPixFmtDescriptor.nb_channels to nb_components, the new name
stefano
parents:
787
diff
changeset
|
132 .nb_components= 3, |
781 | 133 .log2_chroma_w= 0, |
134 .log2_chroma_h= 0, | |
135 .comp = { | |
136 {0,2,1,0,7}, /* R */ | |
137 {0,2,2,0,7}, /* G */ | |
138 {0,2,3,0,7}, /* B */ | |
139 }, | |
140 }, | |
141 [PIX_FMT_BGR24] = { | |
142 .name = "bgr24", | |
791
ecf67bd079fe
Rename AVPixFmtDescriptor.nb_channels to nb_components, the new name
stefano
parents:
787
diff
changeset
|
143 .nb_components= 3, |
781 | 144 .log2_chroma_w= 0, |
145 .log2_chroma_h= 0, | |
146 .comp = { | |
147 {0,2,1,0,7}, /* B */ | |
148 {0,2,2,0,7}, /* G */ | |
149 {0,2,3,0,7}, /* R */ | |
150 }, | |
151 }, | |
152 [PIX_FMT_YUV422P] = { | |
153 .name = "yuv422p", | |
791
ecf67bd079fe
Rename AVPixFmtDescriptor.nb_channels to nb_components, the new name
stefano
parents:
787
diff
changeset
|
154 .nb_components= 3, |
781 | 155 .log2_chroma_w= 1, |
156 .log2_chroma_h= 0, | |
157 .comp = { | |
158 {0,0,1,0,7}, /* Y */ | |
159 {1,0,1,0,7}, /* U */ | |
160 {2,0,1,0,7}, /* V */ | |
161 }, | |
162 }, | |
163 [PIX_FMT_YUV444P] = { | |
164 .name = "yuv444p", | |
791
ecf67bd079fe
Rename AVPixFmtDescriptor.nb_channels to nb_components, the new name
stefano
parents:
787
diff
changeset
|
165 .nb_components= 3, |
781 | 166 .log2_chroma_w= 0, |
167 .log2_chroma_h= 0, | |
168 .comp = { | |
169 {0,0,1,0,7}, /* Y */ | |
170 {1,0,1,0,7}, /* U */ | |
171 {2,0,1,0,7}, /* V */ | |
172 }, | |
173 }, | |
174 [PIX_FMT_YUV410P] = { | |
175 .name = "yuv410p", | |
791
ecf67bd079fe
Rename AVPixFmtDescriptor.nb_channels to nb_components, the new name
stefano
parents:
787
diff
changeset
|
176 .nb_components= 3, |
781 | 177 .log2_chroma_w= 2, |
178 .log2_chroma_h= 2, | |
179 .comp = { | |
180 {0,0,1,0,7}, /* Y */ | |
181 {1,0,1,0,7}, /* U */ | |
182 {2,0,1,0,7}, /* V */ | |
183 }, | |
184 }, | |
185 [PIX_FMT_YUV411P] = { | |
186 .name = "yuv411p", | |
791
ecf67bd079fe
Rename AVPixFmtDescriptor.nb_channels to nb_components, the new name
stefano
parents:
787
diff
changeset
|
187 .nb_components= 3, |
781 | 188 .log2_chroma_w= 2, |
189 .log2_chroma_h= 0, | |
190 .comp = { | |
191 {0,0,1,0,7}, /* Y */ | |
192 {1,0,1,0,7}, /* U */ | |
193 {2,0,1,0,7}, /* V */ | |
194 }, | |
195 }, | |
196 [PIX_FMT_GRAY8] = { | |
796
ecf400e9601b
Make av_pix_fmt_descriptors use the same pixel format names as defined
stefano
parents:
791
diff
changeset
|
197 .name = "gray", |
791
ecf67bd079fe
Rename AVPixFmtDescriptor.nb_channels to nb_components, the new name
stefano
parents:
787
diff
changeset
|
198 .nb_components= 1, |
781 | 199 .log2_chroma_w= 0, |
200 .log2_chroma_h= 0, | |
201 .comp = { | |
202 {0,0,1,0,7}, /* Y */ | |
203 }, | |
856
f01741b79070
Declare the PIX_FMT_GRAY8 pixel format as a paletted format. This is
stefano
parents:
836
diff
changeset
|
204 .flags = PIX_FMT_PAL, |
781 | 205 }, |
206 [PIX_FMT_MONOWHITE] = { | |
796
ecf400e9601b
Make av_pix_fmt_descriptors use the same pixel format names as defined
stefano
parents:
791
diff
changeset
|
207 .name = "monow", |
791
ecf67bd079fe
Rename AVPixFmtDescriptor.nb_channels to nb_components, the new name
stefano
parents:
787
diff
changeset
|
208 .nb_components= 1, |
781 | 209 .log2_chroma_w= 0, |
210 .log2_chroma_h= 0, | |
211 .comp = { | |
212 {0,0,1,0,0}, /* Y */ | |
213 }, | |
214 .flags = PIX_FMT_BITSTREAM, | |
215 }, | |
216 [PIX_FMT_MONOBLACK] = { | |
796
ecf400e9601b
Make av_pix_fmt_descriptors use the same pixel format names as defined
stefano
parents:
791
diff
changeset
|
217 .name = "monob", |
791
ecf67bd079fe
Rename AVPixFmtDescriptor.nb_channels to nb_components, the new name
stefano
parents:
787
diff
changeset
|
218 .nb_components= 1, |
781 | 219 .log2_chroma_w= 0, |
220 .log2_chroma_h= 0, | |
221 .comp = { | |
222 {0,0,1,7,0}, /* Y */ | |
223 }, | |
224 .flags = PIX_FMT_BITSTREAM, | |
225 }, | |
226 [PIX_FMT_PAL8] = { | |
227 .name = "pal8", | |
791
ecf67bd079fe
Rename AVPixFmtDescriptor.nb_channels to nb_components, the new name
stefano
parents:
787
diff
changeset
|
228 .nb_components= 1, |
781 | 229 .log2_chroma_w= 0, |
230 .log2_chroma_h= 0, | |
231 .comp = { | |
232 {0,0,1,0,7}, | |
233 }, | |
234 .flags = PIX_FMT_PAL, | |
235 }, | |
236 [PIX_FMT_YUVJ420P] = { | |
237 .name = "yuvj420p", | |
791
ecf67bd079fe
Rename AVPixFmtDescriptor.nb_channels to nb_components, the new name
stefano
parents:
787
diff
changeset
|
238 .nb_components= 3, |
781 | 239 .log2_chroma_w= 1, |
240 .log2_chroma_h= 1, | |
241 .comp = { | |
242 {0,0,1,0,7}, /* Y */ | |
243 {1,0,1,0,7}, /* U */ | |
244 {2,0,1,0,7}, /* V */ | |
245 }, | |
246 }, | |
247 [PIX_FMT_YUVJ422P] = { | |
248 .name = "yuvj422p", | |
791
ecf67bd079fe
Rename AVPixFmtDescriptor.nb_channels to nb_components, the new name
stefano
parents:
787
diff
changeset
|
249 .nb_components= 3, |
781 | 250 .log2_chroma_w= 1, |
251 .log2_chroma_h= 0, | |
252 .comp = { | |
253 {0,0,1,0,7}, /* Y */ | |
254 {1,0,1,0,7}, /* U */ | |
255 {2,0,1,0,7}, /* V */ | |
256 }, | |
257 }, | |
258 [PIX_FMT_YUVJ444P] = { | |
259 .name = "yuvj444p", | |
791
ecf67bd079fe
Rename AVPixFmtDescriptor.nb_channels to nb_components, the new name
stefano
parents:
787
diff
changeset
|
260 .nb_components= 3, |
781 | 261 .log2_chroma_w= 0, |
262 .log2_chroma_h= 0, | |
263 .comp = { | |
264 {0,0,1,0,7}, /* Y */ | |
265 {1,0,1,0,7}, /* U */ | |
266 {2,0,1,0,7}, /* V */ | |
267 }, | |
268 }, | |
783
c0b4f10edb74
Add pixel format descriptors for the HW-accelerated formats.
stefano
parents:
782
diff
changeset
|
269 [PIX_FMT_XVMC_MPEG2_MC] = { |
796
ecf400e9601b
Make av_pix_fmt_descriptors use the same pixel format names as defined
stefano
parents:
791
diff
changeset
|
270 .name = "xvmcmc", |
783
c0b4f10edb74
Add pixel format descriptors for the HW-accelerated formats.
stefano
parents:
782
diff
changeset
|
271 .flags = PIX_FMT_HWACCEL, |
c0b4f10edb74
Add pixel format descriptors for the HW-accelerated formats.
stefano
parents:
782
diff
changeset
|
272 }, |
c0b4f10edb74
Add pixel format descriptors for the HW-accelerated formats.
stefano
parents:
782
diff
changeset
|
273 [PIX_FMT_XVMC_MPEG2_IDCT] = { |
796
ecf400e9601b
Make av_pix_fmt_descriptors use the same pixel format names as defined
stefano
parents:
791
diff
changeset
|
274 .name = "xvmcidct", |
783
c0b4f10edb74
Add pixel format descriptors for the HW-accelerated formats.
stefano
parents:
782
diff
changeset
|
275 .flags = PIX_FMT_HWACCEL, |
c0b4f10edb74
Add pixel format descriptors for the HW-accelerated formats.
stefano
parents:
782
diff
changeset
|
276 }, |
781 | 277 [PIX_FMT_UYVY422] = { |
278 .name = "uyvy422", | |
791
ecf67bd079fe
Rename AVPixFmtDescriptor.nb_channels to nb_components, the new name
stefano
parents:
787
diff
changeset
|
279 .nb_components= 3, |
781 | 280 .log2_chroma_w= 1, |
281 .log2_chroma_h= 0, | |
282 .comp = { | |
283 {0,1,2,0,7}, /* Y */ | |
284 {0,3,1,0,7}, /* U */ | |
285 {0,3,3,0,7}, /* V */ | |
286 }, | |
287 }, | |
288 [PIX_FMT_UYYVYY411] = { | |
289 .name = "uyyvyy411", | |
791
ecf67bd079fe
Rename AVPixFmtDescriptor.nb_channels to nb_components, the new name
stefano
parents:
787
diff
changeset
|
290 .nb_components= 3, |
781 | 291 .log2_chroma_w= 2, |
292 .log2_chroma_h= 0, | |
293 .comp = { | |
294 {0,3,2,0,7}, /* Y */ | |
295 {0,5,1,0,7}, /* U */ | |
296 {0,5,4,0,7}, /* V */ | |
297 }, | |
298 }, | |
299 [PIX_FMT_BGR8] = { | |
300 .name = "bgr8", | |
791
ecf67bd079fe
Rename AVPixFmtDescriptor.nb_channels to nb_components, the new name
stefano
parents:
787
diff
changeset
|
301 .nb_components= 3, |
781 | 302 .log2_chroma_w= 0, |
303 .log2_chroma_h= 0, | |
304 .comp = { | |
305 {0,0,1,6,1}, /* B */ | |
306 {0,0,1,3,2}, /* G */ | |
307 {0,0,1,0,2}, /* R */ | |
308 }, | |
782
9b06eaf7b6ef
Add PIX_FMT_PAL flag to BGR8, BGR4_BYTE, RGB8, and RGB4_BYTE formats.
stefano
parents:
781
diff
changeset
|
309 .flags = PIX_FMT_PAL, |
781 | 310 }, |
311 [PIX_FMT_BGR4] = { | |
312 .name = "bgr4", | |
791
ecf67bd079fe
Rename AVPixFmtDescriptor.nb_channels to nb_components, the new name
stefano
parents:
787
diff
changeset
|
313 .nb_components= 3, |
781 | 314 .log2_chroma_w= 0, |
315 .log2_chroma_h= 0, | |
316 .comp = { | |
317 {0,3,1,0,0}, /* B */ | |
318 {0,3,2,0,1}, /* G */ | |
319 {0,3,4,0,0}, /* R */ | |
320 }, | |
321 .flags = PIX_FMT_BITSTREAM, | |
322 }, | |
323 [PIX_FMT_BGR4_BYTE] = { | |
324 .name = "bgr4_byte", | |
791
ecf67bd079fe
Rename AVPixFmtDescriptor.nb_channels to nb_components, the new name
stefano
parents:
787
diff
changeset
|
325 .nb_components= 3, |
781 | 326 .log2_chroma_w= 0, |
327 .log2_chroma_h= 0, | |
328 .comp = { | |
329 {0,0,1,3,0}, /* B */ | |
330 {0,0,1,1,1}, /* G */ | |
331 {0,0,1,0,0}, /* R */ | |
332 }, | |
782
9b06eaf7b6ef
Add PIX_FMT_PAL flag to BGR8, BGR4_BYTE, RGB8, and RGB4_BYTE formats.
stefano
parents:
781
diff
changeset
|
333 .flags = PIX_FMT_PAL, |
781 | 334 }, |
335 [PIX_FMT_RGB8] = { | |
336 .name = "rgb8", | |
791
ecf67bd079fe
Rename AVPixFmtDescriptor.nb_channels to nb_components, the new name
stefano
parents:
787
diff
changeset
|
337 .nb_components= 3, |
781 | 338 .log2_chroma_w= 0, |
339 .log2_chroma_h= 0, | |
340 .comp = { | |
341 {0,0,1,6,1}, /* R */ | |
342 {0,0,1,3,2}, /* G */ | |
343 {0,0,1,0,2}, /* B */ | |
344 }, | |
782
9b06eaf7b6ef
Add PIX_FMT_PAL flag to BGR8, BGR4_BYTE, RGB8, and RGB4_BYTE formats.
stefano
parents:
781
diff
changeset
|
345 .flags = PIX_FMT_PAL, |
781 | 346 }, |
347 [PIX_FMT_RGB4] = { | |
348 .name = "rgb4", | |
791
ecf67bd079fe
Rename AVPixFmtDescriptor.nb_channels to nb_components, the new name
stefano
parents:
787
diff
changeset
|
349 .nb_components= 3, |
781 | 350 .log2_chroma_w= 0, |
351 .log2_chroma_h= 0, | |
352 .comp = { | |
353 {0,3,1,0,0}, /* R */ | |
354 {0,3,2,0,1}, /* G */ | |
355 {0,3,4,0,0}, /* B */ | |
356 }, | |
357 .flags = PIX_FMT_BITSTREAM, | |
358 }, | |
359 [PIX_FMT_RGB4_BYTE] = { | |
360 .name = "rgb4_byte", | |
791
ecf67bd079fe
Rename AVPixFmtDescriptor.nb_channels to nb_components, the new name
stefano
parents:
787
diff
changeset
|
361 .nb_components= 3, |
781 | 362 .log2_chroma_w= 0, |
363 .log2_chroma_h= 0, | |
364 .comp = { | |
365 {0,0,1,3,0}, /* R */ | |
366 {0,0,1,1,1}, /* G */ | |
367 {0,0,1,0,0}, /* B */ | |
368 }, | |
782
9b06eaf7b6ef
Add PIX_FMT_PAL flag to BGR8, BGR4_BYTE, RGB8, and RGB4_BYTE formats.
stefano
parents:
781
diff
changeset
|
369 .flags = PIX_FMT_PAL, |
781 | 370 }, |
371 [PIX_FMT_NV12] = { | |
372 .name = "nv12", | |
791
ecf67bd079fe
Rename AVPixFmtDescriptor.nb_channels to nb_components, the new name
stefano
parents:
787
diff
changeset
|
373 .nb_components= 3, |
781 | 374 .log2_chroma_w= 1, |
375 .log2_chroma_h= 1, | |
376 .comp = { | |
377 {0,0,1,0,7}, /* Y */ | |
378 {1,1,1,0,7}, /* U */ | |
379 {1,1,2,0,7}, /* V */ | |
380 }, | |
381 }, | |
382 [PIX_FMT_NV21] = { | |
383 .name = "nv21", | |
791
ecf67bd079fe
Rename AVPixFmtDescriptor.nb_channels to nb_components, the new name
stefano
parents:
787
diff
changeset
|
384 .nb_components= 3, |
781 | 385 .log2_chroma_w= 1, |
386 .log2_chroma_h= 1, | |
387 .comp = { | |
388 {0,0,1,0,7}, /* Y */ | |
389 {1,1,1,0,7}, /* V */ | |
390 {1,1,2,0,7}, /* U */ | |
391 }, | |
392 }, | |
393 [PIX_FMT_ARGB] = { | |
394 .name = "argb", | |
791
ecf67bd079fe
Rename AVPixFmtDescriptor.nb_channels to nb_components, the new name
stefano
parents:
787
diff
changeset
|
395 .nb_components= 4, |
781 | 396 .log2_chroma_w= 0, |
397 .log2_chroma_h= 0, | |
398 .comp = { | |
399 {0,3,1,0,7}, /* A */ | |
400 {0,3,2,0,7}, /* R */ | |
401 {0,3,3,0,7}, /* G */ | |
402 {0,3,4,0,7}, /* B */ | |
403 }, | |
404 }, | |
405 [PIX_FMT_RGBA] = { | |
406 .name = "rgba", | |
791
ecf67bd079fe
Rename AVPixFmtDescriptor.nb_channels to nb_components, the new name
stefano
parents:
787
diff
changeset
|
407 .nb_components= 4, |
781 | 408 .log2_chroma_w= 0, |
409 .log2_chroma_h= 0, | |
410 .comp = { | |
411 {0,3,1,0,7}, /* R */ | |
412 {0,3,2,0,7}, /* G */ | |
413 {0,3,3,0,7}, /* B */ | |
414 {0,3,4,0,7}, /* A */ | |
415 }, | |
416 }, | |
417 [PIX_FMT_ABGR] = { | |
418 .name = "abgr", | |
791
ecf67bd079fe
Rename AVPixFmtDescriptor.nb_channels to nb_components, the new name
stefano
parents:
787
diff
changeset
|
419 .nb_components= 4, |
781 | 420 .log2_chroma_w= 0, |
421 .log2_chroma_h= 0, | |
422 .comp = { | |
423 {0,3,1,0,7}, /* A */ | |
424 {0,3,2,0,7}, /* B */ | |
425 {0,3,3,0,7}, /* G */ | |
426 {0,3,4,0,7}, /* R */ | |
427 }, | |
428 }, | |
429 [PIX_FMT_BGRA] = { | |
430 .name = "bgra", | |
791
ecf67bd079fe
Rename AVPixFmtDescriptor.nb_channels to nb_components, the new name
stefano
parents:
787
diff
changeset
|
431 .nb_components= 4, |
781 | 432 .log2_chroma_w= 0, |
433 .log2_chroma_h= 0, | |
434 .comp = { | |
435 {0,3,1,0,7}, /* B */ | |
436 {0,3,2,0,7}, /* G */ | |
437 {0,3,3,0,7}, /* R */ | |
438 {0,3,4,0,7}, /* A */ | |
439 }, | |
440 }, | |
441 [PIX_FMT_GRAY16BE] = { | |
442 .name = "gray16be", | |
791
ecf67bd079fe
Rename AVPixFmtDescriptor.nb_channels to nb_components, the new name
stefano
parents:
787
diff
changeset
|
443 .nb_components= 1, |
781 | 444 .log2_chroma_w= 0, |
445 .log2_chroma_h= 0, | |
446 .comp = { | |
447 {0,1,1,0,15}, /* Y */ | |
448 }, | |
449 .flags = PIX_FMT_BE, | |
450 }, | |
451 [PIX_FMT_GRAY16LE] = { | |
452 .name = "gray16le", | |
791
ecf67bd079fe
Rename AVPixFmtDescriptor.nb_channels to nb_components, the new name
stefano
parents:
787
diff
changeset
|
453 .nb_components= 1, |
781 | 454 .log2_chroma_w= 0, |
455 .log2_chroma_h= 0, | |
456 .comp = { | |
457 {0,1,1,0,15}, /* Y */ | |
458 }, | |
459 }, | |
460 [PIX_FMT_YUV440P] = { | |
461 .name = "yuv440p", | |
791
ecf67bd079fe
Rename AVPixFmtDescriptor.nb_channels to nb_components, the new name
stefano
parents:
787
diff
changeset
|
462 .nb_components= 3, |
781 | 463 .log2_chroma_w= 0, |
464 .log2_chroma_h= 1, | |
465 .comp = { | |
466 {0,0,1,0,7}, /* Y */ | |
467 {1,0,1,0,7}, /* U */ | |
468 {2,0,1,0,7}, /* V */ | |
469 }, | |
470 }, | |
471 [PIX_FMT_YUVJ440P] = { | |
472 .name = "yuvj440p", | |
791
ecf67bd079fe
Rename AVPixFmtDescriptor.nb_channels to nb_components, the new name
stefano
parents:
787
diff
changeset
|
473 .nb_components= 3, |
781 | 474 .log2_chroma_w= 0, |
475 .log2_chroma_h= 1, | |
476 .comp = { | |
477 {0,0,1,0,7}, /* Y */ | |
478 {1,0,1,0,7}, /* U */ | |
479 {2,0,1,0,7}, /* V */ | |
480 }, | |
481 }, | |
482 [PIX_FMT_YUVA420P] = { | |
483 .name = "yuva420p", | |
791
ecf67bd079fe
Rename AVPixFmtDescriptor.nb_channels to nb_components, the new name
stefano
parents:
787
diff
changeset
|
484 .nb_components= 4, |
781 | 485 .log2_chroma_w= 1, |
486 .log2_chroma_h= 1, | |
487 .comp = { | |
488 {0,0,1,0,7}, /* Y */ | |
489 {1,0,1,0,7}, /* U */ | |
490 {2,0,1,0,7}, /* V */ | |
491 {3,0,1,0,7}, /* A */ | |
492 }, | |
493 }, | |
783
c0b4f10edb74
Add pixel format descriptors for the HW-accelerated formats.
stefano
parents:
782
diff
changeset
|
494 [PIX_FMT_VDPAU_H264] = { |
c0b4f10edb74
Add pixel format descriptors for the HW-accelerated formats.
stefano
parents:
782
diff
changeset
|
495 .name = "vdpau_h264", |
c0b4f10edb74
Add pixel format descriptors for the HW-accelerated formats.
stefano
parents:
782
diff
changeset
|
496 .log2_chroma_w = 1, |
c0b4f10edb74
Add pixel format descriptors for the HW-accelerated formats.
stefano
parents:
782
diff
changeset
|
497 .log2_chroma_h = 1, |
c0b4f10edb74
Add pixel format descriptors for the HW-accelerated formats.
stefano
parents:
782
diff
changeset
|
498 .flags = PIX_FMT_HWACCEL, |
c0b4f10edb74
Add pixel format descriptors for the HW-accelerated formats.
stefano
parents:
782
diff
changeset
|
499 }, |
c0b4f10edb74
Add pixel format descriptors for the HW-accelerated formats.
stefano
parents:
782
diff
changeset
|
500 [PIX_FMT_VDPAU_MPEG1] = { |
c0b4f10edb74
Add pixel format descriptors for the HW-accelerated formats.
stefano
parents:
782
diff
changeset
|
501 .name = "vdpau_mpeg1", |
c0b4f10edb74
Add pixel format descriptors for the HW-accelerated formats.
stefano
parents:
782
diff
changeset
|
502 .log2_chroma_w = 1, |
c0b4f10edb74
Add pixel format descriptors for the HW-accelerated formats.
stefano
parents:
782
diff
changeset
|
503 .log2_chroma_h = 1, |
c0b4f10edb74
Add pixel format descriptors for the HW-accelerated formats.
stefano
parents:
782
diff
changeset
|
504 .flags = PIX_FMT_HWACCEL, |
c0b4f10edb74
Add pixel format descriptors for the HW-accelerated formats.
stefano
parents:
782
diff
changeset
|
505 }, |
c0b4f10edb74
Add pixel format descriptors for the HW-accelerated formats.
stefano
parents:
782
diff
changeset
|
506 [PIX_FMT_VDPAU_MPEG2] = { |
c0b4f10edb74
Add pixel format descriptors for the HW-accelerated formats.
stefano
parents:
782
diff
changeset
|
507 .name = "vdpau_mpeg2", |
c0b4f10edb74
Add pixel format descriptors for the HW-accelerated formats.
stefano
parents:
782
diff
changeset
|
508 .log2_chroma_w = 1, |
c0b4f10edb74
Add pixel format descriptors for the HW-accelerated formats.
stefano
parents:
782
diff
changeset
|
509 .log2_chroma_h = 1, |
c0b4f10edb74
Add pixel format descriptors for the HW-accelerated formats.
stefano
parents:
782
diff
changeset
|
510 .flags = PIX_FMT_HWACCEL, |
c0b4f10edb74
Add pixel format descriptors for the HW-accelerated formats.
stefano
parents:
782
diff
changeset
|
511 }, |
c0b4f10edb74
Add pixel format descriptors for the HW-accelerated formats.
stefano
parents:
782
diff
changeset
|
512 [PIX_FMT_VDPAU_WMV3] = { |
c0b4f10edb74
Add pixel format descriptors for the HW-accelerated formats.
stefano
parents:
782
diff
changeset
|
513 .name = "vdpau_wmv3", |
c0b4f10edb74
Add pixel format descriptors for the HW-accelerated formats.
stefano
parents:
782
diff
changeset
|
514 .log2_chroma_w = 1, |
c0b4f10edb74
Add pixel format descriptors for the HW-accelerated formats.
stefano
parents:
782
diff
changeset
|
515 .log2_chroma_h = 1, |
c0b4f10edb74
Add pixel format descriptors for the HW-accelerated formats.
stefano
parents:
782
diff
changeset
|
516 .flags = PIX_FMT_HWACCEL, |
c0b4f10edb74
Add pixel format descriptors for the HW-accelerated formats.
stefano
parents:
782
diff
changeset
|
517 }, |
c0b4f10edb74
Add pixel format descriptors for the HW-accelerated formats.
stefano
parents:
782
diff
changeset
|
518 [PIX_FMT_VDPAU_VC1] = { |
c0b4f10edb74
Add pixel format descriptors for the HW-accelerated formats.
stefano
parents:
782
diff
changeset
|
519 .name = "vdpau_vc1", |
c0b4f10edb74
Add pixel format descriptors for the HW-accelerated formats.
stefano
parents:
782
diff
changeset
|
520 .log2_chroma_w = 1, |
c0b4f10edb74
Add pixel format descriptors for the HW-accelerated formats.
stefano
parents:
782
diff
changeset
|
521 .log2_chroma_h = 1, |
c0b4f10edb74
Add pixel format descriptors for the HW-accelerated formats.
stefano
parents:
782
diff
changeset
|
522 .flags = PIX_FMT_HWACCEL, |
c0b4f10edb74
Add pixel format descriptors for the HW-accelerated formats.
stefano
parents:
782
diff
changeset
|
523 }, |
787 | 524 [PIX_FMT_VDPAU_MPEG4] = { |
525 .name = "vdpau_mpeg4", | |
526 .log2_chroma_w = 1, | |
527 .log2_chroma_h = 1, | |
528 .flags = PIX_FMT_HWACCEL, | |
529 }, | |
781 | 530 [PIX_FMT_RGB48BE] = { |
531 .name = "rgb48be", | |
791
ecf67bd079fe
Rename AVPixFmtDescriptor.nb_channels to nb_components, the new name
stefano
parents:
787
diff
changeset
|
532 .nb_components= 3, |
781 | 533 .log2_chroma_w= 0, |
534 .log2_chroma_h= 0, | |
535 .comp = { | |
536 {0,5,1,0,15}, /* R */ | |
537 {0,5,3,0,15}, /* G */ | |
538 {0,5,5,0,15}, /* B */ | |
539 }, | |
540 .flags = PIX_FMT_BE, | |
541 }, | |
542 [PIX_FMT_RGB48LE] = { | |
543 .name = "rgb48le", | |
791
ecf67bd079fe
Rename AVPixFmtDescriptor.nb_channels to nb_components, the new name
stefano
parents:
787
diff
changeset
|
544 .nb_components= 3, |
781 | 545 .log2_chroma_w= 0, |
546 .log2_chroma_h= 0, | |
547 .comp = { | |
548 {0,5,1,0,15}, /* R */ | |
549 {0,5,3,0,15}, /* G */ | |
550 {0,5,5,0,15}, /* B */ | |
551 }, | |
552 }, | |
553 [PIX_FMT_RGB565BE] = { | |
554 .name = "rgb565be", | |
791
ecf67bd079fe
Rename AVPixFmtDescriptor.nb_channels to nb_components, the new name
stefano
parents:
787
diff
changeset
|
555 .nb_components= 3, |
781 | 556 .log2_chroma_w= 0, |
557 .log2_chroma_h= 0, | |
558 .comp = { | |
559 {0,1,0,3,4}, /* R */ | |
560 {0,1,1,5,5}, /* G */ | |
561 {0,1,1,0,4}, /* B */ | |
562 }, | |
563 .flags = PIX_FMT_BE, | |
564 }, | |
565 [PIX_FMT_RGB565LE] = { | |
566 .name = "rgb565le", | |
791
ecf67bd079fe
Rename AVPixFmtDescriptor.nb_channels to nb_components, the new name
stefano
parents:
787
diff
changeset
|
567 .nb_components= 3, |
781 | 568 .log2_chroma_w= 0, |
569 .log2_chroma_h= 0, | |
570 .comp = { | |
571 {0,1,2,3,4}, /* R */ | |
572 {0,1,1,5,5}, /* G */ | |
573 {0,1,1,0,4}, /* B */ | |
574 }, | |
575 }, | |
576 [PIX_FMT_RGB555BE] = { | |
577 .name = "rgb555be", | |
791
ecf67bd079fe
Rename AVPixFmtDescriptor.nb_channels to nb_components, the new name
stefano
parents:
787
diff
changeset
|
578 .nb_components= 3, |
781 | 579 .log2_chroma_w= 0, |
580 .log2_chroma_h= 0, | |
581 .comp = { | |
582 {0,1,0,2,4}, /* R */ | |
583 {0,1,1,5,4}, /* G */ | |
584 {0,1,1,0,4}, /* B */ | |
585 }, | |
586 .flags = PIX_FMT_BE, | |
587 }, | |
588 [PIX_FMT_RGB555LE] = { | |
589 .name = "rgb555le", | |
791
ecf67bd079fe
Rename AVPixFmtDescriptor.nb_channels to nb_components, the new name
stefano
parents:
787
diff
changeset
|
590 .nb_components= 3, |
781 | 591 .log2_chroma_w= 0, |
592 .log2_chroma_h= 0, | |
593 .comp = { | |
594 {0,1,2,2,4}, /* R */ | |
595 {0,1,1,5,4}, /* G */ | |
596 {0,1,1,0,4}, /* B */ | |
597 }, | |
598 }, | |
857 | 599 [PIX_FMT_RGB444BE] = { |
600 .name = "rgb444be", | |
601 .nb_components= 3, | |
602 .log2_chroma_w= 0, | |
603 .log2_chroma_h= 0, | |
604 .comp = { | |
605 {0,1,0,0,3}, /* R */ | |
606 {0,1,1,4,3}, /* G */ | |
607 {0,1,1,0,3}, /* B */ | |
608 }, | |
609 .flags = PIX_FMT_BE, | |
610 }, | |
611 [PIX_FMT_RGB444LE] = { | |
612 .name = "rgb444le", | |
613 .nb_components= 3, | |
614 .log2_chroma_w= 0, | |
615 .log2_chroma_h= 0, | |
616 .comp = { | |
617 {0,1,2,0,3}, /* R */ | |
618 {0,1,1,4,3}, /* G */ | |
619 {0,1,1,0,3}, /* B */ | |
620 }, | |
621 }, | |
781 | 622 [PIX_FMT_BGR565BE] = { |
623 .name = "bgr565be", | |
791
ecf67bd079fe
Rename AVPixFmtDescriptor.nb_channels to nb_components, the new name
stefano
parents:
787
diff
changeset
|
624 .nb_components= 3, |
781 | 625 .log2_chroma_w= 0, |
626 .log2_chroma_h= 0, | |
627 .comp = { | |
628 {0,1,0,3,4}, /* B */ | |
629 {0,1,1,5,5}, /* G */ | |
630 {0,1,1,0,4}, /* R */ | |
631 }, | |
632 .flags = PIX_FMT_BE, | |
633 }, | |
634 [PIX_FMT_BGR565LE] = { | |
635 .name = "bgr565le", | |
791
ecf67bd079fe
Rename AVPixFmtDescriptor.nb_channels to nb_components, the new name
stefano
parents:
787
diff
changeset
|
636 .nb_components= 3, |
781 | 637 .log2_chroma_w= 0, |
638 .log2_chroma_h= 0, | |
639 .comp = { | |
640 {0,1,2,3,4}, /* B */ | |
641 {0,1,1,5,5}, /* G */ | |
642 {0,1,1,0,4}, /* R */ | |
643 }, | |
644 }, | |
645 [PIX_FMT_BGR555BE] = { | |
646 .name = "bgr555be", | |
791
ecf67bd079fe
Rename AVPixFmtDescriptor.nb_channels to nb_components, the new name
stefano
parents:
787
diff
changeset
|
647 .nb_components= 3, |
781 | 648 .log2_chroma_w= 0, |
649 .log2_chroma_h= 0, | |
650 .comp = { | |
651 {0,1,0,2,4}, /* B */ | |
652 {0,1,1,5,4}, /* G */ | |
653 {0,1,1,0,4}, /* R */ | |
654 }, | |
655 .flags = PIX_FMT_BE, | |
656 }, | |
657 [PIX_FMT_BGR555LE] = { | |
658 .name = "bgr555le", | |
791
ecf67bd079fe
Rename AVPixFmtDescriptor.nb_channels to nb_components, the new name
stefano
parents:
787
diff
changeset
|
659 .nb_components= 3, |
781 | 660 .log2_chroma_w= 0, |
661 .log2_chroma_h= 0, | |
662 .comp = { | |
663 {0,1,2,2,4}, /* B */ | |
664 {0,1,1,5,4}, /* G */ | |
665 {0,1,1,0,4}, /* R */ | |
666 }, | |
667 }, | |
857 | 668 [PIX_FMT_BGR444BE] = { |
669 .name = "bgr444be", | |
670 .nb_components= 3, | |
671 .log2_chroma_w= 0, | |
672 .log2_chroma_h= 0, | |
673 .comp = { | |
674 {0,1,0,0,3}, /* B */ | |
675 {0,1,1,4,3}, /* G */ | |
676 {0,1,1,0,3}, /* R */ | |
677 }, | |
678 .flags = PIX_FMT_BE, | |
679 }, | |
680 [PIX_FMT_BGR444LE] = { | |
681 .name = "bgr444le", | |
682 .nb_components= 3, | |
683 .log2_chroma_w= 0, | |
684 .log2_chroma_h= 0, | |
685 .comp = { | |
686 {0,1,2,0,3}, /* B */ | |
687 {0,1,1,4,3}, /* G */ | |
688 {0,1,1,0,3}, /* R */ | |
689 }, | |
690 }, | |
783
c0b4f10edb74
Add pixel format descriptors for the HW-accelerated formats.
stefano
parents:
782
diff
changeset
|
691 [PIX_FMT_VAAPI_MOCO] = { |
c0b4f10edb74
Add pixel format descriptors for the HW-accelerated formats.
stefano
parents:
782
diff
changeset
|
692 .name = "vaapi_moco", |
c0b4f10edb74
Add pixel format descriptors for the HW-accelerated formats.
stefano
parents:
782
diff
changeset
|
693 .log2_chroma_w = 1, |
c0b4f10edb74
Add pixel format descriptors for the HW-accelerated formats.
stefano
parents:
782
diff
changeset
|
694 .log2_chroma_h = 1, |
c0b4f10edb74
Add pixel format descriptors for the HW-accelerated formats.
stefano
parents:
782
diff
changeset
|
695 .flags = PIX_FMT_HWACCEL, |
c0b4f10edb74
Add pixel format descriptors for the HW-accelerated formats.
stefano
parents:
782
diff
changeset
|
696 }, |
c0b4f10edb74
Add pixel format descriptors for the HW-accelerated formats.
stefano
parents:
782
diff
changeset
|
697 [PIX_FMT_VAAPI_IDCT] = { |
c0b4f10edb74
Add pixel format descriptors for the HW-accelerated formats.
stefano
parents:
782
diff
changeset
|
698 .name = "vaapi_idct", |
c0b4f10edb74
Add pixel format descriptors for the HW-accelerated formats.
stefano
parents:
782
diff
changeset
|
699 .log2_chroma_w = 1, |
c0b4f10edb74
Add pixel format descriptors for the HW-accelerated formats.
stefano
parents:
782
diff
changeset
|
700 .log2_chroma_h = 1, |
c0b4f10edb74
Add pixel format descriptors for the HW-accelerated formats.
stefano
parents:
782
diff
changeset
|
701 .flags = PIX_FMT_HWACCEL, |
c0b4f10edb74
Add pixel format descriptors for the HW-accelerated formats.
stefano
parents:
782
diff
changeset
|
702 }, |
c0b4f10edb74
Add pixel format descriptors for the HW-accelerated formats.
stefano
parents:
782
diff
changeset
|
703 [PIX_FMT_VAAPI_VLD] = { |
c0b4f10edb74
Add pixel format descriptors for the HW-accelerated formats.
stefano
parents:
782
diff
changeset
|
704 .name = "vaapi_vld", |
c0b4f10edb74
Add pixel format descriptors for the HW-accelerated formats.
stefano
parents:
782
diff
changeset
|
705 .log2_chroma_w = 1, |
c0b4f10edb74
Add pixel format descriptors for the HW-accelerated formats.
stefano
parents:
782
diff
changeset
|
706 .log2_chroma_h = 1, |
c0b4f10edb74
Add pixel format descriptors for the HW-accelerated formats.
stefano
parents:
782
diff
changeset
|
707 .flags = PIX_FMT_HWACCEL, |
c0b4f10edb74
Add pixel format descriptors for the HW-accelerated formats.
stefano
parents:
782
diff
changeset
|
708 }, |
781 | 709 [PIX_FMT_YUV420P16LE] = { |
710 .name = "yuv420p16le", | |
791
ecf67bd079fe
Rename AVPixFmtDescriptor.nb_channels to nb_components, the new name
stefano
parents:
787
diff
changeset
|
711 .nb_components= 3, |
781 | 712 .log2_chroma_w= 1, |
713 .log2_chroma_h= 1, | |
714 .comp = { | |
715 {0,1,1,0,15}, /* Y */ | |
716 {1,1,1,0,15}, /* U */ | |
717 {2,1,1,0,15}, /* V */ | |
718 }, | |
719 }, | |
720 [PIX_FMT_YUV420P16BE] = { | |
721 .name = "yuv420p16be", | |
791
ecf67bd079fe
Rename AVPixFmtDescriptor.nb_channels to nb_components, the new name
stefano
parents:
787
diff
changeset
|
722 .nb_components= 3, |
781 | 723 .log2_chroma_w= 1, |
724 .log2_chroma_h= 1, | |
725 .comp = { | |
726 {0,1,1,0,15}, /* Y */ | |
727 {1,1,1,0,15}, /* U */ | |
728 {2,1,1,0,15}, /* V */ | |
729 }, | |
730 .flags = PIX_FMT_BE, | |
731 }, | |
732 [PIX_FMT_YUV422P16LE] = { | |
733 .name = "yuv422p16le", | |
791
ecf67bd079fe
Rename AVPixFmtDescriptor.nb_channels to nb_components, the new name
stefano
parents:
787
diff
changeset
|
734 .nb_components= 3, |
781 | 735 .log2_chroma_w= 1, |
736 .log2_chroma_h= 0, | |
737 .comp = { | |
738 {0,1,1,0,15}, /* Y */ | |
739 {1,1,1,0,15}, /* U */ | |
740 {2,1,1,0,15}, /* V */ | |
741 }, | |
742 }, | |
743 [PIX_FMT_YUV422P16BE] = { | |
744 .name = "yuv422p16be", | |
791
ecf67bd079fe
Rename AVPixFmtDescriptor.nb_channels to nb_components, the new name
stefano
parents:
787
diff
changeset
|
745 .nb_components= 3, |
781 | 746 .log2_chroma_w= 1, |
747 .log2_chroma_h= 0, | |
748 .comp = { | |
749 {0,1,1,0,15}, /* Y */ | |
750 {1,1,1,0,15}, /* U */ | |
751 {2,1,1,0,15}, /* V */ | |
752 }, | |
753 .flags = PIX_FMT_BE, | |
754 }, | |
755 [PIX_FMT_YUV444P16LE] = { | |
756 .name = "yuv444p16le", | |
791
ecf67bd079fe
Rename AVPixFmtDescriptor.nb_channels to nb_components, the new name
stefano
parents:
787
diff
changeset
|
757 .nb_components= 3, |
781 | 758 .log2_chroma_w= 0, |
759 .log2_chroma_h= 0, | |
760 .comp = { | |
761 {0,1,1,0,15}, /* Y */ | |
762 {1,1,1,0,15}, /* U */ | |
763 {2,1,1,0,15}, /* V */ | |
764 }, | |
765 }, | |
766 [PIX_FMT_YUV444P16BE] = { | |
767 .name = "yuv444p16be", | |
791
ecf67bd079fe
Rename AVPixFmtDescriptor.nb_channels to nb_components, the new name
stefano
parents:
787
diff
changeset
|
768 .nb_components= 3, |
781 | 769 .log2_chroma_w= 0, |
770 .log2_chroma_h= 0, | |
771 .comp = { | |
772 {0,1,1,0,15}, /* Y */ | |
773 {1,1,1,0,15}, /* U */ | |
774 {2,1,1,0,15}, /* V */ | |
775 }, | |
776 .flags = PIX_FMT_BE, | |
777 }, | |
818 | 778 [PIX_FMT_DXVA2_VLD] = { |
779 .name = "dxva2_vld", | |
780 .log2_chroma_w = 1, | |
781 .log2_chroma_h = 1, | |
782 .flags = PIX_FMT_HWACCEL, | |
783 }, | |
898 | 784 [PIX_FMT_Y400A] = { |
785 .name = "y400a", | |
786 .nb_components= 2, | |
787 .comp = { | |
788 {0,1,1,0,7}, /* Y */ | |
789 {0,1,2,0,7}, /* A */ | |
790 }, | |
791 }, | |
781 | 792 }; |
793 | |
827
f01765adeb5c
Implement av_get_pix_fmt(), and deprecate avcodec_get_pix_fmt().
stefano
parents:
818
diff
changeset
|
794 static enum PixelFormat get_pix_fmt_internal(const char *name) |
f01765adeb5c
Implement av_get_pix_fmt(), and deprecate avcodec_get_pix_fmt().
stefano
parents:
818
diff
changeset
|
795 { |
f01765adeb5c
Implement av_get_pix_fmt(), and deprecate avcodec_get_pix_fmt().
stefano
parents:
818
diff
changeset
|
796 enum PixelFormat pix_fmt; |
f01765adeb5c
Implement av_get_pix_fmt(), and deprecate avcodec_get_pix_fmt().
stefano
parents:
818
diff
changeset
|
797 |
f01765adeb5c
Implement av_get_pix_fmt(), and deprecate avcodec_get_pix_fmt().
stefano
parents:
818
diff
changeset
|
798 for (pix_fmt = 0; pix_fmt < PIX_FMT_NB; pix_fmt++) |
f01765adeb5c
Implement av_get_pix_fmt(), and deprecate avcodec_get_pix_fmt().
stefano
parents:
818
diff
changeset
|
799 if (av_pix_fmt_descriptors[pix_fmt].name && |
f01765adeb5c
Implement av_get_pix_fmt(), and deprecate avcodec_get_pix_fmt().
stefano
parents:
818
diff
changeset
|
800 !strcmp(av_pix_fmt_descriptors[pix_fmt].name, name)) |
f01765adeb5c
Implement av_get_pix_fmt(), and deprecate avcodec_get_pix_fmt().
stefano
parents:
818
diff
changeset
|
801 return pix_fmt; |
f01765adeb5c
Implement av_get_pix_fmt(), and deprecate avcodec_get_pix_fmt().
stefano
parents:
818
diff
changeset
|
802 |
f01765adeb5c
Implement av_get_pix_fmt(), and deprecate avcodec_get_pix_fmt().
stefano
parents:
818
diff
changeset
|
803 return PIX_FMT_NONE; |
f01765adeb5c
Implement av_get_pix_fmt(), and deprecate avcodec_get_pix_fmt().
stefano
parents:
818
diff
changeset
|
804 } |
f01765adeb5c
Implement av_get_pix_fmt(), and deprecate avcodec_get_pix_fmt().
stefano
parents:
818
diff
changeset
|
805 |
f01765adeb5c
Implement av_get_pix_fmt(), and deprecate avcodec_get_pix_fmt().
stefano
parents:
818
diff
changeset
|
806 #if HAVE_BIGENDIAN |
f01765adeb5c
Implement av_get_pix_fmt(), and deprecate avcodec_get_pix_fmt().
stefano
parents:
818
diff
changeset
|
807 # define X_NE(be, le) be |
f01765adeb5c
Implement av_get_pix_fmt(), and deprecate avcodec_get_pix_fmt().
stefano
parents:
818
diff
changeset
|
808 #else |
f01765adeb5c
Implement av_get_pix_fmt(), and deprecate avcodec_get_pix_fmt().
stefano
parents:
818
diff
changeset
|
809 # define X_NE(be, le) le |
f01765adeb5c
Implement av_get_pix_fmt(), and deprecate avcodec_get_pix_fmt().
stefano
parents:
818
diff
changeset
|
810 #endif |
f01765adeb5c
Implement av_get_pix_fmt(), and deprecate avcodec_get_pix_fmt().
stefano
parents:
818
diff
changeset
|
811 |
f01765adeb5c
Implement av_get_pix_fmt(), and deprecate avcodec_get_pix_fmt().
stefano
parents:
818
diff
changeset
|
812 enum PixelFormat av_get_pix_fmt(const char *name) |
f01765adeb5c
Implement av_get_pix_fmt(), and deprecate avcodec_get_pix_fmt().
stefano
parents:
818
diff
changeset
|
813 { |
f01765adeb5c
Implement av_get_pix_fmt(), and deprecate avcodec_get_pix_fmt().
stefano
parents:
818
diff
changeset
|
814 enum PixelFormat pix_fmt; |
f01765adeb5c
Implement av_get_pix_fmt(), and deprecate avcodec_get_pix_fmt().
stefano
parents:
818
diff
changeset
|
815 |
f01765adeb5c
Implement av_get_pix_fmt(), and deprecate avcodec_get_pix_fmt().
stefano
parents:
818
diff
changeset
|
816 if (!strcmp(name, "rgb32")) |
f01765adeb5c
Implement av_get_pix_fmt(), and deprecate avcodec_get_pix_fmt().
stefano
parents:
818
diff
changeset
|
817 name = X_NE("argb", "bgra"); |
f01765adeb5c
Implement av_get_pix_fmt(), and deprecate avcodec_get_pix_fmt().
stefano
parents:
818
diff
changeset
|
818 else if (!strcmp(name, "bgr32")) |
f01765adeb5c
Implement av_get_pix_fmt(), and deprecate avcodec_get_pix_fmt().
stefano
parents:
818
diff
changeset
|
819 name = X_NE("abgr", "rgba"); |
f01765adeb5c
Implement av_get_pix_fmt(), and deprecate avcodec_get_pix_fmt().
stefano
parents:
818
diff
changeset
|
820 |
f01765adeb5c
Implement av_get_pix_fmt(), and deprecate avcodec_get_pix_fmt().
stefano
parents:
818
diff
changeset
|
821 pix_fmt = get_pix_fmt_internal(name); |
f01765adeb5c
Implement av_get_pix_fmt(), and deprecate avcodec_get_pix_fmt().
stefano
parents:
818
diff
changeset
|
822 if (pix_fmt == PIX_FMT_NONE) { |
f01765adeb5c
Implement av_get_pix_fmt(), and deprecate avcodec_get_pix_fmt().
stefano
parents:
818
diff
changeset
|
823 char name2[32]; |
f01765adeb5c
Implement av_get_pix_fmt(), and deprecate avcodec_get_pix_fmt().
stefano
parents:
818
diff
changeset
|
824 |
f01765adeb5c
Implement av_get_pix_fmt(), and deprecate avcodec_get_pix_fmt().
stefano
parents:
818
diff
changeset
|
825 snprintf(name2, sizeof(name2), "%s%s", name, X_NE("be", "le")); |
f01765adeb5c
Implement av_get_pix_fmt(), and deprecate avcodec_get_pix_fmt().
stefano
parents:
818
diff
changeset
|
826 pix_fmt = get_pix_fmt_internal(name2); |
f01765adeb5c
Implement av_get_pix_fmt(), and deprecate avcodec_get_pix_fmt().
stefano
parents:
818
diff
changeset
|
827 } |
f01765adeb5c
Implement av_get_pix_fmt(), and deprecate avcodec_get_pix_fmt().
stefano
parents:
818
diff
changeset
|
828 return pix_fmt; |
f01765adeb5c
Implement av_get_pix_fmt(), and deprecate avcodec_get_pix_fmt().
stefano
parents:
818
diff
changeset
|
829 } |
f01765adeb5c
Implement av_get_pix_fmt(), and deprecate avcodec_get_pix_fmt().
stefano
parents:
818
diff
changeset
|
830 |
781 | 831 int av_get_bits_per_pixel(const AVPixFmtDescriptor *pixdesc) |
832 { | |
833 int c, bits = 0; | |
834 int log2_pixels = pixdesc->log2_chroma_w + pixdesc->log2_chroma_h; | |
835 | |
791
ecf67bd079fe
Rename AVPixFmtDescriptor.nb_channels to nb_components, the new name
stefano
parents:
787
diff
changeset
|
836 for (c = 0; c < pixdesc->nb_components; c++) { |
781 | 837 int s = c==1 || c==2 ? 0 : log2_pixels; |
838 bits += (pixdesc->comp[c].depth_minus1+1) << s; | |
839 } | |
840 | |
841 return bits >> log2_pixels; | |
842 } |