basic_out
spl_in->basic_out.view_format = (enum spl_view_3d)stream->view_format;
populate_splrect_from_rect(&spl_in->basic_out.src_rect, &stream->src);
populate_splrect_from_rect(&spl_in->basic_out.dst_rect, &stream->dst);
populate_splrect_from_rect(&spl_in->basic_out.odm_slice_rect, &odm_slice_src);
spl_in->basic_out.odm_combine_factor = 0;
spl_in->basic_out.output_size.width =
spl_in->basic_out.output_size.height =
spl_in->basic_out.max_downscale_src_width =
spl_in->basic_out.always_scale = pipe_ctx->stream->ctx->dc->debug.always_scale;
spl_in->basic_out.alpha_en = pipe_ctx->plane_res.scl_data.lb_params.alpha_en;
spl_in->basic_out.use_two_pixels_per_container = pipe_ctx->stream_res.tg->funcs->is_two_pixels_per_container(&stream->timing);
spl_in->callbacks.spl_calc_lb_num_partitions(spl_in->basic_out.alpha_en, &spl_scratch->scl_data,
if (!*enable_isharp && !spl_in->basic_out.always_scale) {
const struct spl_rect *stream_src = &spl_in->basic_out.src_rect;
const struct spl_rect *stream_dst = &spl_in->basic_out.dst_rect;
spl_in->basic_out.max_downscale_src_width, spl_in,
spl_in->basic_out.view_format != SPL_VIEW_3D_SIDE_BY_SIDE ||
if (spl_in->basic_out.view_format == SPL_VIEW_3D_TOP_AND_BOTTOM) {
int odm_slice_count = spl_in->basic_out.odm_combine_factor;
int h_active = spl_in->basic_out.output_size.width;
int v_active = spl_in->basic_out.output_size.height;
if (spl_in->basic_out.odm_combine_factor > 0) {
if (spl_in->basic_out.use_two_pixels_per_container && (odm_slice_width % 2))
return spl_in->basic_out.odm_slice_rect;
&spl_in->basic_out.dst_rect);
const int in_w = spl_in->basic_out.src_rect.width;
const int in_h = spl_in->basic_out.src_rect.height;
const int out_w = spl_in->basic_out.dst_rect.width;
const int out_h = spl_in->basic_out.dst_rect.height;
if (spl_in->basic_out.view_format == SPL_VIEW_3D_SIDE_BY_SIDE)
else if (spl_in->basic_out.view_format == SPL_VIEW_3D_TOP_AND_BOTTOM)
(spl_in->basic_out.view_format != SPL_VIEW_3D_TOP_AND_BOTTOM &&
spl_in->basic_out.view_format != SPL_VIEW_3D_SIDE_BY_SIDE));
if (spl_in->basic_out.view_format == SPL_VIEW_3D_TOP_AND_BOTTOM)
else if (spl_in->basic_out.view_format == SPL_VIEW_3D_SIDE_BY_SIDE)
&& !spl_in->basic_out.always_scale
if (data->ratios.horz.value == one && data->ratios.vert.value == one && !spl_in->basic_out.always_scale)
struct basic_out basic_out;