Libav
Macros | Functions | Variables
pixdesc.c File Reference
#include <stdio.h>
#include <string.h>
#include "avstring.h"
#include "common.h"
#include "pixfmt.h"
#include "pixdesc.h"
#include "internal.h"
#include "intreadwrite.h"
#include "version.h"

Go to the source code of this file.

Macros

#define X_NE(be, le)   le
 
#define PIX_FMT_SWAP_ENDIANNESS(fmt)
 

Functions

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)
 Read a line from an image, and write the values of the pixel format component c to dst. More...
 
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)
 Write the values from src to the pixel format component c of an image line. More...
 
static enum AVPixelFormat get_pix_fmt_internal (const char *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. More...
 
enum AVPixelFormat av_get_pix_fmt (const char *name)
 Return the pixel format corresponding to name. More...
 
int av_get_bits_per_pixel (const AVPixFmtDescriptor *pixdesc)
 Return the number of bits per pixel used by the pixel format described by pixdesc. More...
 
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 an header if pix_fmt is negative. More...
 
const AVPixFmtDescriptorav_pix_fmt_desc_get (enum AVPixelFormat pix_fmt)
 
const AVPixFmtDescriptorav_pix_fmt_desc_next (const AVPixFmtDescriptor *prev)
 Iterate over all pixel format descriptors known to libavutil. More...
 
enum AVPixelFormat av_pix_fmt_desc_get_id (const AVPixFmtDescriptor *desc)
 
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. More...
 
int av_pix_fmt_count_planes (enum AVPixelFormat pix_fmt)
 
enum AVPixelFormat av_pix_fmt_swap_endianness (enum AVPixelFormat pix_fmt)
 Utility function to swap the endianness of a pixel format. More...
 
const char * av_color_range_name (enum AVColorRange range)
 
const char * av_color_primaries_name (enum AVColorPrimaries primaries)
 
const char * av_color_transfer_name (enum AVColorTransferCharacteristic transfer)
 
const char * av_color_space_name (enum AVColorSpace space)
 
const char * av_chroma_location_name (enum AVChromaLocation location)
 

Variables

static FF_DISABLE_DEPRECATION_WARNINGS const AVPixFmtDescriptor av_pix_fmt_descriptors [AV_PIX_FMT_NB]
 
static FF_ENABLE_DEPRECATION_WARNINGS const char * color_range_names []
 
static const char * color_primaries_names []
 
static const char * color_transfer_names []
 
static const char * color_space_names []
 
static const char * chroma_location_names []
 

Macro Definition Documentation

◆ X_NE

#define X_NE (   be,
  le 
)    le

Definition at line 1713 of file pixdesc.c.

Referenced by av_get_pix_fmt().

◆ PIX_FMT_SWAP_ENDIANNESS

#define PIX_FMT_SWAP_ENDIANNESS (   fmt)
Value:
case AV_PIX_FMT_ ## fmt ## BE: return AV_PIX_FMT_ ## fmt ## LE; \
case AV_PIX_FMT_ ## fmt ## LE: return AV_PIX_FMT_ ## fmt ## BE

Referenced by av_pix_fmt_swap_endianness().

Function Documentation

◆ 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 
)

Read a line from an image, and write the values of the pixel format component c to dst.

Parameters
datathe array containing the pointers to the planes of the image
linesizethe array containing the linesizes of the image
descthe pixel format descriptor for the image
xthe horizontal coordinate of the first pixel to read
ythe vertical coordinate of the first pixel to read
wthe width of the line to read, that is the number of values to write to dst
read_pal_componentif not zero and the format is a paletted format writes the values corresponding to the palette component c in data[1] to dst, rather than the palette indexes in data[0]. The behavior is undefined if the format is not paletted.

Definition at line 33 of file pixdesc.c.

Referenced by filter_frame().

◆ 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 
)

Write the values from src to the pixel format component c of an image line.

Parameters
srcarray containing the values to write
datathe array containing the pointers to the planes of the image to write into. It is supposed to be zeroed.
linesizethe array containing the linesizes of the image
descthe pixel format descriptor for the image
xthe horizontal coordinate of the first pixel to write
ythe vertical coordinate of the first pixel to write
wthe width of the line to write, that is the number of values to write to the image line

