FFmpeg
Loading...
Searching...
No Matches
libaomenc.c File Reference

AV1 encoder support via libaom. More...

#include <limits.h>
#include <aom/aom_encoder.h>
#include <aom/aomcx.h>
#include "libavutil/avassert.h"
#include "libavutil/base64.h"
#include "libavutil/cpu.h"
#include "libavutil/hdr_dynamic_metadata.h"
#include "libavutil/imgutils.h"
#include "libavutil/mathematics.h"
#include "libavutil/mem.h"
#include "libavutil/opt.h"
#include "libavutil/pixdesc.h"
#include "av1.h"
#include "avcodec.h"
#include "bsf.h"
#include "bytestream.h"
#include "codec_internal.h"
#include "dovi_rpu.h"
#include "encode.h"
#include "internal.h"
#include "itut35.h"
#include "libaom.h"
#include "profiles.h"

Go to the source code of this file.

Data Structures

struct  FrameListData
 Portion of struct vpx_codec_cx_pkt from vpx_encoder.h. More...
 
struct  AOMContext
 

Macros

#define AOM_DISABLE_CTRL_TYPECHECKS   1
 
#define OFFSET(x)
 
#define VE   AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_ENCODING_PARAM
 
#define VER   VE | AV_OPT_FLAG_RUNTIME_PARAM
 

Functions

static av_cold void log_encoder_error (AVCodecContext *avctx, const char *desc)
 
static av_cold void dump_enc_cfg (AVCodecContext *avctx, const struct aom_codec_enc_cfg *cfg, int level)
 
static void coded_frame_add (void *list, struct FrameListData *cx_frame)
 
static av_cold void free_coded_frame (struct FrameListData *cx_frame)
 
static av_cold void free_frame_list (struct FrameListData *list)
 
static av_cold int codecctl_int (AVCodecContext *avctx, int id, int val)
 
static int add_hdr_plus (AVCodecContext *avctx, struct aom_image *img, const AVFrame *frame)
 
static int add_hdr_smpte2094_app5 (AVCodecContext *avctx, struct aom_image *img, const AVFrame *frame)
 
static av_cold int codecctl_imgp (AVCodecContext *avctx, int id, struct aom_image *img)
 
static av_cold int aom_free (AVCodecContext *avctx)
 
static int set_pix_fmt (AVCodecContext *avctx, aom_codec_caps_t codec_caps, struct aom_codec_enc_cfg *enccfg, aom_codec_flags_t *flags, aom_img_fmt_t *img_fmt)
 
static void set_color_range (AVCodecContext *avctx)
 
static int count_uniform_tiling (int dim, int sb_size, int tiles_log2)
 
static int choose_tiling (AVCodecContext *avctx, struct aom_codec_enc_cfg *enccfg)
 
static av_cold int aom_config (AVCodecContext *avctx, const struct aom_codec_iface *iface)
 
static av_cold int aom_codecctl (AVCodecContext *avctx)
 
static av_cold int aom_init (AVCodecContext *avctx, const struct aom_codec_iface *iface)
 
static void cx_pktcpy (AOMContext *ctx, struct FrameListData *dst, const struct aom_codec_cx_pkt *src)
 
static int storeframe (AVCodecContext *avctx, struct FrameListData *cx_frame, AVPacket *pkt)
 Store coded frame information in format suitable for return from encode2().
 
static int queue_frames (AVCodecContext *avctx, AVPacket *pkt_out)
 Queue multiple output frames from the encoder, returning the front-most.
 
static enum AVPixelFormat aomfmt_to_pixfmt (struct aom_image *img)
 
static int aom_encode (AVCodecContext *avctx, AVPacket *pkt, const AVFrame *frame, int *got_packet)
 
static int av1_get_supported_config (const AVCodecContext *avctx, const AVCodec *codec, enum AVCodecConfig config, unsigned flags, const void **out, int *out_num)
 
static av_cold int av1_init (AVCodecContext *avctx)
 
static av_cold int av1_reconf (AVCodecContext *avctx, AVDictionary **dict)
 

Variables

static const char *const ctlidstr []
 
struct { 
 
   int   aom_enum 
 
