⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sdinterf.h

📁 神龙卡 SDK_84xx_DShow_145_02.zip 这个是 windows 上二个是linux
💻 H
📖 第 1 页 / 共 2 页
字号:
#define SET_REGION					0x01
#define GET_REGION					0x02
#define GET_COUNTER_A				0x03
#define GET_COUNTER_B				0x04
#define RESET_BOARD					0x05

interface IRegionCodeControl: public IUnknown
{
public:
    /* IRegionCodeControl methods */
    STDMETHOD(RegionCodeControl)	(THIS_ DWORD dwFunctionCode, BYTE *pbReturnCode) PURE;
};

/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////////////////////
// interface IREALmagicProfile used to save / retrieve REALmagic settings.

interface IREALmagicProfile : public IUnknown
{
public:
    STDMETHOD(GetInt)(LPCTSTR lpszSection, LPCTSTR lpszEntry, int nDefault, int *pValue) PURE;
	STDMETHOD(WriteInt)(LPCTSTR lpszSection, LPCTSTR lpszEntry, int nValue) PURE;
	STDMETHOD(GetString)(LPCTSTR lpszSection, LPCTSTR lpszEntry, LPCTSTR lpszDefault, LPSTR szString, int iSize) PURE;
	STDMETHOD(WriteString)(LPCTSTR lpszSection, LPCTSTR lpszEntry, LPCTSTR lpszValue) PURE;
    STDMETHOD(GetREALmagicID)() PURE;
    STDMETHOD(GetHardwareFlags)() PURE;
    STDMETHOD(UpdateDisplaySize)() PURE;			// Update display resolution
    STDMETHOD(GetDisplayInt)(LPCTSTR lpszEntry, int nDefault, int *pValue) PURE;
	STDMETHOD(WriteDisplayInt)(LPCTSTR lpszEntry, int nValue) PURE;
    STDMETHOD(CalibrationDone)(BOOL *bDone) PURE;	// Check if calibration has been done for the current resolution
};

/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////

// The different audio output format
#ifndef _Quasar_AudioOutputType
#define _Quasar_AudioOutputType
typedef enum
{
	DIGITAL_AUDIO,		// Through On-board DAC
	PCM_AUDIO,			// Through Quasar SpDiff channel, no AC-3
	AC3_AUDIO			// Through Quasar SpDiff channel
} AUDIO_OUTPUT, *PAUDIO_OUTPUT;
#endif

// Audio channel
#ifndef _Quasar_AudioOutputMode
#define _Quasar_AudioOutputMode
typedef enum 
{
	STEREO,
	LEFT_ONLY,			// Right channel output on both speakers
	RIGHT_ONLY			// Left channel output on both speakers
} AUDIO_CHANNEL, *PAUDIO_CHANNEL;
#endif

/////////////////////////////////////////////////////////////////////////////
// interface IAudioOutput used to get/set audio output (Digital, PCM or AC3)

interface IAudioOutput : public IUnknown
{
public:
    STDMETHOD(GetOutput)(PAUDIO_OUTPUT pAudioOutput) PURE;
	STDMETHOD(SetOutput)(AUDIO_OUTPUT AudioOutput) PURE;
	STDMETHOD(GetChannel)(PAUDIO_CHANNEL pAudioChannel) PURE;
	STDMETHOD(SetChannel)(AUDIO_CHANNEL AudioChannel) PURE;
};

/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////////////////////
// interface IOverlayConfig used to adjust overlay parameters

interface IOverlayConfig : public IUnknown
{
public:
	// Set and get overlay mode
    STDMETHOD(put_OverlayMode)(THIS_ OVERLAY_MODE OverlayMode) PURE;
    STDMETHOD(get_OverlayMode)(THIS_ OVERLAY_MODE FAR* pOverlayMode) PURE;

	// Set and get overlay position
    STDMETHOD(put_OverlayPosition)(THIS_ RECT rcDestination) PURE;
    STDMETHOD(get_OverlayPosition)(THIS_ RECT FAR* prcDestination) PURE;

	// Methods to set and get the different settings
    STDMETHOD(put_TopBorder)(THIS_ ULONG ulYOffset) PURE;
    STDMETHOD(get_TopBorder)(THIS_ ULONG FAR* pulYOffset) PURE;
    STDMETHOD(put_LeftBorder)(THIS_ ULONG ulXOffset) PURE;
    STDMETHOD(get_LeftBorder)(THIS_ ULONG FAR* pulXOffset) PURE;
    STDMETHOD(put_VgaCorrection)(THIS_ ULONG ulVgaCorrection) PURE;
    STDMETHOD(get_VgaCorrection)(THIS_ ULONG FAR* pulVgaCorrection) PURE;