Definition at line 81 of file pixdesc.c.

Referenced by filter_frame().

◆ get_pix_fmt_internal()

static enum AVPixelFormat get_pix_fmt_internal ( const char *  name)
static

Definition at line 1691 of file pixdesc.c.

Referenced by av_get_pix_fmt().

◆ av_get_pix_fmt_name()

const char* av_get_pix_fmt_name ( enum AVPixelFormat  pix_fmt)

◆ av_get_pix_fmt()

enum AVPixelFormat av_get_pix_fmt ( const char *  name)

Return the pixel format corresponding to name.

If there is no pixel format with name name, then looks for a pixel format with the name corresponding to the native endian format of name. For example in a little-endian system, first looks for "gray16", then for "gray16le".

Finally if no pixel format has been found, returns PIX_FMT_NONE.

Definition at line 1716 of file pixdesc.c.

Referenced by add_input_streams(), avfoundation_read_header(), dc1394_read_common(), fileTest(), get_video_config(), img_read_header(), init(), init_video(), main(), new_video_stream(), nppscale_init(), qsvscale_init(), rawvideo_read_header(), scale_vaapi_init(), and v4l2_read_header().

◆ 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.

Note that this is not the same as the number of bits per sample.

The returned number of bits refers to the number of bits actually used for storing the pixel information, that is padding bits are not counted.

Definition at line 1740 of file pixdesc.c.

Referenced by av_get_pix_fmt_string(), avcodec_find_best_pix_fmt1(), config_props(), encode_frame(), ff_fill_line_with_color(), raw_encode_init(), show_pix_fmts(), sws_init_context(), sws_setColorspaceDetails(), and xwd_encode_frame().

◆ 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 an header if pix_fmt is negative.

Parameters
bufthe buffer where to write the string
buf_sizethe size of buf
pix_fmtthe number of the pixel format to print the corresponding info string, or a negative value to print the corresponding header.

Definition at line 1753 of file pixdesc.c.

◆ av_pix_fmt_desc_get()

const AVPixFmtDescriptor* av_pix_fmt_desc_get ( enum AVPixelFormat  pix_fmt)
Returns
a pixel format descriptor for provided pixel format or NULL if this pixel format is unknown.

Definition at line 1768 of file pixdesc.c.

Referenced by av_image_alloc(), av_image_copy(), av_image_copy_to_buffer(), av_image_fill_linesizes(), av_image_fill_pointers(), av_image_get_buffer_size(), av_image_get_linesize(), av_picture_crop(), av_picture_pad(), av_pix_fmt_count_planes(), av_pix_fmt_get_chroma_sub_sample(), avcodec_align_dimensions(), avcodec_find_best_pix_fmt1(), avcodec_get_chroma_sub_sample(), avcodec_get_pix_fmt_loss(), check_image_pointers(), color_config_props(), config_input(), config_input_main(), config_output(), config_props(), config_props_output(), copy_picture_field(), decode_frame(), decode_slice(), doTest(), encode_frame(), encode_init(), encode_slice(), ff_draw_horiz_band(), ff_fill_line_with_color(), ff_get_format(), ff_get_unscaled_swscale(), ff_h264_draw_horiz_band(), ff_hevc_output_frame(), ff_mjpeg_decode_sof(), ff_pnm_decode_header(), ff_sws_init_output_funcs(), ffv1_encode_init(), filter_frame(), findRgbConvFn(), frame_end(), get_aspect_ratio(), get_deinterleaved_format(), get_format(), get_video_buffer(), getSubSampleFactors(), hScale16To15_c(), hScale16To19_c(), init_video(), init_video_param(), is16BPS(), is9_OR_10BPS(), is_hwaccel_pix_fmt(), isALPHA(), isBE(), isPacked(), isPackedRGB(), isPlanar(), isPlanarRGB(), isPlanarYUV(), isRGB(), isYUV(), libopenjpeg_create_image(), libopenjpeg_decode_frame(), libopenjpeg_ispacked(), libopenjpeg_matches_pix_fmt(), libx265_encode_frame(), libx265_encode_init(), map_pixel_format(), planarCopyWrapper(), pnm_encode_frame(), print_digraph(), qsv_decode_init(), qsv_init_pool(), raw_decode(), raw_encode_init(), raw_init_decoder(), selfTest(), show_stream(), shuffleplanes_config_input(), sws_format_name(), sws_init_context(), sws_setColorspaceDetails(), swscale(), usePal(), utvideo_encode_init(), vaapi_build_decoder_config(), verify_md5(), xwd_encode_frame(), and yuv2gbrp_full_X_c().

