📄 imgproc.c
字号:
return NO_ERROR;
}
#if 0
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
#endif
/*
* FUNCTION
* IMGPROC_Start
*
* DESCRIPTION
* Trigger the image processor to work(for both pixel mode and filter mode)
*
* CALLS
*
* PARAMETERS
*
* RETURNS
* None
*
* GLOBALS AFFECTED
* None
*/
kal_int32 API IMGPROC_Start(MMDI_SCENERIO_ID owner)
{
#if (defined(MT6219)||defined(MT6226)||defined(MT6226M)||defined(MT6227))
kal_uint32 reg = 0;
ASSERT(imgproc_dcb.owner == owner);
ASSERT(imgproc_dcb.state == IMGPROC_READY);
if(imgproc_dcb.mask != FILTER_NONE && imgproc_dcb.feature != 0)
ASSERT(0);
imgproc_dcb.state = IMGPROC_BUSY;
reg = (imgproc_dcb.feature) | (imgproc_dcb.mask) | (imgproc_dcb.gmode);
DRV_WriteReg(IMGPROC_IMAGE_CON, reg);
if(imgproc_dcb.mask != FILTER_NONE)
{
IMGPROEC_ENABLE_INT();
IMGPROC_START_FILTER();
}
#endif
return NO_ERROR;
}
/*
* FUNCTION
* IMGPROC_Stop
*
* DESCRIPTION
* 1. for pixel mode, it stops all effects
* 2. for filter mode, it stops the process of the filtering
* CALLS
*
* PARAMETERS
*
* RETURNS
* None
*
* GLOBALS AFFECTED
* None
*/
kal_int32 API IMGPROC_Stop(MMDI_SCENERIO_ID owner)
{
#if (defined(MT6219)||defined(MT6226)||defined(MT6226M)||defined(MT6227))
ASSERT(imgproc_dcb.owner == owner);
if(imgproc_dcb.mask == FILTER_NONE)
{ // pixel
DRV_Reg(IMGPROC_IMAGE_CON) &= 0xff00;
}
else // filtering
{
IMGPROC_STOP_FILTER();
}
imgproc_dcb.state = IMGPROC_READY;
#endif
return NO_ERROR;
}
/*
* FUNCTION
* IMGPROC_WaitComplete
*
* DESCRIPTION
* Wait the filtering process to complete(stands for filter mode)
*
* CALLS
*
* PARAMETERS
*
* RETURNS
* None
*
* GLOBALS AFFECTED
* None
*/
// blocking function
kal_int32 API IMGPROC_WaitComplete(MMDI_SCENERIO_ID owner)
{
kal_uint32 flags;
kal_status status;
#if (defined(MT6219)||defined(MT6226)||defined(MT6226M)||defined(MT6227))
ASSERT(owner == imgproc_dcb.owner);
ASSERT(imgproc_dcb.mask != FILTER_NONE);
status = kal_retrieve_eg_events(IMGPROC_Events,IMGPROC_EVENT ,KAL_AND_CONSUME,&flags,KAL_SUSPEND);
ASSERT(status == KAL_SUCCESS);
#elif (defined(MT6228)||defined(MT6229)||defined(MT6230))
status = kal_retrieve_eg_events(IMGPROC_Events,IMGPROC_EVENT ,KAL_AND_CONSUME,&flags,KAL_SUSPEND);
if (status!=KAL_SUCCESS)
ASSERT(0);
#endif
return NO_ERROR;
}
/*
* FUNCTION
* IMGPROC_SetHUE
*
* DESCRIPTION
* set the parameters for HUE adjustment
*
* CALLS
*
* PARAMETERS
*
* RETURNS
* None
*
* GLOBALS AFFECTED
* None
*/
kal_int32 API IMGPROC_SetHUE(MMDI_SCENERIO_ID owner, IMGPROC_HUE_STURCT* s)
{
#if (defined(MT6219)||defined(MT6226)||defined(MT6226M)||defined(MT6227))
ASSERT(owner == imgproc_dcb.owner);
#elif (defined(MT6228)||defined(MT6229)||defined(MT6230))
if (current_image_data_path_owner!=owner)
ASSERT(0);
#endif
DRV_WriteReg(IMGPROC_HUE11,s->c11);
DRV_WriteReg(IMGPROC_HUE12,s->c12);
DRV_WriteReg(IMGPROC_HUE21,s->c21);
DRV_WriteReg(IMGPROC_HUE22,s->c22);
return NO_ERROR;
}
/*
* FUNCTION
* IMGPROC_SetSAT
*
* DESCRIPTION
* set the saturations
*
* CALLS
*
* PARAMETERS
*
* RETURNS
* None
*
* GLOBALS AFFECTED
* None
*/
kal_int32 API IMGPROC_SetSAT(MMDI_SCENERIO_ID owner, kal_uint8 sat)
{
#if (defined(MT6219)||defined(MT6226)||defined(MT6226M)||defined(MT6227))
ASSERT(owner == imgproc_dcb.owner);
#elif (defined(MT6228)||defined(MT6229)||defined(MT6230))
if (current_image_data_path_owner!=owner)
ASSERT(0);
#endif
DRV_WriteReg(IMGPROC_SAT,sat);
return NO_ERROR;
}
/*
* FUNCTION
* IMGPROC_SetBrightContrast
*
* DESCRIPTION
* Set the parameters for brightness and contrast
*
* CALLS
*
* PARAMETERS
*
* RETURNS
* None
*
* GLOBALS AFFECTED
* None
*/
kal_int32 API IMGPROC_SetBrightContrast(MMDI_SCENERIO_ID owner, IMGPROC_BRI_CON_STURCT* s)
{
#if (defined(MT6219)||defined(MT6226)||defined(MT6226M)||defined(MT6227))
ASSERT(owner == imgproc_dcb.owner);
#elif (defined(MT6228)||defined(MT6229)||defined(MT6230))
if (current_image_data_path_owner!=owner)
ASSERT(0);
#endif
DRV_WriteReg(IMGPROC_BRIADJ1,s->bright);
DRV_WriteReg(IMGPROC_BRIADJ2,s->dark);
DRV_WriteReg(IMGPROC_CONADJ,s->contrast);
return NO_ERROR;
}
/*
* FUNCTION
* IMGPROC_SetMask
*
* DESCRIPTION
* Set the content of the mask(for filtering mode)
*
* CALLS
*
* PARAMETERS
*
* RETURNS
* None
*
* GLOBALS AFFECTED
* None
*/
kal_int32 API IMGPROC_SetMaskContent(MMDI_SCENERIO_ID owner, IMGPROC_MASK_STURCT* s)
{
#if (defined(MT6219)||defined(MT6226)||defined(MT6226M)||defined(MT6227))
ASSERT(owner == imgproc_dcb.owner);
#elif (defined(MT6228)||defined(MT6229)||defined(MT6230))
if (current_image_data_path_owner!=owner)
ASSERT(0);
#endif
DRV_WriteReg(IMGPROC_MASK11,s->c11);
DRV_WriteReg(IMGPROC_MASK12,s->c12);
DRV_WriteReg(IMGPROC_MASK13,s->c13);
DRV_WriteReg(IMGPROC_MASK21,s->c21);
DRV_WriteReg(IMGPROC_MASK22,s->c22);
DRV_WriteReg(IMGPROC_MASK23,s->c23);
DRV_WriteReg(IMGPROC_MASK31,s->c31);
DRV_WriteReg(IMGPROC_MASK32,s->c32);
DRV_WriteReg(IMGPROC_MASK33,s->c33);
return NO_ERROR;
}
/*
* FUNCTION
* IMGPROC_SetMaskScaleDown
*
* DESCRIPTION
* set the parameter of mask scale down
*
* CALLS
*
* PARAMETERS
*
* RETURNS
* None
*
* GLOBALS AFFECTED
* None
*/
kal_int32 API IMGPROC_SetMaskScaleDown(MMDI_SCENERIO_ID owner, kal_uint8 scale)
{
#if (defined(MT6219)||defined(MT6226)||defined(MT6226M)||defined(MT6227))
ASSERT(owner == imgproc_dcb.owner);
#elif (defined(MT6228)||defined(MT6229)||defined(MT6230))
if (current_image_data_path_owner!=owner)
ASSERT(0);
#endif
DRV_WriteReg(IMGPROC_SCALE,scale);
return NO_ERROR;
}
/*
* FUNCTION
* IMGPROC_SetColorize
*
* DESCRIPTION
* Set the parameters for colorization
*
* CALLS
*
* PARAMETERS
*
* RETURNS
* None
*
* GLOBALS AFFECTED
* None
*/
kal_int32 API IMGPROC_SetColorize(MMDI_SCENERIO_ID owner, IMGPROC_COLORIZE_STRUCT* s)
{
#if (defined(MT6219)||defined(MT6226)||defined(MT6226M)||defined(MT6227))
ASSERT(owner == imgproc_dcb.owner);
#elif (defined(MT6228)||defined(MT6229)||defined(MT6230))
if (current_image_data_path_owner!=owner)
ASSERT(0);
#endif
DRV_WriteReg(IMGPROC_COLOR1R_OFFX,s->r1x);
DRV_WriteReg(IMGPROC_COLOR2R_OFFX,s->r2x);
DRV_WriteReg(IMGPROC_COLOR1G_OFFX,s->g1x);
DRV_WriteReg(IMGPROC_COLOR2G_OFFX,s->g2x);
DRV_WriteReg(IMGPROC_COLOR1B_OFFX,s->b1x);
DRV_WriteReg(IMGPROC_COLOR2B_OFFX,s->b2x);
DRV_WriteReg(IMGPROC_COLOR1R_OFFY,s->r1y);
DRV_WriteReg(IMGPROC_COLOR2R_OFFY,s->r2y);
DRV_WriteReg(IMGPROC_COLOR1G_OFFY,s->g1y);
DRV_WriteReg(IMGPROC_COLOR2G_OFFY,s->g2y);
DRV_WriteReg(IMGPROC_COLOR1B_OFFY,s->b1y);
DRV_WriteReg(IMGPROC_COLOR2B_OFFY,s->b2y);
DRV_WriteReg(IMGPROC_COLOR0R_SLP,s->r0slp);
DRV_WriteReg(IMGPROC_COLOR1R_SLP,s->r1slp);
DRV_WriteReg(IMGPROC_COLOR2R_SLP,s->r2slp);
DRV_WriteReg(IMGPROC_COLOR0G_SLP,s->g0slp);
DRV_WriteReg(IMGPROC_COLOR1G_SLP,s->g1slp);
DRV_WriteReg(IMGPROC_COLOR2G_SLP,s->g2slp);
DRV_WriteReg(IMGPROC_COLOR0B_SLP,s->b0slp);
DRV_WriteReg(IMGPROC_COLOR1B_SLP,s->b1slp);
DRV_WriteReg(IMGPROC_COLOR2B_SLP,s->b2slp);
return NO_ERROR;
}
/*
* FUNCTION
* IMGPROC_SetGamma
*
* DESCRIPTION
* Set the parameters for gamma correction
*
* CALLS
*
* PARAMETERS
*
* RETURNS
* None
*
* GLOBALS AFFECTED
* None
*/
kal_int32 API IMGPROC_SetGamma(MMDI_SCENERIO_ID owner, IMGPROC_GAMMA_STRUCT* s)
{
#if (defined(MT6219)||defined(MT6226)||defined(MT6226M)||defined(MT6227))
ASSERT(owner == imgproc_dcb.owner);
#elif (defined(MT6228)||defined(MT6229)||defined(MT6230))
if (current_image_data_path_owner!=owner)
ASSERT(0);
#endif
DRV_WriteReg(IMGPROC_GAMMA_CON,s->gamma);
DRV_WriteReg(IMGPROC_GAMMA_OFF0,s->off0);
DRV_WriteReg(IMGPROC_GAMMA_OFF1,s->off1);
DRV_WriteReg(IMGPROC_GAMMA_OFF2,s->off2);
DRV_WriteReg(IMGPROC_GAMMA_OFF3,s->off3);
DRV_WriteReg(IMGPROC_GAMMA_OFF4,s->off4);
DRV_WriteReg(IMGPROC_GAMMA_OFF5,s->off5);
DRV_WriteReg(IMGPROC_GAMMA_OFF6,s->off6);
DRV_WriteReg(IMGPROC_GAMMA_OFF7,s->off7);
DRV_WriteReg(IMGPROC_GAMMA_SLP0,s->slp0);
DRV_WriteReg(IMGPROC_GAMMA_SLP1,s->slp1);
DRV_WriteReg(IMGPROC_GAMMA_SLP2,s->slp2);
DRV_WriteReg(IMGPROC_GAMMA_SLP3,s->slp3);
DRV_WriteReg(IMGPROC_GAMMA_SLP4,s->slp4);
DRV_WriteReg(IMGPROC_GAMMA_SLP5,s->slp5);
DRV_WriteReg(IMGPROC_GAMMA_SLP6,s->slp6);
DRV_WriteReg(IMGPROC_GAMMA_SLP7,s->slp7);
return NO_ERROR;
}
#endif /* MT6219 */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -