summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_encoder.h
diff options
context:
space:
mode:
authorJingning Han <jingning@google.com>2018-10-15 10:11:57 -0700
committerJingning Han <jingning@google.com>2018-10-15 14:57:05 -0700
commit227deb503e381b86fccae3fd92ee92baacec0948 (patch)
treeff892de3d17c6f8d43da411d6ba382d0136c9916 /vp9/encoder/vp9_encoder.h
parentf6a52bee7db6b54308fa080b84ebfe12977f6b45 (diff)
downloadlibvpx-227deb503e381b86fccae3fd92ee92baacec0948.tar
libvpx-227deb503e381b86fccae3fd92ee92baacec0948.tar.gz
libvpx-227deb503e381b86fccae3fd92ee92baacec0948.tar.bz2
libvpx-227deb503e381b86fccae3fd92ee92baacec0948.zip
Add encoder side frame buffer for tpl model
Add an encoder side reference frame buffer pool to store the reference frames for tpl model. This servces as an intermediate step to support multi-layer ARF system. The buffer memory size will be optimized afterwards. Change-Id: If2d2f095d4911a4996f6c2a0b0a8e3d235ceadb2
Diffstat (limited to 'vp9/encoder/vp9_encoder.h')
-rw-r--r--vp9/encoder/vp9_encoder.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/vp9/encoder/vp9_encoder.h b/vp9/encoder/vp9_encoder.h
index 45cc97315..79346ed09 100644
--- a/vp9/encoder/vp9_encoder.h
+++ b/vp9/encoder/vp9_encoder.h
@@ -495,6 +495,12 @@ typedef struct ARNRFilterData {
struct scale_factors sf;
} ARNRFilterData;
+typedef struct EncFrameBuf {
+ int mem_valid;
+ int released;
+ YV12_BUFFER_CONFIG frame;
+} EncFrameBuf;
+
// Maximum operating frame buffer size needed for a GOP using ARF reference.
#define MAX_ARF_GOP_SIZE (2 * MAX_LAG_BUFFERS)
@@ -522,7 +528,8 @@ typedef struct VP9_COMP {
YV12_BUFFER_CONFIG *raw_source_frame;
TplDepFrame tpl_stats[MAX_ARF_GOP_SIZE];
- YV12_BUFFER_CONFIG *tpl_recon_frames[REFS_PER_FRAME + 1];
+ YV12_BUFFER_CONFIG *tpl_recon_frames[REF_FRAMES];
+ EncFrameBuf enc_frame_buf[REF_FRAMES];
TileDataEnc *tile_data;
int allocated_tiles; // Keep track of memory allocated for tiles.