   unsigned   offset 
 
option_map [] 
 
static enum AVPixelFormat av1_pix_fmts []
 
static enum AVPixelFormat av1_pix_fmts_with_gray []
 
static enum AVPixelFormat av1_pix_fmts_highbd []
 
static enum AVPixelFormat av1_pix_fmts_highbd_with_gray []
 
static const AVOption options []
 
static const FFCodecDefault defaults []
 
static const AVClass class_aom
 
const FFCodec ff_libaom_av1_encoder
 

Detailed Description

AV1 encoder support via libaom.

Definition in file libaomenc.c.

Macro Definition Documentation

◆ AOM_DISABLE_CTRL_TYPECHECKS

#define AOM_DISABLE_CTRL_TYPECHECKS   1

Definition at line 28 of file libaomenc.c.

◆ OFFSET

#define OFFSET ( x)
Value:
offsetof(AOMContext, x)

Definition at line 147 of file libaomenc.c.

◆ VE

Definition at line 1583 of file libaomenc.c.

◆ VER

#define VER   VE | AV_OPT_FLAG_RUNTIME_PARAM

Definition at line 1584 of file libaomenc.c.

Function Documentation

◆ log_encoder_error()

static av_cold void log_encoder_error ( AVCodecContext * avctx,
const char * desc )
static

◆ dump_enc_cfg()

static av_cold void dump_enc_cfg ( AVCodecContext * avctx,
const struct aom_codec_enc_cfg * cfg,
int level )
static

Definition at line 223 of file libaomenc.c.

Referenced by aom_init(), and av1_reconf().

◆ coded_frame_add()

static void coded_frame_add ( void * list,
struct FrameListData * cx_frame )
static

Definition at line 281 of file libaomenc.c.

Referenced by queue_frames().

◆ free_coded_frame()

static av_cold void free_coded_frame ( struct FrameListData * cx_frame)
static

Definition at line 291 of file libaomenc.c.

Referenced by free_frame_list(), and queue_frames().

◆ free_frame_list()

static av_cold void free_frame_list ( struct FrameListData * list)
static

Definition at line 297 of file libaomenc.c.

Referenced by aom_free().

◆ codecctl_int()

static av_cold int codecctl_int ( AVCodecContext * avctx,
int id,
int val )
static

Definition at line 308 of file libaomenc.c.

Referenced by aom_codecctl(), and set_color_range().

◆ add_hdr_plus()

static int add_hdr_plus ( AVCodecContext * avctx,
struct aom_image * img,
const AVFrame * frame )
static

Definition at line 331 of file libaomenc.c.

Referenced by aom_encode().

◆ add_hdr_smpte2094_app5()

static int add_hdr_smpte2094_app5 ( AVCodecContext * avctx,
struct aom_image * img,
const AVFrame * frame )
static

Definition at line 378 of file libaomenc.c.

Referenced by aom_encode().

◆ codecctl_imgp()

static av_cold int codecctl_imgp ( AVCodecContext * avctx,
int id,
struct aom_image * img )
static

Definition at line 450 of file libaomenc.c.

Referenced by aom_encode().

◆ aom_free()

static av_cold int aom_free ( AVCodecContext * avctx)
static

Definition at line 471 of file libaomenc.c.

◆ set_pix_fmt()

static int set_pix_fmt ( AVCodecContext * avctx,
aom_codec_caps_t codec_caps,
struct aom_codec_enc_cfg * enccfg,
aom_codec_flags_t * flags,
aom_img_fmt_t * img_fmt )
static

Definition at line 517 of file libaomenc.c.

Referenced by aom_config().

◆ set_color_range()

static void set_color_range ( AVCodecContext * avctx)
static

Definition at line 582 of file libaomenc.c.

Referenced by aom_codecctl(), and vpx_init().

◆ count_uniform_tiling()

static int count_uniform_tiling ( int dim,
int sb_size,
int tiles_log2 )
static

Definition at line 598 of file libaomenc.c.

Referenced by choose_tiling().

◆ choose_tiling()

static int choose_tiling ( AVCodecContext * avctx,
struct aom_codec_enc_cfg * enccfg )
static

Definition at line 606 of file libaomenc.c.

Referenced by aom_config().

◆ aom_config()

static av_cold int aom_config ( AVCodecContext * avctx,
const struct aom_codec_iface * iface )
static

Definition at line 800 of file libaomenc.c.

Referenced by aom_init(), and av1_reconf().

◆ aom_codecctl()

static av_cold int aom_codecctl ( AVCodecContext * avctx)
static

Definition at line 932 of file libaomenc.c.

Referenced by aom_init(), and av1_reconf().

◆ aom_init()

static av_cold int aom_init ( AVCodecContext * avctx,
const struct aom_codec_iface * iface )
static

Definition at line 1012 of file libaomenc.c.

Referenced by av1_init().

◆ cx_pktcpy()

static void cx_pktcpy ( AOMContext * ctx,
struct FrameListData * dst,
const struct aom_codec_cx_pkt * src )
inlinestatic

Definition at line 1116 of file libaomenc.c.

Referenced by queue_frames().

◆ storeframe()

static int storeframe ( AVCodecContext * avctx,
struct FrameListData * cx_frame,
AVPacket * pkt )
static

Store coded frame information in format suitable for return from encode2().

Write information from cx_frame to pkt

Returns
packet data size on success
a negative AVERROR on error

Definition at line 1142 of file libaomenc.c.

Referenced by queue_frames().

◆ queue_frames()

static int queue_frames ( AVCodecContext * avctx,
AVPacket * pkt_out )
static

Queue multiple output frames from the encoder, returning the front-most.

In cases where aom_codec_get_cx_data() returns more than 1 frame append the frame queue. Return the head frame if available.

Returns
Stored frame size
AVERROR(EINVAL) on output size error
AVERROR(ENOMEM) on coded frame queue data allocation error

Definition at line 1203 of file libaomenc.c.

Referenced by aom_encode().

◆ aomfmt_to_pixfmt()

static enum AVPixelFormat aomfmt_to_pixfmt ( struct aom_image * img)
static

Definition at line 1296 of file libaomenc.c.

Referenced by aom_encode().

◆ aom_encode()

static int aom_encode ( AVCodecContext * avctx,
AVPacket * pkt,
const AVFrame * frame,
int * got_packet )
static

Definition at line 1327 of file libaomenc.c.

◆ av1_get_supported_config()

static int av1_get_supported_config ( const AVCodecContext * avctx,
const AVCodec * codec,
enum AVCodecConfig config,
unsigned flags,
const void ** out,
int * out_num )
static

Definition at line 1516 of file libaomenc.c.

◆ av1_init()

static av_cold int av1_init ( AVCodecContext * avctx)
static

Definition at line 1548 of file libaomenc.c.

◆ av1_reconf()

static av_cold int av1_reconf ( AVCodecContext * avctx,
AVDictionary ** dict )
static

Definition at line 1553 of file libaomenc.c.

Variable Documentation

◆ ctlidstr

const char* const ctlidstr[]
static

Definition at line 149 of file libaomenc.c.

Referenced by codecctl_imgp(), codecctl_int(), and codecctl_int().

◆ aom_enum

int aom_enum

Definition at line 762 of file libaomenc.c.

Referenced by aom_codecctl().

◆ offset

unsigned offset

Definition at line 763 of file libaomenc.c.

Referenced by aa_read_header(), aax_read_header(), ac3_decode_frame(), add_tone(), add_tts_entry(), add_wave(), add_wave0(), add_waves(), adx_decode(), adx_decode_header(), adx_probe(), aiff_read_header(), alf_clip_from_idx(), alf_filter_chroma(), alf_filter_luma(), align_position(), amr_parse(), analyze_frame(), aom_codecctl(), ape_decode_frame(), apng_read_header(), append_au(), apply_prof_uni(), apply_prof_uni_w(), apply_window_and_mdct(), argo_brp_read_header(), asf_parse_packet(), asf_read_simple_index(), asf_read_single_payload(), asf_write_markers(), asf_write_packet(), assign_pair(), atrac9_decode_block(), atrac9_init_vlc(), attach_lsb(), autocorr_max(), av1_filter_obus(), av_audio_fifo_peek_at(), av_container_fifo_peek(), av_exif_set_entry(), av_fifo_peek(), av_fifo_peek_to_cb(), av_probe_input_buffer(), av_probe_input_buffer2(), av_samples_set_silence(), av_strerror(), av_write_image_line2(), avc_biwgt_4x2_msa(), avc_biwgt_4x4_msa(), avc_biwgt_4x8_msa(), avc_biwgt_8x16_msa(), avc_biwgt_8x4_msa(), avc_biwgt_8x8_msa(), avc_wgt_4x2_msa(), avc_wgt_4x4_msa(), avc_wgt_4x8_msa(), avc_wgt_8x16_msa(), avc_wgt_8x4_msa(), avc_wgt_8x8_msa(), avcodec_default_execute(), avg(), avi_extract_stream_metadata(), avio_alloc_context(), avio_seek(), avio_skip(), aw_parse_coords(), bfi_decode_frame(), bidir_sal(), bink_init_vlcs(), binka_read_header(), bitplane_decoding(), bl_intrp(), bonk_decode(), bsf_opt_parse(), bswap(), build_vlc(), build_vlc(), build_vlc(), bytestream2_seek(), bytestream2_seek_p(), cairo_get_dash(), cairo_set_dash(), categorize_regions(), cclm_select_luma(), celt_compute_qn(), celt_decode_final_energy(), celt_decode_fine_energy(), celt_quant_final(), celt_quant_fine(), cfhd_decode(), check_alf_classify(), check_alf_filter(), check_alpha_detect(), check_cavs_qpeldsp(), check_chrConvertRange(), check_crc(), check_idct_multiple(), check_lumConvertRange(), check_mspel_pixels(), check_rgb2yuv(), check_sao_edge(), check_sao_edge(), check_sub_median_pred(), check_sync_pes(), check_tag(), check_yuv2rgb(), check_yuv2yuv(), check_yuv2yuv1(), check_yuv2yuvX(), checkasm_check_hpeldsp(), checkasm_check_mpegvideo_unquantize(), checkasm_check_qpeldsp(), checkasm_get_jedec_vendor_name(), checked_seek(), chroma_4mv_motion(), chroma_4mv_motion_lowres(), chroma_tc(), chrRangeFromJpeg16_c(), chrRangeFromJpeg_c(), chrRangeToJpeg16_c(), chrRangeToJpeg_c(), chs_clear_band_data(), cin_decode_lzss(), codebook_bits(), codebook_bits_offset(), comp_block(), comp_interp_index(), comp_ppf_coeff(), compile_single(), compute_pkt_fields(), compute_row(), concatenate_packet(), config_input(), config_output(), convert_coeffs(), cook_decode_frame(), copy_block(), copy_cell(), copy_param_sets(), count_nalus(), count_ts(), cri_decode_frame(), cuvid_output_frame(), d3d12va_av1_decode_slice(), de_stereo(), DECL_READ(), decode_0(), decode_8_pulses_35bits(), decode_audio_block(), decode_bayer_frame(), decode_block(), decode_blockcodes(), decode_blocks(), decode_blocks(), decode_blocks(), decode_bytes_and_gain(), decode_cell(), decode_cu_8x8(), decode_dds1(), decode_decorrelation_matrix(), decode_delta_d(), decode_delta_e(), decode_delta_j(), decode_delta_l(), decode_dsw1(), decode_entropy_coded_image(), decode_fixed_sparse(), decode_frame(), decode_frame(), decode_frame(), decode_frame(), decode_frame(), decode_frame(), decode_frame(), decode_frame(), decode_frame(), decode_frame(), decode_frame(), decode_frame_lscr(), decode_init(), decode_inter(), decode_interframe_v4(), decode_interframe_v4a(), decode_intra(), decode_intra_block(), decode_intra_plane(), decode_log_area(), decode_rgb_frame_TMPL(), decode_rle(), decode_rle16(), decode_rle_bpp2(), decode_rle_bpp4(), decode_samples(), decode_scalefactors(), decode_short_horizontal_delta(), decode_slice_thread(), decode_string(), decode_subframe(), decode_subframe(), decode_subframe_length(), decode_subframe_length(), decode_tilehdr(), decode_tilehdr(), decode_tsw1(), decode_user_data_registered_itu_t_t35(), dequant(), detect_alpha(), detect_peak(), detect_unknown_subobject(), determine_bits(), dnxhd_decode_row(), dnxhd_encode_picture(), dnxhd_init_vlc(), dnxhd_setup_threads_slices(), do_imdct(), draw_horiz_band(), draw_mouse_pointer(), draw_qrcode(), draw_slice(), dss_723_1_read_packet(), dss_read_metadata_date(), dss_read_metadata_string(), dss_read_seek(), dss_sp_read_packet(), dss_sp_update_state(), dv_init_static(), dvdvideo_subp_stream_add_internal(), dvdvideo_subp_stream_analyze(), dwt_plane(), dxv_decompress_cgo(), dyn_buf_seek(), ebml_writer_write_block(), emulated_edge_no_wrap(), encode_422_bitstream(), encode_bayer_frame(), encode_block(), encode_float32_rgb_frame(), encode_frame(), encode_frame(), encode_init(), encode_plane(), encode_rgb_frame_TMPL(), envelope(), envelope16(), envelope_instant(), envelope_instant16(), envelope_peak(), envelope_peak16(), estimate_pitch(), estimate_timings_from_pts(), exif_get_entry(), exif_write_ifd(), ff_aac_ac3_parse(), ff_aac_ac_finish(), ff_AMediaCodec_queueInputBuffer(), ff_ass_split_dialog(), ff_av1_filter_obus_buf(), ff_biweight_h264_pixels16_8_msa(), ff_biweight_h264_pixels4_8_lsx(), ff_biweight_h264_pixels4_8_msa(), ff_biweight_h264_pixels8_8_lsx(), ff_biweight_h264_pixels8_8_msa(), ff_biweight_h264_pixels_16_neon(), ff_biweight_h264_pixels_4_neon(), ff_biweight_h264_pixels_8_neon(), ff_blend_mask(), ff_blend_rectangle(), ff_chrRangeFromJpeg16_neon(), ff_chrRangeFromJpeg8_neon(), ff_chrRangeToJpeg16_neon(), ff_chrRangeToJpeg8_neon(), ff_copy_and_dup(), ff_copy_pce_data(), ff_cos(), ff_dca_exss_parse(), ff_dca_init_vlcs(), ff_denoise_dct_mmi(), ff_detect_alpha16_full_c(), ff_detect_alpha16_full_neon(), ff_detect_alpha16_limited_c(), ff_detect_alpha16_limited_neon(), ff_detect_alpha_full_c(), ff_detect_alpha_full_neon(), ff_detect_alpha_limited_c(), ff_detect_alpha_limited_neon(), ff_dnn_child_next(), ff_dnn_init_child_class(), ff_dovi_rpu_parse(), ff_draw_horiz_band(), ff_ffv1_compute_bits_per_plane(), ff_filter_opt_parse(), ff_g723_1_get_residual(), ff_get_muxer_ts_offset(), ff_h264_biweight_pixels16_8_mmi(), ff_h264_biweight_pixels4_8_mmi(), ff_h264_biweight_pixels8_8_mmi(), ff_h264_draw_horiz_band(), ff_h264_filter_mb(), ff_h264_h_loop_filter_luma_mbaff_intra_msa(), ff_h264_loop_filter_strength_lsx(), ff_h264_weight_pixels16_8_mmi(), ff_h264_weight_pixels4_8_mmi(), ff_h264_weight_pixels8_8_mmi(), ff_hevc_hls_residual_coding(), ff_huff_gen_len_table(), ff_iamf_read_packet(), ff_iamfdec_read_descriptors(), ff_jni_init_jfields(), ff_jni_reset_jfields(), ff_lumRangeFromJpeg16_neon(), ff_lumRangeFromJpeg8_neon(), ff_lumRangeToJpeg16_neon(), ff_lumRangeToJpeg8_neon(), ff_mediacodec_dec_send(), ff_mjpeg_decode_frame_from_buf(), ff_mov_write_packet(), ff_mpa_synth_filter_TMPL(), ff_mspel_motion(), ff_put_h264_qpel4_mc00_msa(), ff_rtmpe_gen_pub_key(), ff_rtp_send_latm(), ff_rtp_send_raw_rfc4175(), ff_rv34_decode_frame(), ff_set_cmp(), ff_spdif_probe(), ff_spdif_read_packet(), ff_sws_slice_worker(), ff_swscale(), ff_thread_sync_ref(), ff_vk_flush_buffer(), ff_vk_shader_add_push_const(), ff_vk_shader_update_desc_buffer(), ff_vk_shader_update_push_const(), ff_vlc_init_from_lengths(), ff_vlc_init_multi_from_lengths(), ff_vlc_init_table_from_lengths(), ff_vlc_init_tables_from_lengths(), ff_vvc_round_mv(), ff_weight_h264_pixels16_8_msa(), ff_weight_h264_pixels4_8_lsx(), ff_weight_h264_pixels4_8_msa(), ff_weight_h264_pixels8_8_lsx(), ff_weight_h264_pixels8_8_msa(), ff_weight_h264_pixels_16_neon(), ff_weight_h264_pixels_4_neon(), ff_weight_h264_pixels_8_neon(), ff_wma_run_level_decode(), ff_yuv2planeX_8_neon(), ffio_init_context(), fft_channel(), fifo_peek_common(), filter(), filter(), filter_1phase(), filter_channel(), filter_channel(), filter_channels(), filter_edges(), filter_edges_16bit(), filter_frame(), filter_frame(), filter_frame(), filter_frame(), filter_frame(), filter_frame(), filter_frame(), filter_frame(), find_body_sid_by_absolute_offset(), find_header(), find_headers_search_validate(), find_prev_closest_index(), find_tracked_method(), fir_channel(), fir_quantum(), fir_quantums(), fir_sample(), fir_sample(), fir_sample(), fixup_vorbis_headers(), flac_fifo_read(), flac_fifo_read_wrap(), flac_read_header(), floor_offset(), flush_frame(), flv_read_header(), fsb_read_header(), g723_1_encode_frame(), gen_fcb_excitation(), get_best_header(), get_buffer_with_edge(), get_duration(), get_encode_buffer(), get_gtx_flag_inc(), get_intra_count(), get_matching_parameters(), get_opcodes(), get_p_cbp(), get_send_time(), gmc1_motion(), gsm_decode_block(), h263_mv4_search(), h_block_filter(), handle_avoid_negative_ts(), hashNext(), headphone_convolute(), headphone_fast_convolute(), hevc_biwgt_copy_12w_msa(), hevc_biwgt_copy_16w_msa(), hevc_biwgt_copy_24w_msa(), hevc_biwgt_copy_32w_msa(), hevc_biwgt_copy_48w_msa(), hevc_biwgt_copy_4w_msa(), hevc_biwgt_copy_64w_msa(), hevc_biwgt_copy_6w_msa(), hevc_biwgt_copy_8w_msa(), hevc_hv_8t_16w_lsx(), hevc_hv_8t_24w_lsx(), hevc_hv_8t_32w_lsx(), hevc_hv_8t_48w_lsx(), hevc_hv_8t_64w_lsx(), hevc_hv_8t_8w_lsx(), hevc_hv_8t_8x2_lsx(), hevc_hv_biwgt_4t_12w_msa(), hevc_hv_biwgt_4t_16w_msa(), hevc_hv_biwgt_4t_24w_msa(), hevc_hv_biwgt_4t_32w_msa(), hevc_hv_biwgt_4t_4multx8mult_msa(), hevc_hv_biwgt_4t_4w_msa(), hevc_hv_biwgt_4t_4x2_msa(), hevc_hv_biwgt_4t_4x4_msa(), hevc_hv_biwgt_4t_6w_msa(), hevc_hv_biwgt_4t_8multx4_msa(), hevc_hv_biwgt_4t_8multx4mult_msa(), hevc_hv_biwgt_4t_8w_msa(), hevc_hv_biwgt_4t_8x2_msa(), hevc_hv_biwgt_4t_8x6_msa(), hevc_hv_biwgt_8t_12w_msa(), hevc_hv_biwgt_8t_16w_msa(), hevc_hv_biwgt_8t_24w_msa(), hevc_hv_biwgt_8t_32w_msa(), hevc_hv_biwgt_8t_48w_msa(), hevc_hv_biwgt_8t_4w_msa(), hevc_hv_biwgt_8t_64w_msa(), hevc_hv_biwgt_8t_8multx2mult_msa(), hevc_hv_biwgt_8t_8w_msa(), hevc_hv_uniwgt_4t_12w_msa(), hevc_hv_uniwgt_4t_16w_msa(), hevc_hv_uniwgt_4t_24w_msa(), hevc_hv_uniwgt_4t_32w_msa(), hevc_hv_uniwgt_4t_4multx8mult_msa(), hevc_hv_uniwgt_4t_4w_msa(), hevc_hv_uniwgt_4t_4x2_msa(), hevc_hv_uniwgt_4t_4x4_msa(), hevc_hv_uniwgt_4t_6w_msa(), hevc_hv_uniwgt_4t_8multx4_msa(), hevc_hv_uniwgt_4t_8multx4mult_msa(), hevc_hv_uniwgt_4t_8w_msa(), hevc_hv_uniwgt_4t_8x2_msa(), hevc_hv_uniwgt_4t_8x6_msa(), hevc_hv_uniwgt_8t_12w_msa(), hevc_hv_uniwgt_8t_16w_msa(), hevc_hv_uniwgt_8t_24w_msa(), hevc_hv_uniwgt_8t_32w_msa(), hevc_hv_uniwgt_8t_48w_msa(), hevc_hv_uniwgt_8t_4w_msa(), hevc_hv_uniwgt_8t_64w_msa(), hevc_hv_uniwgt_8t_8multx2mult_msa(), hevc_hv_uniwgt_8t_8w_msa(), hevc_hz_biwgt_4t_12w_msa(), hevc_hz_biwgt_4t_16w_msa(), hevc_hz_biwgt_4t_24w_msa(), hevc_hz_biwgt_4t_32w_msa(), hevc_hz_biwgt_4t_4w_msa(), hevc_hz_biwgt_4t_4x2_msa(), hevc_hz_biwgt_4t_4x4_msa(), hevc_hz_biwgt_4t_4x8multiple_msa(), hevc_hz_biwgt_4t_6w_msa(), hevc_hz_biwgt_4t_8w_msa(), hevc_hz_biwgt_4t_8x2_msa(), hevc_hz_biwgt_4t_8x4multiple_msa(), hevc_hz_biwgt_4t_8x6_msa(), hevc_hz_biwgt_8t_12w_msa(), hevc_hz_biwgt_8t_16w_msa(), hevc_hz_biwgt_8t_24w_msa(), hevc_hz_biwgt_8t_32w_msa(), hevc_hz_biwgt_8t_48w_msa(), hevc_hz_biwgt_8t_4w_msa(), hevc_hz_biwgt_8t_64w_msa(), hevc_hz_biwgt_8t_8w_msa(), hevc_hz_uniwgt_4t_12w_msa(), hevc_hz_uniwgt_4t_16w_msa(), hevc_hz_uniwgt_4t_24w_msa(), hevc_hz_uniwgt_4t_32w_msa(), hevc_hz_uniwgt_4t_4w_msa(), hevc_hz_uniwgt_4t_4x2_msa(), hevc_hz_uniwgt_4t_4x4_msa(), hevc_hz_uniwgt_4t_4x8multiple_msa(), hevc_hz_uniwgt_4t_6w_msa(), hevc_hz_uniwgt_4t_8w_msa(), hevc_hz_uniwgt_4t_8x2_msa(), hevc_hz_uniwgt_4t_8x4_msa(), hevc_hz_uniwgt_4t_8x6_msa(), hevc_hz_uniwgt_4t_8x8multiple_msa(), hevc_hz_uniwgt_8t_12w_msa(), hevc_hz_uniwgt_8t_16w_msa(), hevc_hz_uniwgt_8t_24w_msa(), hevc_hz_uniwgt_8t_32w_msa(), hevc_hz_uniwgt_8t_48w_msa(), hevc_hz_uniwgt_8t_4w_msa(), hevc_hz_uniwgt_8t_64w_msa(), hevc_hz_uniwgt_8t_8w_msa(), hevc_intra_pred_angular_lower_16width_msa(), hevc_intra_pred_angular_lower_32width_msa(), hevc_intra_pred_angular_lower_4width_msa(), hevc_intra_pred_angular_lower_8width_msa(), hevc_intra_pred_angular_upper_16width_msa(), hevc_intra_pred_angular_upper_32width_msa(), hevc_intra_pred_angular_upper_4width_msa(), hevc_intra_pred_angular_upper_8width_msa(), hevc_sao_band_filter_4width_msa(), hevc_sao_edge_filter_0degree_4width_lsx(), hevc_sao_edge_filter_0degree_4width_msa(), hevc_sao_edge_filter_0degree_8width_lsx(), hevc_sao_edge_filter_0degree_8width_msa(), hevc_sao_edge_filter_135degree_4width_lsx(), hevc_sao_edge_filter_135degree_4width_msa(), hevc_sao_edge_filter_135degree_8width_lsx(), hevc_sao_edge_filter_135degree_8width_msa(), hevc_sao_edge_filter_45degree_4width_lsx(), hevc_sao_edge_filter_45degree_4width_msa(), hevc_sao_edge_filter_45degree_8width_lsx(), hevc_sao_edge_filter_45degree_8width_msa(), hevc_sao_edge_filter_90degree_4width_lsx(), hevc_sao_edge_filter_90degree_4width_msa(), hevc_sao_edge_filter_90degree_8width_lsx(), hevc_sao_edge_filter_90degree_8width_msa(), hevc_uniwgt_copy_12w_msa(), hevc_uniwgt_copy_16w_msa(), hevc_uniwgt_copy_24w_msa(), hevc_uniwgt_copy_32w_msa(), hevc_uniwgt_copy_48w_msa(), hevc_uniwgt_copy_4w_msa(), hevc_uniwgt_copy_64w_msa(), hevc_uniwgt_copy_6w_msa(), hevc_uniwgt_copy_8w_msa(), hevc_vt_biwgt_4t_12w_msa(), hevc_vt_biwgt_4t_16w_msa(), hevc_vt_biwgt_4t_24w_msa(), hevc_vt_biwgt_4t_32w_msa(), hevc_vt_biwgt_4t_4w_msa(), hevc_vt_biwgt_4t_4x2_msa(), hevc_vt_biwgt_4t_4x4_msa(), hevc_vt_biwgt_4t_4x8multiple_msa(), hevc_vt_biwgt_4t_6w_msa(), hevc_vt_biwgt_4t_8w_msa(), hevc_vt_biwgt_4t_8x2_msa(), hevc_vt_biwgt_4t_8x4multiple_msa(), hevc_vt_biwgt_4t_8x6_msa(), hevc_vt_biwgt_8t_12w_msa(), hevc_vt_biwgt_8t_16multx2mult_msa(), hevc_vt_biwgt_8t_16w_msa(), hevc_vt_biwgt_8t_24w_msa(), hevc_vt_biwgt_8t_32w_msa(), hevc_vt_biwgt_8t_48w_msa(), hevc_vt_biwgt_8t_4w_msa(), hevc_vt_biwgt_8t_64w_msa(), hevc_vt_biwgt_8t_8w_msa(), hevc_vt_uniwgt_4t_12w_msa(), hevc_vt_uniwgt_4t_16w_msa(), hevc_vt_uniwgt_4t_24w_msa(), hevc_vt_uniwgt_4t_32w_msa(), hevc_vt_uniwgt_4t_4w_msa(), hevc_vt_uniwgt_4t_4x2_msa(), hevc_vt_uniwgt_4t_4x4_msa(), hevc_vt_uniwgt_4t_4x8multiple_msa(), hevc_vt_uniwgt_4t_6w_msa(), hevc_vt_uniwgt_4t_8w_msa(), hevc_vt_uniwgt_4t_8x2_msa(), hevc_vt_uniwgt_4t_8x4_msa(), hevc_vt_uniwgt_4t_8x6_msa(), hevc_vt_uniwgt_4t_8x8mult_msa(), hevc_vt_uniwgt_8t_12w_msa(), hevc_vt_uniwgt_8t_16multx4mult_msa(), hevc_vt_uniwgt_8t_16w_msa(), hevc_vt_uniwgt_8t_24w_msa(), hevc_vt_uniwgt_8t_32w_msa(), hevc_vt_uniwgt_8t_48w_msa(), hevc_vt_uniwgt_8t_4w_msa(), hevc_vt_uniwgt_8t_64w_msa(), hevc_vt_uniwgt_8t_8w_msa(), hls_slice_data_wpp(), horizontal_fill(), hxvs_build_index(), imdct_output(), imm5_decode_frame(), imx_decode_frame(), init(), init_gaussian_filter(), init_gaussian_filter(), init_ref(), init_ref(), init_segment(), init_slice_buffers(), init_slice_c(), io_seek(), ism_seek(), ivr_read_header(), jpegxl_anim_read_packet(), lag_decode_arith_plane(), libdav1d_parse_extradata(), libvorbis_encode_init(), load_data(), lrc_probe(), lsp2lpc(), luma_mc_bi(), luma_mc_uni(), lumRangeFromJpeg16_c(), lumRangeFromJpeg_c(), lumRangeToJpeg16_c(), lumRangeToJpeg_c(), lz_copy(), lzss_decompress(), lzss_uncompress(), magy_decode_frame(), main(), mc_dir_part(), mediacodec_jni_queueInputBuffer(), mediacodec_ndk_queueInputBuffer(), mkv_assemble_cues(), mkv_write_trailer(), motion_search(), mov_flush_fragment(), mov_flush_fragment_interleaving(), mov_parse_exif_item(), mov_parse_heif_items(), mov_probe(), mov_read_sidx(), mov_read_trun(), mov_update_sample_durations(), mov_write_ctts_tag(), mov_write_sidx_tag(), mov_write_ttml_document_from_queue(), move_audio(), mp_read_changes_map(), mpc8_init_static(), mpeg4_encode_mb(), mpegaudiodec_common_init_static(), mss4_init_vlc(), mss4_init_vlcs(), multiply(), multiply_slice(), musx_read_header(), mvr_read_header(), mxf_absolute_bodysid_offset(), mxf_check_frame_offset(), mxf_compute_ptses_fake_index(), mxf_get_next_track_edit_unit(), mxf_write_index_table_segment(), nb_decode(), no_codebook_bits(), no_codebook_bits_offset(), nsv_probe(), nvdec_retrieve_data(), offset_audio(), ogg_write_vorbiscomment(), oggvorbis_decode_init(), on2avc_decode_subframe(), on2avc_reconstruct_channel(), on2avc_reconstruct_channel_ext(), opus_packet_assembler(), output_frame(), output_frame(), parity_revtab_generator(), parse_cache_control(), parse_fmtp(), parse_playlist(), parse_utf(), pcm_decode(), pdv_write_packet(), pitch_search(), pop_integer(), pps_multilayer_extension(), pred_dc_val(), premultiply16(), premultiply16offset(), premultiply16yuv(), premultiply8(), premultiply8offset(), premultiply8yuv(), premultiplyf32(), premultiplyf32offset(), prepare_picture(), print_data_xxd(), print_integers(), probe(), probe(), process_frame(), process_intra_lower_16x16_msa(), process_intra_upper_16x16_msa(), process_sample(), process_sample(), process_sample(), ptx_decode_frame(), put_gpm(), put_hevc_epel_bi_h(), put_hevc_epel_bi_hv(), put_hevc_epel_bi_v(), put_hevc_pel_bi_pixels(), put_hevc_qpel_bi_h(), put_hevc_qpel_bi_hv(), put_hevc_qpel_bi_v(), put_scaled(), put_uni_chroma_h(), put_uni_chroma_hv(), put_uni_chroma_v(), put_uni_chroma_w_h(), put_uni_chroma_w_hv(), put_uni_chroma_w_v(), put_uni_luma_h(), put_uni_luma_hv(), put_uni_luma_v(), put_uni_luma_w_h(), put_uni_luma_w_hv(), put_uni_luma_w_v(), put_uni_w_pixels(), put_uni_w_scaled(), qdm2_fft_decode_tones(), qdm2_fft_init_coefficient(), qdm2_fft_tone_synthesizer(), qdm2_init_vlc(), qdmc_init_static_data(), quant_band_template(), quantize_value(), radix_count(), read_ans_symbol(), read_cache(), read_frame_data(), read_header(), read_image_grid(), read_image_iovl(), read_moof_duration(), read_odml_index(), read_packet(), read_table(), read_tfra(), read_ts(), read_uncoded_coeff(), read_var_block_data(), remove_doubling(), revert_channel_correlation(), rfc4175_handle_packet(), rgtc1_block_internal(), rgtc_block_internal(), ring_drain(), ringbuf_float_at(), rpl_read_header(), run_channel_cwt(), run_channel_cwt_prepare(), rv10_decode_frame(), rv34_gen_vlc(), rv34_gen_vlc_ext(), rv34_init_tables(), s337m_get_offset_and_codec(), s337m_probe(), s337m_read_packet(), sao_edge_restore_0(), sao_edge_restore_1(), sb_decode(), sbc_synthesize_eight(), sbc_synthesize_four(), scale_internal(), search_frag_moof_offset(), seek_by_sector(), seek_data(), seg_write_packet(), seq_decode_op3(), set_sar(), sga_decode_frame(), sga_probe(), shared_read(), significant_coeff_flag_decode(), significant_coeff_flag_decode_0(), silk_decode_lpc(), silk_lsf2lpc(), smc_encode_stream(), sofalizer_convolute(), sofalizer_fast_convolute(), solve_range_convert(), solve_shuffle(), spdif_get_offset_and_codec(), step_collect_psy_metrics(), store_cp_mv(), sub_qmf32_fixed_c(), sub_qmf32_float_c(), sub_qmf64_fixed_c(), sub_qmf64_float_c(), subband_scale(), svq1_encode_plane(), svq3_decode_extradata(), svq3_luma_dc_dequant_idct_c(), sws_receive_slice(), test_postfilter(), tgv_decode_inter(), tr16_8x4(), tr_16x4(), track_header(), ts_discontinuity_process(), tscc2_init_vlc(), tscc2_init_vlcs(), unpack(), unpack_intraframe(), unpack_parse_unit(), unpremultiply16(), unpremultiply16offset(), unpremultiply16yuv(), unpremultiply8(), unpremultiply8offset(), unpremultiply8yuv(), unpremultiplyf32(), unpremultiplyf32offset(), update_frag_index(), v4l2_buffer_swframe_to_buf(), v4l2_bufref_to_buf(), v_block_filter(), vb_decode_framedata(), vble_decode_frame(), vble_restore_plane(), vcr1_decode_frame(), vertical_predict(), vgs_eval(), video_frame(), vorbis_floor1_decode(), vp3_check_loop_filter(), vp3_draw_horiz_band(), vp56_get_vectors_predictors(), vp9_idct16_1d_columns_addblk_lsx(), vp9_idct16_1d_columns_lsx(), vpk_read_header(), vulkan_encode_issue(), w_avg(), webp_anim_read_header(), webp_anim_read_packet(), weight(), write_cache(), write_mb_info(), write_packet(), write_packet(), write_samples_to_audio_fifo(), write_section_data(), write_sei(), wtvfile_seek(), xan_decode_chroma(), xcorr_coeff(), xvag_read_header(), yae_flush(), yuv2NBPS(), yuv2plane1_8_c(), yuv2plane1_8_lsx(), yuv2planeX(), yuv2planeX_8_16(), yuv2planeX_8_c(), yuv2planeX_8_lasx(), yuv2planeX_8_lsx(), yuv2planeX_8_ref(), yuv2planeX_u(), yuv2rgb_full_1_template_lasx(), yuv2rgb_full_1_template_lsx(), yuv2rgb_full_2_template_lasx(), yuv2rgb_full_2_template_lsx(), yuv2rgb_full_X_template_lasx(), yuv2rgb_full_X_template_lsx(), and yuv420_abgr32_lsx().

◆ [struct]

const struct { ... } option_map[]

Referenced by aom_codecctl().

◆ av1_pix_fmts

enum AVPixelFormat av1_pix_fmts[]
static
Initial value:
= {
}
@ AV_PIX_FMT_NONE
Definition pixfmt.h:72
@ AV_PIX_FMT_YUV420P
planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples)
Definition pixfmt.h:73
@ AV_PIX_FMT_YUV422P
planar YUV 4:2:2, 16bpp, (1 Cr & Cb sample per 2x1 Y samples)
Definition pixfmt.h:77
@ AV_PIX_FMT_YUV444P
planar YUV 4:4:4, 24bpp, (1 Cr & Cb sample per 1x1 Y samples)
Definition pixfmt.h:78
@ AV_PIX_FMT_GBRP
planar GBR 4:4:4 24bpp
Definition pixfmt.h:165

