FFmpeg
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 "intreadwrite.h"

Go to the source code of this file.

Macros

#define BAYER8_DESC_COMMON
 
#define BAYER16_DESC_COMMON
 
#define X_NE(be, le)   le
 
#define FF_COLOR_NA   -1
 
#define FF_COLOR_RGB   0
 RGB color space. More...
 
#define FF_COLOR_GRAY   1
 gray color space More...
 
#define FF_COLOR_YUV   2
 YUV color space. More...
 
#define FF_COLOR_YUV_JPEG   3
 YUV color space. More...
 
#define FF_COLOR_XYZ   4
 
#define pixdesc_has_alpha(pixdesc)   ((pixdesc)->flags & AV_PIX_FMT_FLAG_ALPHA)
 

Functions

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. More...
 
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)
 
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. 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)
 
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...
 
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 or unused bits. 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 a 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...
 
static int get_color_type (const AVPixFmtDescriptor *desc)
 
static int get_pix_fmt_depth (int *min, int *max, enum AVPixelFormat pix_fmt)
 
static int get_pix_fmt_score (enum AVPixelFormat dst_pix_fmt, enum AVPixelFormat src_pix_fmt, unsigned *lossp, unsigned consider)
 
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. More...
 
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. More...
 
const char * av_color_range_name (enum AVColorRange range)
 
int av_color_range_from_name (const char *name)
 
const char * av_color_primaries_name (enum AVColorPrimaries primaries)
 
int av_color_primaries_from_name (const char *name)
 
const char * av_color_transfer_name (enum AVColorTransferCharacteristic transfer)
 
int av_color_transfer_from_name (const char *name)
 
const char * av_color_space_name (enum AVColorSpace space)
 
int av_color_space_from_name (const char *name)
 
const char * av_chroma_location_name (enum AVChromaLocation location)
 
int av_chroma_location_from_name (const char *name)
 
int av_chroma_location_enum_to_pos (int *xpos, int *ypos, enum AVChromaLocation pos)
 Converts AVChromaLocation to swscale x/y chroma position. More...
 
enum AVChromaLocation av_chroma_location_pos_to_enum (int xpos, int ypos)
 Converts swscale x/y chroma position to AVChromaLocation. More...
 

Variables

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

Macro Definition Documentation

◆ BAYER8_DESC_COMMON

#define BAYER8_DESC_COMMON
Value:
.nb_components= 3, \
.log2_chroma_w= 0, \
.log2_chroma_h= 0, \
.comp = { \
{ 0, 1, 0, 0, 2 }, \
{ 0, 1, 0, 0, 4 }, \
{ 0, 1, 0, 0, 2 }, \
}, \

◆ BAYER16_DESC_COMMON

#define BAYER16_DESC_COMMON
Value:
.nb_components= 3, \
.log2_chroma_w= 0, \
.log2_chroma_h= 0, \
.comp = { \
{ 0, 2, 0, 0, 4 }, \
{ 0, 2, 0, 0, 8 }, \
{ 0, 2, 0, 0, 4 }, \
}, \

◆ X_NE

#define X_NE (   be,
  le 
)    le

Definition at line 2893 of file pixdesc.c.

◆ FF_COLOR_NA

#define FF_COLOR_NA   -1

Definition at line 3037 of file pixdesc.c.

◆ FF_COLOR_RGB

#define FF_COLOR_RGB   0

RGB color space.

Definition at line 3038 of file pixdesc.c.

◆ FF_COLOR_GRAY

#define FF_COLOR_GRAY   1

gray color space

Definition at line 3039 of file pixdesc.c.

◆ FF_COLOR_YUV

#define FF_COLOR_YUV   2

YUV color space.

16 <= Y <= 235, 16 <= U, V <= 240

Definition at line 3040 of file pixdesc.c.

◆ FF_COLOR_YUV_JPEG

#define FF_COLOR_YUV_JPEG   3

YUV color space.

0 <= Y <= 255, 0 <= U, V <= 255

Definition at line 3041 of file pixdesc.c.

◆ FF_COLOR_XYZ

#define FF_COLOR_XYZ   4

Definition at line 3042 of file pixdesc.c.

◆ pixdesc_has_alpha

#define pixdesc_has_alpha (   pixdesc)    ((pixdesc)->flags & AV_PIX_FMT_FLAG_ALPHA)

Definition at line 3044 of file pixdesc.c.

Function Documentation

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

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.
dst_element_sizesize of elements in dst array (2 or 4 byte)