    STDMETHOD(put_JitterAdjustment)(THIS_ ULONG ulJitterAdjustment) PURE;
    STDMETHOD(get_JitterAdjustment)(THIS_ ULONG FAR* pulJitterAdjustment) PURE;
    STDMETHOD(put_VgaFineAdjustment)(THIS_ ULONG ulVgaFineAdjustment) PURE;
    STDMETHOD(get_VgaFineAdjustment)(THIS_ ULONG FAR* pulVgaFineAdjustment) PURE;

	// Let WDM know the current resolution
	STDMETHOD(UpdateResolution)() PURE;

	// Methods to auto-calibrate
    STDMETHOD(AutoCalibrate)(THIS_ IREALmagicProfile *pProfile) PURE;

    STDMETHOD(StartAutoCalibration)() PURE;
    STDMETHOD(StopAutoCalibration)() PURE;
    STDMETHOD(CalibrateTopBorder)() PURE;
    STDMETHOD(CalibrateLeftBorder)() PURE;
    STDMETHOD(CalibrateCorrection)() PURE;
    STDMETHOD(CalibrateColorLimits)(THIS_ PCOLOR_LIMITS pColorLimits) PURE;

    STDMETHOD(put_CalibrationParameters)(THIS_ CALIBRATION_PARAMETERS FAR* pCalParams) PURE;
    STDMETHOD(get_CalibrationParameters)(THIS_ CALIBRATION_PARAMETERS FAR* pCalParams) PURE;
};

/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////

// Flags for the different TV out formats
#ifndef SET_VGA
#define SET_VGA				0x0000	// Unused. Need to mask with ~SET_TV
#define SET_TV				0x0001	// Forces output to TV (instead of VGA)
#define SET_HDTV			0x0020

#define SET_NTSC			0x0000	// Unused. Need to mask with ~(SET_PAL | SET_PAL60)
#define SET_PAL 			0x0002	// Set TV output to PAL (720*576*25fps)
#define SET_PAL60			0x0008	// Set TV output to PAL60 (720*480*30fps)
#define SET_PALM			0x000A	// Not supported yet
#define SET480P				0x0100	// Ouput on Component RGB special connector

#define SET_ONETOONE		0x0000	// Unused. Need to mask with ~SET_SCALE
#define SET_SCALE			0x0004

#define SET_TV_AS_SOURCE	0x0010	// Override SET_NTSC and SET_PALxxx flags

#define COMPOSITE			0x0000	// Ouput on Composite/SVideo connector
#define COMPONENT_YUV		0x0080	// Ouput on Component YUV special connector
#define COMPONENT_RGB		0x00C0	// Ouput on Component RGB special connector
#define COMPONENT_RGB_SCART	0x00C0	// Ouput on RGB Scart Connector

#endif

// Enumeration of the different video format
typedef enum
{
	TVSRC_UNDEFINED,		// No file opened or not PAL/NTSC
	TVSRC_NTSC,				// Video is 352*240 or a multiple, 29.97 frames per sec
	TVSRC_PAL				// Video is 352*288 or a multiple, 25 frames per sec
} TV_SOURCE_FORMATS, *PTV_SOURCE_FORMATS;

/////////////////////////////////////////////////////////////////////////////
// interface ITvVgaOutput used to set output to VGA or TV in different 
// TV standards (PAL, NTSC....). DirectShow maintains its own TV output
// settings which are different then the one from MCI or DVD station. The
// only common settings between the 3 is TV standard and TV output (Connector
// type).

interface ITvVgaOutput : public IUnknown
{
public:
    STDMETHOD(GetTvOutput)(THIS_ PDWORD pdwOutFlags) PURE;
	STDMETHOD(SetTvOutput)(THIS_ DWORD dwOutFlags) PURE;

    STDMETHOD(GetTvSource)(THIS_ PTV_SOURCE_FORMATS pTvSrcFormat) PURE;
};