Definition at line 1464 of file libaomenc.c.

Referenced by av1_get_supported_config().

◆ av1_pix_fmts_with_gray

enum AVPixelFormat av1_pix_fmts_with_gray[]
static
Initial value:

Definition at line 1472 of file libaomenc.c.

Referenced by av1_get_supported_config().

◆ av1_pix_fmts_highbd

enum AVPixelFormat av1_pix_fmts_highbd[]
static
Initial value:
= {
}
#define AV_PIX_FMT_YUV444P12
Definition pixfmt.h:552
#define AV_PIX_FMT_YUV420P10
Definition pixfmt.h:545
#define AV_PIX_FMT_YUV420P12
Definition pixfmt.h:549
#define AV_PIX_FMT_YUV422P12
Definition pixfmt.h:550
#define AV_PIX_FMT_GBRP10
Definition pixfmt.h:564
#define AV_PIX_FMT_YUV422P10
Definition pixfmt.h:546
#define AV_PIX_FMT_GBRP12
Definition pixfmt.h:565
#define AV_PIX_FMT_YUV444P10
Definition pixfmt.h:548

Definition at line 1481 of file libaomenc.c.

Referenced by av1_get_supported_config().

◆ av1_pix_fmts_highbd_with_gray

◆ options

const AVOption options[]
static