Definition at line 31 of file pixdesc.c.

Referenced by av_read_image_line(), and filter_frame().

◆ 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 at line 103 of file pixdesc.c.

Referenced by check_pixfmt_descriptors().

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

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
src_element_sizesize of elements in src array (2 or 4 byte)

Definition at line 114 of file pixdesc.c.

Referenced by av_write_image_line(), and 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 
)

Definition at line 189 of file pixdesc.c.

Referenced by av_image_fill_black(), and check_pixfmt_descriptors().

◆ get_pix_fmt_internal()

static enum AVPixelFormat get_pix_fmt_internal ( const char *  name)
static

Definition at line 2871 of file pixdesc.c.

Referenced by av_get_pix_fmt(), and av_pix_fmt_swap_endianness().

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

See also
av_get_pix_fmt(), av_get_pix_fmt_string()
Examples
demux_decode.c, and scale_video.c.

Definition at line 2884 of file pixdesc.c.

Referenced by add_video_device(), amf_init_context(), amf_init_encoder(), av_hwframe_ctx_init(), av_opt_get(), avcodec_string(), avgblur_opencl_filter_frame(), avi_write_header(), caca_write_header(), check_modelinput_inlink(), choose_pix_fmts(), choose_pixel_fmt(), config_input_overlay(), config_main_input(), config_output(), config_overlay_input(), config_props(), conv_cuda_convert(), convolution_opencl_filter_frame(), create_filtergraph(), cuda_frames_init(), cudascale_config_props(), cudascale_load_functions(), d3d11va_frames_init(), dc1394_read_common(), decode_frame_header(), deint_vaapi_filter_frame(), device_try_init(), dnxhd_decode_frame(), draw_items(), dshow_cycle_formats(), dvvideo_encode_init(), dxva2_init_pool(), encode_preinit_video(), fbdev_read_header(), fbdev_write_packet(), ff_attributes_dump(), ff_frame_to_dnn_classify(), ff_frame_to_dnn_detect(), ff_hevc_decode_nal_sps(), ff_opencl_filter_work_size_from_image(), ff_proc_from_dnn_to_frame(), ff_proc_from_frame_to_dnn(), ff_scale_image(), ff_vaapi_vpp_config_output(), ff_yuv2rgb_get_func_ptr(), find_best_wrapper(), get_cv_pixel_format(), get_cv_pixel_info(), get_pixel_format(), h264_init_ps(), handle_p_frame_apng(), hw_device_setup_for_encode(), hwaccel_init(), hwdownload_config_output(), hwmap_config_output(), hwmap_filter_frame(), hwupload_config_output(), init_processing_chain(), init_video(), kmsgrab_read_header(), libkvazaar_encode(), libopenjpeg_encode_frame(), libplacebo_query_format(), list_formats(), main(), misc_vaapi_filter_frame(), mj2_create_image(), mov_get_rawvideo_codec_tag(), neighbor_opencl_filter_frame(), nlmeans_opencl_filter_frame(), nvenc_alloc_surface(), opencl_frames_get_constraints(), opengl_compile_shaders(), opt_list(), output_video_frame(), overlay_cuda_config_output(), overlay_opencl_blend(), overlay_vaapi_blend(), palToRgbWrapper(), pick_format(), pix_fmt_parse(), planarRgbaToRgbWrapper(), planarRgbToRgbWrapper(), print_formats_internal(), print_link_prop(), procamp_vaapi_filter_frame(), process_frame(), program_opencl_run(), read_header_vs(), reget_buffer_internal(), remap_opencl_process_frame(), rgbToPlanarRgbWrapper(), rgbToRgbWrapper(), scale_vaapi_filter_frame(), sdl2_write_header(), show_frame(), show_stream(), sws_init_single_context(), targa_encode_frame(), tonemap_opencl_filter_frame(), tonemap_vaapi_filter_frame(), transpose_opencl_filter_frame(), transpose_vaapi_filter_frame(), unsharp_opencl_filter_frame(), v4l2_configure_contexts(), vaapi_decode_find_best_format(), vaapi_device_init(), vaapi_encode_create_recon_frames(), vaapi_frames_init(), vdpau_frames_init(), vdpau_transfer_data_from(), vdpau_transfer_data_to(), video_thread(), vt_frames_init(), vulkan_decode_get_profile(), vulkan_frames_init(), write_header(), xv_write_header(), and yuv4_init().

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

Definition at line 2896 of file pixdesc.c.

