FFmpeg
|
common internal API header More...
#include <limits.h>
#include <stdint.h>
#include <stddef.h>
#include <assert.h>
#include "config.h"
#include "attributes.h"
#include "timer.h"
#include "cpu.h"
#include "dict.h"
#include "macros.h"
#include "pixfmt.h"
#include "version.h"
#include "libm.h"
Go to the source code of this file.
Macros | |
#define | NDEBUG |
#define | av_export |
#define | FF_DISABLE_DEPRECATION_WARNINGS |
#define | FF_ENABLE_DEPRECATION_WARNINGS |
#define | FF_MEMORY_POISON 0x2a |
#define | MAKE_ACCESSORS(str, name, type, field) |
#define | E1(x) x |
#define | AV_CHECK_OFFSET(s, m, o) |
#define | LOCAL_ALIGNED_A(a, t, v, s, o,...) |
#define | LOCAL_ALIGNED_D(a, t, v, s, o,...) |
#define | LOCAL_ALIGNED(a, t, v,...) E1(LOCAL_ALIGNED_A(a, t, v, __VA_ARGS__,,)) |
#define | LOCAL_ALIGNED_8(t, v,...) LOCAL_ALIGNED(8, t, v, __VA_ARGS__) |
#define | LOCAL_ALIGNED_16(t, v,...) LOCAL_ALIGNED(16, t, v, __VA_ARGS__) |
#define | LOCAL_ALIGNED_32(t, v,...) LOCAL_ALIGNED(32, t, v, __VA_ARGS__) |
#define | FF_ALLOC_OR_GOTO(ctx, p, size, label) |
#define | FF_ALLOCZ_OR_GOTO(ctx, p, size, label) |
#define | FF_ALLOC_ARRAY_OR_GOTO(ctx, p, nelem, elsize, label) |
#define | FF_ALLOCZ_ARRAY_OR_GOTO(ctx, p, nelem, elsize, label) |
#define | NULL_IF_CONFIG_SMALL(x) x |
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. More... | |
#define | ONLY_IF_THREADS_ENABLED(x) NULL |
Define a function with only the non-default version specified. More... | |
#define | PTRDIFF_SPECIFIER "td" |
#define | SIZE_SPECIFIER "zu" |
#define | ff_dlog(ctx,...) do { if (0) av_log(ctx, AV_LOG_DEBUG, __VA_ARGS__); } while (0) |
Functions | |
void | avpriv_report_missing_feature (void *avc, const char *msg,...) av_printf_format(2 |
Log a generic warning message about a missing feature. More... | |
void void | avpriv_request_sample (void *avc, const char *msg,...) av_printf_format(2 |
Log a generic warning message about a missing feature. More... | |
static av_always_inline av_const int64_t | ff_rint64_clip (double a, int64_t amin, int64_t amax) |
Clip and convert a double value into the long long amin-amax range. More... | |
static av_always_inline double | ff_exp10 (double x) |
Compute 10^x for floating point values. More... | |
static av_always_inline float | ff_exp10f (float x) |
av_warn_unused_result int | avpriv_open (const char *filename, int flags,...) |
A wrapper for open() setting O_CLOEXEC. More... | |
int | avpriv_set_systematic_pal2 (uint32_t pal[256], enum AVPixelFormat pix_fmt) |
static av_always_inline av_const int | avpriv_mirror (int x, int w) |
void | ff_check_pixfmt_descriptors (void) |
Variables | |
const uint8_t | ff_reverse [256] |
common internal API header
Definition in file internal.h.
#define NDEBUG |
Definition at line 30 of file internal.h.
#define av_export |
Definition at line 65 of file internal.h.
#define FF_DISABLE_DEPRECATION_WARNINGS |
Definition at line 80 of file internal.h.
Referenced by alac_encode_init(), av_frame_get_qp_table(), av_frame_set_qp_table(), av_init_packet(), av_packet_copy_props(), av_packet_rescale_ts(), av_parser_init(), avcodec_close(), avcodec_copy_context(), avcodec_open2(), bmp_encode_frame(), compute_pkt_fields(), decode_dvd_subtitles(), decode_registered_user_data_afd(), display_end_segment(), dnxhd_encode_init(), dnxhd_encode_picture(), dnxhd_load_picture(), do_swap(), dvvideo_encode_frame(), encode_dvd_subtitles(), encode_frame(), encode_init(), encode_init_ls(), encode_picture_ls(), encode_thread(), ff_init_me(), ff_mpv_encode_init(), ff_mpv_encode_picture(), ff_rate_control_init(), ff_vdpau_common_end_frame(), find_smallest_bounding_rectangle(), flac_encode_frame(), flac_encode_init(), flashsv_encode_frame(), frame_copy_props(), frame_end(), gif_encode_init(), init_muxer(), init_video_param(), io_open_default(), j2kenc_init(), libschroedinger_encode_frame(), libschroedinger_encode_init(), libx265_encode_frame(), ljpeg_encode_bgr(), ljpeg_encode_init(), ljpeg_encode_yuv(), matroska_parse_frame(), mkv_write_packet_internal(), mpeg_decode_gop(), mpeg_decode_user_data(), pam_encode_init(), pcx_encode_init(), png_enc_init(), pnm_encode_init(), process_output_surface(), qtrle_encode_frame(), raw_encode_init(), setup_hwaccel_for_pixfmt(), srt_write_packet(), storeframe(), sunrast_encode_init(), svc_encode_init(), svq1_encode_frame(), svq1_encode_plane(), targa_encode_frame(), targa_encode_init(), teletext_decode_frame(), update_context_from_thread(), utvideo_encode_frame(), utvideo_encode_init(), v410_encode_frame(), v4l2_read_packet(), vpx_init(), X264_frame(), X264_init(), XAVS_frame(), XAVS_init(), xsub_encode(), xvid_encode_frame(), and xvid_encode_init().
#define FF_ENABLE_DEPRECATION_WARNINGS |
Definition at line 81 of file internal.h.
Referenced by alac_encode_init(), av_frame_get_qp_table(), av_frame_set_qp_table(), av_init_packet(), av_packet_copy_props(), av_packet_rescale_ts(), av_parser_init(), avcodec_close(), avcodec_copy_context(), avcodec_open2(), bmp_encode_frame(), compute_pkt_fields(), decode_dvd_subtitles(), decode_registered_user_data_afd(), display_end_segment(), dnxhd_encode_init(), dnxhd_encode_picture(), dnxhd_load_picture(), do_swap(), dvvideo_encode_frame(), encode_dvd_subtitles(), encode_frame(), encode_init(), encode_init_ls(), encode_picture_ls(), encode_thread(), ff_init_me(), ff_mpv_encode_init(), ff_mpv_encode_picture(), ff_rate_control_init(), ff_vdpau_common_end_frame(), find_smallest_bounding_rectangle(), flac_encode_frame(), flac_encode_init(), flashsv_encode_frame(), frame_copy_props(), frame_end(), gif_encode_init(), init_muxer(), init_video_param(), io_open_default(), j2kenc_init(), libschroedinger_encode_frame(), libschroedinger_encode_init(), libx265_encode_frame(), ljpeg_encode_bgr(), ljpeg_encode_init(), ljpeg_encode_yuv(), matroska_parse_frame(), mkv_write_packet_internal(), mpeg_decode_gop(), mpeg_decode_user_data(), pam_encode_init(), pcx_encode_init(), png_enc_init(), pnm_encode_init(), process_output_surface(), qtrle_encode_frame(), raw_encode_init(), setup_hwaccel_for_pixfmt(), srt_write_packet(), storeframe(), sunrast_encode_init(), svc_encode_init(), svq1_encode_frame(), svq1_encode_plane(), targa_encode_frame(), targa_encode_init(), teletext_decode_frame(), update_context_from_thread(), utvideo_encode_frame(), utvideo_encode_init(), v410_encode_frame(), v4l2_read_packet(), vpx_init(), X264_frame(), X264_init(), XAVS_frame(), XAVS_init(), xsub_encode(), xvid_encode_frame(), and xvid_encode_init().
#define FF_MEMORY_POISON 0x2a |
Definition at line 85 of file internal.h.
Referenced by av_dynarray2_add(), av_malloc(), and pool_release_buffer().
Definition at line 87 of file internal.h.
#define E1 | ( | x | ) | x |
Definition at line 93 of file internal.h.
Definition at line 98 of file internal.h.
Definition at line 102 of file internal.h.
Definition at line 106 of file internal.h.
#define LOCAL_ALIGNED | ( | a, | |
t, | |||
v, | |||
... | |||
) | E1(LOCAL_ALIGNED_A(a, t, v, __VA_ARGS__,,)) |
Definition at line 110 of file internal.h.
Referenced by checkasm_check_fmtconvert(), checkasm_check_synth_filter(), do_hybrid_window(), encode_slice_plane(), ff_atrac3p_ipqf(), ff_h264_filter_mb(), ff_hevc_luma_mv_merge_mode(), ff_lpc_calc_coefs(), ff_prores_idct_wrap(), filter_mb_dir(), h264_filter_mb_fast_internal(), intra_predict(), sub_qmf32_fixed_c(), sub_qmf32_float_c(), sub_qmf64_fixed_c(), and sub_qmf64_float_c().
#define LOCAL_ALIGNED_8 | ( | t, | |
v, | |||
... | |||
) | LOCAL_ALIGNED(8, t, v, __VA_ARGS__) |
Definition at line 115 of file internal.h.
Referenced by apply_obmc(), and dv_encode_video_segment().
#define LOCAL_ALIGNED_16 | ( | t, | |
v, | |||
... | |||
) | LOCAL_ALIGNED(16, t, v, __VA_ARGS__) |
Definition at line 121 of file internal.h.
Referenced by apply_channel_coupling(), bink_decode_plane(), binkb_decode_plane(), bit8x8_c(), check_append_extra_bits(), check_decorrelate_stereo(), checkasm_check_bswapdsp(), checkasm_check_flacdsp(), checkasm_check_h264pred(), checkasm_check_h264qpel(), checkasm_check_pixblockdsp(), count_mantissa_bits(), dct_max8x8_c(), dct_quantize_refine(), dct_quantize_TMPL(), dct_sad8x8_c(), decode_slice_alpha(), decode_slice_chroma(), decode_slice_luma(), decorrelation(), dnxhd_calc_bits_thread(), dv_decode_video_segment(), dv_init_enc_block(), ff_check_alignment(), h263_skip_b_part(), hybrid6_cx(), imc_decode_frame(), mpc7_decode_init(), quant_psnr8x8_c(), rd8x8_c(), rv34_decode_inter_macroblock(), rv34_output_i16x16(), sbr_hf_assemble(), sbr_hf_inverse_filter(), and stereo_processing().
#define LOCAL_ALIGNED_32 | ( | t, | |
v, | |||
... | |||
) | LOCAL_ALIGNED(32, t, v, __VA_ARGS__) |
Definition at line 127 of file internal.h.
Referenced by check_ipred(), check_itxfm(), check_loopfilter(), check_mc(), checkasm_check_jpeg2000dsp(), and intra_recon().
Definition at line 130 of file internal.h.
Referenced by adpcm_encode_frame(), adpcm_encode_init(), allocate_buffers(), allocate_sample_buffers(), ape_decode_init(), ff_h264_slice_context_init(), ff_iir_filter_init_coeffs(), ff_snow_common_init_after_header(), init_context_frame(), and sws_init_context().
Definition at line 139 of file internal.h.
Referenced by alloc_buffers(), allocate_sample_buffers(), dnxhd_encode_init(), dnxhd_init_vlc(), ff_h264_alloc_tables(), ff_h264_slice_context_init(), ff_iir_filter_init_coeffs(), ff_mpv_common_init(), ff_mpv_encode_init(), init_context_frame(), init_duplicate_context(), and sws_init_context().
#define FF_ALLOC_ARRAY_OR_GOTO | ( | ctx, | |
p, | |||
nelem, | |||
elsize, | |||
label | |||
) |
Definition at line 148 of file internal.h.
Referenced by adpcm_encode_frame(), allocate_buffers(), allocate_sample_buffers(), init_mdct_win(), initFilter(), and mca().
#define FF_ALLOCZ_ARRAY_OR_GOTO | ( | ctx, | |
p, | |||
nelem, | |||
elsize, | |||
label | |||
) |
Definition at line 157 of file internal.h.
Referenced by alloc_buffers(), allocate_buffers(), dnxhd_init_qmat(), dnxhd_init_rc(), dnxhd_init_vlc(), ff_h264_alloc_tables(), ff_mpeg_framesize_alloc(), ff_snow_common_init_after_header(), initFilter(), and mca().
#define NULL_IF_CONFIG_SMALL | ( | x | ) | x |
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification.
Used to disable the definition of strings (for example AVCodec long_names).
Definition at line 176 of file internal.h.
Referenced by mpeg12_class().
#define ONLY_IF_THREADS_ENABLED | ( | x | ) | NULL |
Define a function with only the non-default version specified.
On systems with ELF shared libraries, all symbols exported from FFmpeg libraries are tagged with the name and major version of the library to which they belong. If a function is moved from one library to another, a wrapper must be retained in the original location to preserve binary compatibility.
Functions defined with this macro will never be used to resolve symbols by the build-time linker.
type | return type of function |
name | name of function |
args | argument list of function |
ver | version tag to assign function Return NULL if a threading library has not been enabled. Used to disable threading functions in AVCodec definitions when not needed. |
Definition at line 215 of file internal.h.
#define PTRDIFF_SPECIFIER "td" |
Definition at line 250 of file internal.h.
Referenced by decode_cblk(), decode_chunks(), decode_slice(), encode_dvd_subtitles(), ff_mjpeg_decode_frame(), ff_mjpeg_find_marker(), ff_vorbis_comment(), flac_parse(), load_input_picture(), parse_packed_headers(), wma_decode_superframe(), zmbv_decode_xor_16(), zmbv_decode_xor_32(), and zmbv_decode_xor_8().
#define SIZE_SPECIFIER "zu" |
Definition at line 251 of file internal.h.
Referenced by ape_read_header(), dump_enc_cfg(), get_http_header_data(), get_tcp_server_response(), jpeg2000_decode_packet(), queue_frames(), read_data_packet(), read_geobtag(), and vpx_init().
#define ff_dlog | ( | ctx, | |
... | |||
) | do { if (0) av_log(ctx, AV_LOG_DEBUG, __VA_ARGS__); } while (0) |
Definition at line 257 of file internal.h.
Log a generic warning message about a missing feature.
[in] | avc | a pointer to an arbitrary struct of which the first field is a pointer to an AVClass struct |
[in] | msg | string containing the name of the missing feature |
Referenced by aac_adtstoasc_filter(), amr_decode_fix_avctx(), amrnb_decode_frame(), amrnb_decode_init(), amrwb_decode_init(), atrac3p_decode_frame(), cfhd_decode(), cpia_decode_frame(), decode_audio_specific_config(), decode_eld_specific_config(), decode_frame(), decode_ga_specific_config(), decode_gop_header(), decode_group3_2d_line(), decode_header(), decode_init(), decode_seq_header(), decode_subframe(), decode_tones_info(), dxv_decode(), ff_get_wav_header(), ff_ivi_decode_frame(), ff_jpegls_decode_picture(), ff_mjpeg_decode_sof(), ff_rv10_encode_picture_header(), ff_spdif_read_packet(), ff_vc1_parse_frame_header_adv(), g2m_load_cursor(), handle_id3(), hevc_handle_packet(), mpegaudio_parse(), ogg_replace_stream(), old_codec37(), old_codec47(), parse_adts_frame_header(), parse_MP4SLDescrTag(), qdm2_decode_init(), read_frame_header(), read_sbr_extension(), rpl_read_header(), rso_read_header(), tiff_decode_tag(), vp6_parse_header(), vp9_handle_packet(), vqa_decode_init(), xcbgrab_read_header(), and xwd_decode_frame().
Log a generic warning message about a missing feature.
Additionally request that a sample showcasing the feature be uploaded.
[in] | avc | a pointer to an arbitrary struct of which the first field is a pointer to an AVClass struct |
[in] | msg | string containing the name of the missing feature |
Referenced by aac_decode_er_frame(), alac_decode_init(), amrwb_decode_frame(), ape_decode_init(), apng_read_packet(), asf_get_packet(), ast_read_header(), avi_extract_stream_metadata(), avr_read_header(), cdxl_decode_frame(), chs_parse_header(), cine_read_header(), cinepak_decode(), compute_band_indexes(), cook_decode_init(), dcstr_read_header(), decode_audio_block(), decode_band_hdr(), decode_bytes(), decode_cdlms(), decode_channel_transform(), decode_eld_specific_config(), decode_element(), decode_frame(), decode_frame_headers(), decode_ga_specific_config(), decode_ics(), decode_idat_chunk(), decode_init(), decode_mvc2(), decode_nal_units(), decode_nop(), decode_packet(), decode_scalefactors(), decode_sgirle8(), decode_subframe(), decode_wmv9(), decode_yuv_frame(), determine_bitrate(), dnxhd_decode_header(), dnxhd_init_vlc(), dsf_read_header(), dss_read_header(), dxva2_mpeg2_decode_slice(), ea_read_packet(), encode_frame(), epaf_read_header(), execute_code(), exif_add_metadata(), ff_adx_decode_header(), ff_dca_exss_parse(), ff_eac3_parse_header(), ff_get_wav_header(), ff_h264_decode_seq_parameter_set(), ff_h264_decode_slice_header(), ff_hevc_parse_sps(), ff_jpegls_decode_lse(), ff_mjpeg_decode_sof(), ff_opus_parse_extradata(), ff_parse_mpeg2_descriptor(), ff_spdif_read_packet(), fill_coding_method_array(), flashsv_decode_frame(), flic_decode_init(), flv_read_packet(), flv_set_audio_codec(), flv_set_video_codec(), fsb_read_header(), g2m_decode_frame(), genh_read_header(), get_aiff_header(), get_packet_header(), get_poc(), get_siz(), handle_p_frame_apng(), hq_decode_frame(), iff_read_header(), imc_decode_init(), jp2_find_codestream(), jpeg2000_decode_packet(), jpeg2000_decode_packets_po_iteration(), lag_decode_zero_run_line(), latm_decode_audio_specific_config(), load_buffer(), lvf_read_header(), mimic_decode_frame(), mov_build_index(), mov_read_mdhd(), mov_read_sidx(), mpc7_decode_init(), mpc8_decode_init(), msf_read_header(), msrle_decode_pal4(), mtv_read_header(), mv_read_header(), mxf_parse_structural_metadata(), mxf_read_packet_old(), mxf_read_primer_pack(), nist_read_header(), oma_read_header(), on2avc_decode_init(), output_configure(), paf_video_decode(), parse_coding_header(), parse_common_header(), parse_dsd_prop(), parse_fmtp(), parse_MP4SLDescrTag(), parse_setup_header(), parse_video_var(), parse_xxch_frame(), pix_decode_frame(), process_audio_header_eacs(), process_audio_header_elements(), process_ea_header(), process_frame_obj(), ptx_decode_frame(), qdm2_decode_init(), qt_rtp_parse_packet(), read_block_data(), read_frame(), read_header(), read_major_sync(), read_restart_header(), read_sbr_extension(), read_stream_mux_config(), read_table(), rm_read_audio_stream_info(), rm_read_multi(), rpl_read_header(), rsd_read_header(), rso_read_header(), rv10_decode_init(), rv10_decode_picture_header(), save_bits(), save_subtitle_set(), scan_file(), smc_decode_stream(), smjpeg_read_header(), spdif_get_offset_and_codec(), spdif_header_dts(), spdif_header_truehd(), sunrast_decode_frame(), synth_superframe(), tdsc_load_cursor(), tdsc_parse_dtsm(), threedostr_read_header(), tm2_read_header(), truemotion1_decode_header(), truespeech_decode_init(), unsupported(), update_odml_entry(), vc1_decode_init(), vcr1_decode_init(), vp7_decode_frame_header(), vp8_decode_frame_header(), vqa_decode_init(), wsaud_read_header(), xa_decode(), xan_wc3_copy_pixel_run(), xmv_read_header(), xvag_read_header(), xwd_decode_frame(), xwma_read_header(), and zero12v_decode_init().
|
static |
Clip and convert a double value into the long long amin-amax range.
This function is needed because conversion of floating point to integers when it does not fit in the integer's representation does not necessarily saturate correctly (usually converted to a cvttsd2si on x86) which saturates numbers
INT64_MAX to INT64_MIN. The standard marks such conversions as undefined
behavior, allowing this sort of mathematically bogus conversions. This provides a safe alternative that is slower obviously but assures safety and better mathematical behavior.
a | value to clip |
amin | minimum value of the clip range |
amax | maximum value of the clip range |
Definition at line 274 of file internal.h.
|
static |
Compute 10^x for floating point values.
Note: this function is by no means "correctly rounded", and is meant as a fast, reasonably accurate approximation. For instance, maximum relative error for the double precision variant is ~ 1e-13 for very small and very large values. This is ~2x faster than GNU libm's approach, which is still off by 2ulp on some inputs.
x | exponent |
Definition at line 306 of file internal.h.
Referenced by av_strtod(), butterworth_bp_filter(), chebyshev1_bp_filter(), chebyshev2_bp_filter(), cng_decode_frame(), config_output(), decode_subframe(), encode_block(), encode_init(), ff_amr_set_fixed_gain(), ff_opus_parse_extradata(), filter_frame(), iac_generate_tabs(), init_exp(), libopus_decode_init(), on2avc_decode_init(), psy_3gpp_init(), read16_fft_bin(), read8_fft_bin(), and wma_decode_block().
|
static |
Definition at line 311 of file internal.h.
av_warn_unused_result int avpriv_open | ( | const char * | filename, |
int | flags, | ||
... | |||
) |
A wrapper for open() setting O_CLOEXEC.
Definition at line 66 of file file_open.c.
Referenced by av_file_map(), av_fopen_utf8(), bktr_init(), dv1394_read_header(), fbdev_read_header(), fbdev_write_header(), ff_fbdev_get_device_list(), ff_oss_audio_open(), and read_random().
int avpriv_set_systematic_pal2 | ( | uint32_t | pal[256], |
enum AVPixelFormat | pix_fmt | ||
) |
Definition at line 151 of file imgutils.c.
Referenced by av_image_alloc(), bmp_encode_frame(), ff_video_frame_pool_get(), filter_frame(), gif_encode_init(), gif_write_header(), pcx_encode_frame(), raw_init_decoder(), and video_get_buffer().
|
static |
Definition at line 324 of file internal.h.
Referenced by avfilter_transform(), blur(), compose(), decompose(), spatial_compose53i_buffered_init(), spatial_compose53i_dy(), spatial_compose53i_dy_buffered(), spatial_compose53i_init(), spatial_compose53i_init_TMPL(), spatial_compose97i_buffered_init(), spatial_compose97i_dy(), spatial_compose97i_dy_buffered(), spatial_compose97i_init(), spatial_compose97i_init_TMPL(), spatial_compose_daub97i_dy_TMPL(), spatial_compose_dirac53i_dy_TMPL(), spatial_decompose53i(), and spatial_decompose97i().
const uint8_t ff_reverse[256] |
Definition at line 23 of file reverse.c.
Referenced by asv2_get_bits(), asv2_put_bits(), bitswap_32(), decode_frame(), deinvert_buffer(), dsd2pcm_translate(), encode_frame(), eval_expr(), fft(), inv_bits(), ir2_decode_frame(), pcm_decode_frame(), pcm_encode_frame(), s302m_decode_frame(), s302m_encode2_frame(), tiff_unpack_fax(), tiff_unpack_strip(), webp_get_vlc(), wnv1_get_code(), xbm_decode_frame(), and xbm_encode_frame().