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

📄 s3c6400_tv_scaler.h

📁 Samsung公司S3C6400芯片的BSP源码包
💻 H
字号:
#ifndef __S3C6400_TV_SCALER_H__
#define __S3C6400_TV_SCALER_H__

#if __cplusplus
extern "C"
{
#endif

typedef enum
{
	TVSC_SRC_RGB16 = 0,
	TVSC_SRC_RGB24,
	TVSC_SRC_YUV420,
	TVSC_SRC_YUV422_YCBYCR,
	TVSC_SRC_YUV422_CBYCRY,
	TVSC_SRC_YUV422_YCRYCB,
	TVSC_SRC_YUV422_CRYCBY,
	TVSC_SRC_FIFO
} TVSC_SRC_TYPE;

typedef enum
{
	TVSC_DST_RGB16 = 0,
	TVSC_DST_RGB24,
	TVSC_DST_YUV420,
	TVSC_DST_YUV422_YCBYCR,
	TVSC_DST_YUV422_CBYCRY,
	TVSC_DST_YUV422_YCRYCB,
	TVSC_DST_YUV422_CRYCBY,
	TVSC_DST_FIFO_YUV444,
	TVSC_DST_FIFO_RGB888
} TVSC_DST_TYPE;

typedef enum
{
	TVSC_PER_FRAME_MODE,
	TVSC_FREE_RUN_MODE
} TVSC_OP_MODE;

typedef enum
{
	TVSC_PROGRESSIVE,
	TVSC_INTERLACE
} TVSC_SCAN_MODE;

typedef enum
{
	TVSC_SRC_ADDRESS,
	TVSC_NEXT_SRC_ADDRESS,
	TVSC_DST_ADDRESS,
	TVSC_NEXT_DST_ADDRESS
} TVSC_DMA_ADDRESS;

typedef enum
{
	TVSC_IDLE = 0,
	TVSC_BUSY
} TVSC_STATE;

typedef enum
{
	TVSC_SUCCESS,
	TVSC_ERROR_NULL_PARAMETER,
	TVSC_ERROR_ILLEGAL_PARAMETER,
	TVSC_ERROR_NOT_INITIALIZED,
	TVSC_ERROR_NOT_IMPLEMENTED,
	TVSC_ERROR_PRESCALER_OUT_OF_SCALE_RANGE,
	TVSC_ERROR_XXX
} TVSC_ERROR;

TVSC_ERROR TVSC_initialize_register_address(void *pTVSCReg);
TVSC_ERROR TVSC_initialize(TVSC_OP_MODE Mode, TVSC_SCAN_MODE Scan, TVSC_SRC_TYPE SrcType, unsigned int SrcWidth, unsigned int SrcHeight, TVSC_DST_TYPE DstType, unsigned int DstWidth, unsigned int DstHeight);
TVSC_ERROR TVSC_set_source_buffer(unsigned int AddrY, unsigned int AddrCb, unsigned int AddrCr);
TVSC_ERROR TVSC_set_next_source_buffer(unsigned int AddrY, unsigned int AddrCb, unsigned int AddrCr);
TVSC_ERROR TVSC_set_destination_buffer(unsigned int AddrY, unsigned int AddrCb, unsigned int AddrCr);
TVSC_ERROR TVSC_set_next_destination_buffer(unsigned int AddrY, unsigned int AddrCb, unsigned int AddrCr);

void TVSC_processing_start(void);
TVSC_ERROR TVSC_processing_stop(void);
TVSC_STATE TVSC_get_processing_state(void);

void TVSC_enable_interrupt(void);
void TVSC_disable_interrupt(void);
BOOL TVSC_clear_interrupt_pending(void);

static TVSC_ERROR TVSC_set_mode(TVSC_OP_MODE Mode, TVSC_SCAN_MODE Scan, TVSC_SRC_TYPE SrcType, TVSC_DST_TYPE DstType);
static TVSC_ERROR TVSC_set_source_size(unsigned int BaseWidth, unsigned int BaseHeight, unsigned int Width, unsigned int Height, unsigned int OffsetX, unsigned int OffsetY);
static TVSC_ERROR TVSC_set_destination_size(unsigned int BaseWidth, unsigned int BaseHeight, unsigned int Width, unsigned int Height, unsigned int OffsetX, unsigned int OffsetY);
static TVSC_ERROR TVSC_get_prescaler_horizontal_value(unsigned int *PrescalerRatio, unsigned int *MainShift);
static TVSC_ERROR TVSC_get_prescaler_vertical_value(unsigned int *PrescalerRatio, unsigned int *MainShift);
static TVSC_ERROR TVSC_update_condition(void);
static TVSC_ERROR TVSC_set_dma_address(TVSC_DMA_ADDRESS DMA, unsigned int AddrY, unsigned int AddrCb, unsigned int AddrCr);


#if __cplusplus
}
#endif

#endif	// __S3C6400_TV_SCALER_H__

⌨️ 快捷键说明

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