PDK Documentation
csl_dssOverlay.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) Texas Instruments Incorporated 2018
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  *
9  * Redistributions of source code must retain the above copyright
10  * notice, this list of conditions and the following disclaimer.
11  *
12  * Redistributions in binary form must reproduce the above copyright
13  * notice, this list of conditions and the following disclaimer in the
14  * documentation and/or other materials provided with the
15  * distribution.
16  *
17  * Neither the name of Texas Instruments Incorporated nor the names of
18  * its contributors may be used to endorse or promote products derived
19  * from this software without specific prior written permission.
20  *
21  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32  */
33 
47 #ifndef CSL_DSSOVERLAY_H_
48 #define CSL_DSSOVERLAY_H_
49 
50 /* ========================================================================== */
51 /* Include Files */
52 /* ========================================================================== */
53 
54 /* None */
55 
56 #ifdef __cplusplus
57 extern "C" {
58 #endif
59 
60 /* ========================================================================== */
61 /* Macros & Typedefs */
62 /* ========================================================================== */
63 
69 typedef CSL_dss_ovr1Regs CSL_dss_overlayRegs;
70 
78 #define CSL_DSS_OVERLAY_TRANS_COLOR_DEST \
79  ((uint32_t) CSL_DSS_OVR1_CONFIG_TCKLCDSELECTION_VAL_GDTK)
80 
81 #define CSL_DSS_OVERLAY_TRANS_COLOR_SRC \
82  ((uint32_t) CSL_DSS_OVR1_CONFIG_TCKLCDSELECTION_VAL_VSTK)
83 /* @} */
84 
92 #define CSL_DSS_OVERLAY_LAYER_NUM_0 ((uint32_t) 0x0U)
93 
94 #define CSL_DSS_OVERLAY_LAYER_NUM_1 ((uint32_t) 0x1U)
95 
96 #define CSL_DSS_OVERLAY_LAYER_NUM_2 ((uint32_t) 0x2U)
97 
98 #define CSL_DSS_OVERLAY_LAYER_NUM_3 ((uint32_t) 0x3U)
99 
100 #define CSL_DSS_OVERLAY_LAYER_NUM_4 ((uint32_t) 0x4U)
101 
102 #define CSL_DSS_OVERLAY_LAYER_MAX ((uint32_t) 0x5U)
103 
104 #define CSL_DSS_OVERLAY_LAYER_INVALID ((uint32_t) 0xFFU)
105 /* @} */
106 
107 /* ========================================================================== */
108 /* Structure Declarations */
109 /* ========================================================================== */
110 
114 typedef struct
115 {
116  uint32_t colorKeyEnable;
120  uint32_t colorKeySel;
131  uint32_t backGroundColor;
136 
140 typedef struct
141 {
142  uint32_t layerEnable;
146  uint32_t layerNum;
149  uint32_t inputPipe;
153 
157 typedef struct
158 {
171 
172 /* ========================================================================== */
173 /* Function Declarations */
174 /* ========================================================================== */
175 
186 void CSL_dssOverlaySetConfig(CSL_dss_overlayRegs *overlayRegs,
187  const CSL_DssOverlayCfg *overlayCfg);
188 
198 void CSL_dssOverlayColorBarEnable(CSL_dss_overlayRegs *overlayRegs,
199  uint32_t enable);
200 
211 void CSL_dssOverlaySetLayerConfig(CSL_dss_overlayRegs *overlayRegs,
212  const CSL_DssOverlayLayerCfg *layerCfg);
213 
225 void CSL_dssOverlaySetPipePosConfig(CSL_dss_overlayRegs *overlayRegs,
226  const CSL_DssOverlayPipePosCfg *pipePosCfg,
227  uint32_t layerNum);
228 
241  const CSL_dss_overlayRegs *overlayRegs,
242  uint32_t pipeId);
243 
244 /* ========================================================================== */
245 /* Static Function Declarations */
246 /* ========================================================================== */
247 
255 static inline void CSL_dssOverlayCfgInit(
256  CSL_DssOverlayCfg *overlayCfg);
257 
265 static inline void CSL_dssOverlayLayerCfgInit(
266  CSL_DssOverlayLayerCfg *layerCfg);
267 
275 static inline void CSL_dssOverlayPipePosCfgInit(
276  CSL_DssOverlayPipePosCfg *pipePosCfg);
277 
278 /* ========================================================================== */
279 /* Static Function Definitions */
280 /* ========================================================================== */
281 
282 static inline void CSL_dssOverlayCfgInit(
283  CSL_DssOverlayCfg *overlayCfg)
284 {
285  if(NULL != overlayCfg)
286  {
287  overlayCfg->colorKeyEnable = FALSE;
289  overlayCfg->transColorKeyMin = 0x0U;
290  overlayCfg->transColorKeyMax = 0x0U;
291  overlayCfg->backGroundColor = 0x0U;
292  }
293 }
294 
295 static inline void CSL_dssOverlayLayerCfgInit(
296  CSL_DssOverlayLayerCfg *layerCfg)
297 {
298  if(NULL != layerCfg)
299  {
300  layerCfg->layerEnable = FALSE;
303  }
304 }
305 
306 static inline void CSL_dssOverlayPipePosCfgInit(
307  CSL_DssOverlayPipePosCfg *pipePosCfg)
308 {
309  if(NULL != pipePosCfg)
310  {
311  Fvid2PosConfig_init(&pipePosCfg->layerPos);
312  }
313 }
314 
315 #ifdef __cplusplus
316 }
317 #endif
318 
319 #endif /* #ifndef CSL_DSSOVERLAY_H_ */
320 
321 /* @} */
void CSL_dssOverlaySetPipePosConfig(CSL_dss_overlayRegs *overlayRegs, const CSL_DssOverlayPipePosCfg *pipePosCfg, uint32_t layerNum)
Configure the Video Pipe Position in Overlay.
Structure containing position configuration - used in VCOMP and CIG.
Definition: csl_fvid2_dataTypes.h:1339
uint32_t backGroundColor
Definition: csl_dssOverlay.h:131
uint32_t inputPipe
Definition: csl_dssOverlay.h:149
#define FALSE
Definition: csl_types.h:55
#define CSL_DSS_OVERLAY_TRANS_COLOR_DEST
Destination transparency color key selected.
Definition: csl_dssOverlay.h:78
CSL_dss_ovr1Regs CSL_dss_overlayRegs
DSS Overlay Registers.
Definition: csl_dssOverlay.h:69
static void CSL_dssOverlayCfgInit(CSL_DssOverlayCfg *overlayCfg)
CSL_DssOverlayCfg structure init function.
Definition: csl_dssOverlay.h:282
void CSL_dssOverlaySetConfig(CSL_dss_overlayRegs *overlayRegs, const CSL_DssOverlayCfg *overlayCfg)
Configure the Overlay Params.
static void CSL_dssOverlayPipePosCfgInit(CSL_DssOverlayPipePosCfg *pipePosCfg)
CSL_DssOverlayPipePosCfg structure init function.
Definition: csl_dssOverlay.h:306
void CSL_dssOverlayColorBarEnable(CSL_dss_overlayRegs *overlayRegs, uint32_t enable)
Enable the Color Bar in DSS Overlay.
#define CSL_DSS_VID_PIPE_ID_VID1
Video Pipeline 1.
Definition: csl_dssTop.h:126
Video Pipe Position Configuration in Overlay.
Definition: csl_dssOverlay.h:157
uint32_t colorKeySel
Definition: csl_dssOverlay.h:120
uint32_t transColorKeyMin
Definition: csl_dssOverlay.h:123
#define NULL
Define NULL if not defined.
Definition: csl_types.h:107
uint32_t CSL_dssOverlayGetEnabledPipeLayerNum(const CSL_dss_overlayRegs *overlayRegs, uint32_t pipeId)
Get the layer number where a particular Video Pipe is connected.
uint32_t transColorKeyMax
Definition: csl_dssOverlay.h:127
Configuration for selecting overlay input layers.
Definition: csl_dssOverlay.h:140
uint32_t colorKeyEnable
Definition: csl_dssOverlay.h:116
uint32_t layerNum
Definition: csl_dssOverlay.h:146
static void CSL_dssOverlayLayerCfgInit(CSL_DssOverlayLayerCfg *layerCfg)
CSL_DssOverlayLayerCfg structure init function.
Definition: csl_dssOverlay.h:295
#define CSL_DSS_OVERLAY_LAYER_NUM_0
Overlay Layer 0.
Definition: csl_dssOverlay.h:92
static void Fvid2PosConfig_init(Fvid2_PosConfig *posCfg)
Fvid2_PosConfig structure init function.
Definition: csl_fvid2_dataTypes.h:2280
Fvid2_PosConfig layerPos
Definition: csl_dssOverlay.h:159
Configuration for DSS Overlay.
Definition: csl_dssOverlay.h:114
uint32_t layerEnable
Definition: csl_dssOverlay.h:142
void CSL_dssOverlaySetLayerConfig(CSL_dss_overlayRegs *overlayRegs, const CSL_DssOverlayLayerCfg *layerCfg)
Configure the Overlay input selection.