Referenced by check_pixfmt_descriptors(), dc1394_read_common(), ff_img_read_header(), ff_parse_pixel_format(), fileTest(), ist_add(), libplacebo_init(), main(), nppscale_init(), pix_fmt_parse(), rawvideo_read_header(), scale_vaapi_init(), scale_vulkan_config_output(), set_string_pixel_fmt(), testsrc_vulkan_config_props(), tonemap_vaapi_init(), v4l2_read_header(), and vpp_init().

◆ 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 2916 of file pixdesc.c.

Referenced by av_get_pix_fmt_string(), caca_write_header(), config_input(), config_output(), config_props(), decode_frame(), encode_frame(), encode_init(), ff_guess_coded_bitrate(), ffprobe_show_pixel_formats(), flac_write_picture(), libjxl_encode_frame(), libplacebo_query_format(), raw_decode(), raw_encode_init(), rawvideo_read_header(), rfc4175_parse_format(), show_pix_fmts(), sws_init_single_context(), sws_setColorspaceDetails(), targa_encode_frame(), and xwd_encode_frame().

◆ 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 or unused bits.

Definition at line 2929 of file pixdesc.c.

Referenced by av_find_best_pix_fmt_of_2(), config_input(), config_output(), and main().

◆ 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 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 2949 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 2964 of file pixdesc.c.

