static TX_TYPE get_tx_type(const MACROBLOCKD *xd, const BLOCKD *b) {
TX_TYPE tx_type = DCT_DCT;
- int ib = (b - xd->block);
+ int ib = (int)(b - xd->block);
if (ib >= 16)
return tx_type;
if (xd->mode_info_context->mbmi.txfm_size == TX_16X16) {
last_val = current_val;
ac_val = ac_qlookup[i];
- dc_qlookup[i] = (0.000000305 * ac_val * ac_val * ac_val) +
- (-0.00065 * ac_val * ac_val) +
- (0.9 * ac_val) + 0.5;
+ dc_qlookup[i] = (int)((0.000000305 * ac_val * ac_val * ac_val) +
+ (-0.00065 * ac_val * ac_val) +
+ (0.9 * ac_val) + 0.5);
if (dc_qlookup[i] < ACDC_MIN)
dc_qlookup[i] = ACDC_MIN;
}
{ \
int shift = VP9_BD_VALUE_SIZE - 8 - ((_count) + 8); \
int loop_end, x; \
- size_t bits_left = ((_bufend)-(_bufptr))*CHAR_BIT; \
+ int bits_left = (int)(((_bufend)-(_bufptr))*CHAR_BIT); \
\
x = shift + CHAR_BIT - bits_left; \
loop_end = 0; \
const int mis = pbi->common.mode_info_stride;
MACROBLOCKD *const xd = &pbi->mb;
- int_mv *const mv = &mbmi->mv;
+ int_mv *const mv = &mbmi->mv[0];
int mb_to_left_edge;
int mb_to_right_edge;
int mb_to_top_edge;
}
}
-void vp9_decode_mode_mvs_init(VP9D_COMP *pbi, BOOL_DECODER* const bc) {
+void vp9_decode_mode_mvs_init(VP9D_COMP* const pbi, BOOL_DECODER* const bc) {
VP9_COMMON *cm = &pbi->common;
vpx_memset(cm->mbskip_pred_probs, 0, sizeof(cm->mbskip_pred_probs));
mb_mode_mv_init(pbi, bc);
}
-void vp9_decode_mb_mode_mv(VP9D_COMP *pbi,
- MACROBLOCKD *xd,
+void vp9_decode_mb_mode_mv(VP9D_COMP* const pbi,
+ MACROBLOCKD* const xd,
int mb_row,
int mb_col,
BOOL_DECODER* const bc) {
"%d length", 1);
}
- if (vp9_start_decode(bool_decoder, partition, partition_size))
+ if (vp9_start_decode(bool_decoder,
+ partition, (unsigned int)partition_size))
vpx_internal_error(&pc->error, VPX_CODEC_MEM_ERROR,
"Failed to allocate bool decoder %d", 1);
}
init_frame(pbi);
- if (vp9_start_decode(&header_bc, data, first_partition_length_in_bytes))
+ if (vp9_start_decode(&header_bc, data,
+ (unsigned int)first_partition_length_in_bytes))
vpx_internal_error(&pc->error, VPX_CODEC_MEM_ERROR,
"Failed to allocate bool decoder 0");
if (pc->frame_type == KEY_FRAME) {
static const unsigned char cat6_prob[14] =
{ 254, 254, 252, 249, 243, 230, 196, 177, 153, 140, 133, 130, 129, 0 };
-void vp9_reset_mb_tokens_context(MACROBLOCKD *xd) {
+void vp9_reset_mb_tokens_context(MACROBLOCKD* const xd) {
/* Clear entropy contexts for Y2 blocks */
if ((xd->mode_info_context->mbmi.mode != B_PRED &&
xd->mode_info_context->mbmi.mode != I8X8_PRED &&
return c;
}
-int vp9_decode_mb_tokens_16x16(VP9D_COMP *pbi, MACROBLOCKD *xd,
+int vp9_decode_mb_tokens_16x16(VP9D_COMP* const pbi,
+ MACROBLOCKD* const xd,
BOOL_DECODER* const bc) {
ENTROPY_CONTEXT* const A = (ENTROPY_CONTEXT *)xd->above_context;
ENTROPY_CONTEXT* const L = (ENTROPY_CONTEXT *)xd->left_context;
return eobtotal;
}
-int vp9_decode_mb_tokens_8x8(VP9D_COMP *pbi, MACROBLOCKD *xd,
+int vp9_decode_mb_tokens_8x8(VP9D_COMP* const pbi,
+ MACROBLOCKD* const xd,
BOOL_DECODER* const bc) {
ENTROPY_CONTEXT *const A = (ENTROPY_CONTEXT *)xd->above_context;
ENTROPY_CONTEXT *const L = (ENTROPY_CONTEXT *)xd->left_context;
}
-int vp9_decode_mb_tokens(VP9D_COMP *dx, MACROBLOCKD *xd,
+int vp9_decode_mb_tokens(VP9D_COMP* const dx,
+ MACROBLOCKD* const xd,
BOOL_DECODER* const bc) {
ENTROPY_CONTEXT *const A = (ENTROPY_CONTEXT *)xd->above_context;
ENTROPY_CONTEXT *const L = (ENTROPY_CONTEXT *)xd->left_context;
static void update_refpred_stats(VP9_COMP *cpi) {
VP9_COMMON *const cm = &cpi->common;
int i;
- int tot_count;
vp9_prob new_pred_probs[PREDICTION_PROBS];
int old_cost, new_cost;
}
static void pack_inter_mode_mvs(VP9_COMP *const cpi, vp9_writer *const bc) {
- int i;
VP9_COMMON *const pc = &cpi->common;
const nmv_context *nmvc = &pc->fc.nmvc;
MACROBLOCK *x = &cpi->mb;
x->src.v_buffer += 16 * x->src.uv_stride - 8 * offset;
}
- cpi->tok_count = tp - cpi->tok;
+ cpi->tok_count = (unsigned int)(tp - cpi->tok);
}
vpx_usec_timer_mark(&emr_timer);
encode_frame_internal(cpi);
for (i = 0; i < NB_PREDICTION_TYPES; ++i) {
- const int diff = cpi->rd_comp_pred_diff[i] / cpi->common.MBs;
+ const int diff = (int)(cpi->rd_comp_pred_diff[i] / cpi->common.MBs);
cpi->rd_prediction_type_threshes[frame_type][i] += diff;
cpi->rd_prediction_type_threshes[frame_type][i] >>= 1;
}
int diff;
if (i == TX_MODE_SELECT)
pd -= RDCOST(cpi->mb.rdmult, cpi->mb.rddiv, 2048 * (TX_SIZE_MAX - 1), 0);
- diff = pd / cpi->common.MBs;
+ diff = (int)(pd / cpi->common.MBs);
cpi->rd_tx_select_threshes[frame_type][i] += diff;
cpi->rd_tx_select_threshes[frame_type][i] /= 2;
}
if (cur_b - mod_b - cost > 0) {
return cur_b - mod_b - cost;
} else {
- return -vp9_cost_zero(upd_p);
+ return 0 - vp9_cost_zero(upd_p);
}
}
void vp9_encode_nmv(vp9_writer* const w, const MV* const mv,
const MV* const ref, const nmv_context* const mvctx);
void vp9_encode_nmv_fp(vp9_writer* const w, const MV* const mv,
- const MV* const ref, const nmv_context *mvctx,
+ const MV* const ref, const nmv_context* const mvctx,
int usehp);
void vp9_build_nmv_cost_table(int *mvjoint,
int *mvcost[2],
- const nmv_context *mvctx,
+ const nmv_context* const mvctx,
int usehp,
int mvc_flag_v,
int mvc_flag_h);
FIRSTPASS_STATS fps;
fps.frame = cm->current_video_frame;
- fps.intra_error = intra_error >> 8;
- fps.coded_error = coded_error >> 8;
- fps.sr_coded_error = sr_coded_error >> 8;
+ fps.intra_error = (double)(intra_error >> 8);
+ fps.coded_error = (double)(coded_error >> 8);
+ fps.sr_coded_error = (double)(sr_coded_error >> 8);
weight = simple_weight(cpi->Source);
// TODO: handle the case when duration is set to 0, or something less
// than the full time between subsequent cpi->source_time_stamp s .
- fps.duration = cpi->source->ts_end
- - cpi->source->ts_start;
+ fps.duration = (double)(cpi->source->ts_end
+ - cpi->source->ts_start);
// don't want to do output stats with a stack variable!
memcpy(cpi->twopass.this_frame_stats,
double err_per_mb = section_err / num_mbs;
double err_correction_factor;
double speed_correction = 1.0;
- int overhead_bits_per_mb;
+ double overhead_bits_per_mb;
if (section_target_bandwitdh <= 0)
return cpi->twopass.maxq_max_limit; // Highest value allowed
err_correction_factor = 5.0;
bits_per_mb_at_this_q =
- vp9_bits_per_mb(INTER_FRAME, Q) + overhead_bits_per_mb;
+ vp9_bits_per_mb(INTER_FRAME, Q) + (int)overhead_bits_per_mb;
bits_per_mb_at_this_q = (int)(.5 + err_correction_factor *
(double)bits_per_mb_at_this_q);
// Give average a chance to settle though.
// PGW TODO.. This code is broken for the extended Q range
if ((cpi->ni_frames >
- ((unsigned int)cpi->twopass.total_stats->count >> 8)) &&
+ ((int)cpi->twopass.total_stats->count >> 8)) &&
(cpi->ni_frames > 150)) {
adjust_maxq_qrange(cpi);
}
double speed_correction = 1.0;
double clip_iiratio;
double clip_iifactor;
- int overhead_bits_per_mb;
+ double overhead_bits_per_mb;
target_norm_bits_per_mb = (section_target_bandwitdh < (1 << 20))
err_correction_factor = 5.0;
bits_per_mb_at_this_q =
- vp9_bits_per_mb(INTER_FRAME, Q) + overhead_bits_per_mb;
+ vp9_bits_per_mb(INTER_FRAME, Q) + (int)overhead_bits_per_mb;
bits_per_mb_at_this_q = (int)(.5 + err_correction_factor *
(double)bits_per_mb_at_this_q);
calc_frame_boost(cpi, &this_frame, this_frame_mv_in_out));
}
- *f_boost = boost_score;
+ *f_boost = (int)boost_score;
// Reset for backward looking loop
boost_score = 0.0;
calc_frame_boost(cpi, &this_frame, this_frame_mv_in_out));
}
- *b_boost = boost_score;
+ *b_boost = (int)boost_score;
arf_boost = (*f_boost + *b_boost);
if (arf_boost < ((b_frames + f_frames) * 20))
// Note: this_frame->frame has been updated in the loop
// so it now points at the ARF frame.
half_gf_int = cpi->baseline_gf_interval >> 1;
- frames_after_arf = cpi->twopass.total_stats->count -
- this_frame->frame - 1;
+ frames_after_arf = (int)(cpi->twopass.total_stats->count -
+ this_frame->frame - 1);
switch (cpi->oxcf.arnr_type) {
case 1: // Backward filter
(cpi->twopass.kf_group_error_left > 0)) {
cpi->twopass.gf_group_bits =
(int)((double)cpi->twopass.kf_group_bits *
- (gf_group_err / (double)cpi->twopass.kf_group_error_left));
+ (gf_group_err / cpi->twopass.kf_group_error_left));
} else
cpi->twopass.gf_group_bits = 0;
alt_gf_grp_bits =
(double)cpi->twopass.kf_group_bits *
(mod_frame_err * (double)cpi->baseline_gf_interval) /
- DOUBLE_DIVIDE_CHECK((double)cpi->twopass.kf_group_error_left);
+ DOUBLE_DIVIDE_CHECK(cpi->twopass.kf_group_error_left);
alt_gf_bits = (int)((double)boost * (alt_gf_grp_bits /
(double)allocation_chunks));
int alt_gf_bits =
(int)((double)cpi->twopass.kf_group_bits *
mod_frame_err /
- DOUBLE_DIVIDE_CHECK((double)cpi->twopass.kf_group_error_left));
+ DOUBLE_DIVIDE_CHECK(cpi->twopass.kf_group_error_left));
if (alt_gf_bits > gf_bits) {
gf_bits = alt_gf_bits;
{
// Adjust KF group bits and error remainin
- cpi->twopass.kf_group_error_left -= gf_group_err;
+ cpi->twopass.kf_group_error_left -= (int64_t)gf_group_err;
cpi->twopass.kf_group_bits -= cpi->twopass.gf_group_bits;
if (cpi->twopass.kf_group_bits < 0)
// of the group (except in Key frame case where this has already
// happened)
if (!cpi->source_alt_ref_pending && cpi->common.frame_type != KEY_FRAME)
- cpi->twopass.gf_group_error_left = gf_group_err - gf_first_frame_err;
+ cpi->twopass.gf_group_error_left = (int64_t)(gf_group_err
+ - gf_first_frame_err);
else
- cpi->twopass.gf_group_error_left = gf_group_err;
+ cpi->twopass.gf_group_error_left = (int64_t)gf_group_err;
cpi->twopass.gf_group_bits -= cpi->twopass.gf_bits - cpi->min_frame_bandwidth;
pct_extra = (boost - 100) / 50;
pct_extra = (pct_extra > 20) ? 20 : pct_extra;
- cpi->twopass.alt_extra_bits =
- (cpi->twopass.gf_group_bits * pct_extra) / 100;
+ cpi->twopass.alt_extra_bits = (int)
+ ((cpi->twopass.gf_group_bits * pct_extra) / 100);
cpi->twopass.gf_group_bits -= cpi->twopass.alt_extra_bits;
cpi->twopass.alt_extra_bits /=
((cpi->baseline_gf_interval - 1) >> 1);
avg_stats(§ionstats);
- cpi->twopass.section_intra_rating =
- sectionstats.intra_error /
- DOUBLE_DIVIDE_CHECK(sectionstats.coded_error);
+ cpi->twopass.section_intra_rating = (int)
+ (sectionstats.intra_error /
+ DOUBLE_DIVIDE_CHECK(sectionstats.coded_error));
reset_fpf_position(cpi, start_pos);
}
target_frame_size = max_bits;
if (target_frame_size > cpi->twopass.gf_group_bits)
- target_frame_size = cpi->twopass.gf_group_bits;
+ target_frame_size = (int)cpi->twopass.gf_group_bits;
}
- cpi->twopass.gf_group_error_left -= modified_err; // Adjust error remaining
+ // Adjust error remaining
+ cpi->twopass.gf_group_error_left -= (int64_t)modified_err;
cpi->twopass.gf_group_bits -= target_frame_size; // Adjust bits remaining
if (cpi->twopass.gf_group_bits < 0)
}
// Keep a globally available copy of this and the next frame's iiratio.
- cpi->twopass.this_iiratio = this_frame_intra_error /
- DOUBLE_DIVIDE_CHECK(this_frame_coded_error);
+ cpi->twopass.this_iiratio = (int)(this_frame_intra_error /
+ DOUBLE_DIVIDE_CHECK(this_frame_coded_error));
{
FIRSTPASS_STATS next_frame;
if (lookup_next_frame_stats(cpi, &next_frame) != EOF) {
- cpi->twopass.next_iiratio = next_frame.intra_error /
- DOUBLE_DIVIDE_CHECK(next_frame.coded_error);
+ cpi->twopass.next_iiratio = (int)(next_frame.intra_error /
+ DOUBLE_DIVIDE_CHECK(next_frame.coded_error));
}
}
// Set nominal per second bandwidth for this frame
- cpi->target_bandwidth = cpi->per_frame_bandwidth * cpi->output_frame_rate;
+ cpi->target_bandwidth = (int)(cpi->per_frame_bandwidth
+ * cpi->output_frame_rate);
if (cpi->target_bandwidth < 0)
cpi->target_bandwidth = 0;
// Account for mv, mode and other overheads.
- overhead_bits = estimate_modemvcost(
- cpi, cpi->twopass.total_left_stats);
+ overhead_bits = (int)estimate_modemvcost(
+ cpi, cpi->twopass.total_left_stats);
// Special case code for first frame.
if (cpi->common.current_video_frame == 0) {
avg_stats(§ionstats);
- cpi->twopass.section_intra_rating =
- sectionstats.intra_error
- / DOUBLE_DIVIDE_CHECK(sectionstats.coded_error);
+ cpi->twopass.section_intra_rating = (int)
+ (sectionstats.intra_error
+ / DOUBLE_DIVIDE_CHECK(sectionstats.coded_error));
}
// Reset the first pass file position
// Work out how many bits to allocate for the key frame itself
if (1) {
- int kf_boost = boost_score;
+ int kf_boost = (int)boost_score;
int allocation_chunks;
int alt_kf_bits;
}
cpi->twopass.kf_group_bits -= cpi->twopass.kf_bits;
- cpi->twopass.kf_bits += cpi->min_frame_bandwidth; // Add in the minimum frame allowance
-
- cpi->per_frame_bandwidth = cpi->twopass.kf_bits; // Peer frame bit target for this frame
- cpi->target_bandwidth = cpi->twopass.kf_bits * cpi->output_frame_rate; // Convert to a per second bitrate
+ // Add in the minimum frame allowance
+ cpi->twopass.kf_bits += cpi->min_frame_bandwidth;
+
+ // Peer frame bit target for this frame
+ cpi->per_frame_bandwidth = cpi->twopass.kf_bits;
+ // Convert to a per second bitrate
+ cpi->target_bandwidth = (int)(cpi->twopass.kf_bits *
+ cpi->output_frame_rate);
}
// Note the total error score of the kf group minus the key frame itself
vp9_lookahead_destroy(struct lookahead_ctx *ctx) {
if (ctx) {
if (ctx->buf) {
- int i;
+ unsigned int i;
for (i = 0; i < ctx->max_sz; i++)
vp8_yv12_de_alloc_frame_buffer(&ctx->buf[i].img);
unsigned int height,
unsigned int depth) {
struct lookahead_ctx *ctx = NULL;
- int i;
/* Clamp the lookahead queue depth */
if (depth < 1)
/* Allocate the lookahead structures */
ctx = calloc(1, sizeof(*ctx));
if (ctx) {
+ unsigned int i;
ctx->max_sz = depth;
ctx->buf = calloc(depth, sizeof(*ctx->buf));
if (!ctx->buf)
struct lookahead_entry *buf = NULL;
assert(index < ctx->max_sz);
- if (index < ctx->sz) {
+ if (index < (int)ctx->sz) {
index += ctx->read_idx;
- if (index >= ctx->max_sz)
+ if (index >= (int)ctx->max_sz)
index -= ctx->max_sz;
buf = ctx->buf + index;
}
// If the current best reference mv is not centred on 0,0 then do a 0,0 based search as well
if (ref_mv->as_int) {
- int tmp_err;
+ unsigned int tmp_err;
int_mv zero_ref_mv, tmp_mv;
zero_ref_mv.as_int = 0;
MACROBLOCK *const x = &cpi->mb;
MACROBLOCKD *const xd = &x->e_mbd;
MB_PREDICTION_MODE best_mode = -1, mode;
- int best_err = INT_MAX;
+ unsigned int best_err = INT_MAX;
// calculate SATD for each intra prediction mode;
// we're intentionally not doing 4x4, we just want a rough estimate
// being a GF - so exit if we don't look ahead beyond that
if (n_frames <= cpi->frames_till_gf_update_due)
return;
- if (n_frames > cpi->common.frames_till_alt_ref_frame)
+ if (n_frames > (int)cpi->common.frames_till_alt_ref_frame)
n_frames = cpi->common.frames_till_alt_ref_frame;
if (n_frames > MAX_LAG_BUFFERS)
n_frames = MAX_LAG_BUFFERS;
int tot_steps;
int_mv this_mv;
- int bestsad = INT_MAX;
+ unsigned int bestsad = INT_MAX;
int best_site = 0;
int last_site = 0;
unsigned char *bestaddress;
int_mv *best_mv = &d->bmi.as_mv.first;
int_mv this_mv;
- int bestsad = INT_MAX;
+ unsigned int bestsad = INT_MAX;
int r, c;
unsigned char *check_here;
unsigned char *bestaddress;
int_mv *best_mv = &d->bmi.as_mv.first;
int_mv this_mv;
- int bestsad = INT_MAX;
+ unsigned int bestsad = INT_MAX;
int r, c;
unsigned char *check_here;
skip_prob = 255;
base_skip_false_prob[i][1] = skip_prob;
- skip_prob = t * 0.75;
+ skip_prob = t * 3 / 4;
if (skip_prob < 1)
skip_prob = 1;
else if (skip_prob > 255)
skip_prob = 255;
base_skip_false_prob[i][2] = skip_prob;
- skip_prob = t * 1.25;
+ skip_prob = t * 5 / 4;
if (skip_prob < 1)
skip_prob = 1;
else if (skip_prob > 255)
int64_t llden = denom;
int64_t llval = val;
- return llval * llnum / llden;
+ return (int)(llval * llnum / llden);
}
vp9_init_first_pass(cpi);
} else if (cpi->pass == 2) {
size_t packet_sz = sizeof(FIRSTPASS_STATS);
- int packets = oxcf->two_pass_stats_in.sz / packet_sz;
+ int packets = (int)(oxcf->two_pass_stats_in.sz / packet_sz);
cpi->twopass.stats_in_start = oxcf->two_pass_stats_in.buf;
cpi->twopass.stats_in = cpi->twopass.stats_in_start;
for (i = 0; i < 4; i++)
pkt.data.psnr.psnr[i] = vp9_mse2psnr(pkt.data.psnr.samples[i], 255.0,
- pkt.data.psnr.sse[i]);
+ (double)pkt.data.psnr.sse[i]);
vpx_codec_pkt_list_add(cpi->output_pkt_list, &pkt);
}
// pass function that sets the target bandwidth so must set it here
if (cpi->common.refresh_alt_ref_frame) {
cpi->per_frame_bandwidth = cpi->twopass.gf_bits; // Per frame bit target for the alt ref frame
- cpi->target_bandwidth = cpi->twopass.gf_bits * cpi->output_frame_rate; // per second target bitrate
+ // per second target bitrate
+ cpi->target_bandwidth = (int)(cpi->twopass.gf_bits *
+ cpi->output_frame_rate);
}
// Default turn off buffer to buffer copying
- cpi->last_time_stamp_seen;
// do a step update if the duration changes by 10%
if (last_duration)
- step = ((this_duration - last_duration) * 10 / last_duration);
+ step = (int)((this_duration - last_duration) * 10 / last_duration);
}
if (this_duration) {
* frame rate. If we haven't seen 1 second yet, then average
* over the whole interval seen.
*/
- interval = cpi->source->ts_end - cpi->first_time_stamp_ever;
+ interval = (double)(cpi->source->ts_end
+ - cpi->first_time_stamp_ever);
if (interval > 10000000.0)
interval = 10000000;
int y_samples = orig->y_height * orig->y_width;
int uv_samples = orig->uv_height * orig->uv_width;
int t_samples = y_samples + 2 * uv_samples;
- int64_t sq_error;
+ double sq_error;
- ye = calc_plane_error(orig->y_buffer, orig->y_stride,
+ ye = (double)calc_plane_error(orig->y_buffer, orig->y_stride,
recon->y_buffer, recon->y_stride, orig->y_width,
orig->y_height);
- ue = calc_plane_error(orig->u_buffer, orig->uv_stride,
+ ue = (double)calc_plane_error(orig->u_buffer, orig->uv_stride,
recon->u_buffer, recon->uv_stride, orig->uv_width,
orig->uv_height);
- ve = calc_plane_error(orig->v_buffer, orig->uv_stride,
+ ve = (double)calc_plane_error(orig->v_buffer, orig->uv_stride,
recon->v_buffer, recon->uv_stride, orig->uv_width,
orig->uv_height);
#endif
vp9_clear_system_state();
- ye = calc_plane_error(orig->y_buffer, orig->y_stride,
+ ye = (double)calc_plane_error(orig->y_buffer, orig->y_stride,
pp->y_buffer, pp->y_stride, orig->y_width,
orig->y_height);
- ue = calc_plane_error(orig->u_buffer, orig->uv_stride,
+ ue = (double)calc_plane_error(orig->u_buffer, orig->uv_stride,
pp->u_buffer, pp->uv_stride, orig->uv_width,
orig->uv_height);
- ve = calc_plane_error(orig->v_buffer, orig->uv_stride,
+ ve = (double)calc_plane_error(orig->v_buffer, orig->uv_stride,
pp->v_buffer, pp->uv_stride, orig->uv_width,
orig->uv_height);
int maxq_min_limit;
int static_scene_max_gf_interval;
int kf_bits;
- int gf_group_error_left; // Remaining error from uncoded frames in a gf group. Two pass use only
+ // Remaining error from uncoded frames in a gf group. Two pass use only
+ int64_t gf_group_error_left;
// Projected total bits available for a key frame group of frames
int64_t kf_group_bits;
// Error score of frames still to be coded in kf group
int64_t kf_group_error_left;
- int gf_group_bits; // Projected Bits available for a group of frames including 1 GF or ARF
- int gf_bits; // Bits for the golden frame or ARF - 2 pass only
+ // Projected Bits available for a group of frames including 1 GF or ARF
+ int64_t gf_group_bits;
+ // Bits for the golden frame or ARF - 2 pass only
+ int gf_bits;
int alt_extra_bits;
int sr_update_lag;
target = cpi->per_frame_bandwidth;
if (cpi->oxcf.rc_max_intra_bitrate_pct) {
- unsigned int max_rate = cpi->per_frame_bandwidth
- * cpi->oxcf.rc_max_intra_bitrate_pct / 100;
+ int max_rate = cpi->per_frame_bandwidth
+ * cpi->oxcf.rc_max_intra_bitrate_pct / 100;
if (target > max_rate)
target = max_rate;
default_eob = 64;
if (type == PLANE_TYPE_Y_WITH_DC) {
BLOCKD *bb;
- int ib = (b - xd->block);
+ int ib = (int)(b - xd->block);
if (ib < 16) {
ib = (ib & 8) + ((ib & 4) >> 1);
bb = xd->block + ib;
#endif
}
*Rate = cost;
- *rate_y += tot_rate_y;
+ *rate_y = tot_rate_y;
*Distortion = distortion;
return RDCOST(mb->rdmult, mb->rddiv, cost, distortion);
}
if (mbmi->second_ref_frame)
x->partition_info->bmi[15].second_mv.as_int = bsi.second_mvs[15].as_int;
- return bsi.segment_rd;
+ return (int)(bsi.segment_rd);
}
/* Order arr in increasing order, original position stored in idx */
#endif
}
- if (sse < threshold) {
+ if ((int)sse < threshold) {
unsigned int q2dc = xd->block[24].dequant[0];
/* If there is no codeable 2nd order dc
or a very small uniform pixel change change */
second_ref, best_yrd, mdcounts,
&rate, &rate_y, &distortion,
&skippable,
- this_rd_thresh, seg_mvs,
+ (int)this_rd_thresh, seg_mvs,
txfm_cache);
rate2 += rate;
distortion2 += distortion;
}
end:
- store_coding_context(x, &x->mb_context[xd->mb_index], best_mode_index, &best_partition,
- &frame_best_ref_mv[xd->mode_info_context->mbmi.ref_frame],
- &frame_best_ref_mv[xd->mode_info_context->mbmi.second_ref_frame],
- best_pred_diff[0], best_pred_diff[1], best_pred_diff[2],
- best_txfm_diff);
+ store_coding_context(x, &x->mb_context[xd->mb_index],
+ best_mode_index, &best_partition,
+ &frame_best_ref_mv[xd->mode_info_context->mbmi.ref_frame],
+ &frame_best_ref_mv[xd->mode_info_context->mbmi.second_ref_frame],
+ (int)best_pred_diff[0], (int)best_pred_diff[1], (int)best_pred_diff[2],
+ best_txfm_diff);
}
#if CONFIG_SUPERBLOCKS
if (cfg->g_pass == VPX_RC_LAST_PASS) {
size_t packet_sz = sizeof(FIRSTPASS_STATS);
- int n_packets = cfg->rc_twopass_stats_in.sz / packet_sz;
+ int n_packets = (int)(cfg->rc_twopass_stats_in.sz / packet_sz);
FIRSTPASS_STATS *stats;
if (!cfg->rc_twopass_stats_in.buf)
pkt.data.frame.pts =
(dst_time_stamp * ctx->cfg.g_timebase.den + round)
/ ctx->cfg.g_timebase.num / 10000000;
- pkt.data.frame.duration =
- (delta * ctx->cfg.g_timebase.den + round)
- / ctx->cfg.g_timebase.num / 10000000;
+ pkt.data.frame.duration = (unsigned long)
+ ((delta * ctx->cfg.g_timebase.den + round)
+ / ctx->cfg.g_timebase.num / 10000000);
pkt.data.frame.flags = lib_flags << 16;
if (lib_flags & FRAMEFLAGS_KEY)
unsigned __int64 __rdtsc(void);
#pragma intrinsic(__rdtsc)
#endif
-static unsigned int
-x86_readtsc(void) {
-#if defined(__GNUC__) && __GNUC__
- unsigned int tsc;
- __asm__ __volatile__("rdtsc\n\t":"=a"(tsc):);
- return tsc;
-#else
-#if ARCH_X86_64
- return __rdtsc();
-#else
- __asm rdtsc;
-#endif
-#endif
-}
#if defined(__GNUC__) && __GNUC__