summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_svc_layercontext.h
diff options
context:
space:
mode:
authorMinghai Shang <minghai@google.com>2014-09-18 18:05:07 -0700
committerMinghai Shang <minghai@google.com>2014-09-18 18:05:07 -0700
commit209ee12110cad5eaeb2b80b18c5b7ae5029c9c80 (patch)
tree59a753bf5b661bb45e2945c65cb23e0514bac076 /vp9/encoder/vp9_svc_layercontext.h
parent4f5b2b28924fa63f88449e203905ec88168bbda7 (diff)
downloadlibvpx-209ee12110cad5eaeb2b80b18c5b7ae5029c9c80.tar
libvpx-209ee12110cad5eaeb2b80b18c5b7ae5029c9c80.tar.gz
libvpx-209ee12110cad5eaeb2b80b18c5b7ae5029c9c80.tar.bz2
libvpx-209ee12110cad5eaeb2b80b18c5b7ae5029c9c80.zip
[spatial svc] Remove vpx_svc_parameters_t and the loop that sets it for each layer
vpx_svc_parameters_t contains id, resolution and min/max qp for each spatial layer. In this change we will use extra config to send min/max qp and scaling factors, then calculate layer resolution inside encoder. Change-Id: Ib673303266605fe803c3b067284aae5f7a25514a
Diffstat (limited to 'vp9/encoder/vp9_svc_layercontext.h')
-rw-r--r--vp9/encoder/vp9_svc_layercontext.h20
1 files changed, 8 insertions, 12 deletions
diff --git a/vp9/encoder/vp9_svc_layercontext.h b/vp9/encoder/vp9_svc_layercontext.h
index d180d1a8c..47a5456b6 100644
--- a/vp9/encoder/vp9_svc_layercontext.h
+++ b/vp9/encoder/vp9_svc_layercontext.h
@@ -24,13 +24,16 @@ typedef struct {
int target_bandwidth;
double framerate;
int avg_frame_size;
+ int max_q;
+ int min_q;
+ int scaling_factor_num;
+ int scaling_factor_den;
TWO_PASS twopass;
vpx_fixed_buf_t rc_twopass_stats_in;
unsigned int current_video_frame_in_layer;
int is_key_frame;
int frames_from_key_frame;
FRAME_TYPE last_frame_type;
- vpx_svc_parameters_t svc_params_received;
struct lookahead_entry *alt_ref_source;
int alt_ref_idx;
int gold_ref_idx;
@@ -45,6 +48,8 @@ typedef struct {
int number_spatial_layers;
int number_temporal_layers;
+ int spatial_layer_to_encode;
+
// Store scaled source frames to be used for temporal filter to generate
// a alt ref frame.
YV12_BUFFER_CONFIG scaled_frames[MAX_LAG_BUFFERS];
@@ -88,22 +93,13 @@ void vp9_inc_frame_in_layer(struct VP9_COMP *const cpi);
// Check if current layer is key frame in spatial upper layer
int vp9_is_upper_layer_key_frame(const struct VP9_COMP *const cpi);
-// Copy the source image, flags and svc parameters into a new framebuffer
-// with the expected stride/border
-int vp9_svc_lookahead_push(const struct VP9_COMP *const cpi,
- struct lookahead_ctx *ctx, YV12_BUFFER_CONFIG *src,
- int64_t ts_start, int64_t ts_end,
- unsigned int flags);
-
// Get the next source buffer to encode
struct lookahead_entry *vp9_svc_lookahead_pop(struct VP9_COMP *const cpi,
struct lookahead_ctx *ctx,
int drain);
-// Get a future source buffer to encode
-struct lookahead_entry *vp9_svc_lookahead_peek(struct VP9_COMP *const cpi,
- struct lookahead_ctx *ctx,
- int index, int copy_params);
+// Start a frame and initialize svc parameters
+int vp9_svc_start_frame(struct VP9_COMP *const cpi);
#ifdef __cplusplus
} // extern "C"