Referenced by aom_init(), av_find_best_pix_fmt_of_2(), av_frame_apply_cropping(), av_image_alloc(), av_image_copy_to_buffer(), av_image_fill_black(), av_image_fill_linesizes(), av_image_fill_plane_sizes(), av_image_get_buffer_size(), av_image_get_linesize(), av_pix_fmt_count_planes(), av_pix_fmt_get_chroma_sub_sample(), av_pix_fmt_swap_endianness(), avcodec_align_dimensions(), avcodec_align_dimensions2(), avcodec_default_get_format(), avcodec_string(), blockdetect_config_input(), blurdetect_config_input(), bwdif_vulkan_config_output(), caca_write_header(), check_image_pointers(), check_input_planar_rgb_to_a(), check_input_planar_rgb_to_uv(), check_input_planar_rgb_to_y(), check_output_yuv2gbrp(), choose_chroma_location(), choose_pixel_fmt(), color_frame(), config_enc_params(), config_input(), config_input0(), config_input1(), config_input_main(), config_input_overlay(), config_input_ref(), config_input_structure(), config_inputx(), config_inputy(), config_out_props(), config_output(), config_props(), config_props_output(), configure_input_video_filter(), copy_picture_field(), copy_uv_planes(), create_filtergraph(), cuvid_decode_init(), cuvid_output_frame(), decode(), decode_frame(), decode_slice(), deshake_opencl_init(), doTest(), draw_horiz_band(), enc_open(), encode_frame(), encode_init(), encode_preinit_video(), encode_slice(), ff_aom_image_copy_16_to_8(), ff_boxblur_eval_filter_params(), ff_draw_horiz_band(), ff_draw_init2(), ff_draw_supported_pixel_formats(), ff_fill_rgba_map(), ff_formats_pixdesc_filter(), ff_frame_pool_get(), ff_frame_to_dnn_classify(), ff_get_format(), ff_get_unscaled_swscale(), ff_guess_coded_bitrate(), ff_h264_draw_horiz_band(), ff_hscale16to15_4_neon(), ff_hscale16to15_X4_neon(), ff_hscale16to15_X8_neon(), ff_hscale16to19_4_neon(), ff_hscale16to19_X4_neon(), ff_hscale16to19_X8_neon(), ff_hscale_16_to_15_lasx(), ff_hscale_16_to_15_lsx(), ff_hscale_16_to_19_lasx(), ff_hscale_16_to_19_lsx(), ff_huffyuvdsp_init_x86(), ff_huffyuvencdsp_init_x86(), ff_mjpeg_decode_frame_from_buf(), ff_mjpeg_decode_sof(), ff_nvdec_decode_init(), ff_nvdec_frame_params(), ff_parse_pixel_format(), ff_pnm_decode_header(), ff_scale_eval_dimensions(), ff_sws_alphablendaway(), ff_vk_shader_rep_fmt(), ff_vmafmotion_init(), fill_frameinfo_by_link(), fill_picture_parameters(), filter_frame(), flac_write_picture(), flip_bayer(), geq_config_props(), get_aspect_ratio(), get_bit_depth(), get_cm_codec_type(), get_cv_pixel_info(), get_deinterleaved_format(), get_format(), get_pix_fmt_depth(), get_pix_fmt_score(), get_plane_wh(), get_video_buffer(), get_vt_hevc_profile_level(), have_alpha_planar(), hScale16To15_c(), hScale16To19_c(), hwmap_config_output(), iccgen_filter_frame(), image_copy(), init(), init_filter(), init_image(), init_video_param(), init_video_param_jpeg(), is16BPS(), is32BPS(), is_native_endian(), isALPHA(), isAnyRGB(), isBayer(), isBayer16BPS(), isBE(), isDataInHighBits(), isFloat(), isFloat16(), isGray(), isNBPS(), isPacked(), isPackedRGB(), isPlanar(), isPlanarRGB(), isPlanarYUV(), isRGB(), isSemiPlanarYUV(), isSwappedChroma(), isYUV(), j2kenc_init(), libjxl_encode_frame(), libplacebo_config_output(), librav1e_encode_init(), librav1e_receive_packet(), libx265_encode_frame(), libx265_encode_init(), lut2_config_output(), main(), map_pixel_format(), merge_formats_internal(), mj2_create_image(), mov_init(), mov_write_ftyp_tag(), mov_write_pixi_tag(), mxf_init(), mxf_write_ffv1_desc(), nlmeans_opencl_filter_frame(), nppsharpen_sharpen(), nvdec_vp9_start_frame(), nvenc_setup_h264_config(), nvenc_setup_hevc_config(), opencl_get_plane_format(), opengl_draw(), opengl_fill_color_map(), opengl_init_context(), output_frame(), overlay_opencl_load(), pad_opencl_init(), param_init(), pick_format(), pix_fmt_match(), planarCopyWrapper(), planarRgb16ToRgb16Wrapper(), planarToP01xWrapper(), pnm_encode_frame(), prepare_uv_scale(), print_digraph(), qsv_fill_border(), qsv_init_surface(), qsv_map_from(), qsvenc_fill_padding_area(), query_formats(), raw_decode(), raw_encode_init(), raw_init_decoder(), rawvideo_read_header(), read_packet_vs(), remap_opencl_load(), rfc4175_parse_format(), Rgb16ToPlanarRgb16Wrapper(), rgb48Toxyz12(), rgbToRgbWrapper(), scale_eval_dimensions(), scale_frame(), selfTest(), set_format_info(), set_pix_fmt(), sws_init_single_context(), sws_setColorspaceDetails(), swscale(), targa_encode_frame(), tiff_unpack_strip(), transfer_image_buf(), transpose_opencl_config_output(), unsharp_opencl_make_filter_params(), utvideo_encode_init(), v4l2_buffer_swframe_to_buf(), v4l2_encode_init(), vaapi_encode_av1_init_sequence_params(), vaapi_encode_h264_init_sequence_params(), vaapi_encode_h265_init_sequence_params(), vaapi_encode_mjpeg_get_encoder_caps(), vaapi_encode_mjpeg_init_picture_params(), vaapi_encode_profile_entrypoint(), vaapi_vp9_start_frame(), vaapi_vpp_frame_is_rgb(), validate_avframe_allocation(), vc2_encode_init(), vdpau_av1_start_frame(), vdpau_vp9_start_frame(), verify_md5(), video_frame_cksum(), vulkan_setup_profile(), write_header(), write_packet(), X264_frame(), X264_init(), xfade_opencl_load(), xwd_encode_frame(), xyz12Torgb48(), yuv2gbrp16_full_X_c(), yuv2gbrp_full_X_c(), yuv2gbrpf32_full_X_c(), yuv2y2xx_wrapper(), and yuv4_write_packet().

◆ 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 2971 of file pixdesc.c.

Referenced by check_pixfmt_descriptors(), ffprobe_show_pixel_formats(), init(), libplacebo_query_format(), main(), match_pixfmt(), 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 2983 of file pixdesc.c.

Referenced by check_pixfmt_descriptors(), init(), libplacebo_query_format(), main(), match_pixfmt(), 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 2992 of file pixdesc.c.

Referenced by alloc_buffers(), alloc_picture(), cfhd_encode_init(), color_frame(), cuda_frames_init(), decode_init(), dirac_decode_data_unit(), encode_frame(), encode_init(), ff_mjpeg_decode_frame_from_buf(), ff_mjpeg_init_hvsample(), ff_mpv_common_frame_size_change(), ff_mpv_common_init(), frame_hash(), get_buffer_with_edge(), get_vpx_chroma_subsampling(), h264_slice_header_init(), init_stage(), j2kenc_init(), main(), map_chroma_format(), mjpeg_decode_scan(), process_frame(), sws_init_single_context(), vc2_encode_init(), and vp3_decode_init().

