isp: add application control of the gamma block

Preserves the "gamma_shift" functionality that was previously available.
This commit is contained in:
David Plowman
2019-12-16 13:01:10 +00:00
committed by popcornmix
parent 998f7ee3e5
commit 106b9ee84d
3 changed files with 27 additions and 0 deletions

View File

@@ -153,6 +153,7 @@ enum {
MMAL_PARAMETER_SHARPEN, /**< Takes a @ref MMAL_PARAMETER_SHARPEN_T */ MMAL_PARAMETER_SHARPEN, /**< Takes a @ref MMAL_PARAMETER_SHARPEN_T */
MMAL_PARAMETER_GREEN_EQ, /**< Takes a @ref MMAL_PARAMETER_GREEN_EQ_T */ MMAL_PARAMETER_GREEN_EQ, /**< Takes a @ref MMAL_PARAMETER_GREEN_EQ_T */
MMAL_PARAMETER_DPC, /**< Tales a @ref MMAP_PARAMETER_DPC_T */ MMAL_PARAMETER_DPC, /**< Tales a @ref MMAP_PARAMETER_DPC_T */
MMAL_PARAMETER_GAMMA, /**< Tales a @ref MMAP_PARAMETER_GAMMA_T */
}; };
/** Thumbnail configuration parameter type */ /** Thumbnail configuration parameter type */
@@ -1047,4 +1048,14 @@ typedef struct MMAL_PARAMETER_DPC_T {
MMAL_DPC_MODE_T strength; /**< DPC strength. */ MMAL_DPC_MODE_T strength; /**< DPC strength. */
} MMAL_PARAMETER_DPC_T; } MMAL_PARAMETER_DPC_T;
#define MMAL_NUM_GAMMA_PTS 33
typedef struct MMAL_PARAMETER_GAMMA_T {
MMAL_PARAMETER_HEADER_T hdr;
MMAL_BOOL_T enable; /**< Enable gamma parameters. */
uint16_t X[MMAL_NUM_GAMMA_PTS]; /**< X values (16 bit range) */
uint16_t Y[MMAL_NUM_GAMMA_PTS]; /**< Y values (16 bit range) */
} MMAL_PARAMETER_GAMMA_T;
#endif /* MMAL_PARAMETERS_CAMERA_H */ #endif /* MMAL_PARAMETERS_CAMERA_H */

View File

@@ -2804,5 +2804,20 @@ typedef struct OMX_PARAM_DPCTYPE {
OMX_U32 nStrength; /**< Strength (0 = off, 1 = normal, 2 = strong) */ OMX_U32 nStrength; /**< Strength (0 = off, 1 = normal, 2 = strong) */
} OMX_PARAM_DPCTYPE; } OMX_PARAM_DPCTYPE;
/* OMX_IndexParamGamma: Manual gamma parameters. */
/*
Configures the gamma block within the ISP pipeline.
*/
#define OMX_NUM_GAMMA_PTS 33
typedef struct OMX_PARAM_GAMMATYPE {
OMX_U32 nSize;
OMX_VERSIONTYPE nVersion;
OMX_BOOL bEnabled; /**< Enable gamma */
OMX_U16 nX[OMX_NUM_GAMMA_PTS]; /**< X coordinates (16 bit range) */
OMX_U16 nY[OMX_NUM_GAMMA_PTS]; /**< Y coordinates (16 bit range) */
} OMX_PARAM_GAMMATYPE;
#endif #endif
/* File EOF */ /* File EOF */

View File

@@ -543,6 +543,7 @@ typedef enum OMX_INDEXTYPE {
OMX_IndexParamSharpen, /**< reference: OMX_PARAM_SHARPENTYPE */ OMX_IndexParamSharpen, /**< reference: OMX_PARAM_SHARPENTYPE */
OMX_IndexParamGreenEq, /**< reference: OMX_PARAM_GREENEQTYPE */ OMX_IndexParamGreenEq, /**< reference: OMX_PARAM_GREENEQTYPE */
OMX_IndexParamDpc, /**< reference: OMX_PARAM_DPCTYPE */ OMX_IndexParamDpc, /**< reference: OMX_PARAM_DPCTYPE */
OMX_IndexParamGamma, /**< reference: OMX_PARAM_GAMMATYPE */
OMX_IndexMax = 0x7FFFFFFF OMX_IndexMax = 0x7FFFFFFF
} OMX_INDEXTYPE; } OMX_INDEXTYPE;