basic_in
populate_splformat_from_format(&spl_in->basic_in.format, pipe_ctx->plane_res.scl_data.format);
populate_splrect_from_rect(&spl_in->basic_in.clip_rect, &plane_state->clip_rect);
spl_in->basic_in.rotation = (enum spl_rotation_angle)plane_state->rotation;
populate_splrect_from_rect(&spl_in->basic_in.src_rect, &plane_state->src_rect);
populate_splrect_from_rect(&spl_in->basic_in.dst_rect, &plane_state->dst_rect);
spl_in->basic_in.horizontal_mirror = plane_state->horizontal_mirror;
spl_in->basic_in.num_h_slices_recout_width_align.use_recout_width_aligned = false;
spl_in->basic_in.num_h_slices_recout_width_align.num_slices_recout_width.mpc_num_h_slices =
spl_in->basic_in.mpc_h_slice_index = 0;
spl_in->basic_in.mpc_h_slice_index = resource_get_mpc_slice_index(pipe_ctx);
spl_in->basic_in.cositing = pipe_ctx->stream->ctx->dc->debug.force_cositing - 1;
spl_in->basic_in.cositing = plane_state->cositing;
spl_in->basic_in.tf_type = (enum spl_transfer_func_type) plane_state->in_transfer_func.type;
spl_in->basic_in.tf_predefined_type = (enum spl_transfer_func_predefined) plane_state->in_transfer_func.tf;
if (spl_is_video_format(spl_in->basic_in.format)) {
if (spl_is_yuv420(spl_in->basic_in.format))
if (spl_is_video_format(spl_in->basic_in.format)) {
spl_set_black_color_data(spl_in->basic_in.format, scl_black_color);
spl_opp_adjust_rect(&spl_scratch->scl_data.recout, &spl_in->basic_in.opp_recout_adjust);
spl_in->basic_in.format, setup, spl_in->sdr_white_level_nits);
spl_in->lls_pref, spl_in->basic_in.format, data, isharp_scale_ratio, setup,
spl_in->basic_in.num_h_slices_recout_width_align.use_recout_width_aligned;
spl_in->basic_in.num_h_slices_recout_width_align.num_slices_recout_width.mpc_num_h_slices;
spl_in->basic_in.num_h_slices_recout_width_align.num_slices_recout_width.mpc_recout_width_align;
int mpc_slice_idx = spl_in->basic_in.mpc_h_slice_index;
if (spl_in->basic_in.custom_width != 0) {
mpc_rec.width = spl_in->basic_in.custom_width;
mpc_rec.x = spl_in->basic_in.custom_x;
mpc_slice_idx > epimo && spl_in->basic_in.custom_width == 0) {
&spl_in->basic_in.clip_rect);
struct spl_rect surf_src = spl_in->basic_in.src_rect;
if (spl_in->basic_in.rotation == SPL_ROTATION_ANGLE_90 ||
spl_in->basic_in.rotation == SPL_ROTATION_ANGLE_270)
spl_in->basic_in.dst_rect.width));
spl_in->basic_in.dst_rect.height));
if (spl_is_yuv420(spl_in->basic_in.format)) {
if (spl_in->basic_in.rotation == SPL_ROTATION_ANGLE_90 ||
spl_in->basic_in.rotation == SPL_ROTATION_ANGLE_270) {
struct spl_rect src = spl_in->basic_in.src_rect;
int vpc_div = spl_is_subsampled_format(spl_in->basic_in.format) ? 2 : 1;
spl_in, &spl_in->basic_in.dst_rect);
spl_in->basic_in.rotation,
spl_in->basic_in.horizontal_mirror,
if (spl_is_subsampled_format(spl_in->basic_in.format)) {
switch (spl_in->basic_in.cositing) {
if (spl_in->basic_in.mpc_h_slice_index) {
SPL_ASSERT(spl_in->basic_in.rotation == SPL_ROTATION_ANGLE_0 ||
enum spl_pixel_format pixel_format = spl_in->basic_in.format;
spl_choose_lls_policy(spl_in->basic_in.format,
if (spl_is_video_format(spl_in->basic_in.format) && spl_in->is_fullscreen)
if (!spl_is_video_format(spl_in->basic_in.format) &&
else if ((spl_is_video_format(spl_in->basic_in.format) && !fullscreen) &&
bool is_subsampled = spl_is_subsampled_format(spl_in->basic_in.format);
struct basic_in basic_in;