◆ av_pix_fmt_count_planes()

int av_pix_fmt_count_planes ( enum AVPixelFormat  pix_fmt)

◆ 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 3019 of file pixdesc.c.

Referenced by is_native_endian(), and sws_init_single_context().

◆ get_color_type()

static int get_color_type ( const AVPixFmtDescriptor desc)
static

Definition at line 3048 of file pixdesc.c.

Referenced by get_pix_fmt_score(), and main().

◆ get_pix_fmt_depth()

static int get_pix_fmt_depth ( int min,
int max,
enum AVPixelFormat  pix_fmt 
)
static

Definition at line 3072 of file pixdesc.c.

Referenced by get_pix_fmt_score().

◆ get_pix_fmt_score()

static int get_pix_fmt_score ( enum AVPixelFormat  dst_pix_fmt,
enum AVPixelFormat  src_pix_fmt,
unsigned *  lossp,
unsigned  consider 
)
static

Definition at line 3090 of file pixdesc.c.

Referenced by av_find_best_pix_fmt_of_2(), and av_get_pix_fmt_loss().

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

When converting from one pixel format to another, information loss may occur. For example, when converting from RGB24 to GRAY, the color information will be lost. Similarly, other losses occur when converting from some formats to other formats. These losses can involve loss of chroma, but also loss of resolution, loss of color depth, loss due to the color space conversion, loss of the alpha bits or loss due to color quantization. av_get_fix_fmt_loss() informs you about the various types of losses which will occur when converting from one pixel format to another.

Parameters
[in]dst_pix_fmtdestination pixel format
[in]src_pix_fmtsource pixel format
[in]has_alphaWhether the source pixel format alpha channel is used.
Returns
Combination of flags informing you what kind of losses will occur (maximum loss for an invalid dst_pix_fmt).

Definition at line 3232 of file pixdesc.c.

Referenced by av_find_best_pix_fmt_of_2().

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

When converting from one pixel format to another, information loss may occur. For example, when converting from RGB24 to GRAY, the color information will be lost. Similarly, other losses occur when converting from some formats to other formats. These losses can involve loss of chroma, but also loss of resolution, loss of color depth, loss due to the color space conversion, loss of the alpha bits or loss due to color quantization. av_get_fix_fmt_loss() informs you about the various types of losses which will occur when converting from one pixel format to another.

Parameters
[in]dst_pix_fmtdestination pixel format
[in]src_pix_fmtsource pixel format
[in]has_alphaWhether the source pixel format alpha channel is used.
Returns
Combination of flags informing you what kind of losses will occur (maximum loss for an invalid dst_pix_fmt).

Definition at line 3243 of file pixdesc.c.

Referenced by avcodec_find_best_pix_fmt_of_list(), choose_pixel_fmt(), pick_format(), vaapi_decode_find_best_format(), and vulkan_decode_get_profile().

◆ av_color_range_name()

const char* av_color_range_name ( enum AVColorRange  range)

◆ av_color_range_from_name()

int av_color_range_from_name ( const char *  name)
Returns
the AVColorRange value for name or an AVError if not found.

Definition at line 3286 of file pixdesc.c.

◆ av_color_primaries_name()

const char* av_color_primaries_name ( enum AVColorPrimaries  primaries)

◆ av_color_primaries_from_name()

int av_color_primaries_from_name ( const char *  name)
Returns
the AVColorPrimaries value for name or an AVError if not found.

Definition at line 3304 of file pixdesc.c.

◆ av_color_transfer_name()

const char* av_color_transfer_name ( enum AVColorTransferCharacteristic  transfer)

◆ av_color_transfer_from_name()

int av_color_transfer_from_name ( const char *  name)
Returns
the AVColorTransferCharacteristic value for name or an AVError if not found.

Definition at line 3325 of file pixdesc.c.

◆ av_color_space_name()

const char* av_color_space_name ( enum AVColorSpace  space)

◆ av_color_space_from_name()

int av_color_space_from_name ( const char *  name)
Returns
the AVColorSpace value for name or an AVError if not found.

Definition at line 3346 of file pixdesc.c.

◆ 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 3361 of file pixdesc.c.

