]> granicus.if.org Git - libvpx/commitdiff
Add element stack operations for arf index control
authorJingning Han <jingning@google.com>
Wed, 22 Aug 2018 19:03:39 +0000 (12:03 -0700)
committerJingning Han <jingning@google.com>
Fri, 31 Aug 2018 15:42:19 +0000 (08:42 -0700)
Support arf index stack operation.

Change-Id: Ifcf521ffc95a520344824ffc159883b71e8fc7a0

vp9/encoder/vp9_encoder.h

index c740eada517835407cff805726bc6f08e42246af..9adcb4522a7de262acfd23e4f66c9c53f003188d 100644 (file)
@@ -818,6 +818,22 @@ int vp9_set_size_literal(VP9_COMP *cpi, unsigned int width,
 
 void vp9_set_svc(VP9_COMP *cpi, int use_svc);
 
+static INLINE int stack_pop(int *stack, int stack_size) {
+  int idx;
+  const int r = stack[0];
+  for (idx = 1; idx < stack_size; ++idx) stack[idx - 1] = stack[idx];
+
+  return r;
+}
+
+static INLINE int stack_top(const int *stack) { return stack[0]; }
+
+static INLINE void stack_push(int *stack, int new_item, int stack_size) {
+  int idx;
+  for (idx = stack_size; idx > 0; --idx) stack[idx] = stack[idx - 1];
+  stack[0] = new_item;
+}
+
 int vp9_get_quantizer(struct VP9_COMP *cpi);
 
 static INLINE int frame_is_kf_gf_arf(const VP9_COMP *cpi) {