| Index: source/libvpx/vp9/encoder/vp9_encoder.h
|
| ===================================================================
|
| --- source/libvpx/vp9/encoder/vp9_encoder.h (revision 291857)
|
| +++ source/libvpx/vp9/encoder/vp9_encoder.h (working copy)
|
| @@ -114,9 +114,10 @@
|
|
|
| typedef struct VP9EncoderConfig {
|
| BITSTREAM_PROFILE profile;
|
| - BIT_DEPTH bit_depth;
|
| + vpx_bit_depth_t bit_depth; // Codec bit-depth.
|
| int width; // width of data passed to the compressor
|
| int height; // height of data passed to the compressor
|
| + unsigned int input_bit_depth; // Input bit depth.
|
| double init_framerate; // set to passed in framerate
|
| int64_t target_bandwidth; // bandwidth to be used in kilobits per second
|
|
|
| @@ -203,16 +204,15 @@
|
|
|
| int arnr_max_frames;
|
| int arnr_strength;
|
| - int arnr_type;
|
|
|
| int tile_columns;
|
| int tile_rows;
|
|
|
| - struct vpx_fixed_buf two_pass_stats_in;
|
| - struct vpx_codec_pkt_list *output_pkt_list;
|
| + vpx_fixed_buf_t 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;
|
| + vpx_fixed_buf_t firstpass_mb_stats_in;
|
| #endif
|
|
|
| vp8e_tuning tuning;
|
| @@ -223,19 +223,13 @@
|
| return cfg->best_allowed_q == 0 && cfg->worst_allowed_q == 0;
|
| }
|
|
|
| -static INLINE int is_best_mode(MODE mode) {
|
| - return mode == BEST;
|
| -}
|
| -
|
| typedef struct VP9_COMP {
|
| QUANTS quants;
|
| MACROBLOCK mb;
|
| VP9_COMMON common;
|
| VP9EncoderConfig oxcf;
|
| struct lookahead_ctx *lookahead;
|
| - struct lookahead_entry *source;
|
| struct lookahead_entry *alt_ref_source;
|
| - struct lookahead_entry *last_source;
|
|
|
| YV12_BUFFER_CONFIG *Source;
|
| YV12_BUFFER_CONFIG *Last_Source; // NULL for first frame and alt_ref frames
|
| @@ -275,6 +269,11 @@
|
|
|
| CODING_CONTEXT coding_context;
|
|
|
| + int *nmvcosts[2];
|
| + int *nmvcosts_hp[2];
|
| + int *nmvsadcosts[2];
|
| + int *nmvsadcosts_hp[2];
|
| +
|
| int zbin_mode_boost;
|
| int zbin_mode_boost_enabled;
|
|
|
| @@ -286,6 +285,7 @@
|
| double framerate;
|
|
|
| vp9_coeff_count coef_counts[TX_SIZES][PLANE_TYPES];
|
| + int interp_filter_selected[MAX_REF_FRAMES][SWITCHABLE];
|
|
|
| struct vpx_codec_pkt_list *output_pkt_list;
|
|
|
| @@ -332,8 +332,8 @@
|
| TWO_PASS twopass;
|
|
|
| YV12_BUFFER_CONFIG alt_ref_buffer;
|
| - YV12_BUFFER_CONFIG *frames[MAX_LAG_BUFFERS];
|
|
|
| +
|
| #if CONFIG_INTERNAL_STATS
|
| unsigned int mode_chosen_counts[MAX_MODES];
|
|
|
| @@ -371,10 +371,6 @@
|
|
|
| int droppable;
|
|
|
| - int dummy_packing; /* flag to indicate if packing is dummy */
|
| -
|
| - unsigned int tx_stepdown_count[TX_SIZES];
|
| -
|
| int initial_width;
|
| int initial_height;
|
|
|
| @@ -393,7 +389,7 @@
|
| search_site_config ss_cfg;
|
|
|
| int mbmode_cost[INTRA_MODES];
|
| - unsigned inter_mode_cost[INTER_MODE_CONTEXTS][INTER_MODES];
|
| + unsigned int inter_mode_cost[INTER_MODE_CONTEXTS][INTER_MODES];
|
| int intra_uv_mode_cost[FRAME_TYPES][INTRA_MODES];
|
| int y_mode_costs[INTRA_MODES][INTRA_MODES][INTRA_MODES];
|
| int switchable_interp_costs[SWITCHABLE_FILTER_CONTEXTS][SWITCHABLE_FILTERS];
|
| @@ -499,16 +495,17 @@
|
|
|
| void vp9_apply_encoding_flags(VP9_COMP *cpi, vpx_enc_frame_flags_t flags);
|
|
|
| -static INLINE int is_spatial_svc(const struct VP9_COMP *const cpi) {
|
| +static INLINE int is_two_pass_svc(const struct VP9_COMP *const cpi) {
|
| return cpi->use_svc &&
|
| - cpi->svc.number_temporal_layers == 1 &&
|
| - cpi->svc.number_spatial_layers > 1;
|
| + (cpi->svc.number_temporal_layers > 1 ||
|
| + cpi->svc.number_spatial_layers > 1) &&
|
| + (cpi->oxcf.pass == 1 || cpi->oxcf.pass == 2);
|
| }
|
|
|
| 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 &&
|
| - (!is_spatial_svc(cpi) ||
|
| + (!is_two_pass_svc(cpi) ||
|
| cpi->oxcf.ss_play_alternate[cpi->svc.spatial_layer_id]));
|
| }
|
|
|
| @@ -525,6 +522,10 @@
|
| return frame_index & 0x1;
|
| }
|
|
|
| +static INLINE int *cond_sad_list(const struct VP9_COMP *cpi, int *sad_list) {
|
| + return cpi->sf.mv.subpel_search_method != SUBPEL_TREE ? sad_list : NULL;
|
| +}
|
| +
|
| #ifdef __cplusplus
|
| } // extern "C"
|
| #endif
|
|
|