camif.h
上传用户:qiulin1960
上传日期:2013-10-16
资源大小:2844k
文件大小:6k
源码类别:

Windows CE

开发平台:

Windows_Unix

  1. /*****************************************
  2.   NAME: Camif.h
  3.   DESC: header file for Camera Interface test codes 
  4.   HISTORY:  2002.03.13:draft ver 0.0
  5.  *****************************************/
  6. #ifndef __CAMIF_H__
  7. #define __CAMIF_H__
  8. #ifdef __cplusplus
  9. extern "C"{
  10. #endif
  11. #define U32 unsigned int
  12. //2440 camif.h/////////////////////////////////////////////////////
  13. #define CAM_CCIR420 (0)
  14. #define CAM_CCIR422 (1)
  15. #define CAM_RGB16B 0
  16. #define CAM_RGB24B 1
  17. #define CAM_ITU601 (1)
  18. #define CAM_ITU656 (0)
  19. #define CAM_ORDER_YCBYCR (0)
  20. #define CAM_ORDER_YCRYCB (1)
  21. #define CAM_ORDER_CBYCRY (2)
  22. #define CAM_ORDER_CRYCBY (3)
  23. #define CAM_CODEC_IN_420 (0)
  24. #define CAM_CODEC_IN_422 (1)
  25. #define CAM_CODEC_OUT_420 (0)
  26. #define CAM_CODEC_OUT_422 (1)
  27. #define CAM_FLIP_NORMAL (0)
  28. #define CAM_FLIP_XAXIS (1)
  29. #define CAM_FLIP_YAXIS (2)
  30. #define CAM_FLIP_180 (3)
  31. #define CAM_SCALER_BYPASS_ON (1)
  32. #define CAM_SCALER_BYPASS_OFF (0)
  33. #define CAM_CODEC_SACLER_START_BIT (1<<15)
  34. #define CAM_PVIEW_SACLER_START_BIT (1<<15)
  35. #define CAM_CAMIF_GLOBAL_CAPTURE_ENABLE_BIT (1<<31)
  36. #define CAM_CODEC_SCALER_CAPTURE_ENABLE_BIT (1<<30)
  37. #define CAM_PVIEW_SCALER_CAPTURE_ENABLE_BIT (1<<29)
  38. //camTestMode
  39. #define CAM_TEST_MODE_PVIEW (1<<0)
  40. #define CAM_TEST_MODE_CODEC (1<<1)
  41. //camCodecStatus, camPviewStatus
  42. #define CAM_STARTED (0)
  43. #define CAM_STOP_ISSUED (1)
  44. #define CAM_LAST_CAPTURING (2)
  45. #define CAM_STOPPED (3)
  46. #define CAM_CODEC_SCALER_BYPASS_STATE (4)
  47. #define CAPTURE_ON (1)
  48. #define CAPTURE_OFF  (0)
  49. #define HIGH (1)
  50. #define LOW (0)
  51. #define CAM_A (0)
  52. #define CAM_B (1)
  53. #define Y_BURST1_XGA (16)
  54. #define Y_BURST2_XGA (16)
  55. #define CB_BURST1_XGA (16)
  56. #define CB_BURST2_XGA (16)
  57. #define CR_BURST1_XGA (16)
  58. #define CR_BURST2_XGA (16)
  59. #define Y_BURST1_VGA (16)
  60. #define Y_BURST2_VGA (16)
  61. #define CB_BURST1_VGA (16)
  62. #define CB_BURST2_VGA (16)
  63. #define CR_BURST1_VGA (16)
  64. #define CR_BURST2_VGA (16)
  65. #define Y_BURST1_CIF (16)
  66. #define Y_BURST2_CIF (8)
  67. #define CB_BURST1_CIF (8)
  68. #define CB_BURST2_CIF (4)
  69. #define CR_BURST1_CIF (8)
  70. #define CR_BURST2_CIF (4)
  71. #define Y_BURST1_PQVGA (8)
  72. #define Y_BURST2_PQVGA (4)
  73. #define CB_BURST1_PQVGA (4)
  74. #define CB_BURST2_PQVGA (2)
  75. #define CR_BURST1_PQVGA (4)
  76. #define CR_BURST2_PQVGA (2)
  77. //Image Type of Camera Interface
  78. #define CAMERA_XGA_VGA_XGA (0x9121)//SRC 4:2:2 YCbCr 1024*768, DST 4:2:0 YCbCr A: 640*480 B:1024*768
  79. #define CAMERA_XGA_PQVGA_XGA (0x9131)//SRC 4:2:2 YCbCr 1024*768, DST 4:2:0 YCbCr A:240*320 B:1024*768
  80. #define CAMERA_XGA_PQVGA_VGA (0x9132)//SRC 4:2:2 YCbCr 1024*768, DST 4:2:0 YCbCr A:240*320 B:640*480
  81. #define CAMERA_VGA_PQVGA_VGA (0x9232)//SRC 4:2:2 YCbCr 640*480, DST 4:2:0 YCbCr A:240*320 B:640*480
  82. // 1st Ping-pong Address
  83. #define COPIFRAMEBUFFER_A  0x30088000 // 176*144 * 2(RGB 16bit) * 4 frames = 202752(0x31800)
  84. // 0x30088000 + 0x31800 = 0x300B9800
  85. #define COPIFRAMEBUFFER_B  0x300B9800 // Max buffer size of Port : 0x360000 (1024*768+256*192*2)*4
  86. //#define COPIFRAMEBUFFER_B  0x303B0000 // Max buffer size of Port : 0x360000 (1024*768+256*192*2)*4
  87. #define VIRTUAL_OFFSET 0x7C000000
  88. #define VIRTUAL_ADDR_OFFSET VIRTUAL_OFFSET // for MPEG4
  89. //Image Size
  90. #define XGA_XSIZE (1024)
  91. #define XGA_YSIZE (768)
  92. #define SVGA_XSIZE (800)
  93. #define SVGA_YSIZE (600)
  94. #define VGA_XSIZE (640)
  95. #define VGA_YSIZE (480)
  96. #define PQVGA_XSIZE (240)
  97. #define PQVGA_YSIZE (320)
  98. #define CIF_XSIZE (352)
  99. #define CIF_YSIZE (288)
  100. #define QCIF_XSIZE (176)
  101. #define QCIF_YSIZE (144)
  102. #define XGA (1)
  103. #define SVGA (2)
  104. #define VGA (3)
  105. #define CIF (4)
  106. #define PQVGA (5)
  107. #define QCIF (6)
  108. #define CAMCLK48000000 (0)
  109. #define CAMCLK24000000 (1)
  110. #define CAMCLK16000000 (2)
  111. #define CAMCLK12000000 (3)
  112. #define CAMCLK9600000 (4)
  113. #define CAMCLK8000000 (5)
  114. #define IN1PINGPONG (1)
  115. #define IN2PINGPONG (2)
  116. #define IN4PINGPONG (4)
  117. #define OUT1PINGPONG (1)
  118. #define OUT2PINGPONG (2)
  119. #define OUT4PINGPONG (4)
  120. //////////////////////////////////////////////////////////////////
  121. // Current modes
  122. #define USED_CAM_TYPE CAM_S5X532
  123. #define USED_LCD_TYPE   MODE_TFT_16BIT_240320  // refer to Lcdlib.h 
  124. //AU70H camera resolution
  125. #define AU70H_VIDEO_SIZE (1152)   // 1152:(1152x864) or 640:(640x480)
  126. #define CAM_CODEC_OUTPUT CAM_CCIR420
  127. #define CAM_PVIEW_OUTPUT CAM_RGB16B
  128. #define CAM_CODEC_4PP (1) // 0:all equal, 1:4 pingpong
  129. #define CAM_PVIEW_4PP (1) // 0:all equal, 1:4 pingpong
  130. /*
  131. #if USED_CAM_TYPE==CAM_AU70H && AU70H_VIDEO_SIZE==1152
  132. #define CAM_SRC_HSIZE (1152)
  133. #define CAM_SRC_VSIZE (864)
  134. #elif USED_CAM_TYPE==CAM_S5X3A1
  135. #define CAM_SRC_HSIZE (1280)
  136. #define CAM_SRC_VSIZE (1024)
  137. #else
  138. #define CAM_SRC_HSIZE (640)
  139. #define CAM_SRC_VSIZE (480)
  140. #endif
  141. */
  142. #define CAM_SRC_HSIZE (640)
  143. #define CAM_SRC_VSIZE (480)
  144. //void __irq Camif_Int_S(void);
  145. //void __irq Camif_Int_C(void);
  146. void Camif_Int_Mask_S(void);
  147. void Camif_Int_Mask_C(void);
  148. void Camif_Int_Unmask_S(void);
  149. void Camif_Int_Unmask_C(void);
  150. void Camif_Init_Old(int type);
  151. // 2003.05.12
  152. void Camif_Init(U32 src_xsize, U32 src_ysize, U32 dst_xsize_a, U32 dst_ysize_a, U32 dst_xsize_b, U32 dst_ysize_b, U32 FrameBufferA, U32 FrameBufferB, U32 camclk);
  153. void Camif_Capture(int cap_a, int cap_b);
  154. void Camif_If_Reset(void);
  155. void Camera_Processor_Reset(void);
  156. void SetCAMClockDivider(int divn);// 2003.05.12
  157. void Camif_Init_640480(U32 camclk);
  158. void Camif_Init_VGA_CIF(U32 camclk);
  159. void Camera_Test(void);
  160. void Test_Cam_Post_Lcd_One(void);
  161. void Test_Cam_VGA_CIF(void);
  162. void Test_Cam_CIF(void);
  163. void Test_Img_Cam_24bit_240320(void);
  164. void Test_Img_Cam_24bit_640480(void);
  165. void Move_Memory(U32 SrcMemory, U32 SrcXsize, U32 SrcYsize, U32 DstMemory, U32 DstXsize, U32 DstYsize);
  166. //#endif /*__POST_H__*/
  167. #define CAM_CLK_DIV 0 // 0:24M, 1:12M, 2:8M, 3:6M, 5:4M, 11:2M
  168. // for MPEG4
  169. typedef struct _YUVINFO
  170. {
  171. int frame_width;
  172. int frame_height;
  173. unsigned int frame_stamp;
  174. } YUVINFO;
  175. // Availabe ping-pong address
  176. typedef struct PINGPONG
  177. {
  178. unsigned int y_address;
  179. unsigned int cb_address;
  180. unsigned int cr_address;
  181. unsigned char flag;
  182. } PINGPONG;
  183. typedef struct PINGPONG_PR
  184. {
  185. unsigned int rgb_address;
  186. unsigned char flag;
  187. } PINGPONG_PR;
  188. #ifdef __cplusplus
  189. }
  190. #endif
  191. #endif /* __CAMIF_H__ */