/**************************************************************************** *_Copyright (c) 2004 DST Technologies Inc. All Rights Reserved. * * Module: dsthhalcap.h * * Description: DST HAL AUDIO/VIDEO Capture Interface function definition * * * * notes: JFET0615 * ***************************************************************************/ #if !defined (_DSTHAL_CAP_H_) #define _DSTHAL_CAP_H_ #include "dsthallocal.h" #include "dsthaldisp.h" typedef enum { DHL_CAP_SRC_ASPECT_NO_DATA, DHL_CAP_SRC_ASPECT_SQUARE, DHL_CAP_SRC_ASPECT_4_3, DHL_CAP_SRC_ASPECT_16_9, DHL_CAP_SRC_ASPECT_UNKNOWN, } DHL_CAP_SRCASPECTRATIO; typedef enum { DHL_PIPMODE_NONE, DHL_PIPMODE_PIPSMALL, DHL_PIPMODE_PIPSMALL_NO_CROP, DHL_PIPMODE_PIPLARGE, DHL_PIPMODE_PIPLARGE_NO_CROP, DHL_PIPMODE_DW_NORMAL, DHL_PIPMODE_DW_NORMAL_NO_CROP, DHL_PIPMODE_DW_FULL, DHL_PIPMODE_DW_FULL_NO_CROP } DHL_PIPMode_t; typedef enum { // // PIP Definitions // DHL_PIP_NO_PIP = 0, DHL_PIP_TOP_LEFT, DHL_PIP_TOP_RIGHT, DHL_PIP_BTM_RIGHT, DHL_PIP_BTM_LEFT, // // POP Definitions // DHL_POP_NO_POP = 0, DHL_POP_MAIN_LEFT = 1, DHL_POP_MAIN_RIGHT = 2, DHL_POP_SUB_LEFT = 3, //DHL_POP_MAIN_RIGHT DHL_POP_SUB_RIGHT = 4, //DHL_POP_MAIN_LEFT DHL_PIP_TOP_CENTER, DHL_PIP_MID_LEFT, DHL_PIP_MID_CENTER, DHL_PIP_MID_RIGHT, DHL_PIP_BTM_CENTER, } DHL_PIP_t; typedef enum { DHL_FOCUS_MAIN=0, DHL_FOCUS_SUB=1 }DHL_FOCUS_t; /*Debug level Type*/ typedef enum { DHL_CAPDBG_DHLCAP, //DHL_SYS DHL_CAPDBG_DDCAP, //DD_SYS DHL_CAPDBG_ALL, //ALL DHL_CAPDBG_END }DHL_CAP_DBGTYPE; /* +----------------------------------------------+ ** DHL_AVDC_STREAM_FORMAT ** +----------------------------------------------+ */ typedef enum tag_DHL_AVDC_STREAM_FORMAT { DHL_AVDC_SF_DISABLE, DHL_AVDC_SF_CCIR656_8_BIT, DHL_AVDC_SF_CCIR656_10_BIT } DHL_AVDC_STREAM_FORMAT; /* +----------------------------------------------+ ** DHL_AVDC_CONNECTOR ** +----------------------------------------------+ */ typedef enum tag_DHL_AVDC_CONNECTOR { DHL_AVDC_CON_UNDEFINED = 0, DHL_AVDC_CON_CVBS_0 = 0x00000001, DHL_AVDC_CON_Y_PR_PB = 0x00000008, } DHL_AVDC_CONNECTOR; /* +----------------------------------------------+ ** DHL_VC_FRAME_TYPE ** +----------------------------------------------+ */ typedef enum { DHL_VC_FRAME_PROGRESSIVE, /* capture two progressive fields into one buffer */ DHL_VC_FRAME_END }DHL_VC_FRAME_TYPE; /* +----------------------------------------------+ ** DHL_VC_DATA_FORMAT ** +----------------------------------------------+ */ typedef enum { DHL_VC_DF_YVYU422, DHL_VC_DF_VBID_RAW, DHL_VC_DF_END } DHL_VC_DATA_FORMAT; /* +----------------------------------------------+ ** DHL_VC_STREAM_FORMAT ** +----------------------------------------------+ */ typedef enum { DHL_VC_SF_CCIR656, /* CCIR656 format */ DHL_VC_SF_END } DHL_VC_STREAM_FORMAT; /* +----------------------------------------------+ ** DHL_CAP_AUDIO_INPUT ** +----------------------------------------------+ */ typedef enum { DHL_CAP_AUDIO_START, DHL_CAP_DTV_AUDIO_START, DHL_CAP_DTV0_AUDIO= DHL_CAP_DTV_AUDIO_START, DHL_CAP_DTV1_AUDIO, DHL_CAP_ATV_AUDIO_START, // From NTSC (CVBS) - 3D Comb Filter input DHL_CAP_ATV0_AUDIO = DHL_CAP_ATV_AUDIO_START, DHL_CAP_ATV1_AUDIO, // From NTSC (CVBS) - 3D Comb Filter input DHL_CAP_RADIO_AUDIO_START, DHL_CAP_RADIO0_AUDIO = DHL_CAP_RADIO_AUDIO_START, DHL_CAP_RADIO1_AUDIO, DHL_CAP_CVBS_AUDIO_START, DHL_CAP_CVBS0_AUDIO = DHL_CAP_CVBS_AUDIO_START, DHL_CAP_CVBS1_AUDIO, DHL_CAP_CVBS2_AUDIO, DHL_CAP_CVBS3_AUDIO, DHL_CAP_SVIDEO_AUDIO_START, DHL_CAP_SVIDEO0_AUDIO = DHL_CAP_SVIDEO_AUDIO_START, DHL_CAP_SVIDEO1_AUDIO, DHL_CAP_SVIDEO2_AUDIO, DHL_CAP_SVIDEO3_AUDIO, DHL_CAP_YPBPR_AUDIO_START, // From external YPbPr DHL_CAP_YPBPR0_AUDIO = DHL_CAP_YPBPR_AUDIO_START, // From external YPbPr_0 DHL_CAP_YPBPR1_AUDIO, // From external YPbPr_1 DHL_CAP_YPBPR2_AUDIO, // From external YPbPr_2 DHL_CAP_YPBPR3_AUDIO, // From external YPbPr_3 DHL_CAP_HDMI_AUDIO_START, // From HDMI port 0 DHL_CAP_HDMI0_AUDIO = DHL_CAP_HDMI_AUDIO_START , // From HDMI port 0 DHL_CAP_HDMI1_AUDIO, // From HDMI port 1 DHL_CAP_HDMI2_AUDIO, // From HDMI port 2 DHL_CAP_HDMI3_AUDIO, // From HDMI port 3 DHL_CAP_VGA0_AUDIO, DHL_CAP_VGA1_AUDIO, DHL_CAP_1394_DV_AUDIO, // DHL_CAP_1394_TS_AUDIO, // DHL_CAP_DTV_TS0_AUDIO, // DHL_CAP_DTV_TS1_AUDIO, // DHL_CAP_AUDIO_END, DHL_CAP_AUDIO_NONE = DHL_CAP_AUDIO_END } DHL_CAP_AUDIO_INPUT; typedef enum { DHL_CAP_VIDEO_START, DHL_CAP_DTV_VIDEO_START, DHL_CAP_DTV0_VIDEO = DHL_CAP_DTV_VIDEO_START, DHL_CAP_DTV1_VIDEO, DHL_CAP_ATV_VIDEO_START, // From NTSC (CVBS) - 3D Comb Filter input DHL_CAP_ATV0_VIDEO = DHL_CAP_ATV_VIDEO_START, DHL_CAP_ATV1_VIDEO, // From NTSC (CVBS) - 3D Comb Filter input DHL_CAP_ATV_VIDEO_STOP = DHL_CAP_ATV1_VIDEO, DHL_CAP_RADIO_VIDEO_START, DHL_CAP_RADIO0_VIDEO = DHL_CAP_RADIO_VIDEO_START, DHL_CAP_RADIO1_VIDEO, DHL_CAP_RADIO_VIDEO_STOP = DHL_CAP_RADIO1_VIDEO, DHL_CAP_CVBS_VIDEO_START, DHL_CAP_CVBS0_VIDEO = DHL_CAP_CVBS_VIDEO_START, DHL_CAP_CVBS1_VIDEO, DHL_CAP_CVBS2_VIDEO, DHL_CAP_CVBS3_VIDEO, DHL_CAP_CVBS_VIDEO_STOP = DHL_CAP_CVBS3_VIDEO, DHL_CAP_SVIDEO_VIDEO_START, DHL_CAP_SVIDEO0_VIDEO = DHL_CAP_SVIDEO_VIDEO_START, DHL_CAP_SVIDEO1_VIDEO, DHL_CAP_SVIDEO2_VIDEO, DHL_CAP_SVIDEO3_VIDEO, DHL_CAP_SVIDEO_VIDEO_STOP = DHL_CAP_SVIDEO3_VIDEO, DHL_CAP_YPBPR_VIDEO_START, // From external YPbPr DHL_CAP_YPBPR0_VIDEO = DHL_CAP_YPBPR_VIDEO_START, // From external YPbPr_0 DHL_CAP_YPBPR1_VIDEO, // From external YPbPr_1 DHL_CAP_YPBPR2_VIDEO, // From external YPbPr_2 DHL_CAP_YPBPR3_VIDEO, // From external YPbPr_3 DHL_CAP_YPBPR_VIDEO_STOP = DHL_CAP_YPBPR3_VIDEO, // From external YPbPr DHL_CAP_HDMI_VIDEO_START, // From HDMI port 0 DHL_CAP_HDMI0_VIDEO = DHL_CAP_HDMI_VIDEO_START , // From HDMI port 0 DHL_CAP_HDMI1_VIDEO, // From HDMI port 1 DHL_CAP_HDMI2_VIDEO, // From HDMI port 2 DHL_CAP_HDMI3_VIDEO, // From HDMI port 3 DHL_CAP_HDMI_VIDEO_STOP = DHL_CAP_HDMI3_VIDEO, // From HDMI port 0 DHL_CAP_VGA_VIDEO_START, DHL_CAP_VGA0_VIDEO = DHL_CAP_VGA_VIDEO_START, DHL_CAP_VGA1_VIDEO, DHL_CAP_VGA_VIDEO_STOP = DHL_CAP_VGA1_VIDEO, DHL_CAP_1394_DV_VIDEO, // DHL_CAP_1394_TS_VIDEO, // DHL_CAP_DTV_TS0_VIDEO, // DHL_CAP_DTV_TS1_VIDEO, // DHL_CAP_PHOTOVIEW, DHL_CAP_VIDEO_END, DHL_CAP_VIDEO_NONE = DHL_CAP_VIDEO_END } DHL_CAP_VIDEO_INPUT; /* +----------------------------------------------+ ** DHL_AVDC_CONFIG (Analog Video Decoder) ** +----------------------------------------------+ */ typedef struct tag_DHL_CAP_AVDC { DHL_AVDC_STREAM_FORMAT AvdcStreamFormat; //input stream format DHL_VIDEO_FORMAT AvdcVideoFormat; //input video format DHL_AVDC_CONNECTOR AvdcConnector; //input connector } DHL_AVDC_CONFIG, *P_DHL_AVDC_CONFIG; /* +----------------------------------------------+ ** DHL_VC_CONFIG (Video Capture) ** +----------------------------------------------+ */ typedef struct tag_DHL_CAP_VC { DHL_VC_FRAME_TYPE VcFrameType; DHL_VC_DATA_FORMAT VcVideoFormat; DHL_VC_DATA_FORMAT VcVbiFormat; DHL_VC_STREAM_FORMAT VcStreamFormat; } DHL_VC_CONFIG, *P_DHL_VC_CONFIG; /* +----------------------------------------------+ ** DHL_SAMPLING_RATE (input audio sampling rate) ** +----------------------------------------------+ */ typedef enum tag_DHL_SAMPLING_RATE { DHL_SAMPLING_RATE_22_05_KHZ = 1, DHL_SAMPLING_RATE_32_00_KHZ, DHL_SAMPLING_RATE_44_10_KHZ, DHL_SAMPLING_RATE_48_00_KHZ, DHL_SAMPLING_RATE_96_00_KHZ, DHL_SAMPLING_RATE_END } DHL_SAMPLING_RATE, *P_DHL_SAMPLING_RATE; typedef struct tag_DHL_CAP_VideoTiming_t { DHL_CAP_VIDEO_INPUT vi; DS_U16 hRes, vRes; DS_U16 RefreshRate; DS_BOOL bInterlaced; DHL_CAP_SRCASPECTRATIO Aspect; } DHL_CAP_VideoTiming_t; typedef struct tag_VGA_CAPTURE { DS_U16 wX, wY, wWidth, wHeight; DS_U16 wDispX, wDispY, wDispWidth, wDispHeight; DS_U16 wDispKX, wDispKY, wDispKWidth, wDispKHeight; } VGA_CAPTURE_t, *P_VGA_CAPTURE_t; typedef struct tag_VGA_ADC_t { DS_U8 Gain_R, Gain_G, Gain_B; DS_U8 Off_R, Off_G, Off_B; } VGA_ADC_t, *P_VGA_ADC_t; typedef void (*DHL_CAP_CBFUNC_t)(DS_BOOL bFocus, DHL_CAP_VIDEO_INPUT vi, DS_U16 hRes, DS_U16 vRes, DS_U16 RefreshRate, DS_BOOL bInterlaced); typedef void (*DHL_CAP_CBFUNC2_t)(DS_BOOL bFocus, DHL_CAP_VIDEO_INPUT vi, DS_U16 hRes, DS_U16 vRes, DS_U16 RefreshRate, DS_BOOL bInterlaced,DHL_CAP_SRCASPECTRATIO Aspect); /* +----------------------------------------------+ ** DHL_CAP_CONFIG ** - It has the dhl total configuration information ** +----------------------------------------------+ */ typedef struct tag_DHL_CAP_CONFIGURATION { DS_S32 iAudDelay; // capture audio delay DHL_VIDEO_FORMAT CapInMainFmt; // Main input video format DHL_VIDEO_FORMAT CapInSubFmt; // Sub input video format DHL_CAP_VIDEO_INPUT CapInMainVideoSrc; // Main Video Source DHL_CAP_VIDEO_INPUT CapInSubVideoSrc; // Sub Video Source DHL_CAP_AUDIO_INPUT CapInAudioSrc; //input audio source DHL_SAMPLING_RATE CapFs; //input audio sampling frequence int isCapMainVideoStarted; int isCapSubVideoStarted; int isCapAudioStarted; DHL_PIPMode_t pipMode; DHL_PIP_t pipPosition; DS_U32 uMutex; //for the video synchronization int SyncLockEnable; int SyncLockOnMute; } DHL_CAP_CONFIG, *P_DHL_CAP_CONFIG; #define DHL_IsVideoSourceDTV(src) (((src) == DHL_CAP_DTV0_VIDEO) || ((src) == DHL_CAP_DTV1_VIDEO)) #define DHL_IsAudioSourceDTV(src) (((src) == DHL_CAP_DTV0_AUDIO) || ((src) == DHL_CAP_DTV1_AUDIO)) #define DHL_IsVideoSourceATV(src) (((src) == DHL_CAP_ATV0_VIDEO) || ((src) == DHL_CAP_ATV1_VIDEO)) #define DHL_IsAudioSourceATV(src) (((src) == DHL_CAP_ATV0_AUDIO) || ((src) == DHL_CAP_ATV1_AUDIO)) #define DHL_IsVideoSourceCVBS(src) (((src) >= DHL_CAP_CVBS0_VIDEO) && ((src) <= DHL_CAP_CVBS3_VIDEO)) #define DHL_IsAudioSourceCVBS(src) (((src) >= DHL_CAP_CVBS0_AUDIO) && ((src) <= DHL_CAP_CVBS3_AUDIO)) #define DHL_IsVideoSourceYPbPr(src) (((src) >= DHL_CAP_YPBPR0_VIDEO) && ((src) <= DHL_CAP_YPBPR3_VIDEO)) #define DHL_IsAudioSourceYPbPr(src) (((src) >= DHL_CAP_YPBPR0_AUDIO) && ((src) <= DHL_CAP_YPBPR3_AUDIO)) #define DHL_IsVideoSourceVGA(src) (((src) >= DHL_CAP_VGA0_VIDEO) && ((src) <= DHL_CAP_VGA1_VIDEO)) #define DHL_IsAudioSourceVGA(src) (((src) >= DHL_CAP_VGA0_AUDIO) && ((src) <= DHL_CAP_VGA1_AUDIO)) #define DHL_IsVideoSourceHDMI(src) (((src) >= DHL_CAP_HDMI0_VIDEO) && ((src) <= DHL_CAP_HDMI3_AUDIO)) #define DHL_IsAudioSourceHDMI(src) (((src) >= DHL_CAP_HDMI0_AUDIO) && ((src) <= DHL_CAP_HDMI3_AUDIO)) #if defined __cplusplus extern "C" { #endif DHL_RESULT DHL_CAP_Open(void); DHL_RESULT DHL_CAP_Init(void); DHL_RESULT DHL_CAP_Start(DS_BOOL bMain, DS_BOOL bSub); DHL_RESULT DHL_CAP_Stop(DS_BOOL bMain, DS_BOOL bSub); DHL_RESULT DHL_CAP_Close(void); DHL_RESULT DHL_CAP_Pause(DS_BOOL Focus); DHL_RESULT DHL_CAP_Resume(DS_BOOL Focus); DHL_RESULT DHL_CAP_PresetVideoFormat(DHL_VIDEO_FORMAT vf, DS_BOOL Focus); DHL_RESULT DHL_CAP_ChangeAudioInput(DHL_CAP_AUDIO_INPUT AudioInputSrc); DHL_RESULT DHL_CAP_ChangeAudioFs(DHL_SAMPLING_RATE UserFs, DS_BOOL Update); DHL_RESULT DHL_CAP_ChangeLBOption(DS_BOOL bLBEnable); DHL_RESULT DHL_CAP_PresetAVDC(P_DHL_AVDC_CONFIG pAvdcConfig); DHL_RESULT DHL_CAP_MuteVideo(DS_BOOL bMute, DS_BOOL Focus); DHL_RESULT DHL_CAP_PresetVideoFormat(DHL_VIDEO_FORMAT vf, DS_BOOL Focus); DHL_RESULT DHL_CAP_PresetAudioInput(DHL_CAP_AUDIO_INPUT ai); void DHL_CAP_SetDbgLvl(DS_U32 uDbgLvl, DHL_CAP_DBGTYPE DbgType); DS_BOOL DHL_CAP_IsStartedVideo(void); DS_BOOL DHL_CAP_IsStartedVideoPIP(void); DS_BOOL DHL_CAP_IsStartedAudio(void); DHL_RESULT DHL_CAP_SetAudioDelay(DS_U32 offset); DHL_VIDEO_FORMAT DHL_CAP_GetVideoInputFmt(DS_BOOL Focus); DHL_CAP_AUDIO_INPUT DHL_CAP_GetAudioSrc(void); DHL_RESULT DHL_CAP_PresetVideoInput(DHL_CAP_VIDEO_INPUT vi); DHL_RESULT DHL_CAP_PresetVideoSource(DHL_CAP_VIDEO_INPUT vi); DHL_RESULT DHL_CAP_PresetVideoInputPIP(DHL_CAP_VIDEO_INPUT vi); DHL_RESULT DHL_CAP_PresetVideoSourcePIP(DHL_CAP_VIDEO_INPUT vi); DHL_RESULT DHL_CAP_ChangeVideoSource(DHL_CAP_VIDEO_INPUT VideoInputSrc); DHL_RESULT DHL_CAP_ChangeVideoSourcePIP(DHL_CAP_VIDEO_INPUT VideoInputSrc); DHL_CAP_VIDEO_INPUT DHL_CAP_GetVideoSrc(DS_BOOL Focus); void DHL_CAP_SetSyncLock(int En); // // External-Input A/V // DHL_RESULT DHL_CAP_StartVideo(void); DHL_RESULT DHL_CAP_StartVideoPIP(void); DHL_RESULT DHL_CAP_StartAudio(void); DHL_RESULT DHL_CAP_StopVideo(void); DHL_RESULT DHL_CAP_StopVideoPIP(void); DHL_RESULT DHL_CAP_StopAudio(void); DHL_RESULT DHL_CAP_StartVideoEx(DHL_CAP_VIDEO_INPUT MainSrc, DHL_CAP_VIDEO_INPUT SubSrc, DHL_PIPMode_t PIPMode, DHL_PIP_t pipPos ); DHL_RESULT DHL_CAP_StopVideoEx(void); DHL_RESULT DHL_CAP_SetPIPMode( DHL_PIPMode_t PipMode , DHL_PIP_t pipPos ); DHL_RESULT DHL_CAP_SetPIPPosition( DHL_PIP_t pipPos ); DHL_RESULT DHL_CAP_RestartAudio(void); DS_BOOL DHL_CAP_IsCVBSInput(DHL_CAP_VIDEO_INPUT vi); DHL_RESULT DHL_CAP_IsHDMIInput(DS_BOOL *bHDMI); void DHL_CAP_GetHDMIFmt(DS_U32 *phActive, DS_U32 *phTotal, DS_U32 *pvActive, DS_U32 *pvTotal); void DHL_CAP_GetRGBFmt(DS_U16 *pwHR, DS_U16 *pwVR, DS_U16 *pwHW, DS_U16 *pwVW, DS_U16 *pwPol); void DHL_CAP_SetHPDEnable(int En); int DHL_CAP_GetHPDEnable(void); // // Just for backward compatability. // DHL_RESULT DHL_CAP_PresetVC(DHL_VIDEO_FORMAT vf, DS_BOOL Focus); DHL_RESULT DHL_CAP_ChangeAudioSource(DHL_CAP_AUDIO_INPUT AudioInputSrc); DHL_RESULT DHL_CAP_PresetVideoSource(DHL_CAP_VIDEO_INPUT vi); DHL_RESULT DHL_CAP_PresetVideoSourcePIP(DHL_CAP_VIDEO_INPUT vi); DHL_RESULT DHL_CAP_PresetCallback(DHL_CAP_CBFUNC_t cbFunc); DHL_RESULT DHL_CAP_PresetCallback2(DHL_CAP_CBFUNC2_t cbFunc); int DHL_CAP_GetAudioInFrequency(void); DHL_RESULT DHL_CAP_SetAudioInFrequency(int audInFreq); // // NTSC adaptive noise reduction // void DHL_CAP_SetAdaptiveNR(void); DS_U16 DHL_CAP_GetSignalNoise(void); void DHL_CAP_ClearSyncLockOnMute(int En); void DHL_CAP_SetSyncLockEnable(int En); int DHL_CAP_GetSyncLockEnable(void); // // VGA Functions // DHL_RESULT DHL_CAP_SetVGADefault(void); DHL_RESULT DHL_CAP_SetVGAPhase(int Param); DHL_RESULT DHL_CAP_SetVGAClock(int Param); DHL_RESULT DHL_CAP_SetVGAHSize(int Param); DHL_RESULT DHL_CAP_SetVGAHPosition(int Param); DHL_RESULT DHL_CAP_SetVGAVSize(int Param); DHL_RESULT DHL_CAP_SetVGAVPosition(int Param); DHL_RESULT DHL_CAP_SetVGAAutoAdjustment(int Param); DHL_RESULT DHL_CAP_SetVGAAutoPhase(int Param); DS_BOOL DHL_CAP_IsVGAAutoAdjustmentCompleted(void); DHL_RESULT DHL_CAP_SetAutoMovieMode( DS_BOOL enable ); DHL_RESULT DHL_CAP_GetVGAPhase(int *pParam); DHL_RESULT DHL_CAP_GetVGAClock(int *pParam); DHL_RESULT DHL_CAP_GetVGAHSize(int *pParam); DHL_RESULT DHL_CAP_GetVGAHPosition(int *pParam); DHL_RESULT DHL_CAP_GetVGAVSize(int *pParam); DHL_RESULT DHL_CAP_GetVGAVPosition(int *pParam); DHL_RESULT DHL_CAP_SetVGACapture(VGA_CAPTURE_t *vc); DHL_RESULT DHL_CAP_GetVGACapture(VGA_CAPTURE_t *vc); DHL_RESULT DHL_CAP_DoVGAAutoColor(VGA_ADC_t *va); DHL_RESULT DHL_CAP_SetVGAAutoColor(VGA_ADC_t *va); #if defined __cplusplus } #endif #endif /* _DSTHAL_CAP_H_ */