◆ av_pix_fmt_desc_next()

const AVPixFmtDescriptor* av_pix_fmt_desc_next ( const AVPixFmtDescriptor prev)

Iterate over all pixel format descriptors known to libavutil.

Parameters
prevprevious descriptor. NULL to get the first descriptor.
Returns
next descriptor or NULL after the last descriptor

Definition at line 1775 of file pixdesc.c.

Referenced by ff_all_formats(), hwdownload_query_formats(), init(), query_formats(), and show_pix_fmts().

◆ av_pix_fmt_desc_get_id()

enum AVPixelFormat av_pix_fmt_desc_get_id ( const AVPixFmtDescriptor desc)
Returns
an AVPixelFormat id described by desc, or AV_PIX_FMT_NONE if desc is not a valid pointer to a pixel format descriptor.

Definition at line 1784 of file pixdesc.c.

Referenced by ff_all_formats(), hwdownload_query_formats(), init(), query_formats(), and show_pix_fmts().

◆ 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.

Parameters
[in]pix_fmtthe pixel format
[out]h_shiftstore log2_chroma_w (horizontal/width shift)
[out]v_shiftstore log2_chroma_h (vertical/height shift)
Returns
0 on success, AVERROR(ENOSYS) on invalid or unknown pixel format

Definition at line 1793 of file pixdesc.c.

Referenced by cuda_frames_init(), encode_frame(), encode_init(), ff_mjpeg_encode_picture_header(), ff_mpv_common_init(), ff_mpv_frame_start(), ffv1_encode_init(), h264_slice_header_init(), init_stage(), ljpeg_encode_init(), load_input_picture(), vp3_decode_init(), and yuv4_write_packet().

◆ av_pix_fmt_count_planes()

int av_pix_fmt_count_planes ( enum AVPixelFormat  pix_fmt)
Returns
number of planes in pix_fmt, a negative AVERROR if pix_fmt is not a valid pixel format.

Definition at line 1805 of file pixdesc.c.

Referenced by frame_copy_video(), get_deinterleaved_format(), magy_decode_frame(), and shuffleplanes_config_input().

◆ 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.

Parameters
[in]pix_fmtthe pixel format
Returns
pixel format with swapped endianness if it exists, otherwise AV_PIX_FMT_NONE

Definition at line 1821 of file pixdesc.c.

Referenced by sws_init_context().

◆ av_color_range_name()

const char* av_color_range_name ( enum AVColorRange  range)
Returns
the name for provided color range or NULL if unknown.

Definition at line 1872 of file pixdesc.c.

Referenced by avcodec_string(), and show_stream().

◆ av_color_primaries_name()

const char* av_color_primaries_name ( enum AVColorPrimaries  primaries)
Returns
the name for provided color primaries or NULL if unknown.

Definition at line 1878 of file pixdesc.c.

Referenced by avcodec_string(), mov_read_colr(), and show_stream().

◆ av_color_transfer_name()

const char* av_color_transfer_name ( enum AVColorTransferCharacteristic  transfer)
Returns
the name for provided color transfer or NULL if unknown.

Definition at line 1884 of file pixdesc.c.

Referenced by avcodec_string(), mov_read_colr(), and show_stream().

◆ av_color_space_name()

const char* av_color_space_name ( enum AVColorSpace  space)
Returns
the name for provided color space or NULL if unknown.

Definition at line 1890 of file pixdesc.c.

Referenced by avcodec_string(), mov_read_colr(), and show_stream().

◆ av_chroma_location_name()

const char* av_chroma_location_name ( enum AVChromaLocation  location)
Returns
the name for provided chroma location or NULL if unknown.

Definition at line 1896 of file pixdesc.c.

Referenced by avcodec_string(), and show_stream().

Variable Documentation

◆ av_pix_fmt_descriptors

Definition at line 132 of file pixdesc.c.

