FFmpeg
pixdesc.h
Go to the documentation of this file.
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 
22 #ifndef AVUTIL_PIXDESC_H
23 #define AVUTIL_PIXDESC_H
24 
25 #include <inttypes.h>
26 
27 #include "attributes.h"
28 #include "pixfmt.h"
29 
30 typedef struct AVComponentDescriptor {
31  /**
32  * Which of the 4 planes contains the component.
33  */
34  int plane;
35 
36  /**
37  * Number of elements between 2 horizontally consecutive pixels.
38  * Elements are bits for bitstream formats, bytes otherwise.
39  */
40  int step;
41 
42  /**
43  * Number of elements before the component of the first pixel.
44  * Elements are bits for bitstream formats, bytes otherwise.
45  */
46  int offset;
47 
48  /**
49  * Number of least significant bits that must be shifted away
50  * to get the value.
51  */
52  int shift;
53 
54  /**
55  * Number of bits in the component.
56  */
57  int depth;
59 
60 /**
61  * Descriptor that unambiguously describes how the bits of a pixel are
62  * stored in the up to 4 data planes of an image. It also stores the
63  * subsampling factors and number of components.
64  *
65  * @note This is separate of the colorspace (RGB, YCbCr, YPbPr, JPEG-style YUV
66  * and all the YUV variants) AVPixFmtDescriptor just stores how values
67  * are stored not what these values represent.
68  */
69 typedef struct AVPixFmtDescriptor {
70  const char *name;
71  uint8_t nb_components; ///< The number of components each pixel has, (1-4)
72 
73  /**
74  * Amount to shift the luma width right to find the chroma width.
75  * For YV12 this is 1 for example.
76  * chroma_width = AV_CEIL_RSHIFT(luma_width, log2_chroma_w)
77  * The note above is needed to ensure rounding up.
78  * This value only refers to the chroma components.
79  */
80  uint8_t log2_chroma_w;
81 
82  /**
83  * Amount to shift the luma height right to find the chroma height.
84  * For YV12 this is 1 for example.
85  * chroma_height= AV_CEIL_RSHIFT(luma_height, log2_chroma_h)
86  * The note above is needed to ensure rounding up.
87  * This value only refers to the chroma components.
88  */
89  uint8_t log2_chroma_h;
90 
91  /**
92  * Combination of AV_PIX_FMT_FLAG_... flags.
93  */
94  uint64_t flags;
95 
96  /**
97  * Parameters that describe how pixels are packed.
98  * If the format has 1 or 2 components, then luma is 0.
99  * If the format has 3 or 4 components:
100  * if the RGB flag is set then 0 is red, 1 is green and 2 is blue;
101  * otherwise 0 is luma, 1 is chroma-U and 2 is chroma-V.
102  *
103  * If present, the Alpha channel is always the last component.
104  */
106 
107  /**
108  * Alternative comma-separated names.
109  */
110  const char *alias;
112 
113 /**
114  * Pixel format is big-endian.
115  */
116 #define AV_PIX_FMT_FLAG_BE (1 << 0)
117 /**
118  * Pixel format has a palette in data[1], values are indexes in this palette.
119  */
120 #define AV_PIX_FMT_FLAG_PAL (1 << 1)
121 /**
122  * All values of a component are bit-wise packed end to end.
123  */
124 #define AV_PIX_FMT_FLAG_BITSTREAM (1 << 2)
125 /**
126  * Pixel format is an HW accelerated format.
127  */
128 #define AV_PIX_FMT_FLAG_HWACCEL (1 << 3)
129 /**
130  * At least one pixel component is not in the first data plane.
131  */
132 #define AV_PIX_FMT_FLAG_PLANAR (1 << 4)
133 /**
134  * The pixel format contains RGB-like data (as opposed to YUV/grayscale).
135  */
136 #define AV_PIX_FMT_FLAG_RGB (1 << 5)
137 
138 /**
139  * The pixel format has an alpha channel. This is set on all formats that
140  * support alpha in some way, including AV_PIX_FMT_PAL8. The alpha is always
141  * straight, never pre-multiplied.
142  *
143  * If a codec or a filter does not support alpha, it should set all alpha to
144  * opaque, or use the equivalent pixel formats without alpha component, e.g.
145  * AV_PIX_FMT_RGB0 (or AV_PIX_FMT_RGB24 etc.) instead of AV_PIX_FMT_RGBA.
146  */
147 #define AV_PIX_FMT_FLAG_ALPHA (1 << 7)
148 
149 /**
150  * The pixel format is following a Bayer pattern
151  */
152 #define AV_PIX_FMT_FLAG_BAYER (1 << 8)
153 
154 /**
155  * The pixel format contains IEEE-754 floating point values. Precision (double,
156  * single, or half) should be determined by the pixel size (64, 32, or 16 bits).
157  */
158 #define AV_PIX_FMT_FLAG_FLOAT (1 << 9)
159 
160 /**
161  * The pixel format contains XYZ-like data (as opposed to YUV/RGB/grayscale).
162  */
163 #define AV_PIX_FMT_FLAG_XYZ (1 << 10)
164 
165 /**
166  * Return the number of bits per pixel used by the pixel format
167  * described by pixdesc. Note that this is not the same as the number
168  * of bits per sample.
169  *
170  * The returned number of bits refers to the number of bits actually
171  * used for storing the pixel information, that is padding bits are
172  * not counted.
173  */
174 int av_get_bits_per_pixel(const AVPixFmtDescriptor *pixdesc);
175 
176 /**
177  * Return the number of bits per pixel for the pixel format
178  * described by pixdesc, including any padding or unused bits.
179  */
181 
182 /**
183  * @return a pixel format descriptor for provided pixel format or NULL if
184  * this pixel format is unknown.
185  */
187 
188 /**
189  * Iterate over all pixel format descriptors known to libavutil.
190  *
191  * @param prev previous descriptor. NULL to get the first descriptor.
192  *
193  * @return next descriptor or NULL after the last descriptor
194  */
196 
197 /**
198  * @return an AVPixelFormat id described by desc, or AV_PIX_FMT_NONE if desc
199  * is not a valid pointer to a pixel format descriptor.
200  */
202 
203 /**
204  * Utility function to access log2_chroma_w log2_chroma_h from
205  * the pixel format AVPixFmtDescriptor.
206  *
207  * @param[in] pix_fmt the pixel format
208  * @param[out] h_shift store log2_chroma_w (horizontal/width shift)
209  * @param[out] v_shift store log2_chroma_h (vertical/height shift)
210  *
211  * @return 0 on success, AVERROR(ENOSYS) on invalid or unknown pixel format
212  */
214  int *h_shift, int *v_shift);
215 
216 /**
217  * @return number of planes in pix_fmt, a negative AVERROR if pix_fmt is not a
218  * valid pixel format.
219  */
221 
222 /**
223  * @return the name for provided color range or NULL if unknown.
224  */
225 const char *av_color_range_name(enum AVColorRange range);
226 
227 /**
228  * @return the AVColorRange value for name or an AVError if not found.
229  */
230 int av_color_range_from_name(const char *name);
231 
232 /**
233  * @return the name for provided color primaries or NULL if unknown.
234  */
236 
237 /**
238  * @return the AVColorPrimaries value for name or an AVError if not found.
239  */
240 int av_color_primaries_from_name(const char *name);
241 
242 /**
243  * @return the name for provided color transfer or NULL if unknown.
244  */
246 
247 /**
248  * @return the AVColorTransferCharacteristic value for name or an AVError if not found.
249  */
250 int av_color_transfer_from_name(const char *name);
251 
252 /**
253  * @return the name for provided color space or NULL if unknown.
254  */
255 const char *av_color_space_name(enum AVColorSpace space);
256 
257 /**
258  * @return the AVColorSpace value for name or an AVError if not found.
259  */
260 int av_color_space_from_name(const char *name);
261 
262 /**
263  * @return the name for provided chroma location or NULL if unknown.
264  */
265 const char *av_chroma_location_name(enum AVChromaLocation location);
266 
267 /**
268  * @return the AVChromaLocation value for name or an AVError if not found.
269  */
270 int av_chroma_location_from_name(const char *name);
271 
272 /**
273  * Converts AVChromaLocation to swscale x/y chroma position.
274  *
275  * The positions represent the chroma (0,0) position in a coordinates system
276  * with luma (0,0) representing the origin and luma(1,1) representing 256,256
277  *
278  * @param xpos horizontal chroma sample position
279  * @param ypos vertical chroma sample position
280  */
281 int av_chroma_location_enum_to_pos(int *xpos, int *ypos, enum AVChromaLocation pos);
282 
283 /**
284  * Converts swscale x/y chroma position to AVChromaLocation.
285  *
286  * The positions represent the chroma (0,0) position in a coordinates system
287  * with luma (0,0) representing the origin and luma(1,1) representing 256,256
288  *
289  * @param xpos horizontal chroma sample position
290  * @param ypos vertical chroma sample position
291  */
292 enum AVChromaLocation av_chroma_location_pos_to_enum(int xpos, int ypos);
293 
294 /**
295  * Return the pixel format corresponding to name.
296  *
297  * If there is no pixel format with name name, then looks for a
298  * pixel format with the name corresponding to the native endian
299  * format of name.
300  * For example in a little-endian system, first looks for "gray16",
301  * then for "gray16le".
302  *
303  * Finally if no pixel format has been found, returns AV_PIX_FMT_NONE.
304  */
305 enum AVPixelFormat av_get_pix_fmt(const char *name);
306 
307 /**
308  * Return the short name for a pixel format, NULL in case pix_fmt is
309  * unknown.
310  *
311  * @see av_get_pix_fmt(), av_get_pix_fmt_string()
312  */
313 const char *av_get_pix_fmt_name(enum AVPixelFormat pix_fmt);
314 
315 /**
316  * Print in buf the string corresponding to the pixel format with
317  * number pix_fmt, or a header if pix_fmt is negative.
318  *
319  * @param buf the buffer where to write the string
320  * @param buf_size the size of buf
321  * @param pix_fmt the number of the pixel format to print the
322  * corresponding info string, or a negative value to print the
323  * corresponding header.
324  */
325 char *av_get_pix_fmt_string(char *buf, int buf_size,
326  enum AVPixelFormat pix_fmt);
327 
328 /**
329  * Read a line from an image, and write the values of the
330  * pixel format component c to dst.
331  *
332  * @param data the array containing the pointers to the planes of the image
333  * @param linesize the array containing the linesizes of the image
334  * @param desc the pixel format descriptor for the image
335  * @param x the horizontal coordinate of the first pixel to read
336  * @param y the vertical coordinate of the first pixel to read
337  * @param w the width of the line to read, that is the number of
338  * values to write to dst
339  * @param read_pal_component if not zero and the format is a paletted
340  * format writes the values corresponding to the palette
341  * component c in data[1] to dst, rather than the palette indexes in
342  * data[0]. The behavior is undefined if the format is not paletted.
343  * @param dst_element_size size of elements in dst array (2 or 4 byte)
344  */
345 void av_read_image_line2(void *dst, const uint8_t *data[4],
346  const int linesize[4], const AVPixFmtDescriptor *desc,
347  int x, int y, int c, int w, int read_pal_component,
348  int dst_element_size);
349 
350 void av_read_image_line(uint16_t *dst, const uint8_t *data[4],
351  const int linesize[4], const AVPixFmtDescriptor *desc,
352  int x, int y, int c, int w, int read_pal_component);
353 
354 /**
355  * Write the values from src to the pixel format component c of an
356  * image line.
357  *
358  * @param src array containing the values to write
359  * @param data the array containing the pointers to the planes of the
360  * image to write into. It is supposed to be zeroed.
361  * @param linesize the array containing the linesizes of the image
362  * @param desc the pixel format descriptor for the image
363  * @param x the horizontal coordinate of the first pixel to write
364  * @param y the vertical coordinate of the first pixel to write
365  * @param w the width of the line to write, that is the number of
366  * values to write to the image line
367  * @param src_element_size size of elements in src array (2 or 4 byte)
368  */
369 void av_write_image_line2(const void *src, uint8_t *data[4],
370  const int linesize[4], const AVPixFmtDescriptor *desc,
371  int x, int y, int c, int w, int src_element_size);
372 
373 void av_write_image_line(const uint16_t *src, uint8_t *data[4],
374  const int linesize[4], const AVPixFmtDescriptor *desc,
375  int x, int y, int c, int w);
376 
377 /**
378  * Utility function to swap the endianness of a pixel format.
379  *
380  * @param[in] pix_fmt the pixel format
381  *
382  * @return pixel format with swapped endianness if it exists,
383  * otherwise AV_PIX_FMT_NONE
384  */
386 
387 #define FF_LOSS_RESOLUTION 0x0001 /**< loss due to resolution change */
388 #define FF_LOSS_DEPTH 0x0002 /**< loss due to color depth change */
389 #define FF_LOSS_COLORSPACE 0x0004 /**< loss due to color space conversion */
390 #define FF_LOSS_ALPHA 0x0008 /**< loss of alpha bits */
391 #define FF_LOSS_COLORQUANT 0x0010 /**< loss due to color quantization */
392 #define FF_LOSS_CHROMA 0x0020 /**< loss of chroma (e.g. RGB to gray conversion) */
393 #define FF_LOSS_EXCESS_RESOLUTION 0x0040 /**< loss due to unneeded extra resolution */
394 #define FF_LOSS_EXCESS_DEPTH 0x0080 /**< loss due to unneeded extra color depth */
395 
396 
397 /**
398  * Compute what kind of losses will occur when converting from one specific
399  * pixel format to another.
400  * When converting from one pixel format to another, information loss may occur.
401  * For example, when converting from RGB24 to GRAY, the color information will
402  * be lost. Similarly, other losses occur when converting from some formats to
403  * other formats. These losses can involve loss of chroma, but also loss of
404  * resolution, loss of color depth, loss due to the color space conversion, loss
405  * of the alpha bits or loss due to color quantization.
406  * av_get_fix_fmt_loss() informs you about the various types of losses
407  * which will occur when converting from one pixel format to another.
408  *
409  * @param[in] dst_pix_fmt destination pixel format
410  * @param[in] src_pix_fmt source pixel format
411  * @param[in] has_alpha Whether the source pixel format alpha channel is used.
412  * @return Combination of flags informing you what kind of losses will occur
413  * (maximum loss for an invalid dst_pix_fmt).
414  */
415 int av_get_pix_fmt_loss(enum AVPixelFormat dst_pix_fmt,
416  enum AVPixelFormat src_pix_fmt,
417  int has_alpha);
418 
419 /**
420  * Compute what kind of losses will occur when converting from one specific
421  * pixel format to another.
422  * When converting from one pixel format to another, information loss may occur.
423  * For example, when converting from RGB24 to GRAY, the color information will
424  * be lost. Similarly, other losses occur when converting from some formats to
425  * other formats. These losses can involve loss of chroma, but also loss of
426  * resolution, loss of color depth, loss due to the color space conversion, loss
427  * of the alpha bits or loss due to color quantization.
428  * av_get_fix_fmt_loss() informs you about the various types of losses
429  * which will occur when converting from one pixel format to another.
430  *
431  * @param[in] dst_pix_fmt destination pixel format
432  * @param[in] src_pix_fmt source pixel format
433  * @param[in] has_alpha Whether the source pixel format alpha channel is used.
434  * @return Combination of flags informing you what kind of losses will occur
435  * (maximum loss for an invalid dst_pix_fmt).
436  */
437 enum AVPixelFormat av_find_best_pix_fmt_of_2(enum AVPixelFormat dst_pix_fmt1, enum AVPixelFormat dst_pix_fmt2,
438  enum AVPixelFormat src_pix_fmt, int has_alpha, int *loss_ptr);
439 
440 #endif /* AVUTIL_PIXDESC_H */
AVPixelFormat
AVPixelFormat
Pixel format.
Definition: pixfmt.h:71
name
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf default minimum maximum flags name is the option name
Definition: writing_filters.txt:88
space
Undefined Behavior In the C some operations are like signed integer dereferencing freed accessing outside allocated space
Definition: undefined.txt:4
AVColorTransferCharacteristic
AVColorTransferCharacteristic
Color Transfer Characteristic.
Definition: pixfmt.h:611
av_write_image_line
void av_write_image_line(const uint16_t *src, uint8_t *data[4], const int linesize[4], const AVPixFmtDescriptor *desc, int x, int y, int c, int w)
Definition: pixdesc.c:195
av_pix_fmt_swap_endianness
enum AVPixelFormat av_pix_fmt_swap_endianness(enum AVPixelFormat pix_fmt)
Utility function to swap the endianness of a pixel format.
Definition: pixdesc.c:3225
av_get_pix_fmt_loss
int av_get_pix_fmt_loss(enum AVPixelFormat dst_pix_fmt, enum AVPixelFormat src_pix_fmt, int has_alpha)
Compute what kind of losses will occur when converting from one specific pixel format to another.
Definition: pixdesc.c:3438
av_get_padded_bits_per_pixel
int av_get_padded_bits_per_pixel(const AVPixFmtDescriptor *pixdesc)
Return the number of bits per pixel for the pixel format described by pixdesc, including any padding ...
Definition: pixdesc.c:3135
av_chroma_location_from_name
int av_chroma_location_from_name(const char *name)
Definition: pixdesc.c:3573
w
uint8_t w
Definition: llviddspenc.c:38
AVComponentDescriptor::depth
int depth
Number of bits in the component.
Definition: pixdesc.h:57
AVPixFmtDescriptor::name
const char * name
Definition: pixdesc.h:70
data
const char data[16]
Definition: mxf.c:149
AVComponentDescriptor::step
int step
Number of elements between 2 horizontally consecutive pixels.
Definition: pixdesc.h:40
av_color_range_from_name
int av_color_range_from_name(const char *name)
Definition: pixdesc.c:3492
AVColorPrimaries
AVColorPrimaries
Chromaticity coordinates of the source primaries.
Definition: pixfmt.h:586
av_read_image_line
void av_read_image_line(uint16_t *dst, const uint8_t *data[4], const int linesize[4], const AVPixFmtDescriptor *desc, int x, int y, int c, int w, int read_pal_component)
Definition: pixdesc.c:106
primaries
enum AVColorPrimaries primaries
Definition: mediacodec_wrapper.c:2482
av_color_transfer_from_name
int av_color_transfer_from_name(const char *name)
Definition: pixdesc.c:3531
av_pix_fmt_get_chroma_sub_sample
int av_pix_fmt_get_chroma_sub_sample(enum AVPixelFormat pix_fmt, int *h_shift, int *v_shift)
Utility function to access log2_chroma_w log2_chroma_h from the pixel format AVPixFmtDescriptor.
Definition: pixdesc.c:3198
av_color_transfer_name
const char * av_color_transfer_name(enum AVColorTransferCharacteristic transfer)
Definition: pixdesc.c:3525
av_get_bits_per_pixel
int av_get_bits_per_pixel(const AVPixFmtDescriptor *pixdesc)
Return the number of bits per pixel used by the pixel format described by pixdesc.
Definition: pixdesc.c:3122
pix_fmt
static enum AVPixelFormat pix_fmt
Definition: demux_decode.c:41
AVPixFmtDescriptor::log2_chroma_w
uint8_t log2_chroma_w
Amount to shift the luma width right to find the chroma width.
Definition: pixdesc.h:80
av_color_primaries_name
const char * av_color_primaries_name(enum AVColorPrimaries primaries)
Definition: pixdesc.c:3504
AVComponentDescriptor
Definition: pixdesc.h:30
AVPixFmtDescriptor::nb_components
uint8_t nb_components
The number of components each pixel has, (1-4)
Definition: pixdesc.h:71
AVComponentDescriptor::plane
int plane
Which of the 4 planes contains the component.
Definition: pixdesc.h:34
av_chroma_location_name
const char * av_chroma_location_name(enum AVChromaLocation location)
Definition: pixdesc.c:3567
AVPixFmtDescriptor::flags
uint64_t flags
Combination of AV_PIX_FMT_FLAG_...
Definition: pixdesc.h:94
c
Undefined Behavior In the C some operations are like signed integer dereferencing freed accessing outside allocated Undefined Behavior must not occur in a C it is not safe even if the output of undefined operations is unused The unsafety may seem nit picking but Optimizing compilers have in fact optimized code on the assumption that no undefined Behavior occurs Optimizing code based on wrong assumptions can and has in some cases lead to effects beyond the output of computations The signed integer overflow problem in speed critical code Code which is highly optimized and works with signed integers sometimes has the problem that often the output of the computation does not c
Definition: undefined.txt:32
av_color_space_name
const char * av_color_space_name(enum AVColorSpace space)
Definition: pixdesc.c:3546
av_color_range_name
const char * av_color_range_name(enum AVColorRange range)
Definition: pixdesc.c:3486
dst
uint8_t ptrdiff_t const uint8_t ptrdiff_t int intptr_t intptr_t int int16_t * dst
Definition: dsp.h:83
av_pix_fmt_desc_get
const AVPixFmtDescriptor * av_pix_fmt_desc_get(enum AVPixelFormat pix_fmt)
Definition: pixdesc.c:3170
range
enum AVColorRange range
Definition: mediacodec_wrapper.c:2464
attributes.h
av_pix_fmt_desc_next
const AVPixFmtDescriptor * av_pix_fmt_desc_next(const AVPixFmtDescriptor *prev)
Iterate over all pixel format descriptors known to libavutil.
Definition: pixdesc.c:3177
av_chroma_location_pos_to_enum
enum AVChromaLocation av_chroma_location_pos_to_enum(int xpos, int ypos)
Converts swscale x/y chroma position to AVChromaLocation.
Definition: pixdesc.c:3600
AVChromaLocation
AVChromaLocation
Location of chroma samples.
Definition: pixfmt.h:736
av_chroma_location_enum_to_pos
int av_chroma_location_enum_to_pos(int *xpos, int *ypos, enum AVChromaLocation pos)
Converts AVChromaLocation to swscale x/y chroma position.
Definition: pixdesc.c:3588
av_get_pix_fmt_string
char * av_get_pix_fmt_string(char *buf, int buf_size, enum AVPixelFormat pix_fmt)
Print in buf the string corresponding to the pixel format with number pix_fmt, or a header if pix_fmt...
Definition: pixdesc.c:3155
AVComponentDescriptor::shift
int shift
Number of least significant bits that must be shifted away to get the value.
Definition: pixdesc.h:52
transfer
enum AVColorTransferCharacteristic transfer
Definition: mediacodec_wrapper.c:2492
AVPixFmtDescriptor::alias
const char * alias
Alternative comma-separated names.
Definition: pixdesc.h:110
AVColorSpace
AVColorSpace
YUV colorspace type.
Definition: pixfmt.h:640
av_pix_fmt_count_planes
int av_pix_fmt_count_planes(enum AVPixelFormat pix_fmt)
Definition: pixdesc.c:3210
av_read_image_line2
void av_read_image_line2(void *dst, const uint8_t *data[4], const int linesize[4], const AVPixFmtDescriptor *desc, int x, int y, int c, int w, int read_pal_component, int dst_element_size)
Read a line from an image, and write the values of the pixel format component c to dst.
Definition: pixdesc.c:31
pixfmt.h
av_pix_fmt_desc_get_id
enum AVPixelFormat av_pix_fmt_desc_get_id(const AVPixFmtDescriptor *desc)
Definition: pixdesc.c:3189
pos
unsigned int pos
Definition: spdifenc.c:414
AVPixFmtDescriptor::comp
AVComponentDescriptor comp[4]
Parameters that describe how pixels are packed.
Definition: pixdesc.h:105
av_get_pix_fmt
enum AVPixelFormat av_get_pix_fmt(const char *name)
Return the pixel format corresponding to name.
Definition: pixdesc.c:3102
av_color_primaries_from_name
int av_color_primaries_from_name(const char *name)
Definition: pixdesc.c:3510
desc
const char * desc
Definition: libsvtav1.c:79
AVPixFmtDescriptor
Descriptor that unambiguously describes how the bits of a pixel are stored in the up to 4 data planes...
Definition: pixdesc.h:69
av_find_best_pix_fmt_of_2
enum AVPixelFormat av_find_best_pix_fmt_of_2(enum AVPixelFormat dst_pix_fmt1, enum AVPixelFormat dst_pix_fmt2, enum AVPixelFormat src_pix_fmt, int has_alpha, int *loss_ptr)
Compute what kind of losses will occur when converting from one specific pixel format to another.
Definition: pixdesc.c:3449
av_get_pix_fmt_name
const char * av_get_pix_fmt_name(enum AVPixelFormat pix_fmt)
Return the short name for a pixel format, NULL in case pix_fmt is unknown.
Definition: pixdesc.c:3090
AVColorRange
AVColorRange
Visual content value range.
Definition: pixfmt.h:682
AVPixFmtDescriptor::log2_chroma_h
uint8_t log2_chroma_h
Amount to shift the luma height right to find the chroma height.
Definition: pixdesc.h:89
av_color_space_from_name
int av_color_space_from_name(const char *name)
Definition: pixdesc.c:3552
src
#define src
Definition: vp8dsp.c:248
AVComponentDescriptor::offset
int offset
Number of elements before the component of the first pixel.
Definition: pixdesc.h:46
av_write_image_line2
void av_write_image_line2(const void *src, uint8_t *data[4], const int linesize[4], const AVPixFmtDescriptor *desc, int x, int y, int c, int w, int src_element_size)
Write the values from src to the pixel format component c of an image line.
Definition: pixdesc.c:117