62 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C++
		
	
	
	
| #ifndef __LIBSCALER_SWSCALER_H__
 | |
| #define __LIBSCALER_SWSCALER_H__
 | |
| 
 | |
| #include "libscaler-common.h"
 | |
| 
 | |
| class CScalerSW {
 | |
|     protected:
 | |
|         char *m_pSrc[3];
 | |
|         char *m_pDst[3];
 | |
|         unsigned int m_nSrcLeft, m_nSrcTop;
 | |
|         unsigned int m_nSrcWidth, m_nSrcHeight;
 | |
|         unsigned int m_nSrcStride;
 | |
|         unsigned int m_nDstLeft, m_nDstTop;
 | |
|         unsigned int m_nDstWidth, m_nDstHeight;
 | |
|         unsigned int m_nDstStride;
 | |
|     public:
 | |
|         CScalerSW() { Clear(); }
 | |
|         virtual ~CScalerSW() { };
 | |
|         void Clear();
 | |
|         virtual bool Scale() = 0;
 | |
| 
 | |
|         void SetSrcRect(unsigned int left, unsigned int top, unsigned int width, unsigned int height, unsigned int stride) {
 | |
|             m_nSrcLeft = left;
 | |
|             m_nSrcTop = top;
 | |
|             m_nSrcWidth = width;
 | |
|             m_nSrcHeight = height;
 | |
|             m_nSrcStride = stride;
 | |
|         }
 | |
| 
 | |
|         void SetDstRect(unsigned int left, unsigned int top, unsigned int width, unsigned int height, unsigned int stride) {
 | |
|             m_nDstLeft = left;
 | |
|             m_nDstTop = top;
 | |
|             m_nDstWidth = width;
 | |
|             m_nDstHeight = height;
 | |
|             m_nDstStride = stride;
 | |
|         }
 | |
| };
 | |
| 
 | |
| class CScalerSW_YUYV: public CScalerSW {
 | |
|     public:
 | |
|         CScalerSW_YUYV(char *src, char *dst) {
 | |
|             m_pSrc[0] = src;
 | |
|             m_pDst[0] = dst;
 | |
|         }
 | |
| 
 | |
|         virtual bool Scale();
 | |
| };
 | |
| 
 | |
| class CScalerSW_NV12: public CScalerSW {
 | |
|     public:
 | |
|         CScalerSW_NV12(char *src0, char *src1, char *dst0, char *dst1) {
 | |
|             m_pSrc[0] = src0;
 | |
|             m_pDst[0] = dst0;
 | |
|             m_pSrc[1] = src1;
 | |
|             m_pDst[1] = dst1;
 | |
|         }
 | |
| 
 | |
|         virtual bool Scale();
 | |
| };
 | |
| 
 | |
| #endif //__LIBSCALER_SWSCALER_H__
 |