Referenced by av_pix_fmt_desc_get_id().

◆ color_range_names

FF_ENABLE_DEPRECATION_WARNINGS const char* color_range_names[]
static
Initial value:
= {
[AVCOL_RANGE_UNSPECIFIED] = "unknown",
[AVCOL_RANGE_MPEG] = "tv",
[AVCOL_RANGE_JPEG] = "pc",
}
the normal 2^n-1 "JPEG" YUV ranges
Definition: pixfmt.h:365
the normal 219*2^(n-8) "MPEG" YUV ranges
Definition: pixfmt.h:364

Definition at line 1622 of file pixdesc.c.

Referenced by av_color_range_name().

◆ color_primaries_names

const char* color_primaries_names[]
static
Initial value:
= {
[AVCOL_PRI_RESERVED0] = "reserved",
[AVCOL_PRI_BT709] = "bt709",
[AVCOL_PRI_UNSPECIFIED] = "unknown",
[AVCOL_PRI_RESERVED] = "reserved",
[AVCOL_PRI_BT470M] = "bt470m",
[AVCOL_PRI_BT470BG] = "bt470bg",
[AVCOL_PRI_SMPTE170M] = "smpte170m",
[AVCOL_PRI_SMPTE240M] = "smpte240m",
[AVCOL_PRI_FILM] = "film",
[AVCOL_PRI_BT2020] = "bt2020",
[AVCOL_PRI_SMPTE428] = "smpte428",
[AVCOL_PRI_SMPTE431] = "smpte431",
[AVCOL_PRI_SMPTE432] = "smpte432",
}
SMPTE ST 432-1 D65 (2010)
Definition: pixfmt.h:308
SMPTE ST 431-2 (2011)
Definition: pixfmt.h:307
also FCC Title 47 Code of Federal Regulations 73.682 (a)(20)
Definition: pixfmt.h:298
also ITU-R BT1361 / IEC 61966-2-4 / SMPTE RP177 Annex B
Definition: pixfmt.h:295
SMPTE ST 428-1 (CIE 1931 XYZ)
Definition: pixfmt.h:305
colour filters using Illuminant C
Definition: pixfmt.h:303
also ITU-R BT601-6 625 / ITU-R BT1358 625 / ITU-R BT1700 625 PAL & SECAM
Definition: pixfmt.h:300
functionally identical to above
Definition: pixfmt.h:302
also ITU-R BT601-6 525 / ITU-R BT1358 525 / ITU-R BT1700 NTSC
Definition: pixfmt.h:301
ITU-R BT2020.
Definition: pixfmt.h:304

Definition at line 1628 of file pixdesc.c.

Referenced by av_color_primaries_name().

◆ color_transfer_names

const char* color_transfer_names[]
static
Initial value:
= {
[AVCOL_TRC_RESERVED0] = "reserved",
[AVCOL_TRC_BT709] = "bt709",
[AVCOL_TRC_UNSPECIFIED] = "unknown",
[AVCOL_TRC_RESERVED] = "reserved",
[AVCOL_TRC_GAMMA22] = "bt470m",
[AVCOL_TRC_GAMMA28] = "bt470bg",
[AVCOL_TRC_SMPTE170M] = "smpte170m",
[AVCOL_TRC_SMPTE240M] = "smpte240m",
[AVCOL_TRC_LINEAR] = "linear",
[AVCOL_TRC_LOG] = "log100",
[AVCOL_TRC_LOG_SQRT] = "log316",
[AVCOL_TRC_IEC61966_2_4] = "iec61966-2-4",
[AVCOL_TRC_BT1361_ECG] = "bt1361e",
[AVCOL_TRC_IEC61966_2_1] = "iec61966-2-1",
[AVCOL_TRC_BT2020_10] = "bt2020-10",
[AVCOL_TRC_BT2020_12] = "bt2020-12",
[AVCOL_TRC_SMPTE2084] = "smpte2084",
[AVCOL_TRC_SMPTE428] = "smpte428",
[AVCOL_TRC_ARIB_STD_B67] = "arib-std-b67",
}
ITU-R BT2020 for 12-bit system.
Definition: pixfmt.h:331
IEC 61966-2-4.
Definition: pixfmt.h:327
"Linear transfer characteristics"
Definition: pixfmt.h:324
also ITU-R BT470M / ITU-R BT1700 625 PAL & SECAM
Definition: pixfmt.h:320
ITU-R BT1361 Extended Colour Gamut.
Definition: pixfmt.h:328
SMPTE ST 2084 for 10-, 12-, 14- and 16-bit systems.
Definition: pixfmt.h:332
also ITU-R BT1361
Definition: pixfmt.h:317
also ITU-R BT601-6 525 or 625 / ITU-R BT1358 525 or 625 / ITU-R BT1700 NTSC
Definition: pixfmt.h:322
"Logarithmic transfer characteristic (100 * Sqrt(10) : 1 range)"
Definition: pixfmt.h:326
SMPTE ST 428-1.
Definition: pixfmt.h:334
IEC 61966-2-1 (sRGB or sYCC)
Definition: pixfmt.h:329
also ITU-R BT470BG
Definition: pixfmt.h:321
ARIB STD-B67, known as "Hybrid log-gamma".
Definition: pixfmt.h:336
ITU-R BT2020 for 10-bit system.
Definition: pixfmt.h:330
"Logarithmic transfer characteristic (100:1 range)"
Definition: pixfmt.h:325

