VP10_COMMON *const cm = &cpi->common;
const int tile_cols = 1 << cm->log2_tile_cols;
const VPxWorkerInterface *const winterface = vpx_get_worker_interface();
- const int num_workers = MIN(cpi->oxcf.max_threads, tile_cols);
+ const int num_workers = VPXMIN(cpi->oxcf.max_threads, tile_cols);
int i;
vp10_init_tile_data(cpi);
if (cpi->num_workers == 0) {
int allocated_workers = num_workers;
- // While using SVC, we need to allocate threads according to the highest
- // resolution.
- if (cpi->use_svc) {
- int max_tile_cols = get_max_tile_cols(cpi);
- allocated_workers = MIN(cpi->oxcf.max_threads, max_tile_cols);
- }
-
CHECK_MEM_ERROR(cm, cpi->workers,
vpx_malloc(allocated_workers * sizeof(*cpi->workers)));
memcpy(thread_data->td->counts, &cpi->common.counts,
sizeof(cpi->common.counts));
}
-
- // Handle use_nonrd_pick_mode case.
- if (cpi->sf.use_nonrd_pick_mode) {
- MACROBLOCK *const x = &thread_data->td->mb;
- MACROBLOCKD *const xd = &x->e_mbd;
- struct macroblock_plane *const p = x->plane;
- struct macroblockd_plane *const pd = xd->plane;
- PICK_MODE_CONTEXT *ctx = &thread_data->td->pc_root->none;
- int j;
-
- for (j = 0; j < MAX_MB_PLANE; ++j) {
- p[j].coeff = ctx->coeff_pbuf[j][0];
- p[j].qcoeff = ctx->qcoeff_pbuf[j][0];
- pd[j].dqcoeff = ctx->dqcoeff_pbuf[j][0];
- p[j].eobs = ctx->eobs_pbuf[j][0];
- }
- }
}
// Encode a frame