Definition at line 1585 of file libaomenc.c.

◆ defaults

const FFCodecDefault defaults[]
static
Initial value:
= {
{ "bufsize", "0", AV_OPT_FLAG_RUNTIME_PARAM },
{ "maxrate", "0", AV_OPT_FLAG_RUNTIME_PARAM },
{ "minrate", "0", AV_OPT_FLAG_RUNTIME_PARAM },
{ "qmin", "-1", AV_OPT_FLAG_RUNTIME_PARAM },
{ "qmax", "-1", AV_OPT_FLAG_RUNTIME_PARAM },
{ "sar", "0", AV_OPT_FLAG_RUNTIME_PARAM },
{ "g", "-1" },
{ "keyint_min", "-1" },
{ NULL },
}
#define NULL
Definition coverity.c:32
#define AV_OPT_FLAG_RUNTIME_PARAM
A generic parameter which can be set by the user at runtime.
Definition opt.h:376

Definition at line 1663 of file libaomenc.c.

◆ class_aom

const AVClass class_aom
static
Initial value:
= {
.class_name = "libaom-av1 encoder",
.item_name = av_default_item_name,
.option = options,
}
const char * av_default_item_name(void *ptr)
Return the context name.
Definition log.c:241
#define LIBAVUTIL_VERSION_INT
Definition version.h:85

