Index: source/libvpx/vp9/encoder/vp9_encoder.h |
=================================================================== |
--- source/libvpx/vp9/encoder/vp9_encoder.h (revision 284462) |
+++ source/libvpx/vp9/encoder/vp9_encoder.h (working copy) |
@@ -195,6 +195,7 @@ |
int ts_number_layers; // Number of temporal layers. |
// Bitrate allocation for spatial layers. |
int ss_target_bitrate[VPX_SS_MAX_LAYERS]; |
+ int ss_play_alternate[VPX_SS_MAX_LAYERS]; |
// Bitrate allocation (CBR mode) and framerate factor, for temporal layers. |
int ts_target_bitrate[VPX_TS_MAX_LAYERS]; |
int ts_rate_decimator[VPX_TS_MAX_LAYERS]; |
@@ -226,13 +227,13 @@ |
struct vpx_fixed_buf two_pass_stats_in; |
struct vpx_codec_pkt_list *output_pkt_list; |
+#if CONFIG_FP_MB_STATS |
+ struct vpx_fixed_buf firstpass_mb_stats_in; |
+#endif |
+ |
vp8e_tuning tuning; |
} VP9EncoderConfig; |
-static INLINE int is_altref_enabled(const VP9EncoderConfig *cfg) { |
- return cfg->mode != REALTIME && cfg->play_alternate && cfg->lag_in_frames > 0; |
-} |
- |
static INLINE int is_lossless_requested(const VP9EncoderConfig *cfg) { |
return cfg->best_allowed_q == 0 && cfg->worst_allowed_q == 0; |
} |
@@ -535,6 +536,13 @@ |
void vp9_apply_encoding_flags(VP9_COMP *cpi, vpx_enc_frame_flags_t flags); |
+static INLINE int is_altref_enabled(const VP9_COMP *const cpi) { |
+ return cpi->oxcf.mode != REALTIME && cpi->oxcf.lag_in_frames > 0 && |
+ (cpi->oxcf.play_alternate && |
+ (!(cpi->use_svc && cpi->svc.number_temporal_layers == 1) || |
+ cpi->oxcf.ss_play_alternate[cpi->svc.spatial_layer_id])); |
+} |
+ |
static INLINE void set_ref_ptrs(VP9_COMMON *cm, MACROBLOCKD *xd, |
MV_REFERENCE_FRAME ref0, |
MV_REFERENCE_FRAME ref1) { |