Referenced by avcodec_string(), config_enc_params(), dshow_cycle_formats(), dvvideo_encode_init(), filter_frame(), print_chroma_location(), and vaapi_vpp_fill_colour_properties().

◆ av_chroma_location_from_name()

int av_chroma_location_from_name ( const char *  name)
Returns
the AVChromaLocation value for name or an AVError if not found.

Definition at line 3367 of file pixdesc.c.

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

The positions represent the chroma (0,0) position in a coordinates system with luma (0,0) representing the origin and luma(1,1) representing 256,256

Parameters
xposhorizontal chroma sample position
yposvertical chroma sample position

Definition at line 3382 of file pixdesc.c.

Referenced by av_chroma_location_pos_to_enum(), avcodec_enum_to_chroma_pos(), ff_vk_decode_init(), and mkv_write_video_color().

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

The positions represent the chroma (0,0) position in a coordinates system with luma (0,0) representing the origin and luma(1,1) representing 256,256

Parameters
xposhorizontal chroma sample position
yposvertical chroma sample position

Definition at line 3394 of file pixdesc.c.

Referenced by avcodec_chroma_pos_to_enum().

Variable Documentation

◆ av_pix_fmt_descriptors

const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB]
static

◆ color_range_names

const char* const color_range_names[]
static
Initial value:
= {
[AVCOL_RANGE_UNSPECIFIED] = "unknown",
[AVCOL_RANGE_MPEG] = "tv",
[AVCOL_RANGE_JPEG] = "pc",
}

Definition at line 2798 of file pixdesc.c.

Referenced by av_color_range_from_name(), and av_color_range_name().

◆ color_primaries_names

const char* const color_primaries_names[AVCOL_PRI_NB]
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",
[AVCOL_PRI_EBU3213] = "ebu3213",
}

Definition at line 2804 of file pixdesc.c.

Referenced by av_color_primaries_from_name(), and av_color_primaries_name().

◆ color_transfer_names

const char* const 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",
}

Definition at line 2821 of file pixdesc.c.

Referenced by av_color_transfer_from_name(), and av_color_transfer_name().

◆ color_space_names

const char* const 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_YCGCO] = "ycgco",
[AVCOL_SPC_BT2020_NCL] = "bt2020nc",
[AVCOL_SPC_BT2020_CL] = "bt2020c",
[AVCOL_SPC_SMPTE2085] = "smpte2085",
[AVCOL_SPC_CHROMA_DERIVED_NCL] = "chroma-derived-nc",
[AVCOL_SPC_CHROMA_DERIVED_CL] = "chroma-derived-c",
[AVCOL_SPC_ICTCP] = "ictcp",
}

Definition at line 2843 of file pixdesc.c.

Referenced by av_color_space_from_name(), and av_color_space_name().

◆ chroma_location_names

const char* const 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",
}

Definition at line 2861 of file pixdesc.c.

Referenced by av_chroma_location_from_name(), and av_chroma_location_name().

