FFmpeg
|
#include <stdio.h>
#include <string.h>
#include "avassert.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 | 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)->nb_components == 2 || (pixdesc)->nb_components == 4 || (pixdesc)->flags & AV_PIX_FMT_FLAG_PAL) |
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... | |
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 AVPixFmtDescriptor * | av_pix_fmt_desc_get (enum AVPixelFormat pix_fmt) |
const AVPixFmtDescriptor * | av_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) |
void | ff_check_pixfmt_descriptors (void) |
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) |
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 [AVCOL_RANGE_NB] |
static const char * | color_primaries_names [AVCOL_PRI_NB] |
static const char * | color_transfer_names [AVCOL_TRC_NB] |
static const char * | color_space_names [AVCOL_SPC_NB] |
static const char * | chroma_location_names [AVCHROMA_LOC_NB] |
#define BAYER8_DESC_COMMON |
#define BAYER16_DESC_COMMON |
Definition at line 2147 of file pixdesc.c.
Referenced by av_get_pix_fmt().
#define FF_COLOR_NA -1 |
Definition at line 2337 of file pixdesc.c.
Referenced by get_color_type().
#define FF_COLOR_RGB 0 |
RGB color space.
Definition at line 2338 of file pixdesc.c.
Referenced by get_color_type(), and get_pix_fmt_score().
#define FF_COLOR_GRAY 1 |
gray color space
Definition at line 2339 of file pixdesc.c.
Referenced by get_color_type(), and get_pix_fmt_score().
#define FF_COLOR_YUV 2 |
YUV color space.
16 <= Y <= 235, 16 <= U, V <= 240
Definition at line 2340 of file pixdesc.c.
Referenced by get_color_type(), and get_pix_fmt_score().
#define FF_COLOR_YUV_JPEG 3 |
YUV color space.
0 <= Y <= 255, 0 <= U, V <= 255
Definition at line 2341 of file pixdesc.c.
Referenced by get_color_type(), and get_pix_fmt_score().
#define FF_COLOR_XYZ 4 |
Definition at line 2342 of file pixdesc.c.
Referenced by get_color_type().
#define pixdesc_has_alpha | ( | pixdesc | ) | ((pixdesc)->nb_components == 2 || (pixdesc)->nb_components == 4 || (pixdesc)->flags & AV_PIX_FMT_FLAG_PAL) |
Definition at line 2344 of file pixdesc.c.
Referenced by get_pix_fmt_score().
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.
data | the array containing the pointers to the planes of the image |
linesize | the array containing the linesizes of the image |
desc | the pixel format descriptor for the image |
x | the horizontal coordinate of the first pixel to read |
y | the vertical coordinate of the first pixel to read |
w | the width of the line to read, that is the number of values to write to dst |
read_pal_component | if 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 34 of file pixdesc.c.
Referenced by ff_check_pixfmt_descriptors(), and filter_frame().
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.
src | array containing the values to write |
data | the array containing the pointers to the planes of the image to write into. It is supposed to be zeroed. |
linesize | the array containing the linesizes of the image |
desc | the pixel format descriptor for the image |
x | the horizontal coordinate of the first pixel to write |
y | the vertical coordinate of the first pixel to write |
w | the width of the line to write, that is the number of values to write to the image line |
Definition at line 82 of file pixdesc.c.
Referenced by ff_check_pixfmt_descriptors(), and filter_frame().
|
static |
Definition at line 2125 of file pixdesc.c.
Referenced by av_get_pix_fmt(), and av_pix_fmt_swap_endianness().
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 at line 2138 of file pixdesc.c.
Referenced by add_video_device(), av_hwframe_ctx_init(), av_opt_get(), avcodec_open2(), avcodec_string(), avi_write_header(), caca_write_header(), choose_pix_fmts(), choose_pixel_fmt(), config_input_overlay(), config_output(), config_props(), create_filtergraph(), cuda_frames_init(), dc1394_read_common(), decode_frame_header(), decode_packet(), decode_video(), device_try_init(), dnxhd_decode_frame(), dshow_cycle_formats(), dvvideo_encode_init(), dxva2_init_pool(), event_thread(), fbdev_read_header(), fbdev_write_packet(), ff_h264_decode_slice_header(), ff_hevc_decode_nal_sps(), ff_scale_image(), ff_tlog_link(), ff_vaapi_encode_init(), ff_yuv2rgb_get_func_ptr(), get_cv_pixel_info(), handle_p_frame_apng(), hwdownload_config_output(), hwupload_config_output(), init_processing_chain(), init_video(), libkvazaar_encode(), libopenjpeg_encode_frame(), list_formats(), main(), mj2_create_image(), mov_get_rawvideo_codec_tag(), movie_push_frame(), opengl_compile_shaders(), opt_list(), palToRgbWrapper(), pick_format(), planarRgbToRgbWrapper(), print_link_prop(), reget_buffer_internal(), rgbToPlanarRgbWrapper(), rgbToRgbWrapper(), scale_vaapi_config_output(), scale_vaapi_filter_frame(), sdl_write_header(), show_frame(), show_stream(), sws_init_context(), targa_encode_frame(), transcode_init(), vaapi_build_decoder_config(), vaapi_device_init(), vaapi_frames_init(), vdpau_frames_init(), vdpau_transfer_data_from(), vdpau_transfer_data_to(), video_get_buffer(), video_thread(), write_header(), xv_write_header(), yuv4_write_header(), and yuv4_write_packet().
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 2150 of file pixdesc.c.
Referenced by add_input_streams(), dc1394_read_common(), ff_check_pixfmt_descriptors(), ff_img_read_header(), ff_parse_pixel_format(), ffserver_parse_config_stream(), fileTest(), main(), new_video_stream(), nppscale_init(), rawvideo_read_header(), scale_vaapi_init(), set_string_pixel_fmt(), and v4l2_read_header().
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 2174 of file pixdesc.c.
Referenced by av_get_pix_fmt_string(), caca_write_header(), config_input(), config_output(), config_props(), decode_frame(), encode_frame(), ff_fill_line_with_color(), ffprobe_show_pixel_formats(), raw_decode(), raw_encode_init(), show_pix_fmts(), sws_init_context(), sws_setColorspaceDetails(), targa_encode_frame(), and xwd_encode_frame().
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 2187 of file pixdesc.c.
Referenced by av_find_best_pix_fmt_of_2(), config_input(), config_output(), lavfi_read_header(), and main().
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.
buf | the buffer where to write the string |
buf_size | the size of buf |
pix_fmt | the number of the pixel format to print the corresponding info string, or a negative value to print the corresponding header. |
const AVPixFmtDescriptor* av_pix_fmt_desc_get | ( | enum AVPixelFormat | pix_fmt | ) |
Definition at line 2222 of file pixdesc.c.
Referenced by av_find_best_pix_fmt_of_2(), 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(), av_pix_fmt_swap_endianness(), avcodec_align_dimensions(), avcodec_align_dimensions2(), avcodec_get_chroma_sub_sample(), avcodec_open2(), avcodec_string(), caca_write_header(), check_image_pointers(), choose_pixel_fmt(), config_input(), config_input_main(), config_input_overlay(), config_input_ref(), config_out_props(), config_output(), config_props(), config_props_output(), copy_picture_field(), create_all_formats(), create_filtergraph(), decode_frame(), decode_slice(), doTest(), draw_horiz_band(), encode_frame(), encode_init(), encode_slice(), ff_choose_chroma_location(), ff_color_frame(), ff_draw_horiz_band(), ff_draw_init(), ff_draw_supported_pixel_formats(), ff_fill_line_with_color(), ff_get_format(), ff_get_unscaled_swscale(), ff_h264_draw_horiz_band(), ff_hevc_output_frame(), ff_llviddsp_init_x86(), ff_merge_formats(), ff_mjpeg_decode_frame(), ff_mjpeg_decode_sof(), ff_opencl_deshake_process_inout_buf(), ff_parse_pixel_format(), ff_pnm_decode_header(), ff_sws_alphablendaway(), ff_sws_init_output_funcs(), ff_video_frame_pool_get(), ff_video_frame_pool_init(), ffm2_read_header(), ffm_read_header(), fill_picture_parameters(), filter_frame(), frame_end(), geq_config_props(), get_aspect_ratio(), get_bit_depth(), get_deinterleaved_format(), get_format(), get_pix_fmt_depth(), get_pix_fmt_score(), get_video_buffer(), hScale16To15_c(), hScale16To19_c(), init(), init_image(), is16BPS(), is9_OR_10BPS(), is_hwaccel_pix_fmt(), isALPHA(), isBE(), isPackedRGB(), isPlanar(), isPlanarRGB(), isPlanarYUV(), isRGB(), isYUV(), lavfi_read_header(), libopenjpeg_copy_to_packed16(), libopenjpeg_copyto16(), libopenjpeg_decode_frame(), libopenjpeg_ispacked(), libopenjpeg_matches_pix_fmt(), libx265_encode_frame(), libx265_encode_init(), main(), map_pixel_format(), mj2_create_image(), mxf_write_header(), opengl_draw(), opengl_fill_color_map(), opengl_init_context(), output_frame(), pick_format(), pix_fmt_match(), planarCopyWrapper(), planarRgb16ToRgb16Wrapper(), pnm_encode_frame(), print_digraph(), query_formats(), raw_decode(), raw_encode_init(), raw_init_decoder(), Rgb16ToPlanarRgb16Wrapper(), rgb48Toxyz12(), rgbToRgbWrapper(), selfTest(), shuffleplanes_config_input(), smv_img_pnt(), smvjpeg_decode_frame(), sws_init_context(), sws_setColorspaceDetails(), swscale(), targa_encode_frame(), tiff_unpack_strip(), usePal(), utvideo_encode_init(), vaapi_build_decoder_config(), validate_avframe_allocation(), vc2_encode_init(), verify_md5(), video_frame_cksum(), video_get_buffer(), write_header(), write_packet(), xwd_encode_frame(), xyz12Torgb48(), and yuv2gbrp_full_X_c().
const AVPixFmtDescriptor* av_pix_fmt_desc_next | ( | const AVPixFmtDescriptor * | prev | ) |
Iterate over all pixel format descriptors known to libavutil.
prev | previous descriptor. NULL to get the first descriptor. |
Definition at line 2229 of file pixdesc.c.
Referenced by ff_all_formats(), ffprobe_show_pixel_formats(), hwdownload_query_formats(), init(), query_formats(), and show_pix_fmts().
enum AVPixelFormat av_pix_fmt_desc_get_id | ( | const AVPixFmtDescriptor * | desc | ) |
Definition at line 2241 of file pixdesc.c.
Referenced by ff_all_formats(), hwdownload_query_formats(), init(), query_formats(), and show_pix_fmts().
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.
See av_get_chroma_sub_sample() for a function that asserts a valid pixel format instead of returning an error code. Its recommended that you use avcodec_get_chroma_sub_sample unless you do check the return code!
[in] | pix_fmt | the pixel format |
[out] | h_shift | store log2_chroma_w (horizontal/width shift) |
[out] | v_shift | store log2_chroma_h (vertical/height shift) |
Definition at line 2250 of file pixdesc.c.
Referenced by alloc_picture(), amv_encode_picture(), cuda_frames_init(), decode_frame(), decode_init(), encode_frame(), encode_init(), ff_mjpeg_init_hvsample(), ff_mpv_frame_start(), get_vpx_chroma_subsampling(), gray_frame(), h264_slice_header_init(), init_stage(), load_input_picture(), mjpeg_decode_scan(), sws_init_context(), and yuv4_write_packet().
int av_pix_fmt_count_planes | ( | enum AVPixelFormat | pix_fmt | ) |
Definition at line 2262 of file pixdesc.c.
Referenced by alloc_buffers(), cfhd_decode(), config_input(), config_output(), config_props(), config_props_output(), ff_mjpeg_decode_frame(), frame_copy_video(), get_deinterleaved_format(), init(), query_formats(), shuffleplanes_config_input(), and validate_avframe_allocation().
enum AVPixelFormat av_pix_fmt_swap_endianness | ( | enum AVPixelFormat | pix_fmt | ) |
Utility function to swap the endianness of a pixel format.
[in] | pix_fmt | the pixel format |
Definition at line 2319 of file pixdesc.c.
Referenced by sws_init_context().
|
static |
Definition at line 2348 of file pixdesc.c.
Referenced by get_pix_fmt_score(), and main().
|
static |
Definition at line 2370 of file pixdesc.c.
Referenced by get_pix_fmt_score().
|
static |
Definition at line 2388 of file pixdesc.c.
Referenced by av_find_best_pix_fmt_of_2(), and 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.
[in] | dst_pix_fmt | destination pixel format |
[in] | src_pix_fmt | source pixel format |
[in] | has_alpha | Whether the source pixel format alpha channel is used. |
Definition at line 2493 of file pixdesc.c.
Referenced by av_find_best_pix_fmt_of_2(), and avcodec_get_pix_fmt_loss().
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.
[in] | dst_pix_fmt | destination pixel format |
[in] | src_pix_fmt | source pixel format |
[in] | has_alpha | Whether the source pixel format alpha channel is used. |
Definition at line 2504 of file pixdesc.c.
Referenced by avcodec_find_best_pix_fmt_of_2(), and pick_format().
const char* av_color_range_name | ( | enum AVColorRange | range | ) |
Definition at line 2535 of file pixdesc.c.
Referenced by avcodec_string(), create_filtergraph(), get_cv_pixel_info(), and show_stream().
const char* av_color_primaries_name | ( | enum AVColorPrimaries | primaries | ) |
Definition at line 2541 of file pixdesc.c.
Referenced by avcodec_string(), create_filtergraph(), get_cv_color_primaries(), and show_stream().
const char* av_color_transfer_name | ( | enum AVColorTransferCharacteristic | transfer | ) |
Definition at line 2547 of file pixdesc.c.
Referenced by avcodec_string(), create_filtergraph(), get_cv_transfer_function(), and show_stream().
const char* av_color_space_name | ( | enum AVColorSpace | space | ) |
Definition at line 2553 of file pixdesc.c.
Referenced by avcodec_string(), create_filtergraph(), and get_cv_ycbcr_matrix().
const char* av_chroma_location_name | ( | enum AVChromaLocation | location | ) |
Definition at line 2559 of file pixdesc.c.
Referenced by avcodec_string(), and show_stream().
|
static |
Definition at line 133 of file pixdesc.c.
Referenced by av_pix_fmt_desc_get_id().
|
static |
Definition at line 2096 of file pixdesc.c.
Referenced by av_color_range_name().
|
static |
Definition at line 2100 of file pixdesc.c.
Referenced by av_color_primaries_name().
|
static |
Definition at line 2106 of file pixdesc.c.
Referenced by av_color_transfer_name().
|
static |
Definition at line 2114 of file pixdesc.c.
Referenced by av_color_space_name().
|
static |
Definition at line 2120 of file pixdesc.c.
Referenced by av_chroma_location_name().