Definition at line 1676 of file libaomenc.c.

◆ ff_libaom_av1_encoder

const FFCodec ff_libaom_av1_encoder
Initial value:
= {
.p.name = "libaom-av1",
CODEC_LONG_NAME("libaom AV1"),
.p.type = AVMEDIA_TYPE_VIDEO,
.p.id = AV_CODEC_ID_AV1,
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY |
.p.priv_class = &class_aom,
.p.wrapper_name = "libaom",
.priv_data_size = sizeof(AOMContext),
.reconf = av1_reconf,
.close = aom_free,
.defaults = defaults,
.get_supported_config = av1_get_supported_config,
}
static const FFCodecDefault defaults[]
Definition amfenc_av1.c:723
#define FF_CODEC_CAP_NOT_INIT_THREADSAFE
The codec is not known to be init-threadsafe (i.e.
#define FF_CODEC_ENCODE_CB(func)
#define CODEC_LONG_NAME(str)
#define FF_CODEC_CAP_INIT_CLEANUP
The codec allows calling the close function for deallocation even if the init function returned a fai...
#define FF_CODEC_CAP_AUTO_THREADS
Codec handles avctx->thread_count == 0 (auto) internally.
int(* init)(AVBSFContext *ctx)
Definition dts2pts.c:608
#define AV_CODEC_CAP_ENCODER_RECONF
Encoder can be reconfigured by passing new initialization parameters.
Definition codec.h:54
#define AV_CODEC_CAP_OTHER_THREADS
Codec supports multithreading through a method other than slice- or frame-level multithreading.
Definition codec.h:112
#define AV_CODEC_CAP_DELAY
Encoder or decoder requires flushing with NULL input at the end in order to give the complete and cor...
Definition codec.h:79
#define AV_CODEC_CAP_DR1
Codec uses get_buffer() or get_encode_buffer() for allocating buffers and supports custom allocators.
Definition codec.h:49
#define AV_CODEC_CAP_ENCODER_RECON_FRAME
The encoder is able to output reconstructed frame data, i.e.
Definition codec.h:162
@ AV_CODEC_ID_AV1
Definition codec_id.h:275
@ AVMEDIA_TYPE_VIDEO
Definition avutil.h:200
static av_cold int av1_init(AVCodecContext *avctx)
Definition libaomdec.c:284
static av_cold int aom_free(AVCodecContext *avctx)
Definition libaomdec.c:277
static av_cold int av1_reconf(AVCodecContext *avctx, AVDictionary **dict)
Definition libaomenc.c:1553
static int av1_get_supported_config(const AVCodecContext *avctx, const AVCodec *codec, enum AVCodecConfig config, unsigned flags, const void **out, int *out_num)
Definition libaomenc.c:1516
static int aom_encode(AVCodecContext *avctx, AVPacket *pkt, const AVFrame *frame, int *got_packet)
Definition libaomenc.c:1327
static const AVClass class_aom
Definition libaomenc.c:1676
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification.
Definition internal.h:88
@ AVCOL_RANGE_MPEG
Narrow or limited range content.
Definition pixfmt.h:766
@ AVCOL_RANGE_JPEG
Full range content.
Definition pixfmt.h:783
const AVProfile ff_av1_profiles[]
Definition profiles.c:163

Definition at line 1683 of file libaomenc.c.