diff options
Diffstat (limited to 'third_party/aom/aom_scale/yv12config.h')
-rw-r--r-- | third_party/aom/aom_scale/yv12config.h | 37 |
1 files changed, 18 insertions, 19 deletions
diff --git a/third_party/aom/aom_scale/yv12config.h b/third_party/aom/aom_scale/yv12config.h index 0c47f650d..8f1c60069 100644 --- a/third_party/aom/aom_scale/yv12config.h +++ b/third_party/aom/aom_scale/yv12config.h @@ -16,22 +16,19 @@ extern "C" { #endif -#include "./aom_config.h" +#include "config/aom_config.h" + #include "aom/aom_codec.h" #include "aom/aom_frame_buffer.h" #include "aom/aom_integer.h" -#if CONFIG_EXT_PARTITION #define AOMINNERBORDERINPIXELS 160 -#else -#define AOMINNERBORDERINPIXELS 96 -#endif // CONFIG_EXT_PARTITION #define AOM_INTERP_EXTEND 4 // TODO(jingning): Use unified inter predictor for encoder and // decoder during the development process. Revisit the frame border // to improve the decoder performance. -#define AOM_BORDER_IN_PIXELS 160 +#define AOM_BORDER_IN_PIXELS 288 typedef struct yv12_buffer_config { union { @@ -82,12 +79,18 @@ typedef struct yv12_buffer_config { uint8_t *buffers[4]; }; -#if CONFIG_HIGHBITDEPTH && CONFIG_GLOBAL_MOTION + // Indicate whether y_buffer, u_buffer, and v_buffer points to the internally + // allocated memory or external buffers. + int use_external_refernce_buffers; + // This is needed to store y_buffer, u_buffer, and v_buffer when set reference + // uses an external refernece, and restore those buffer pointers after the + // external reference frame is no longer used. + uint8_t *store_buf_adr[3]; + // If the frame is stored in a 16-bit buffer, this stores an 8-bit version // for use in global motion detection. It is allocated on-demand. uint8_t *y_buffer_8bit; int buf_8bit_valid; -#endif uint8_t *buffer_alloc; size_t buffer_alloc_sz; @@ -96,8 +99,10 @@ typedef struct yv12_buffer_config { int subsampling_x; int subsampling_y; unsigned int bit_depth; - aom_color_space_t color_space; - aom_transfer_function_t transfer_function; + aom_color_primaries_t color_primaries; + aom_transfer_characteristics_t transfer_characteristics; + aom_matrix_coefficients_t matrix_coefficients; + int monochrome; aom_chroma_sample_position_t chroma_sample_position; aom_color_range_t color_range; int render_width; @@ -110,11 +115,8 @@ typedef struct yv12_buffer_config { #define YV12_FLAG_HIGHBITDEPTH 8 int aom_alloc_frame_buffer(YV12_BUFFER_CONFIG *ybf, int width, int height, - int ss_x, int ss_y, -#if CONFIG_HIGHBITDEPTH - int use_highbitdepth, -#endif - int border, int byte_alignment); + int ss_x, int ss_y, int use_highbitdepth, int border, + int byte_alignment); // Updates the yv12 buffer config with the frame buffer. |byte_alignment| must // be a power of 2, from 32 to 1024. 0 sets legacy alignment. If cb is not @@ -124,10 +126,7 @@ int aom_alloc_frame_buffer(YV12_BUFFER_CONFIG *ybf, int width, int height, // internally to decode the current frame. Returns 0 on success. Returns < 0 // on failure. int aom_realloc_frame_buffer(YV12_BUFFER_CONFIG *ybf, int width, int height, - int ss_x, int ss_y, -#if CONFIG_HIGHBITDEPTH - int use_highbitdepth, -#endif + int ss_x, int ss_y, int use_highbitdepth, int border, int byte_alignment, aom_codec_frame_buffer_t *fb, aom_get_frame_buffer_cb_fn_t cb, void *cb_priv); |