summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorangiebird <angiebird@google.com>2019-10-09 14:42:57 -0700
committerangiebird <angiebird@google.com>2019-10-10 15:44:51 -0700
commit6b7d221ca6be5eb27dccafec1f77b5d15d3d7aa6 (patch)
treedaa9669751fc936ddee6d8021befa40b758bb11f
parent3a210cae432b105b24f1a3c50c2698dfddb8d765 (diff)
downloadlibvpx-6b7d221ca6be5eb27dccafec1f77b5d15d3d7aa6.tar
libvpx-6b7d221ca6be5eb27dccafec1f77b5d15d3d7aa6.tar.gz
libvpx-6b7d221ca6be5eb27dccafec1f77b5d15d3d7aa6.tar.bz2
libvpx-6b7d221ca6be5eb27dccafec1f77b5d15d3d7aa6.zip
Add FRAME_INFO into VP9_COMP
Change-Id: Ibc804f2420113010013c04dc005b02dfebdfda8a
-rw-r--r--vp9/common/vp9_onyxc_int.h28
-rw-r--r--vp9/encoder/vp9_encoder.c2
-rw-r--r--vp9/encoder/vp9_encoder.h1
3 files changed, 31 insertions, 0 deletions
diff --git a/vp9/common/vp9_onyxc_int.h b/vp9/common/vp9_onyxc_int.h
index 94c9b3f26..f3942a8f0 100644
--- a/vp9/common/vp9_onyxc_int.h
+++ b/vp9/common/vp9_onyxc_int.h
@@ -254,6 +254,34 @@ typedef struct VP9Common {
int lf_row;
} VP9_COMMON;
+typedef struct {
+ int frame_width;
+ int frame_height;
+ int render_frame_width;
+ int render_frame_height;
+ int mi_rows;
+ int mi_cols;
+ int mb_rows;
+ int mb_cols;
+ int num_mbs;
+ vpx_bit_depth_t bit_depth;
+} FRAME_INFO;
+
+static INLINE void init_frame_info(FRAME_INFO *frame_info,
+ const VP9_COMMON *cm) {
+ frame_info->frame_width = cm->width;
+ frame_info->frame_height = cm->height;
+ frame_info->render_frame_width = cm->render_width;
+ frame_info->render_frame_height = cm->render_height;
+ frame_info->mi_cols = cm->mi_cols;
+ frame_info->mi_rows = cm->mi_rows;
+ frame_info->mb_cols = cm->mb_cols;
+ frame_info->mb_rows = cm->mb_rows;
+ frame_info->num_mbs = cm->MBs;
+ frame_info->bit_depth = cm->bit_depth;
+ // TODO(angiebird): Figure out how to get subsampling_x/y here
+}
+
static INLINE YV12_BUFFER_CONFIG *get_buf_frame(VP9_COMMON *cm, int index) {
if (index < 0 || index >= FRAME_BUFFERS) return NULL;
if (cm->error.error_code != VPX_CODEC_OK) return NULL;
diff --git a/vp9/encoder/vp9_encoder.c b/vp9/encoder/vp9_encoder.c
index af81d9b72..e7cfc82f7 100644
--- a/vp9/encoder/vp9_encoder.c
+++ b/vp9/encoder/vp9_encoder.c
@@ -2196,6 +2196,8 @@ VP9_COMP *vp9_create_compressor(VP9EncoderConfig *oxcf,
cpi->force_update_segmentation = 0;
init_config(cpi, oxcf);
+ init_frame_info(&cpi->frame_info, cm);
+
vp9_rc_init(&cpi->oxcf, oxcf->pass, &cpi->rc);
cm->current_video_frame = 0;
diff --git a/vp9/encoder/vp9_encoder.h b/vp9/encoder/vp9_encoder.h
index e49bf9a06..b0ea921ba 100644
--- a/vp9/encoder/vp9_encoder.h
+++ b/vp9/encoder/vp9_encoder.h
@@ -514,6 +514,7 @@ typedef struct KMEANS_DATA {
} KMEANS_DATA;
typedef struct VP9_COMP {
+ FRAME_INFO frame_info;
QUANTS quants;
ThreadData td;
MB_MODE_INFO_EXT *mbmi_ext_base;