/////////////////////////////////////////////////////////////////////////////
// interface ITvVgaOutput2 used to set output to VGA or TV in different 
// TV standards (PAL, NTSC....) or in HDTV mode. The first 3 methods are
// 100% compatible with the ITvVgaOutput interface. 
// The HDTV added functionality is only used to set Video through the VGA 
// Sub-D connector and is different than the component RGB coming out of the 
// TV connector. The dwRegistryHDTVMode parameter used to set the HDTV mode 
// is using the HDTV mode list found in:
//    HKEY_LOCAL_MACHINE\Software\Sigma Designs\REALmagic\xx\Progressive
// (Mode0 through Mode7).
// Be extremly cautious when modifying this list since wrong values may
// hang the system and eventually cause damage to external HDTV devices.
// To exit HDTV mode, simply use the SetTvOutput.

interface ITvVgaOutput2 : public IUnknown
{
public:
    STDMETHOD(GetTvOutput)(THIS_ PDWORD pdwOutFlags) PURE;
	STDMETHOD(SetTvOutput)(THIS_ DWORD dwOutFlags) PURE;
	
    STDMETHOD(GetTvSource)(THIS_ PTV_SOURCE_FORMATS pTvSrcFormat) PURE;

	STDMETHOD(GetHDTVMode)(THIS_ PDWORD pdwRegistryHDTVMode) PURE;
	STDMETHOD(SetHDTVMode)(THIS_ DWORD dwRegistryHDTVMode) PURE;
};

/////////////////////////////////////////////////////////////////////////////
// interface ITvVgaOutput3 used to set output to VGA or TV in different 
// TV standards (PAL, NTSC....) or in HDTV mode. The first 3 methods are
// 100% compatible with the ITvVgaOutput interface and the last 2 with 
// ITvVgaOutput2 interface.
// We added support for Preferred TV format when not provided on the video
// input pin using the MPEG2VIDEOINFO structure (FORMAT_MPEG2Video format).
// Note that the MPEG2VIDEOINFO structure will superseed this default 
// settings.

// Enumeration of the different video format
typedef enum
{
	TVMODE_NORMAL_OR_WIDE = 0,		// 4:3 -> 4:3 and 16:9 -> 16:9
	TVMODE_PAN_SCAN,				// 4:3 -> 4:3 and 16:9 -> 4:3 pan & scan
	TVMODE_LETTER_BOX				// 4:3 -> 4:3 and 16:9 -> 4:3 letter box
} TV_PREFERRED_MODES, *PTV_PREFERRED_MODES;

interface ITvVgaOutput3 : public IUnknown
{
public:
    STDMETHOD(GetTvOutput)(THIS_ PDWORD pdwOutFlags) PURE;
	STDMETHOD(SetTvOutput)(THIS_ DWORD dwOutFlags) PURE;
	
    STDMETHOD(GetTvSource)(THIS_ PTV_SOURCE_FORMATS pTvSrcFormat) PURE;

	STDMETHOD(GetTvPreferredMode)(THIS_ PTV_PREFERRED_MODES pTvPrefMode) PURE;
	STDMETHOD(SetTvPreferredMode)(THIS_ TV_PREFERRED_MODES TvPrefMode) PURE;
	
	STDMETHOD(GetHDTVMode)(THIS_ PDWORD pdwRegistryHDTVMode) PURE;
	STDMETHOD(SetHDTVMode)(THIS_ DWORD dwRegistryHDTVMode) PURE;

	STDMETHOD(GetHDTVSubDMode)(THIS_ PDWORD pdwRegistryHDTVMode) PURE;
	STDMETHOD(SetHDTVSubDMode)(THIS_ DWORD dwRegistryHDTVMode) PURE;
};

/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////////////////////
// interface IMPEGTimeInfo used to retrieve information about the PTSs and 
// STC.

interface IMPEGTimeInfo : public IUnknown
{
public:
    STDMETHOD(GetSTC)(THIS_ MPEG_SYSTEM_TIME *pmstSTC) PURE;

	STDMETHOD(GetNextPTSToDecode)(THIS_ MPEG_STREAM_TYPE StreamType, 
		THIS_ MPEG_SYSTEM_TIME *pmstSTC) PURE;
	STDMETHOD(GetDisplayedPTS)(THIS_ MPEG_STREAM_TYPE StreamType,
		THIS_ MPEG_SYSTEM_TIME *pmsPTS) PURE;
    STDMETHOD(GetLastPTSReceived)(THIS_ MPEG_STREAM_TYPE StreamType,
		THIS_ MPEG_SYSTEM_TIME *pmsPTS) PURE;
};

/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -