From d1a11fb9dd386923dfe88fb0e8d45959c8deb4c5 Mon Sep 17 00:00:00 2001 From: Adrian Grange Date: Fri, 25 Mar 2016 16:04:42 -0700 Subject: [PATCH] Change "vp8" to "aom" Change-Id: I7fce5490afdc78ac62dafc4616b617d251487979 --- aom/aom_codec.mk | 16 +- aom/src/svc_encodeframe.c | 2 +- aom/svc_context.h | 2 +- aom/vp8.h | 154 ----- aom/vp8cx.h | 844 --------------------------- aom/vp8dx.h | 165 ------ aom_dsp/bitreader.h | 2 +- aomdec.c | 2 +- aomenc.c | 4 +- av1/av1_cx_iface.c | 2 +- av1/av1_dx_iface.c | 2 +- av1/encoder/encoder.h | 2 +- examples/aom_temporal_svc_encoder.c | 2 +- examples/decode_to_md5.c | 2 +- examples/decode_with_drops.c | 2 +- examples/set_maps.c | 2 +- libs.mk | 12 +- test/codec_factory.h | 4 +- test/decode_api_test.cc | 2 +- test/encode_api_test.cc | 2 +- test/encode_test_driver.h | 2 +- test/svc_test.cc | 2 +- test/vp8_multi_resolution_encoder.sh | 75 --- test/vp8cx_set_ref.sh | 57 -- tools_common.c | 4 +- 25 files changed, 35 insertions(+), 1330 deletions(-) delete mode 100644 aom/vp8.h delete mode 100644 aom/vp8cx.h delete mode 100644 aom/vp8dx.h delete mode 100755 test/vp8_multi_resolution_encoder.sh delete mode 100755 test/vp8cx_set_ref.sh diff --git a/aom/aom_codec.mk b/aom/aom_codec.mk index 4f385c6ce..7c2be67e5 100644 --- a/aom/aom_codec.mk +++ b/aom/aom_codec.mk @@ -11,15 +11,15 @@ API_EXPORTS += exports -API_SRCS-$(CONFIG_V10_ENCODER) += vp8.h -API_SRCS-$(CONFIG_AV1_ENCODER) += vp8cx.h -API_DOC_SRCS-$(CONFIG_AV1_ENCODER) += vp8.h -API_DOC_SRCS-$(CONFIG_AV1_ENCODER) += vp8cx.h +API_SRCS-$(CONFIG_V10_ENCODER) += aom.h +API_SRCS-$(CONFIG_AV1_ENCODER) += aomcx.h +API_DOC_SRCS-$(CONFIG_AV1_ENCODER) += aom.h +API_DOC_SRCS-$(CONFIG_AV1_ENCODER) += aomcx.h -API_SRCS-$(CONFIG_AV1_DECODER) += vp8.h -API_SRCS-$(CONFIG_AV1_DECODER) += vp8dx.h -API_DOC_SRCS-$(CONFIG_AV1_DECODER) += vp8.h -API_DOC_SRCS-$(CONFIG_AV1_DECODER) += vp8dx.h +API_SRCS-$(CONFIG_AV1_DECODER) += aom.h +API_SRCS-$(CONFIG_AV1_DECODER) += aomdx.h +API_DOC_SRCS-$(CONFIG_AV1_DECODER) += aom.h +API_DOC_SRCS-$(CONFIG_AV1_DECODER) += aomdx.h API_DOC_SRCS-yes += aom_codec.h API_DOC_SRCS-yes += aom_decoder.h diff --git a/aom/src/svc_encodeframe.c b/aom/src/svc_encodeframe.c index 7fed90896..f0d0bb881 100644 --- a/aom/src/svc_encodeframe.c +++ b/aom/src/svc_encodeframe.c @@ -24,7 +24,7 @@ #define AOM_DISABLE_CTRL_TYPECHECKS 1 #include "./aom_config.h" #include "aom/svc_context.h" -#include "aom/vp8cx.h" +#include "aom/aomcx.h" #include "aom/aom_encoder.h" #include "aom_mem/aom_mem.h" #include "av1/common/onyxc_int.h" diff --git a/aom/svc_context.h b/aom/svc_context.h index 236586a2c..7aeeda409 100644 --- a/aom/svc_context.h +++ b/aom/svc_context.h @@ -17,7 +17,7 @@ #ifndef AOM_SVC_CONTEXT_H_ #define AOM_SVC_CONTEXT_H_ -#include "./vp8cx.h" +#include "./aomcx.h" #include "./aom_encoder.h" #ifdef __cplusplus diff --git a/aom/vp8.h b/aom/vp8.h deleted file mode 100644 index 20c99e38d..000000000 --- a/aom/vp8.h +++ /dev/null @@ -1,154 +0,0 @@ -/* - * Copyright (c) 2016, 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. - */ - -/*!\defgroup vp8 AOM - * \ingroup codecs - * AOM is aom's newest video compression algorithm that uses motion - * compensated prediction, Discrete Cosine Transform (DCT) coding of the - * prediction error signal and context dependent entropy coding techniques - * based on arithmetic principles. It features: - * - YUV 4:2:0 image format - * - Macro-block based coding (16x16 luma plus two 8x8 chroma) - * - 1/4 (1/8) pixel accuracy motion compensated prediction - * - 4x4 DCT transform - * - 128 level linear quantizer - * - In loop deblocking filter - * - Context-based entropy coding - * - * @{ - */ -/*!\file - * \brief Provides controls common to both the AOM encoder and decoder. - */ -#ifndef AOM_AOM_H_ -#define AOM_AOM_H_ - -#include "./aom_codec.h" -#include "./aom_image.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/*!\brief Control functions - * - * The set of macros define the control functions of AOM interface - */ -enum vp8_com_control_id { - AOM_SET_REFERENCE = - 1, /**< pass in an external frame into decoder to be used as reference - frame */ - AOM_COPY_REFERENCE = 2, /**< get a copy of reference frame from the decoder */ - AOM_SET_POSTPROC = 3, /**< set the decoder's post processing settings */ - AOM_SET_DBG_COLOR_REF_FRAME = - 4, /**< set the reference frames to color for each macroblock */ - AOM_SET_DBG_COLOR_MB_MODES = 5, /**< set which macro block modes to color */ - AOM_SET_DBG_COLOR_B_MODES = 6, /**< set which blocks modes to color */ - AOM_SET_DBG_DISPLAY_MV = 7, /**< set which motion vector modes to draw */ - - /* TODO(jkoleszar): The encoder incorrectly reuses some of these values (5+) - * for its control ids. These should be migrated to something like the - * AOM_DECODER_CTRL_ID_START range next time we're ready to break the ABI. - */ - VP9_GET_REFERENCE = 128, /**< get a pointer to a reference frame */ - AOM_COMMON_CTRL_ID_MAX, - AOM_DECODER_CTRL_ID_START = 256 -}; - -/*!\brief post process flags - * - * The set of macros define AOM decoder post processing flags - */ -enum vp8_postproc_level { - AOM_NOFILTERING = 0, - AOM_DEBLOCK = 1 << 0, - AOM_DEMACROBLOCK = 1 << 1, - AOM_ADDNOISE = 1 << 2, - AOM_DEBUG_TXT_FRAME_INFO = 1 << 3, /**< print frame information */ - AOM_DEBUG_TXT_MBLK_MODES = - 1 << 4, /**< print macro block modes over each macro block */ - AOM_DEBUG_TXT_DC_DIFF = 1 << 5, /**< print dc diff for each macro block */ - AOM_DEBUG_TXT_RATE_INFO = 1 << 6, /**< print video rate info (encoder only) */ - AOM_MFQE = 1 << 10 -}; - -/*!\brief post process flags - * - * This define a structure that describe the post processing settings. For - * the best objective measure (using the PSNR metric) set post_proc_flag - * to AOM_DEBLOCK and deblocking_level to 1. - */ - -typedef struct vp8_postproc_cfg { - int post_proc_flag; /**< the types of post processing to be done, should be - combination of "vp8_postproc_level" */ - int deblocking_level; /**< the strength of deblocking, valid range [0, 16] */ - int noise_level; /**< the strength of additive noise, valid range [0, 16] */ -} vp8_postproc_cfg_t; - -/*!\brief reference frame type - * - * The set of macros define the type of AOM reference frames - */ -typedef enum aom_ref_frame_type { - AOM_LAST_FRAME = 1, - AOM_GOLD_FRAME = 2, - AOM_ALTR_FRAME = 4 -} aom_ref_frame_type_t; - -/*!\brief reference frame data struct - * - * Define the data struct to access vp8 reference frames. - */ -typedef struct aom_ref_frame { - aom_ref_frame_type_t frame_type; /**< which reference frame */ - aom_image_t img; /**< reference frame data in image format */ -} aom_ref_frame_t; - -/*!\brief VP9 specific reference frame data struct - * - * Define the data struct to access vp9 reference frames. - */ -typedef struct vp9_ref_frame { - int idx; /**< frame index to get (input) */ - aom_image_t img; /**< img structure to populate (output) */ -} vp9_ref_frame_t; - -/*!\cond */ -/*!\brief vp8 decoder control function parameter type - * - * defines the data type for each of AOM decoder control function requires - */ -AOM_CTRL_USE_TYPE(AOM_SET_REFERENCE, aom_ref_frame_t *) -#define AOM_CTRL_AOM_SET_REFERENCE -AOM_CTRL_USE_TYPE(AOM_COPY_REFERENCE, aom_ref_frame_t *) -#define AOM_CTRL_AOM_COPY_REFERENCE -AOM_CTRL_USE_TYPE(AOM_SET_POSTPROC, vp8_postproc_cfg_t *) -#define AOM_CTRL_AOM_SET_POSTPROC -AOM_CTRL_USE_TYPE(AOM_SET_DBG_COLOR_REF_FRAME, int) -#define AOM_CTRL_AOM_SET_DBG_COLOR_REF_FRAME -AOM_CTRL_USE_TYPE(AOM_SET_DBG_COLOR_MB_MODES, int) -#define AOM_CTRL_AOM_SET_DBG_COLOR_MB_MODES -AOM_CTRL_USE_TYPE(AOM_SET_DBG_COLOR_B_MODES, int) -#define AOM_CTRL_AOM_SET_DBG_COLOR_B_MODES -AOM_CTRL_USE_TYPE(AOM_SET_DBG_DISPLAY_MV, int) -#define AOM_CTRL_AOM_SET_DBG_DISPLAY_MV -AOM_CTRL_USE_TYPE(VP9_GET_REFERENCE, vp9_ref_frame_t *) -#define AOM_CTRL_VP9_GET_REFERENCE - -/*!\endcond */ -/*! @} - end defgroup vp8 */ - -#ifdef __cplusplus -} // extern "C" -#endif - -#endif // AOM_AOM_H_ diff --git a/aom/vp8cx.h b/aom/vp8cx.h deleted file mode 100644 index 600b50c44..000000000 --- a/aom/vp8cx.h +++ /dev/null @@ -1,844 +0,0 @@ -/* - * Copyright (c) 2016, 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_AOMCX_H_ -#define AOM_AOMCX_H_ - -/*!\defgroup vp8_encoder WebM AOM/VP9 Encoder - * \ingroup vp8 - * - * @{ - */ -#include "./vp8.h" -#include "./aom_encoder.h" - -/*!\file - * \brief Provides definitions for using AOM or VP9 encoder algorithm within the - * aom Codec Interface. - */ - -#ifdef __cplusplus -extern "C" { -#endif - -/*!\name Algorithm interface for AV1 - * - * This interface provides the capability to encode raw AV1 streams. - * @{ - */ -extern aom_codec_iface_t aom_codec_av1_cx_algo; -extern aom_codec_iface_t *aom_codec_av1_cx(void); -/*!@} - end algorithm interface member group*/ - -/* - * Algorithm Flags - */ - -/*!\brief Don't reference the last frame - * - * When this flag is set, the encoder will not use the last frame as a - * predictor. When not set, the encoder will choose whether to use the - * last frame or not automatically. - */ -#define AOM_EFLAG_NO_REF_LAST (1 << 16) - -/*!\brief Don't reference the golden frame - * - * When this flag is set, the encoder will not use the golden frame as a - * predictor. When not set, the encoder will choose whether to use the - * golden frame or not automatically. - */ -#define AOM_EFLAG_NO_REF_GF (1 << 17) - -/*!\brief Don't reference the alternate reference frame - * - * When this flag is set, the encoder will not use the alt ref frame as a - * predictor. When not set, the encoder will choose whether to use the - * alt ref frame or not automatically. - */ -#define AOM_EFLAG_NO_REF_ARF (1 << 21) - -/*!\brief Don't update the last frame - * - * When this flag is set, the encoder will not update the last frame with - * the contents of the current frame. - */ -#define AOM_EFLAG_NO_UPD_LAST (1 << 18) - -/*!\brief Don't update the golden frame - * - * When this flag is set, the encoder will not update the golden frame with - * the contents of the current frame. - */ -#define AOM_EFLAG_NO_UPD_GF (1 << 22) - -/*!\brief Don't update the alternate reference frame - * - * When this flag is set, the encoder will not update the alt ref frame with - * the contents of the current frame. - */ -#define AOM_EFLAG_NO_UPD_ARF (1 << 23) - -/*!\brief Force golden frame update - * - * When this flag is set, the encoder copy the contents of the current frame - * to the golden frame buffer. - */ -#define AOM_EFLAG_FORCE_GF (1 << 19) - -/*!\brief Force alternate reference frame update - * - * When this flag is set, the encoder copy the contents of the current frame - * to the alternate reference frame buffer. - */ -#define AOM_EFLAG_FORCE_ARF (1 << 24) - -/*!\brief Disable entropy update - * - * When this flag is set, the encoder will not update its internal entropy - * model based on the entropy of this frame. - */ -#define AOM_EFLAG_NO_UPD_ENTROPY (1 << 20) - -/*!\brief VPx encoder control functions - * - * This set of macros define the control functions available for VPx - * encoder interface. - * - * \sa #aom_codec_control - */ -enum vp8e_enc_control_id { - /*!\brief Codec control function to pass an ROI map to encoder. - * - * Supported in codecs: AOM, VP9 - */ - AOME_SET_ROI_MAP = 8, - - /*!\brief Codec control function to pass an Active map to encoder. - * - * Supported in codecs: AOM, VP9 - */ - AOME_SET_ACTIVEMAP, - - /*!\brief Codec control function to set encoder scaling mode. - * - * Supported in codecs: AOM, VP9 - */ - AOME_SET_SCALEMODE = 11, - - /*!\brief Codec control function to set encoder internal speed settings. - * - * Changes in this value influences, among others, the encoder's selection - * of motion estimation methods. Values greater than 0 will increase encoder - * speed at the expense of quality. - * - * \note Valid range for AOM: -16..16 - * \note Valid range for VP9: -8..8 - * - * Supported in codecs: AOM, VP9 - */ - AOME_SET_CPUUSED = 13, - - /*!\brief Codec control function to enable automatic set and use alf frames. - * - * Supported in codecs: AOM, VP9 - */ - AOME_SET_ENABLEAUTOALTREF, - - /*!\brief control function to set noise sensitivity - * - * 0: off, 1: OnYOnly, 2: OnYUV, - * 3: OnYUVAggressive, 4: Adaptive - * - * Supported in codecs: AOM - */ - AOME_SET_NOISE_SENSITIVITY, - - /*!\brief Codec control function to set sharpness. - * - * Supported in codecs: AOM, VP9 - */ - AOME_SET_SHARPNESS, - - /*!\brief Codec control function to set the threshold for MBs treated static. - * - * Supported in codecs: AOM, VP9 - */ - AOME_SET_STATIC_THRESHOLD, - - /*!\brief Codec control function to set the number of token partitions. - * - * Supported in codecs: AOM - */ - AOME_SET_TOKEN_PARTITIONS, - - /*!\brief Codec control function to get last quantizer chosen by the encoder. - * - * Return value uses internal quantizer scale defined by the codec. - * - * Supported in codecs: AOM, VP9 - */ - AOME_GET_LAST_QUANTIZER, - - /*!\brief Codec control function to get last quantizer chosen by the encoder. - * - * Return value uses the 0..63 scale as used by the rc_*_quantizer config - * parameters. - * - * Supported in codecs: AOM, VP9 - */ - AOME_GET_LAST_QUANTIZER_64, - - /*!\brief Codec control function to set the max no of frames to create arf. - * - * Supported in codecs: AOM, VP9 - */ - AOME_SET_ARNR_MAXFRAMES, - - /*!\brief Codec control function to set the filter strength for the arf. - * - * Supported in codecs: AOM, VP9 - */ - AOME_SET_ARNR_STRENGTH, - - /*!\deprecated control function to set the filter type to use for the arf. */ - AOME_SET_ARNR_TYPE, - - /*!\brief Codec control function to set visual tuning. - * - * Supported in codecs: AOM, VP9 - */ - AOME_SET_TUNING, - - /*!\brief Codec control function to set constrained quality level. - * - * \attention For this value to be used aom_codec_enc_cfg_t::g_usage must be - * set to #AOM_CQ. - * \note Valid range: 0..63 - * - * Supported in codecs: AOM, VP9 - */ - AOME_SET_CQ_LEVEL, - - /*!\brief Codec control function to set Max data rate for Intra frames. - * - * This value controls additional clamping on the maximum size of a - * keyframe. It is expressed as a percentage of the average - * per-frame bitrate, with the special (and default) value 0 meaning - * unlimited, or no additional clamping beyond the codec's built-in - * algorithm. - * - * For example, to allocate no more than 4.5 frames worth of bitrate - * to a keyframe, set this to 450. - * - * Supported in codecs: AOM, VP9 - */ - AOME_SET_MAX_INTRA_BITRATE_PCT, - - /*!\brief Codec control function to set reference and update frame flags. - * - * Supported in codecs: AOM - */ - AOME_SET_FRAME_FLAGS, - - /*!\brief Codec control function to set max data rate for Inter frames. - * - * This value controls additional clamping on the maximum size of an - * inter frame. It is expressed as a percentage of the average - * per-frame bitrate, with the special (and default) value 0 meaning - * unlimited, or no additional clamping beyond the codec's built-in - * algorithm. - * - * For example, to allow no more than 4.5 frames worth of bitrate - * to an inter frame, set this to 450. - * - * Supported in codecs: VP9 - */ - VP9E_SET_MAX_INTER_BITRATE_PCT, - - /*!\brief Boost percentage for Golden Frame in CBR mode. - * - * This value controls the amount of boost given to Golden Frame in - * CBR mode. It is expressed as a percentage of the average - * per-frame bitrate, with the special (and default) value 0 meaning - * the feature is off, i.e., no golden frame boost in CBR mode and - * average bitrate target is used. - * - * For example, to allow 100% more bits, i.e, 2X, in a golden frame - * than average frame, set this to 100. - * - * Supported in codecs: VP9 - */ - VP9E_SET_GF_CBR_BOOST_PCT, - - /*!\brief Codec control function to set the temporal layer id. - * - * For temporal scalability: this control allows the application to set the - * layer id for each frame to be encoded. Note that this control must be set - * for every frame prior to encoding. The usage of this control function - * supersedes the internal temporal pattern counter, which is now deprecated. - * - * Supported in codecs: AOM - */ - AOME_SET_TEMPORAL_LAYER_ID, - - /*!\brief Codec control function to set encoder screen content mode. - * - * 0: off, 1: On, 2: On with more aggressive rate control. - * - * Supported in codecs: AOM - */ - AOME_SET_SCREEN_CONTENT_MODE, - - /*!\brief Codec control function to set lossless encoding mode. - * - * VP9 can operate in lossless encoding mode, in which the bitstream - * produced will be able to decode and reconstruct a perfect copy of - * input source. This control function provides a mean to switch encoder - * into lossless coding mode(1) or normal coding mode(0) that may be lossy. - * 0 = lossy coding mode - * 1 = lossless coding mode - * - * By default, encoder operates in normal coding mode (maybe lossy). - * - * Supported in codecs: VP9 - */ - VP9E_SET_LOSSLESS, -#if CONFIG_AOM_QM - /*!\brief Codec control function to encode with quantisation matrices. - * - * AOM can operate with default quantisation matrices dependent on - * quantisation level and block type. - * 0 = do not use quantisation matrices - * 1 = use quantisation matrices - * - * By default, the encoder operates without quantisation matrices. - * - * Supported in codecs: AOM - */ - - VP9E_SET_ENABLE_QM, - - /*!\brief Codec control function to set the min quant matrix flatness. - * - * AOM can operate with different ranges of quantisation matrices. - * As quantisation levels increase, the matrices get flatter. This - * control sets the minimum level of flatness from which the matrices - * are determined. - * - * By default, the encoder sets this minimum at half the available - * range. - * - * Supported in codecs: AOM - */ - VP9E_SET_QM_MIN, - - /*!\brief Codec control function to set the max quant matrix flatness. - * - * AOM can operate with different ranges of quantisation matrices. - * As quantisation levels increase, the matrices get flatter. This - * control sets the maximum level of flatness possible. - * - * By default, the encoder sets this maximum at the top of the - * available range. - * - * Supported in codecs: AOM - */ - VP9E_SET_QM_MAX, -#endif - - /*!\brief Codec control function to set number of tile columns. - * - * In encoding and decoding, VP9 allows an input image frame be partitioned - * into separated vertical tile columns, which can be encoded or decoded - * independently. This enables easy implementation of parallel encoding and - * decoding. This control requests the encoder to use column tiles in - * encoding an input frame, with number of tile columns (in Log2 unit) as - * the parameter: - * 0 = 1 tile column - * 1 = 2 tile columns - * 2 = 4 tile columns - * ..... - * n = 2**n tile columns - * The requested tile columns will be capped by encoder based on image size - * limitation (The minimum width of a tile column is 256 pixel, the maximum - * is 4096). - * - * By default, the value is 0, i.e. one single column tile for entire image. - * - * Supported in codecs: VP9 - */ - VP9E_SET_TILE_COLUMNS, - - /*!\brief Codec control function to set number of tile rows. - * - * In encoding and decoding, VP9 allows an input image frame be partitioned - * into separated horizontal tile rows. Tile rows are encoded or decoded - * sequentially. Even though encoding/decoding of later tile rows depends on - * earlier ones, this allows the encoder to output data packets for tile rows - * prior to completely processing all tile rows in a frame, thereby reducing - * the latency in processing between input and output. The parameter - * for this control describes the number of tile rows, which has a valid - * range [0, 2]: - * 0 = 1 tile row - * 1 = 2 tile rows - * 2 = 4 tile rows - * - * By default, the value is 0, i.e. one single row tile for entire image. - * - * Supported in codecs: VP9 - */ - VP9E_SET_TILE_ROWS, - - /*!\brief Codec control function to enable frame parallel decoding feature. - * - * VP9 has a bitstream feature to reduce decoding dependency between frames - * by turning off backward update of probability context used in encoding - * and decoding. This allows staged parallel processing of more than one - * video frames in the decoder. This control function provides a mean to - * turn this feature on or off for bitstreams produced by encoder. - * - * By default, this feature is off. - * - * Supported in codecs: VP9 - */ - VP9E_SET_FRAME_PARALLEL_DECODING, - - /*!\brief Codec control function to set adaptive quantization mode. - * - * VP9 has a segment based feature that allows encoder to adaptively change - * quantization parameter for each segment within a frame to improve the - * subjective quality. This control makes encoder operate in one of the - * several AQ_modes supported. - * - * By default, encoder operates with AQ_Mode 0(adaptive quantization off). - * - * Supported in codecs: VP9 - */ - VP9E_SET_AQ_MODE, - - /*!\brief Codec control function to enable/disable periodic Q boost. - * - * One VP9 encoder speed feature is to enable quality boost by lowering - * frame level Q periodically. This control function provides a mean to - * turn on/off this feature. - * 0 = off - * 1 = on - * - * By default, the encoder is allowed to use this feature for appropriate - * encoding modes. - * - * Supported in codecs: VP9 - */ - VP9E_SET_FRAME_PERIODIC_BOOST, - - /*!\brief Codec control function to set noise sensitivity. - * - * 0: off, 1: On(YOnly) - * - * Supported in codecs: VP9 - */ - VP9E_SET_NOISE_SENSITIVITY, - - /*!\brief Codec control function to turn on/off SVC in encoder. - * \note Return value is AOM_CODEC_INVALID_PARAM if the encoder does not - * support SVC in its current encoding mode - * 0: off, 1: on - * - * Supported in codecs: VP9 - */ - VP9E_SET_SVC, - - /*!\brief Codec control function to set parameters for SVC. - * \note Parameters contain min_q, max_q, scaling factor for each of the - * SVC layers. - * - * Supported in codecs: VP9 - */ - VP9E_SET_SVC_PARAMETERS, - - /*!\brief Codec control function to set svc layer for spatial and temporal. - * \note Valid ranges: 0..#aom_codec_enc_cfg::ss_number_layers for spatial - * layer and 0..#aom_codec_enc_cfg::ts_number_layers for - * temporal layer. - * - * Supported in codecs: VP9 - */ - VP9E_SET_SVC_LAYER_ID, - - /*!\brief Codec control function to set content type. - * \note Valid parameter range: - * AOM_CONTENT_DEFAULT = Regular video content (Default) - * AOM_CONTENT_SCREEN = Screen capture content - * - * Supported in codecs: VP9 - */ - VP9E_SET_TUNE_CONTENT, - - /*!\brief Codec control function to get svc layer ID. - * \note The layer ID returned is for the data packet from the registered - * callback function. - * - * Supported in codecs: VP9 - */ - VP9E_GET_SVC_LAYER_ID, - - /*!\brief Codec control function to register callback to get per layer packet. - * \note Parameter for this control function is a structure with a callback - * function and a pointer to private data used by the callback. - * - * Supported in codecs: VP9 - */ - VP9E_REGISTER_CX_CALLBACK, - - /*!\brief Codec control function to set color space info. - * \note Valid ranges: 0..7, default is "UNKNOWN". - * 0 = UNKNOWN, - * 1 = BT_601 - * 2 = BT_709 - * 3 = SMPTE_170 - * 4 = SMPTE_240 - * 5 = BT_2020 - * 6 = RESERVED - * 7 = SRGB - * - * Supported in codecs: VP9 - */ - VP9E_SET_COLOR_SPACE, - - /*!\brief Codec control function to set temporal layering mode. - * \note Valid ranges: 0..3, default is "0" - * (VP9E_TEMPORAL_LAYERING_MODE_NOLAYERING). - * 0 = VP9E_TEMPORAL_LAYERING_MODE_NOLAYERING - * 1 = VP9E_TEMPORAL_LAYERING_MODE_BYPASS - * 2 = VP9E_TEMPORAL_LAYERING_MODE_0101 - * 3 = VP9E_TEMPORAL_LAYERING_MODE_0212 - * - * Supported in codecs: VP9 - */ - VP9E_SET_TEMPORAL_LAYERING_MODE, - - /*!\brief Codec control function to set minimum interval between GF/ARF frames - * - * By default the value is set as 4. - * - * Supported in codecs: VP9 - */ - VP9E_SET_MIN_GF_INTERVAL, - - /*!\brief Codec control function to set minimum interval between GF/ARF frames - * - * By default the value is set as 16. - * - * Supported in codecs: VP9 - */ - VP9E_SET_MAX_GF_INTERVAL, - - /*!\brief Codec control function to get an Active map back from the encoder. - * - * Supported in codecs: VP9 - */ - VP9E_GET_ACTIVEMAP, - - /*!\brief Codec control function to set color range bit. - * \note Valid ranges: 0..1, default is 0 - * 0 = Limited range (16..235 or HBD equivalent) - * 1 = Full range (0..255 or HBD equivalent) - * - * Supported in codecs: VP9 - */ - VP9E_SET_COLOR_RANGE, - - /*!\brief Codec control function to set the frame flags and buffer indices - * for spatial layers. The frame flags and buffer indices are set using the - * struct #aom_svc_ref_frame_config defined below. - * - * Supported in codecs: VP9 - */ - VP9E_SET_SVC_REF_FRAME_CONFIG, - - /*!\brief Codec control function to set intended rendering image size. - * - * By default, this is identical to the image size in pixels. - * - * Supported in codecs: VP9 - */ - VP9E_SET_RENDER_SIZE, -}; - -/*!\brief aom 1-D scaling mode - * - * This set of constants define 1-D aom scaling modes - */ -typedef enum aom_scaling_mode_1d { - AOME_NORMAL = 0, - AOME_FOURFIVE = 1, - AOME_THREEFIVE = 2, - AOME_ONETWO = 3 -} AOM_SCALING_MODE; - -/*!\brief Temporal layering mode enum for VP9 SVC. - * - * This set of macros define the different temporal layering modes. - * Supported codecs: VP9 (in SVC mode) - * - */ -typedef enum vp9e_temporal_layering_mode { - /*!\brief No temporal layering. - * Used when only spatial layering is used. - */ - VP9E_TEMPORAL_LAYERING_MODE_NOLAYERING = 0, - - /*!\brief Bypass mode. - * Used when application needs to control temporal layering. - * This will only work when the number of spatial layers equals 1. - */ - VP9E_TEMPORAL_LAYERING_MODE_BYPASS = 1, - - /*!\brief 0-1-0-1... temporal layering scheme with two temporal layers. - */ - VP9E_TEMPORAL_LAYERING_MODE_0101 = 2, - - /*!\brief 0-2-1-2... temporal layering scheme with three temporal layers. - */ - VP9E_TEMPORAL_LAYERING_MODE_0212 = 3 -} VP9E_TEMPORAL_LAYERING_MODE; - -/*!\brief aom region of interest map - * - * These defines the data structures for the region of interest map - * - */ - -typedef struct aom_roi_map { - /*! An id between 0 and 3 for each 16x16 region within a frame. */ - unsigned char *roi_map; - unsigned int rows; /**< Number of rows. */ - unsigned int cols; /**< Number of columns. */ - // TODO(paulwilkins): broken for VP9 which has 8 segments - // q and loop filter deltas for each segment - // (see MAX_MB_SEGMENTS) - int delta_q[4]; /**< Quantizer deltas. */ - int delta_lf[4]; /**< Loop filter deltas. */ - /*! Static breakout threshold for each segment. */ - unsigned int static_threshold[4]; -} aom_roi_map_t; - -/*!\brief aom active region map - * - * These defines the data structures for active region map - * - */ - -typedef struct aom_active_map { - unsigned char - *active_map; /**< specify an on (1) or off (0) each 16x16 region within a - frame */ - unsigned int rows; /**< number of rows */ - unsigned int cols; /**< number of cols */ -} aom_active_map_t; - -/*!\brief aom image scaling mode - * - * This defines the data structure for image scaling mode - * - */ -typedef struct aom_scaling_mode { - AOM_SCALING_MODE h_scaling_mode; /**< horizontal scaling mode */ - AOM_SCALING_MODE v_scaling_mode; /**< vertical scaling mode */ -} aom_scaling_mode_t; - -/*!\brief AOM token partition mode - * - * This defines AOM partitioning mode for compressed data, i.e., the number of - * sub-streams in the bitstream. Used for parallelized decoding. - * - */ - -typedef enum { - AOM_ONE_TOKENPARTITION = 0, - AOM_TWO_TOKENPARTITION = 1, - AOM_FOUR_TOKENPARTITION = 2, - AOM_EIGHT_TOKENPARTITION = 3 -} vp8e_token_partitions; - -/*!brief VP9 encoder content type */ -typedef enum { - AOM_CONTENT_DEFAULT, - AOM_CONTENT_SCREEN, - AOM_CONTENT_INVALID -} aom_tune_content; - -/*!\brief AOM model tuning parameters - * - * Changes the encoder to tune for certain types of input material. - * - */ -typedef enum { AOM_TUNE_PSNR, AOM_TUNE_SSIM } aom_tune_metric; - -/*!\brief vp9 svc layer parameters - * - * This defines the spatial and temporal layer id numbers for svc encoding. - * This is used with the #VP9E_SET_SVC_LAYER_ID control to set the spatial and - * temporal layer id for the current frame. - * - */ -typedef struct aom_svc_layer_id { - int spatial_layer_id; /**< Spatial layer id number. */ - int temporal_layer_id; /**< Temporal layer id number. */ -} aom_svc_layer_id_t; - -/*!\brief vp9 svc frame flag parameters. - * - * This defines the frame flags and buffer indices for each spatial layer for - * svc encoding. - * This is used with the #VP9E_SET_SVC_REF_FRAME_CONFIG control to set frame - * flags and buffer indices for each spatial layer for the current (super)frame. - * - */ -typedef struct aom_svc_ref_frame_config { - int frame_flags[AOM_TS_MAX_LAYERS]; /**< Frame flags. */ - int lst_fb_idx[AOM_TS_MAX_LAYERS]; /**< Last buffer index. */ - int gld_fb_idx[AOM_TS_MAX_LAYERS]; /**< Golden buffer index. */ - int alt_fb_idx[AOM_TS_MAX_LAYERS]; /**< Altref buffer index. */ -} aom_svc_ref_frame_config_t; - -/*!\cond */ -/*!\brief AOM encoder control function parameter type - * - * Defines the data types that AOME control functions take. Note that - * additional common controls are defined in vp8.h - * - */ - -AOM_CTRL_USE_TYPE(AOME_SET_FRAME_FLAGS, int) -#define AOM_CTRL_AOME_SET_FRAME_FLAGS -AOM_CTRL_USE_TYPE(AOME_SET_TEMPORAL_LAYER_ID, int) -#define AOM_CTRL_AOME_SET_TEMPORAL_LAYER_ID -AOM_CTRL_USE_TYPE(AOME_SET_ROI_MAP, aom_roi_map_t *) -#define AOM_CTRL_AOME_SET_ROI_MAP -AOM_CTRL_USE_TYPE(AOME_SET_ACTIVEMAP, aom_active_map_t *) -#define AOM_CTRL_AOME_SET_ACTIVEMAP -AOM_CTRL_USE_TYPE(AOME_SET_SCALEMODE, aom_scaling_mode_t *) -#define AOM_CTRL_AOME_SET_SCALEMODE - -AOM_CTRL_USE_TYPE(VP9E_SET_SVC, int) -#define AOM_CTRL_VP9E_SET_SVC -AOM_CTRL_USE_TYPE(VP9E_SET_SVC_PARAMETERS, void *) -#define AOM_CTRL_VP9E_SET_SVC_PARAMETERS -AOM_CTRL_USE_TYPE(VP9E_REGISTER_CX_CALLBACK, void *) -#define AOM_CTRL_VP9E_REGISTER_CX_CALLBACK -AOM_CTRL_USE_TYPE(VP9E_SET_SVC_LAYER_ID, aom_svc_layer_id_t *) -#define AOM_CTRL_VP9E_SET_SVC_LAYER_ID - -AOM_CTRL_USE_TYPE(AOME_SET_CPUUSED, int) -#define AOM_CTRL_AOME_SET_CPUUSED -AOM_CTRL_USE_TYPE(AOME_SET_ENABLEAUTOALTREF, unsigned int) -#define AOM_CTRL_AOME_SET_ENABLEAUTOALTREF -AOM_CTRL_USE_TYPE(AOME_SET_NOISE_SENSITIVITY, unsigned int) -#define AOM_CTRL_AOME_SET_NOISE_SENSITIVITY -AOM_CTRL_USE_TYPE(AOME_SET_SHARPNESS, unsigned int) -#define AOM_CTRL_AOME_SET_SHARPNESS -AOM_CTRL_USE_TYPE(AOME_SET_STATIC_THRESHOLD, unsigned int) -#define AOM_CTRL_AOME_SET_STATIC_THRESHOLD -AOM_CTRL_USE_TYPE(AOME_SET_TOKEN_PARTITIONS, int) /* vp8e_token_partitions */ -#define AOM_CTRL_AOME_SET_TOKEN_PARTITIONS - -AOM_CTRL_USE_TYPE(AOME_SET_ARNR_MAXFRAMES, unsigned int) -#define AOM_CTRL_AOME_SET_ARNR_MAXFRAMES -AOM_CTRL_USE_TYPE(AOME_SET_ARNR_STRENGTH, unsigned int) -#define AOM_CTRL_AOME_SET_ARNR_STRENGTH -AOM_CTRL_USE_TYPE_DEPRECATED(AOME_SET_ARNR_TYPE, unsigned int) -#define AOM_CTRL_AOME_SET_ARNR_TYPE -AOM_CTRL_USE_TYPE(AOME_SET_TUNING, int) /* aom_tune_metric */ -#define AOM_CTRL_AOME_SET_TUNING -AOM_CTRL_USE_TYPE(AOME_SET_CQ_LEVEL, unsigned int) -#define AOM_CTRL_AOME_SET_CQ_LEVEL - -AOM_CTRL_USE_TYPE(VP9E_SET_TILE_COLUMNS, int) -#define AOM_CTRL_VP9E_SET_TILE_COLUMNS -AOM_CTRL_USE_TYPE(VP9E_SET_TILE_ROWS, int) -#define AOM_CTRL_VP9E_SET_TILE_ROWS - -AOM_CTRL_USE_TYPE(AOME_GET_LAST_QUANTIZER, int *) -#define AOM_CTRL_AOME_GET_LAST_QUANTIZER -AOM_CTRL_USE_TYPE(AOME_GET_LAST_QUANTIZER_64, int *) -#define AOM_CTRL_AOME_GET_LAST_QUANTIZER_64 -AOM_CTRL_USE_TYPE(VP9E_GET_SVC_LAYER_ID, aom_svc_layer_id_t *) -#define AOM_CTRL_VP9E_GET_SVC_LAYER_ID - -AOM_CTRL_USE_TYPE(AOME_SET_MAX_INTRA_BITRATE_PCT, unsigned int) -#define AOM_CTRL_AOME_SET_MAX_INTRA_BITRATE_PCT -AOM_CTRL_USE_TYPE(AOME_SET_MAX_INTER_BITRATE_PCT, unsigned int) -#define AOM_CTRL_AOME_SET_MAX_INTER_BITRATE_PCT - -AOM_CTRL_USE_TYPE(AOME_SET_SCREEN_CONTENT_MODE, unsigned int) -#define AOM_CTRL_AOME_SET_SCREEN_CONTENT_MODE - -AOM_CTRL_USE_TYPE(VP9E_SET_GF_CBR_BOOST_PCT, unsigned int) -#define AOM_CTRL_VP9E_SET_GF_CBR_BOOST_PCT - -AOM_CTRL_USE_TYPE(VP9E_SET_LOSSLESS, unsigned int) -#define AOM_CTRL_VP9E_SET_LOSSLESS - -#if CONFIG_AOM_QM -AOM_CTRL_USE_TYPE(VP9E_SET_ENABLE_QM, unsigned int) -#define AOM_CTRL_VP9E_SET_ENABLE_QM - -AOM_CTRL_USE_TYPE(VP9E_SET_QM_MIN, unsigned int) -#define AOM_CTRL_VP9E_SET_QM_MIN - -AOM_CTRL_USE_TYPE(VP9E_SET_QM_MAX, unsigned int) -#define AOM_CTRL_VP9E_SET_QM_MAX -#endif - -AOM_CTRL_USE_TYPE(VP9E_SET_FRAME_PARALLEL_DECODING, unsigned int) -#define AOM_CTRL_VP9E_SET_FRAME_PARALLEL_DECODING - -AOM_CTRL_USE_TYPE(VP9E_SET_AQ_MODE, unsigned int) -#define AOM_CTRL_VP9E_SET_AQ_MODE - -AOM_CTRL_USE_TYPE(VP9E_SET_FRAME_PERIODIC_BOOST, unsigned int) -#define AOM_CTRL_VP9E_SET_FRAME_PERIODIC_BOOST - -AOM_CTRL_USE_TYPE(VP9E_SET_NOISE_SENSITIVITY, unsigned int) -#define AOM_CTRL_VP9E_SET_NOISE_SENSITIVITY - -AOM_CTRL_USE_TYPE(VP9E_SET_TUNE_CONTENT, int) /* aom_tune_content */ -#define AOM_CTRL_VP9E_SET_TUNE_CONTENT - -AOM_CTRL_USE_TYPE(VP9E_SET_COLOR_SPACE, int) -#define AOM_CTRL_VP9E_SET_COLOR_SPACE - -AOM_CTRL_USE_TYPE(VP9E_SET_MIN_GF_INTERVAL, unsigned int) -#define AOM_CTRL_VP9E_SET_MIN_GF_INTERVAL - -AOM_CTRL_USE_TYPE(VP9E_SET_MAX_GF_INTERVAL, unsigned int) -#define AOM_CTRL_VP9E_SET_MAX_GF_INTERVAL - -AOM_CTRL_USE_TYPE(VP9E_GET_ACTIVEMAP, aom_active_map_t *) -#define AOM_CTRL_VP9E_GET_ACTIVEMAP - -AOM_CTRL_USE_TYPE(VP9E_SET_COLOR_RANGE, int) -#define AOM_CTRL_VP9E_SET_COLOR_RANGE - -AOM_CTRL_USE_TYPE(VP9E_SET_SVC_REF_FRAME_CONFIG, aom_svc_ref_frame_config_t *) -#define AOM_CTRL_VP9E_SET_SVC_REF_FRAME_CONFIG - -AOM_CTRL_USE_TYPE(VP9E_SET_RENDER_SIZE, int *) -#define AOM_CTRL_VP9E_SET_RENDER_SIZE - -/*!\endcond */ -/*! @} - end defgroup vp8_encoder */ -#ifdef __cplusplus -} // extern "C" -#endif - -#endif // AOM_AOMCX_H_ diff --git a/aom/vp8dx.h b/aom/vp8dx.h deleted file mode 100644 index 1f6a84499..000000000 --- a/aom/vp8dx.h +++ /dev/null @@ -1,165 +0,0 @@ -/* - * Copyright (c) 2016, 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. - */ - -/*!\defgroup vp8_decoder WebM AOM/VP9 Decoder - * \ingroup vp8 - * - * @{ - */ -/*!\file - * \brief Provides definitions for using AOM or VP9 within the aom Decoder - * interface. - */ -#ifndef AOM_AOMDX_H_ -#define AOM_AOMDX_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -/* Include controls common to both the encoder and decoder */ -#include "./vp8.h" - -/*!\name Algorithm interface for AV1 - * - * This interface provides the capability to decode AV1 streams. - * @{ - */ -extern aom_codec_iface_t aom_codec_av1_dx_algo; -extern aom_codec_iface_t *aom_codec_av1_dx(void); -/*!@} - end algorithm interface member group*/ - -/*!\enum vp8_dec_control_id - * \brief AOM decoder control functions - * - * This set of macros define the control functions available for the AOM - * decoder interface. - * - * \sa #aom_codec_control - */ -enum vp8_dec_control_id { - /** control function to get info on which reference frames were updated - * by the last decode - */ - AOMD_GET_LAST_REF_UPDATES = AOM_DECODER_CTRL_ID_START, - - /** check if the indicated frame is corrupted */ - AOMD_GET_FRAME_CORRUPTED, - - /** control function to get info on which reference frames were used - * by the last decode - */ - AOMD_GET_LAST_REF_USED, - - /** decryption function to decrypt encoded buffer data immediately - * before decoding. Takes a aom_decrypt_init, which contains - * a callback function and opaque context pointer. - */ - AOMD_SET_DECRYPTOR, - // AOMD_SET_DECRYPTOR = AOMD_SET_DECRYPTOR, - - /** control function to get the dimensions that the current frame is decoded - * at. This may be different to the intended display size for the frame as - * specified in the wrapper or frame header (see VP9D_GET_DISPLAY_SIZE). */ - VP9D_GET_FRAME_SIZE, - - /** control function to get the current frame's intended display dimensions - * (as specified in the wrapper or frame header). This may be different to - * the decoded dimensions of this frame (see VP9D_GET_FRAME_SIZE). */ - VP9D_GET_DISPLAY_SIZE, - - /** control function to get the bit depth of the stream. */ - VP9D_GET_BIT_DEPTH, - - /** control function to set the byte alignment of the planes in the reference - * buffers. Valid values are power of 2, from 32 to 1024. A value of 0 sets - * legacy alignment. I.e. Y plane is aligned to 32 bytes, U plane directly - * follows Y plane, and V plane directly follows U plane. Default value is 0. - */ - VP9_SET_BYTE_ALIGNMENT, - - /** control function to invert the decoding order to from right to left. The - * function is used in a test to confirm the decoding independence of tile - * columns. The function may be used in application where this order - * of decoding is desired. - * - * TODO(yaowu): Rework the unit test that uses this control, and in a future - * release, this test-only control shall be removed. - */ - VP9_INVERT_TILE_DECODE_ORDER, - - /** control function to set the skip loop filter flag. Valid values are - * integers. The decoder will skip the loop filter when its value is set to - * nonzero. If the loop filter is skipped the decoder may accumulate decode - * artifacts. The default value is 0. - */ - VP9_SET_SKIP_LOOP_FILTER, - - AOM_DECODER_CTRL_ID_MAX -}; - -/** Decrypt n bytes of data from input -> output, using the decrypt_state - * passed in AOMD_SET_DECRYPTOR. - */ -typedef void (*aom_decrypt_cb)(void *decrypt_state, const unsigned char *input, - unsigned char *output, int count); - -/*!\brief Structure to hold decryption state - * - * Defines a structure to hold the decryption state and access function. - */ -typedef struct aom_decrypt_init { - /*! Decrypt callback. */ - aom_decrypt_cb decrypt_cb; - - /*! Decryption state. */ - void *decrypt_state; -} aom_decrypt_init; - -/*!\brief A deprecated alias for aom_decrypt_init. - */ -typedef aom_decrypt_init vp8_decrypt_init; - -/*!\cond */ -/*!\brief AOM decoder control function parameter type - * - * Defines the data types that AOMD control functions take. Note that - * additional common controls are defined in vp8.h - * - */ - -AOM_CTRL_USE_TYPE(AOMD_GET_LAST_REF_UPDATES, int *) -#define AOM_CTRL_AOMD_GET_LAST_REF_UPDATES -AOM_CTRL_USE_TYPE(AOMD_GET_FRAME_CORRUPTED, int *) -#define AOM_CTRL_AOMD_GET_FRAME_CORRUPTED -AOM_CTRL_USE_TYPE(AOMD_GET_LAST_REF_USED, int *) -#define AOM_CTRL_AOMD_GET_LAST_REF_USED -AOM_CTRL_USE_TYPE(AOMD_SET_DECRYPTOR, aom_decrypt_init *) -#define AOM_CTRL_AOMD_SET_DECRYPTOR -//AOM_CTRL_USE_TYPE(AOMD_SET_DECRYPTOR, aom_decrypt_init *) -//#define AOM_CTRL_AOMD_SET_DECRYPTOR -AOM_CTRL_USE_TYPE(VP9D_GET_DISPLAY_SIZE, int *) -#define AOM_CTRL_VP9D_GET_DISPLAY_SIZE -AOM_CTRL_USE_TYPE(VP9D_GET_BIT_DEPTH, unsigned int *) -#define AOM_CTRL_VP9D_GET_BIT_DEPTH -AOM_CTRL_USE_TYPE(VP9D_GET_FRAME_SIZE, int *) -#define AOM_CTRL_VP9D_GET_FRAME_SIZE -AOM_CTRL_USE_TYPE(VP9_INVERT_TILE_DECODE_ORDER, int) -#define AOM_CTRL_VP9_INVERT_TILE_DECODE_ORDER - -/*!\endcond */ -/*! @} - end defgroup vp8_decoder */ - -#ifdef __cplusplus -} // extern "C" -#endif - -#endif // AOM_AOMDX_H_ diff --git a/aom_dsp/bitreader.h b/aom_dsp/bitreader.h index 17b92ea48..58cdc13f7 100644 --- a/aom_dsp/bitreader.h +++ b/aom_dsp/bitreader.h @@ -17,7 +17,7 @@ #include "./aom_config.h" #include "aom_ports/mem.h" -#include "aom/vp8dx.h" +#include "aom/aomdx.h" #include "aom/aom_integer.h" #include "aom_dsp/prob.h" diff --git a/aomdec.c b/aomdec.c index 71794a985..f7efa9671 100644 --- a/aomdec.c +++ b/aomdec.c @@ -30,7 +30,7 @@ #include "aom_ports/aom_timer.h" #if CONFIG_AV1_DECODER -#include "aom/vp8dx.h" +#include "aom/aomdx.h" #endif #include "./md5_utils.h" diff --git a/aomenc.c b/aomenc.c index b71c3c9e5..22cba5aea 100644 --- a/aomenc.c +++ b/aomenc.c @@ -34,10 +34,10 @@ #include "./tools_common.h" #if CONFIG_AV1_ENCODER -#include "aom/vp8cx.h" +#include "aom/aomcx.h" #endif #if CONFIG_AV1_DECODER -#include "aom/vp8dx.h" +#include "aom/aomdx.h" #endif #include "aom/aom_integer.h" diff --git a/av1/av1_cx_iface.c b/av1/av1_cx_iface.c index c0853450d..e9c469ba5 100644 --- a/av1/av1_cx_iface.c +++ b/av1/av1_cx_iface.c @@ -18,7 +18,7 @@ #include "aom/internal/aom_codec_internal.h" #include "./aom_version.h" #include "av1/encoder/encoder.h" -#include "aom/vp8cx.h" +#include "aom/aomcx.h" #include "av1/encoder/firstpass.h" #include "av1/av1_iface_common.h" diff --git a/av1/av1_dx_iface.c b/av1/av1_dx_iface.c index 6c195baaf..bd20d734a 100644 --- a/av1/av1_dx_iface.c +++ b/av1/av1_dx_iface.c @@ -16,7 +16,7 @@ #include "./aom_version.h" #include "aom/internal/aom_codec_internal.h" -#include "aom/vp8dx.h" +#include "aom/aomdx.h" #include "aom/aom_decoder.h" #include "aom_dsp/bitreader_buffer.h" #include "aom_dsp/aom_dsp_common.h" diff --git a/av1/encoder/encoder.h b/av1/encoder/encoder.h index 60f377286..937481261 100644 --- a/av1/encoder/encoder.h +++ b/av1/encoder/encoder.h @@ -15,7 +15,7 @@ #include #include "./aom_config.h" -#include "aom/vp8cx.h" +#include "aom/aomcx.h" #include "av1/common/alloccommon.h" #include "av1/common/entropymode.h" diff --git a/examples/aom_temporal_svc_encoder.c b/examples/aom_temporal_svc_encoder.c index 86ddb3610..94fa6f679 100644 --- a/examples/aom_temporal_svc_encoder.c +++ b/examples/aom_temporal_svc_encoder.c @@ -21,7 +21,7 @@ #include "./aom_config.h" #include "../aom_ports/aom_timer.h" -#include "aom/vp8cx.h" +#include "aom/aomcx.h" #include "aom/aom_encoder.h" #include "../tools_common.h" diff --git a/examples/decode_to_md5.c b/examples/decode_to_md5.c index 1b94fbce9..21e5fcace 100644 --- a/examples/decode_to_md5.c +++ b/examples/decode_to_md5.c @@ -34,7 +34,7 @@ #include #include -#include "aom/vp8dx.h" +#include "aom/aomdx.h" #include "aom/aom_decoder.h" #include "../md5_utils.h" diff --git a/examples/decode_with_drops.c b/examples/decode_with_drops.c index a977970d9..bb6ceb36d 100644 --- a/examples/decode_with_drops.c +++ b/examples/decode_with_drops.c @@ -57,7 +57,7 @@ #include #include -#include "aom/vp8dx.h" +#include "aom/aomdx.h" #include "aom/aom_decoder.h" #include "../tools_common.h" diff --git a/examples/set_maps.c b/examples/set_maps.c index 14080dd97..d8f1496fb 100644 --- a/examples/set_maps.c +++ b/examples/set_maps.c @@ -47,7 +47,7 @@ #include #include -#include "aom/vp8cx.h" +#include "aom/aomcx.h" #include "aom/aom_encoder.h" #include "../tools_common.h" diff --git a/libs.mk b/libs.mk index a51252443..38478dff1 100644 --- a/libs.mk +++ b/libs.mk @@ -64,11 +64,11 @@ ifeq ($(CONFIG_AV1_ENCODER),yes) include $(SRC_PATH_BARE)/$(AV1_PREFIX)av1_cx.mk CODEC_SRCS-yes += $(addprefix $(AV1_PREFIX),$(call enabled,AV1_CX_SRCS)) CODEC_EXPORTS-yes += $(addprefix $(AV1_PREFIX),$(AV1_CX_EXPORTS)) - CODEC_SRCS-yes += $(AV1_PREFIX)av1_cx.mk aom/vp8.h aom/vp8cx.h - INSTALL-LIBS-yes += include/aom/vp8.h include/aom/vp8cx.h + CODEC_SRCS-yes += $(AV1_PREFIX)av1_cx.mk aom/aom.h aom/aomcx.h + INSTALL-LIBS-yes += include/aom/aom.h include/aom/aomcx.h INSTALL-LIBS-$(CONFIG_SPATIAL_SVC) += include/aom/svc_context.h INSTALL_MAPS += include/aom/% $(SRC_PATH_BARE)/$(AV1_PREFIX)/% - CODEC_DOC_SRCS += aom/vp8.h aom/vp8cx.h + CODEC_DOC_SRCS += aom/aom.h aom/aomcx.h CODEC_DOC_SECTIONS += av1 av1_encoder endif @@ -77,10 +77,10 @@ ifeq ($(CONFIG_AV1_DECODER),yes) include $(SRC_PATH_BARE)/$(AV1_PREFIX)av1_dx.mk CODEC_SRCS-yes += $(addprefix $(AV1_PREFIX),$(call enabled,AV1_DX_SRCS)) CODEC_EXPORTS-yes += $(addprefix $(AV1_PREFIX),$(AV1_DX_EXPORTS)) - CODEC_SRCS-yes += $(AV1_PREFIX)av1_dx.mk aom/vp8.h aom/vp8dx.h - INSTALL-LIBS-yes += include/aom/vp8.h include/aom/vp8dx.h + CODEC_SRCS-yes += $(AV1_PREFIX)av1_dx.mk aom/aom.h aom/aomdx.h + INSTALL-LIBS-yes += include/aom/aom.h include/aom/aomdx.h INSTALL_MAPS += include/aom/% $(SRC_PATH_BARE)/$(AV1_PREFIX)/% - CODEC_DOC_SRCS += aom/vp8.h aom/vp8dx.h + CODEC_DOC_SRCS += aom/aom.h aom/aomdx.h CODEC_DOC_SECTIONS += av1 av1_decoder endif diff --git a/test/codec_factory.h b/test/codec_factory.h index 3c1d0c3ef..1c5718e2c 100644 --- a/test/codec_factory.h +++ b/test/codec_factory.h @@ -15,10 +15,10 @@ #include "aom/aom_decoder.h" #include "aom/aom_encoder.h" #if CONFIG_AV1_ENCODER -#include "aom/vp8cx.h" +#include "aom/aomcx.h" #endif #if CONFIG_AV1_DECODER -#include "aom/vp8dx.h" +#include "aom/aomdx.h" #endif #include "test/decode_test_driver.h" diff --git a/test/decode_api_test.cc b/test/decode_api_test.cc index e92bbee22..6ea33d5ca 100644 --- a/test/decode_api_test.cc +++ b/test/decode_api_test.cc @@ -12,7 +12,7 @@ #include "./aom_config.h" #include "test/ivf_video_source.h" -#include "aom/vp8dx.h" +#include "aom/aomdx.h" #include "aom/aom_decoder.h" namespace { diff --git a/test/encode_api_test.cc b/test/encode_api_test.cc index 7e552ade3..c67e62b5b 100644 --- a/test/encode_api_test.cc +++ b/test/encode_api_test.cc @@ -11,7 +11,7 @@ #include "third_party/googletest/src/include/gtest/gtest.h" #include "./aom_config.h" -#include "aom/vp8cx.h" +#include "aom/aomcx.h" #include "aom/aom_encoder.h" namespace { diff --git a/test/encode_test_driver.h b/test/encode_test_driver.h index 749f30552..e013818ac 100644 --- a/test/encode_test_driver.h +++ b/test/encode_test_driver.h @@ -18,7 +18,7 @@ #include "./aom_config.h" #if CONFIG_AV1_ENCODER -#include "aom/vp8cx.h" +#include "aom/aomcx.h" #endif #include "aom/aom_encoder.h" diff --git a/test/svc_test.cc b/test/svc_test.cc index c92dbc419..0efb27a2e 100644 --- a/test/svc_test.cc +++ b/test/svc_test.cc @@ -17,7 +17,7 @@ #include "av1/decoder/decoder.h" #include "aom/svc_context.h" -#include "aom/vp8cx.h" +#include "aom/aomcx.h" #include "aom/aom_encoder.h" namespace { diff --git a/test/vp8_multi_resolution_encoder.sh b/test/vp8_multi_resolution_encoder.sh deleted file mode 100755 index a64d6eada..000000000 --- a/test/vp8_multi_resolution_encoder.sh +++ /dev/null @@ -1,75 +0,0 @@ -#!/bin/sh -## -## Copyright (c) 2014 The WebM project authors. All Rights Reserved. -## -## Use of this source code is governed by a BSD-style license -## that can be found in the LICENSE file in the root of the source -## tree. An additional intellectual property rights grant can be found -## in the file PATENTS. All contributing project authors may -## be found in the AUTHORS file in the root of the source tree. -## -## This file tests the libaom vp8_multi_resolution_encoder example. To add new -## tests to this file, do the following: -## 1. Write a shell function (this is your test). -## 2. Add the function to vp8_mre_tests (on a new line). -## -. $(dirname $0)/tools_common.sh - -# Environment check: $YUV_RAW_INPUT is required. -vp8_multi_resolution_encoder_verify_environment() { - if [ "$(aom_config_option_enabled CONFIG_MULTI_RES_ENCODING)" = "yes" ]; then - if [ ! -e "${YUV_RAW_INPUT}" ]; then - elog "Libaom test data must exist in LIBAOM_TEST_DATA_PATH." - return 1 - fi - local readonly app="vp8_multi_resolution_encoder" - if [ -z "$(aom_tool_path "${app}")" ]; then - elog "${app} not found. It must exist in LIBAOM_BIN_PATH or its parent." - return 1 - fi - fi -} - -# Runs vp8_multi_resolution_encoder. Simply forwards all arguments to -# vp8_multi_resolution_encoder after building path to the executable. -vp8_mre() { - local readonly encoder="$(aom_tool_path vp8_multi_resolution_encoder)" - if [ ! -x "${encoder}" ]; then - elog "${encoder} does not exist or is not executable." - return 1 - fi - - eval "${AOM_TEST_PREFIX}" "${encoder}" "$@" ${devnull} -} - -vp8_multi_resolution_encoder_three_formats() { - local readonly output_files="${AOM_TEST_OUTPUT_DIR}/vp8_mre_0.ivf - ${AOM_TEST_OUTPUT_DIR}/vp8_mre_1.ivf - ${AOM_TEST_OUTPUT_DIR}/vp8_mre_2.ivf" - - if [ "$(aom_config_option_enabled CONFIG_MULTI_RES_ENCODING)" = "yes" ]; then - if [ "$(vp8_encode_available)" = "yes" ]; then - # Param order: - # Input width - # Input height - # Input file path - # Output file names - # Output PSNR - vp8_mre "${YUV_RAW_INPUT_WIDTH}" \ - "${YUV_RAW_INPUT_HEIGHT}" \ - "${YUV_RAW_INPUT}" \ - ${output_files} \ - 0 - - for output_file in ${output_files}; do - if [ ! -e "${output_file}" ]; then - elog "Missing output file: ${output_file}" - return 1 - fi - done - fi - fi -} - -vp8_mre_tests="vp8_multi_resolution_encoder_three_formats" -run_tests vp8_multi_resolution_encoder_verify_environment "${vp8_mre_tests}" diff --git a/test/vp8cx_set_ref.sh b/test/vp8cx_set_ref.sh deleted file mode 100755 index c42ec4c34..000000000 --- a/test/vp8cx_set_ref.sh +++ /dev/null @@ -1,57 +0,0 @@ -#!/bin/sh -## -## Copyright (c) 2014 The WebM project authors. All Rights Reserved. -## -## Use of this source code is governed by a BSD-style license -## that can be found in the LICENSE file in the root of the source -## tree. An additional intellectual property rights grant can be found -## in the file PATENTS. All contributing project authors may -## be found in the AUTHORS file in the root of the source tree. -## -## This file tests the libaom vp8cx_set_ref example. To add new tests to this -## file, do the following: -## 1. Write a shell function (this is your test). -## 2. Add the function to vp8cx_set_ref_tests (on a new line). -## -. $(dirname $0)/tools_common.sh - -# Environment check: $YUV_RAW_INPUT is required. -vp8cx_set_ref_verify_environment() { - if [ ! -e "${YUV_RAW_INPUT}" ]; then - echo "Libaom test data must exist in LIBAOM_TEST_DATA_PATH." - return 1 - fi -} - -# Runs vp8cx_set_ref and updates the reference frame before encoding frame 90. -# $1 is the codec name, which vp8cx_set_ref does not support at present: It's -# currently used only to name the output file. -# TODO(tomfinegan): Pass the codec param once the example is updated to support -# VP9. -aom_set_ref() { - local encoder="${LIBAOM_BIN_PATH}/vp8cx_set_ref${AOM_TEST_EXE_SUFFIX}" - local codec="$1" - local output_file="${AOM_TEST_OUTPUT_DIR}/vp8cx_set_ref_${codec}.ivf" - local ref_frame_num=90 - - if [ ! -x "${encoder}" ]; then - elog "${encoder} does not exist or is not executable." - return 1 - fi - - eval "${AOM_TEST_PREFIX}" "${encoder}" "${YUV_RAW_INPUT_WIDTH}" \ - "${YUV_RAW_INPUT_HEIGHT}" "${YUV_RAW_INPUT}" "${output_file}" \ - "${ref_frame_num}" ${devnull} - - [ -e "${output_file}" ] || return 1 -} - -vp8cx_set_ref_vp8() { - if [ "$(vp8_encode_available)" = "yes" ]; then - aom_set_ref vp8 || return 1 - fi -} - -vp8cx_set_ref_tests="vp8cx_set_ref_vp8" - -run_tests vp8cx_set_ref_verify_environment "${vp8cx_set_ref_tests}" diff --git a/tools_common.c b/tools_common.c index f497ad8c3..a8924b599 100644 --- a/tools_common.c +++ b/tools_common.c @@ -18,11 +18,11 @@ #include "./tools_common.h" #if CONFIG_AV1_ENCODER -#include "aom/vp8cx.h" +#include "aom/aomcx.h" #endif #if CONFIG_AV1_DECODER -#include "aom/vp8dx.h" +#include "aom/aomdx.h" #endif #if defined(_WIN32) || defined(__OS2__)