RC: Add declarations for internal entry points Bug: aomedia:450252793 Change-Id: Ifdd1596a7ea42838717effffe820c81a1e10c010
diff --git a/av1/av1.cmake b/av1/av1.cmake index d702e25..42e7530 100644 --- a/av1/av1.cmake +++ b/av1/av1.cmake
@@ -127,6 +127,7 @@ "${AOM_ROOT}/av1/encoder/allintra_vis.c" "${AOM_ROOT}/av1/encoder/allintra_vis.h" "${AOM_ROOT}/av1/encoder/enc_enums.h" + "${AOM_ROOT}/av1/encoder/av1_ext_ratectrl.h" "${AOM_ROOT}/av1/encoder/av1_fwd_txfm1d.c" "${AOM_ROOT}/av1/encoder/av1_fwd_txfm1d.h" "${AOM_ROOT}/av1/encoder/av1_fwd_txfm1d_cfg.h"
diff --git a/av1/encoder/av1_ext_ratectrl.h b/av1/encoder/av1_ext_ratectrl.h new file mode 100644 index 0000000..7a94cd5 --- /dev/null +++ b/av1/encoder/av1_ext_ratectrl.h
@@ -0,0 +1,64 @@ +/* + * Copyright (c) 2025, Alliance for Open Media. All rights reserved. + * + * This source code is subject to the terms of the BSD 2 Clause License and + * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License + * was not distributed with this source code in the LICENSE file, you can + * obtain it at www.aomedia.org/license/software. If the Alliance for Open + * Media Patent License 1.0 was not distributed with this source code in the + * PATENTS file, you can obtain it at www.aomedia.org/license/patent. + */ + +#ifndef AOM_AV1_ENCODER_AV1_EXT_RATECTRL_H_ +#define AOM_AV1_ENCODER_AV1_EXT_RATECTRL_H_ + +#include "aom/aom_codec.h" +#include "aom/aom_ext_ratectrl.h" +#include "aom/aom_tpl.h" +#include "av1/encoder/firstpass.h" + +typedef struct AOM_EXT_RATECTRL { + int ready; + int ext_rdmult; + aom_rc_model_t model; + aom_rc_funcs_t funcs; + aom_rc_config_t ratectrl_config; + aom_rc_firstpass_stats_t rc_firstpass_stats; +} AOM_EXT_RATECTRL; + +aom_codec_err_t av1_extrc_init(AOM_EXT_RATECTRL *ext_ratectrl); + +aom_codec_err_t av1_extrc_create(aom_rc_funcs_t funcs, + aom_rc_config_t ratectrl_config, + AOM_EXT_RATECTRL *ext_ratectrl); + +aom_codec_err_t av1_extrc_delete(AOM_EXT_RATECTRL *ext_ratectrl); + +aom_codec_err_t av1_extrc_send_firstpass_stats( + AOM_EXT_RATECTRL *ext_ratectrl, const FIRSTPASS_INFO *first_pass_info); + +aom_codec_err_t av1_extrc_send_tpl_stats(AOM_EXT_RATECTRL *ext_ratectrl, + const AomTplGopStats *tpl_gop_stats); + +aom_codec_err_t av1_extrc_get_encodeframe_decision( + AOM_EXT_RATECTRL *ext_ratectrl, int gop_index, + aom_rc_encodeframe_decision_t *encode_frame_decision); + +aom_codec_err_t av1_extrc_update_encodeframe_result( + AOM_EXT_RATECTRL *ext_ratectrl, int64_t bit_count, + int actual_encoding_qindex); + +aom_codec_err_t av1_extrc_get_key_frame_decision( + AOM_EXT_RATECTRL *ext_ratectrl, + aom_rc_key_frame_decision_t *key_frame_decision); + +aom_codec_err_t av1_extrc_get_gop_decision(AOM_EXT_RATECTRL *ext_ratectrl, + aom_rc_gop_decision_t *gop_decision); + +aom_codec_err_t av1_extrc_get_frame_rdmult( + AOM_EXT_RATECTRL *ext_ratectrl, int show_index, int coding_index, + int gop_index, FRAME_UPDATE_TYPE update_type, int gop_size, int use_alt_ref, + RefCntBuffer *ref_frame_bufs[AOM_RC_MAX_REF_FRAMES], int ref_frame_flags, + int *rdmult); + +#endif // AOM_AV1_ENCODER_AV1_EXT_RATECTRL_H_