AVCOL_PRI_RESERVED
@ AVCOL_PRI_RESERVED
Definition: pixfmt.h:549
AVCOL_PRI_EBU3213
@ AVCOL_PRI_EBU3213
EBU Tech. 3213-E (nothing there) / one of JEDEC P22 group phosphors.
Definition: pixfmt.h:561
AVCOL_TRC_LINEAR
@ AVCOL_TRC_LINEAR
"Linear transfer characteristics"
Definition: pixfmt.h:579
AVCHROMA_LOC_BOTTOM
@ AVCHROMA_LOC_BOTTOM
Definition: pixfmt.h:699
AVCOL_RANGE_JPEG
@ AVCOL_RANGE_JPEG
Full range content.
Definition: pixfmt.h:673
AVCOL_TRC_UNSPECIFIED
@ AVCOL_TRC_UNSPECIFIED
Definition: pixfmt.h:573
AVCOL_SPC_RGB
@ AVCOL_SPC_RGB
order of coefficients is actually GBR, also IEC 61966-2-1 (sRGB), YZX and ST 428-1
Definition: pixfmt.h:600
AVCOL_TRC_BT2020_12
@ AVCOL_TRC_BT2020_12
ITU-R BT2020 for 12-bit system.
Definition: pixfmt.h:586
AVCOL_SPC_BT2020_CL
@ AVCOL_SPC_BT2020_CL
ITU-R BT2020 constant luminance system.
Definition: pixfmt.h:611
AVCOL_SPC_BT470BG
@ AVCOL_SPC_BT470BG
also ITU-R BT601-6 625 / ITU-R BT1358 625 / ITU-R BT1700 625 PAL & SECAM / IEC 61966-2-4 xvYCC601
Definition: pixfmt.h:605
AVCOL_SPC_RESERVED
@ AVCOL_SPC_RESERVED
reserved for future use by ITU-T and ISO/IEC just like 15-255 are
Definition: pixfmt.h:603
AVCOL_TRC_IEC61966_2_1
@ AVCOL_TRC_IEC61966_2_1
IEC 61966-2-1 (sRGB or sYCC)
Definition: pixfmt.h:584
AVCOL_TRC_GAMMA28
@ AVCOL_TRC_GAMMA28
also ITU-R BT470BG
Definition: pixfmt.h:576
AVCOL_TRC_LOG_SQRT
@ AVCOL_TRC_LOG_SQRT
"Logarithmic transfer characteristic (100 * Sqrt(10) : 1 range)"
Definition: pixfmt.h:581
AVCOL_TRC_GAMMA22
@ AVCOL_TRC_GAMMA22
also ITU-R BT470M / ITU-R BT1700 625 PAL & SECAM
Definition: pixfmt.h:575
AVCOL_PRI_RESERVED0
@ AVCOL_PRI_RESERVED0
Definition: pixfmt.h:546
AVCHROMA_LOC_TOP
@ AVCHROMA_LOC_TOP
Definition: pixfmt.h:697
AVCOL_TRC_BT1361_ECG
@ AVCOL_TRC_BT1361_ECG
ITU-R BT1361 Extended Colour Gamut.
Definition: pixfmt.h:583
AVCOL_SPC_SMPTE170M
@ AVCOL_SPC_SMPTE170M
also ITU-R BT601-6 525 / ITU-R BT1358 525 / ITU-R BT1700 NTSC / functionally identical to above
Definition: pixfmt.h:606
AVCOL_PRI_SMPTE428
@ AVCOL_PRI_SMPTE428
SMPTE ST 428-1 (CIE 1931 XYZ)
Definition: pixfmt.h:557
AVCOL_PRI_SMPTE240M
@ AVCOL_PRI_SMPTE240M
identical to above, also called "SMPTE C" even though it uses D65
Definition: pixfmt.h:554
AVCOL_PRI_UNSPECIFIED
@ AVCOL_PRI_UNSPECIFIED
Definition: pixfmt.h:548
AVCOL_SPC_CHROMA_DERIVED_CL
@ AVCOL_SPC_CHROMA_DERIVED_CL
Chromaticity-derived constant luminance system.
Definition: pixfmt.h:614
AVCOL_PRI_BT470BG
@ AVCOL_PRI_BT470BG
also ITU-R BT601-6 625 / ITU-R BT1358 625 / ITU-R BT1700 625 PAL & SECAM
Definition: pixfmt.h:552
AVCOL_PRI_SMPTE170M
@ AVCOL_PRI_SMPTE170M
also ITU-R BT601-6 525 / ITU-R BT1358 525 / ITU-R BT1700 NTSC
Definition: pixfmt.h:553
AVCOL_TRC_RESERVED0
@ AVCOL_TRC_RESERVED0
Definition: pixfmt.h:571
AVCHROMA_LOC_LEFT
@ AVCHROMA_LOC_LEFT
MPEG-2/4 4:2:0, H.264 default for 4:2:0.
Definition: pixfmt.h:694
AVCHROMA_LOC_TOPLEFT
@ AVCHROMA_LOC_TOPLEFT
ITU-R 601, SMPTE 274M 296M S314M(DV 4:1:1), mpeg2 4:2:2.
Definition: pixfmt.h:696
AVCOL_TRC_IEC61966_2_4
@ AVCOL_TRC_IEC61966_2_4
IEC 61966-2-4.
Definition: pixfmt.h:582
AVCOL_PRI_BT709
@ AVCOL_PRI_BT709
also ITU-R BT1361 / IEC 61966-2-4 / SMPTE RP 177 Annex B
Definition: pixfmt.h:547
AVCOL_TRC_BT2020_10
@ AVCOL_TRC_BT2020_10
ITU-R BT2020 for 10-bit system.
Definition: pixfmt.h:585
AVCOL_SPC_YCGCO
@ AVCOL_SPC_YCGCO
used by Dirac / VC-2 and H.264 FRext, see ITU-T SG16
Definition: pixfmt.h:608
AVCOL_RANGE_UNSPECIFIED
@ AVCOL_RANGE_UNSPECIFIED
Definition: pixfmt.h:639
AVCOL_PRI_BT2020
@ AVCOL_PRI_BT2020
ITU-R BT2020.
Definition: pixfmt.h:556
AVCOL_TRC_SMPTE2084
@ AVCOL_TRC_SMPTE2084
SMPTE ST 2084 for 10-, 12-, 14- and 16-bit systems.
Definition: pixfmt.h:587
AVCOL_PRI_SMPTE431
@ AVCOL_PRI_SMPTE431
SMPTE ST 431-2 (2011) / DCI P3.
Definition: pixfmt.h:559
AVCOL_TRC_SMPTE240M
@ AVCOL_TRC_SMPTE240M
Definition: pixfmt.h:578
AVCOL_PRI_FILM
@ AVCOL_PRI_FILM
colour filters using Illuminant C
Definition: pixfmt.h:555
AVCOL_TRC_LOG
@ AVCOL_TRC_LOG
"Logarithmic transfer characteristic (100:1 range)"
Definition: pixfmt.h:580
AVCHROMA_LOC_UNSPECIFIED
@ AVCHROMA_LOC_UNSPECIFIED
Definition: pixfmt.h:693
AVCOL_SPC_CHROMA_DERIVED_NCL
@ AVCOL_SPC_CHROMA_DERIVED_NCL
Chromaticity-derived non-constant luminance system.
Definition: pixfmt.h:613
AVCOL_TRC_BT709
@ AVCOL_TRC_BT709
also ITU-R BT1361
Definition: pixfmt.h:572
AVCOL_SPC_SMPTE240M
@ AVCOL_SPC_SMPTE240M
derived from 170M primaries and D65 white point, 170M is derived from BT470 System M's primaries
Definition: pixfmt.h:607
AVCOL_SPC_BT2020_NCL
@ AVCOL_SPC_BT2020_NCL
ITU-R BT2020 non-constant luminance system.
Definition: pixfmt.h:610
AVCOL_SPC_UNSPECIFIED
@ AVCOL_SPC_UNSPECIFIED
Definition: pixfmt.h:602
AVCOL_RANGE_MPEG
@ AVCOL_RANGE_MPEG
Narrow or limited range content.
Definition: pixfmt.h:656
AVCOL_PRI_BT470M
@ AVCOL_PRI_BT470M
also FCC Title 47 Code of Federal Regulations 73.682 (a)(20)
Definition: pixfmt.h:550
AVCOL_TRC_ARIB_STD_B67
@ AVCOL_TRC_ARIB_STD_B67
ARIB STD-B67, known as "Hybrid log-gamma".
Definition: pixfmt.h:591
AVCHROMA_LOC_CENTER
@ AVCHROMA_LOC_CENTER
MPEG-1 4:2:0, JPEG 4:2:0, H.263 4:2:0.
Definition: pixfmt.h:695
AVCOL_SPC_FCC
@ AVCOL_SPC_FCC
FCC Title 47 Code of Federal Regulations 73.682 (a)(20)
Definition: pixfmt.h:604
AVCOL_TRC_SMPTE170M
@ AVCOL_TRC_SMPTE170M
also ITU-R BT601-6 525 or 625 / ITU-R BT1358 525 or 625 / ITU-R BT1700 NTSC
Definition: pixfmt.h:577
AVCOL_TRC_RESERVED
@ AVCOL_TRC_RESERVED
Definition: pixfmt.h:574
AVCOL_PRI_SMPTE432
@ AVCOL_PRI_SMPTE432
SMPTE ST 432-1 (2010) / P3 D65 / Display P3.
Definition: pixfmt.h:560
AVCOL_SPC_SMPTE2085
@ AVCOL_SPC_SMPTE2085
SMPTE 2085, Y'D'zD'x.
Definition: pixfmt.h:612
AVCOL_TRC_SMPTE428
@ AVCOL_TRC_SMPTE428
SMPTE ST 428-1.
Definition: pixfmt.h:589
AVCOL_SPC_BT709
@ AVCOL_SPC_BT709
also ITU-R BT1361 / IEC 61966-2-4 xvYCC709 / derived in SMPTE RP 177 Annex B
Definition: pixfmt.h:601
AVCOL_SPC_ICTCP
@ AVCOL_SPC_ICTCP
ITU-R BT.2100-0, ICtCp.
Definition: pixfmt.h:615
AVCHROMA_LOC_BOTTOMLEFT
@ AVCHROMA_LOC_BOTTOMLEFT
Definition: pixfmt.h:698