Merge "Modify vp9_setup_interp_filters function" into experimental
This commit is contained in:
Коммит
dcd3a5c055
|
@ -206,20 +206,6 @@ void vp9_setup_scale_factors_for_frame(struct scale_factors *scale,
|
|||
void vp9_setup_interp_filters(MACROBLOCKD *xd,
|
||||
INTERPOLATIONFILTERTYPE mcomp_filter_type,
|
||||
VP9_COMMON *cm) {
|
||||
int i;
|
||||
|
||||
/* Calculate scaling factors for each of the 3 available references */
|
||||
for (i = 0; i < 3; ++i) {
|
||||
if (cm->active_ref_idx[i] >= NUM_YV12_BUFFERS) {
|
||||
memset(&cm->active_ref_scale[i], 0, sizeof(cm->active_ref_scale[i]));
|
||||
continue;
|
||||
}
|
||||
|
||||
vp9_setup_scale_factors_for_frame(&cm->active_ref_scale[i],
|
||||
&cm->yv12_fb[cm->active_ref_idx[i]],
|
||||
cm->width, cm->height);
|
||||
}
|
||||
|
||||
if (xd->mode_info_context) {
|
||||
MB_MODE_INFO *mbmi = &xd->mode_info_context->mbmi;
|
||||
|
||||
|
@ -229,7 +215,6 @@ void vp9_setup_interp_filters(MACROBLOCKD *xd,
|
|||
cm->active_ref_scale);
|
||||
}
|
||||
|
||||
|
||||
switch (mcomp_filter_type) {
|
||||
case EIGHTTAP:
|
||||
case SWITCHABLE:
|
||||
|
|
|
@ -1103,13 +1103,6 @@ static void init_frame(VP9D_COMP *pbi) {
|
|||
vp9_setup_past_independence(pc, xd);
|
||||
}
|
||||
|
||||
if (pc->frame_type != KEY_FRAME) {
|
||||
pc->mcomp_filter_type = pc->use_bilinear_mc_filter ? BILINEAR : EIGHTTAP;
|
||||
|
||||
// To enable choice of different interpolation filters
|
||||
vp9_setup_interp_filters(xd, pc->mcomp_filter_type, pc);
|
||||
}
|
||||
|
||||
xd->mode_info_context = pc->mi;
|
||||
xd->prev_mode_info_context = pc->prev_mi;
|
||||
xd->frame_type = pc->frame_type;
|
||||
|
@ -1767,6 +1760,19 @@ int vp9_decode_frame(VP9D_COMP *pbi, const uint8_t **p_data_end) {
|
|||
#if CONFIG_COMP_INTERINTRA_PRED
|
||||
pc->use_interintra = vp9_read_bit(&header_bc);
|
||||
#endif
|
||||
|
||||
/* Calculate scaling factors for each of the 3 available references */
|
||||
for (i = 0; i < 3; ++i) {
|
||||
if (pc->active_ref_idx[i] >= NUM_YV12_BUFFERS) {
|
||||
memset(&pc->active_ref_scale[i], 0, sizeof(pc->active_ref_scale[i]));
|
||||
continue;
|
||||
}
|
||||
|
||||
vp9_setup_scale_factors_for_frame(&pc->active_ref_scale[i],
|
||||
&pc->yv12_fb[pc->active_ref_idx[i]],
|
||||
pc->width, pc->height);
|
||||
}
|
||||
|
||||
// To enable choice of different interploation filters
|
||||
vp9_setup_interp_filters(xd, pc->mcomp_filter_type, pc);
|
||||
}
|
||||
|
|
|
@ -3640,6 +3640,7 @@ int vp9_get_compressed_data(VP9_PTR ptr, unsigned int *frame_flags,
|
|||
VP9_COMMON *cm = &cpi->common;
|
||||
struct vpx_usec_timer cmptimer;
|
||||
YV12_BUFFER_CONFIG *force_src_buffer = NULL;
|
||||
int i;
|
||||
|
||||
if (!cpi)
|
||||
return -1;
|
||||
|
@ -3784,7 +3785,20 @@ int vp9_get_compressed_data(VP9_PTR ptr, unsigned int *frame_flags,
|
|||
cm->width, cm->height,
|
||||
VP9BORDERINPIXELS);
|
||||
|
||||
/* Calculate scaling factors for each of the 3 available references */
|
||||
for (i = 0; i < 3; ++i) {
|
||||
if (cm->active_ref_idx[i] >= NUM_YV12_BUFFERS) {
|
||||
memset(&cm->active_ref_scale[i], 0, sizeof(cm->active_ref_scale[i]));
|
||||
continue;
|
||||
}
|
||||
|
||||
vp9_setup_scale_factors_for_frame(&cm->active_ref_scale[i],
|
||||
&cm->yv12_fb[cm->active_ref_idx[i]],
|
||||
cm->width, cm->height);
|
||||
}
|
||||
|
||||
vp9_setup_interp_filters(&cpi->mb.e_mbd, DEFAULT_INTERP_FILTER, cm);
|
||||
|
||||
if (cpi->pass == 1) {
|
||||
Pass1Encode(cpi, size, dest, frame_flags);
|
||||
} else if (cpi->pass == 2) {
|
||||
|
|
Загрузка…
Ссылка в новой задаче