Definition at line 1644 of file pixdesc.c.

Referenced by av_color_transfer_name().

◆ color_space_names

const char* color_space_names[]
static
Initial value:
= {
[AVCOL_SPC_RGB] = "gbr",
[AVCOL_SPC_BT709] = "bt709",
[AVCOL_SPC_UNSPECIFIED] = "unknown",
[AVCOL_SPC_RESERVED] = "reserved",
[AVCOL_SPC_FCC] = "fcc",
[AVCOL_SPC_BT470BG] = "bt470bg",
[AVCOL_SPC_SMPTE170M] = "smpte170m",
[AVCOL_SPC_SMPTE240M] = "smpte240m",
[AVCOL_SPC_YCOCG] = "ycgco",
[AVCOL_SPC_BT2020_NCL] = "bt2020nc",
[AVCOL_SPC_BT2020_CL] = "bt2020c",
[AVCOL_SPC_SMPTE2085] = "smpte2085",
}
also ITU-R BT1361 / IEC 61966-2-4 xvYCC709 / SMPTE RP177 Annex B
Definition: pixfmt.h:345
also ITU-R BT601-6 625 / ITU-R BT1358 625 / ITU-R BT1700 625 PAL & SECAM / IEC 61966-2-4 xvYCC601 ...
Definition: pixfmt.h:349
also ITU-R BT601-6 525 / ITU-R BT1358 525 / ITU-R BT1700 NTSC
Definition: pixfmt.h:350
Used by Dirac / VC-2 and H.264 FRext, see ITU-T SG16.
Definition: pixfmt.h:352
order of coefficients is actually GBR, also IEC 61966-2-1 (sRGB)
Definition: pixfmt.h:344
functionally identical to above
Definition: pixfmt.h:351
ITU-R BT2020 non-constant luminance system.
Definition: pixfmt.h:353
FCC Title 47 Code of Federal Regulations 73.682 (a)(20)
Definition: pixfmt.h:348
ITU-R BT2020 constant luminance system.
Definition: pixfmt.h:354
SMPTE 2085, Y&#39;D&#39;zD&#39;x.
Definition: pixfmt.h:355

Definition at line 1666 of file pixdesc.c.

Referenced by av_color_space_name().

◆ chroma_location_names

const char* chroma_location_names[]
static
Initial value:
= {
[AVCHROMA_LOC_UNSPECIFIED] = "unspecified",
[AVCHROMA_LOC_LEFT] = "left",
[AVCHROMA_LOC_CENTER] = "center",
[AVCHROMA_LOC_TOPLEFT] = "topleft",
[AVCHROMA_LOC_TOP] = "top",
[AVCHROMA_LOC_BOTTOMLEFT] = "bottomleft",
[AVCHROMA_LOC_BOTTOM] = "bottom",
}
MPEG-2/4, H.264 default.
Definition: pixfmt.h:378
MPEG-1, JPEG, H.263.
Definition: pixfmt.h:379

Definition at line 1681 of file pixdesc.c.

Referenced by av_chroma_location_name().