static enum ia_css_err
set_input_frame_buffer(const struct ia_css_frame *frame,
			unsigned pipe_num, unsigned stage_num)
{
	if (frame == NULL)
		return IA_CSS_ERR_INVALID_ARGUMENTS;

	switch (frame->info.format) {
	case IA_CSS_FRAME_FORMAT_QPLANE6:
	case IA_CSS_FRAME_FORMAT_YUV420_16:
	case IA_CSS_FRAME_FORMAT_RAW_PACKED:
	case IA_CSS_FRAME_FORMAT_RAW:
	case IA_CSS_FRAME_FORMAT_YUV420:
	case IA_CSS_FRAME_FORMAT_YUV_LINE:
	case IA_CSS_FRAME_FORMAT_NV12:
		break;
	default:
		return IA_CSS_ERR_INVALID_ARGUMENTS;
	}
	sh_css_copy_frame_to_spframe(&sh_css_sp_stage.frames.in, frame,
					pipe_num, stage_num,
					sh_css_frame_in);

	return IA_CSS_SUCCESS;
}
Exemplo n.º 2
0
static enum ia_css_err
set_view_finder_buffer(const struct ia_css_frame *frame,
			unsigned pipe_num, unsigned stage_num)
{
	if (frame == NULL)
		return IA_CSS_ERR_INVALID_ARGUMENTS;

	switch (frame->info.format) {
	// the dual output pin
	case IA_CSS_FRAME_FORMAT_NV12:
	case IA_CSS_FRAME_FORMAT_YUYV:
  case IA_CSS_FRAME_FORMAT_UYVY:

	// for vf_veceven
	case IA_CSS_FRAME_FORMAT_YUV_LINE:
		break;
	default:
		return IA_CSS_ERR_INVALID_ARGUMENTS;
	}

	sh_css_copy_frame_to_spframe(&sh_css_sp_stage.frames.out_vf, frame,
					pipe_num, stage_num,
					sh_css_frame_out_vf);
	return IA_CSS_SUCCESS;
}
Exemplo n.º 3
0
static enum sh_css_err
set_view_finder_buffer(const struct sh_css_frame *frame,
			unsigned pipe_num, unsigned stage_num)
{
	if (frame == NULL)
		return sh_css_err_invalid_arguments;

	if (frame->info.format != SH_CSS_FRAME_FORMAT_YUV_LINE)
		return sh_css_err_unsupported_frame_format;
	sh_css_copy_frame_to_spframe(&sh_css_sp_stage.frames.out_vf, frame,
					pipe_num, stage_num,
					sh_css_frame_out_vf);
	return sh_css_success;
}
Exemplo n.º 4
0
static enum sh_css_err
set_capture_pp_frame_buffer(const struct sh_css_frame *frame,
			unsigned pipe_num, unsigned stage_num)
{
	if (frame == NULL)
		return sh_css_err_invalid_arguments;

	if (frame->info.format != SH_CSS_FRAME_FORMAT_YUV420)
		return sh_css_err_unsupported_frame_format;
	sh_css_copy_frame_to_spframe(&sh_css_sp_stage.frames.extra, frame,
					pipe_num, stage_num,
					sh_css_frame_extra);
	return sh_css_success;
}
Exemplo n.º 5
0
static enum ia_css_err
set_capture_pp_frame_buffer(const struct ia_css_frame *frame,
			unsigned pipe_num, unsigned stage_num)
{
	if (frame == NULL)
		return IA_CSS_ERR_INVALID_ARGUMENTS;

	if (frame->info.format != IA_CSS_FRAME_FORMAT_YUV420)
		return IA_CSS_ERR_INVALID_ARGUMENTS;
	sh_css_copy_frame_to_spframe(&sh_css_sp_stage.frames.extra, frame,
					pipe_num, stage_num,
					sh_css_frame_extra);
	return IA_CSS_SUCCESS;
}
Exemplo n.º 6
0
static enum ia_css_err
set_tnr_out_frame_buffer(const struct ia_css_frame *frame,
			unsigned pipe_num, unsigned stage_num)
{
	if (frame == NULL)
		return IA_CSS_ERR_INVALID_ARGUMENTS;

	if (frame->info.format != IA_CSS_FRAME_FORMAT_YUV_LINE)
		return IA_CSS_ERR_INVALID_ARGUMENTS;
	sh_css_copy_frame_to_spframe(NULL, frame,
					pipe_num, stage_num,
					sh_css_frame_tnr_out);
	return IA_CSS_SUCCESS;
}
static enum ia_css_err
set_tnr_frame_buffer(const struct ia_css_frame *frame,
		     unsigned pipe_num, unsigned stage_num, unsigned index)
{
	enum sh_css_frame_id id = sh_css_frame_tnr_0 + index;

	if (frame == NULL)
		return IA_CSS_ERR_INVALID_ARGUMENTS;

	if (frame->info.format != IA_CSS_FRAME_FORMAT_YUV_LINE)
		return IA_CSS_ERR_INVALID_ARGUMENTS;

	sh_css_copy_frame_to_spframe(&sh_css_sp_stage.frames.tnr_frames[index],
				     frame, pipe_num, stage_num, id);
	return IA_CSS_SUCCESS;
}
Exemplo n.º 8
0
static enum ia_css_err
set_ref_extra_frame_buffer(const struct ia_css_frame *frame,
			unsigned pipe_num, unsigned stage_num)
{
sh_css_dtrace(SH_DBG_TRACE_PRIVATE, "set_ref_extra_frame_buffer() %08x\n",
			frame);		

	if (frame == NULL)
		return IA_CSS_ERR_INVALID_ARGUMENTS;
	
	if (frame->info.format != IA_CSS_FRAME_FORMAT_YUV420)
		return IA_CSS_ERR_INVALID_ARGUMENTS;
	sh_css_copy_frame_to_spframe(NULL, frame,
					pipe_num, stage_num,
					sh_css_frame_ref_extra);
	return IA_CSS_SUCCESS;
}
static enum ia_css_err
set_output_frame_buffer(const struct ia_css_frame *frame,
			unsigned pipe_num, unsigned stage_num)
{
	if (frame == NULL)
		return IA_CSS_ERR_INVALID_ARGUMENTS;

	switch (frame->info.format) {
	case IA_CSS_FRAME_FORMAT_YUV420:
	case IA_CSS_FRAME_FORMAT_YUV422:
	case IA_CSS_FRAME_FORMAT_YUV444:
	case IA_CSS_FRAME_FORMAT_YV12:
	case IA_CSS_FRAME_FORMAT_YV16:
	case IA_CSS_FRAME_FORMAT_YUV420_16:
	case IA_CSS_FRAME_FORMAT_YUV422_16:
	case IA_CSS_FRAME_FORMAT_NV11:
	case IA_CSS_FRAME_FORMAT_NV12:
	case IA_CSS_FRAME_FORMAT_NV16:
	case IA_CSS_FRAME_FORMAT_NV21:
	case IA_CSS_FRAME_FORMAT_NV61:
	case IA_CSS_FRAME_FORMAT_YUYV:
	case IA_CSS_FRAME_FORMAT_UYVY:
	case IA_CSS_FRAME_FORMAT_CSI_MIPI_YUV420_8:
	case IA_CSS_FRAME_FORMAT_YUV_LINE:
	case IA_CSS_FRAME_FORMAT_RGB565:
	case IA_CSS_FRAME_FORMAT_RGBA888:
	case IA_CSS_FRAME_FORMAT_PLANAR_RGB888:
	case IA_CSS_FRAME_FORMAT_RAW:
	case IA_CSS_FRAME_FORMAT_RAW_PACKED:
	case IA_CSS_FRAME_FORMAT_QPLANE6:
	case IA_CSS_FRAME_FORMAT_BINARY_8:
		break;
	default:
		return IA_CSS_ERR_INVALID_ARGUMENTS;
	}
	sh_css_copy_frame_to_spframe(&sh_css_sp_stage.frames.out, frame,
					pipe_num, stage_num,
					sh_css_frame_out);
	return IA_CSS_SUCCESS;
}
Exemplo n.º 10
0
static enum sh_css_err
set_output_frame_buffer(const struct sh_css_frame *frame,
			unsigned pipe_num, unsigned stage_num)
{
	if (frame == NULL)
		return sh_css_err_invalid_arguments;

	switch (frame->info.format) {
	case SH_CSS_FRAME_FORMAT_YUV420:
	case SH_CSS_FRAME_FORMAT_YUV422:
	case SH_CSS_FRAME_FORMAT_YUV444:
	case SH_CSS_FRAME_FORMAT_YV12:
	case SH_CSS_FRAME_FORMAT_YV16:
	case SH_CSS_FRAME_FORMAT_YUV420_16:
	case SH_CSS_FRAME_FORMAT_YUV422_16:
	case SH_CSS_FRAME_FORMAT_NV11:
	case SH_CSS_FRAME_FORMAT_NV12:
	case SH_CSS_FRAME_FORMAT_NV16:
	case SH_CSS_FRAME_FORMAT_NV21:
	case SH_CSS_FRAME_FORMAT_NV61:
	case SH_CSS_FRAME_FORMAT_YUYV:
	case SH_CSS_FRAME_FORMAT_UYVY:
	case SH_CSS_FRAME_FORMAT_YUV_LINE:
	case SH_CSS_FRAME_FORMAT_RGB565:
	case SH_CSS_FRAME_FORMAT_RGBA888:
	case SH_CSS_FRAME_FORMAT_PLANAR_RGB888:
	case SH_CSS_FRAME_FORMAT_RAW:
	case SH_CSS_FRAME_FORMAT_QPLANE6:
	case SH_CSS_FRAME_FORMAT_BINARY_8:
		break;
	default:
		return sh_css_err_unsupported_frame_format;
	}
	sh_css_copy_frame_to_spframe(&sh_css_sp_stage.frames.out, frame,
					pipe_num, stage_num,
					sh_css_frame_out);
	return sh_css_success;
}
Exemplo n.º 11
0
static enum sh_css_err
set_input_frame_buffer(const struct sh_css_frame *frame,
			unsigned pipe_num, unsigned stage_num)
{
	if (frame == NULL)
		return sh_css_err_invalid_arguments;

	switch (frame->info.format) {
	case SH_CSS_FRAME_FORMAT_QPLANE6:
	case SH_CSS_FRAME_FORMAT_YUV420_16:
	case SH_CSS_FRAME_FORMAT_RAW:
	case SH_CSS_FRAME_FORMAT_YUV420:
	case SH_CSS_FRAME_FORMAT_YUV_LINE:
	case SH_CSS_FRAME_FORMAT_NV12:
		break;
	default:
		return sh_css_err_unsupported_frame_format;
	}
	sh_css_copy_frame_to_spframe(&sh_css_sp_stage.frames.in, frame,
					pipe_num, stage_num,
					sh_css_frame_in);

	return sh_css_success;
}