PDK API Guide for AM65xx
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_MAX ((uint32_t) 0x2U)
97 
98 #define CSL_DSS_OVERLAY_LAYER_INVALID ((uint32_t) 0xFFU)
99 /* @} */
100 
101 /* ========================================================================== */
102 /* Structure Declarations */
103 /* ========================================================================== */
104 
108 typedef struct
109 {
110  uint32_t colorKeyEnable;
114  uint32_t colorKeySel;
125  uint32_t backGroundColor;
130 
134 typedef struct
135 {
136  uint32_t layerEnable;
140  uint32_t layerNum;
143  uint32_t inputPipe;
147 
151 typedef struct
152 {
165 
166 /* ========================================================================== */
167 /* Function Declarations */
168 /* ========================================================================== */
169 
181  const CSL_DssOverlayCfg *overlayCfg);
182 
193  uint32_t enable);
194 
206  const CSL_DssOverlayLayerCfg *layerCfg);
207 
220  const CSL_DssOverlayPipePosCfg *pipePosCfg,
221  uint32_t layerNum);
222 
235  const CSL_dss_overlayRegs *overlayRegs,
236  uint32_t pipeId);
237 
238 /* ========================================================================== */
239 /* Static Function Declarations */
240 /* ========================================================================== */
241 
249 static inline void CSL_dssOverlayCfgInit(
250  CSL_DssOverlayCfg *overlayCfg);
251 
259 static inline void CSL_dssOverlayLayerCfgInit(
260  CSL_DssOverlayLayerCfg *layerCfg);
261 
269 static inline void CSL_dssOverlayPipePosCfgInit(
270  CSL_DssOverlayPipePosCfg *pipePosCfg);
271 
272 /* ========================================================================== */
273 /* Static Function Definitions */
274 /* ========================================================================== */
275 
276 static inline void CSL_dssOverlayCfgInit(
277  CSL_DssOverlayCfg *overlayCfg)
278 {
279  if(NULL != overlayCfg)
280  {
281  overlayCfg->colorKeyEnable = FALSE;
283  overlayCfg->transColorKeyMin = 0x0U;
284  overlayCfg->transColorKeyMax = 0x0U;
285  overlayCfg->backGroundColor = 0x0U;
286  }
287 }
288 
289 static inline void CSL_dssOverlayLayerCfgInit(
290  CSL_DssOverlayLayerCfg *layerCfg)
291 {
292  if(NULL != layerCfg)
293  {
294  layerCfg->layerEnable = FALSE;
297  }
298 }
299 
300 static inline void CSL_dssOverlayPipePosCfgInit(
301  CSL_DssOverlayPipePosCfg *pipePosCfg)
302 {
303  if(NULL != pipePosCfg)
304  {
305  Fvid2PosConfig_init(&pipePosCfg->layerPos);
306  }
307 }
308 
309 #ifdef __cplusplus
310 }
311 #endif
312 
313 #endif /* #ifndef CSL_DSSOVERLAY_H_ */
314 
315 /* @} */
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:125
uint32_t inputPipe
Definition: csl_dssOverlay.h:143
#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:276
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:300
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:121
Video Pipe Position Configuration in Overlay.
Definition: csl_dssOverlay.h:151
uint32_t colorKeySel
Definition: csl_dssOverlay.h:114
uint32_t transColorKeyMin
Definition: csl_dssOverlay.h:117
#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:121
Configuration for selecting overlay input layers.
Definition: csl_dssOverlay.h:134
uint32_t colorKeyEnable
Definition: csl_dssOverlay.h:110
uint32_t layerNum
Definition: csl_dssOverlay.h:140
static void CSL_dssOverlayLayerCfgInit(CSL_DssOverlayLayerCfg *layerCfg)
CSL_DssOverlayLayerCfg structure init function.
Definition: csl_dssOverlay.h:289
#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:153
Configuration for DSS Overlay.
Definition: csl_dssOverlay.h:108
uint32_t layerEnable
Definition: csl_dssOverlay.h:136
void CSL_dssOverlaySetLayerConfig(CSL_dss_overlayRegs *overlayRegs, const CSL_DssOverlayLayerCfg *layerCfg)
Configure the Overlay input selection.