vpp.h
上传用户:poi891205
上传日期:2013-07-15
资源大小:9745k
文件大小:6k
源码类别:

DVD

开发平台:

C/C++

  1. #ifndef __VPP_H
  2. #define __VPP_H
  3. #ifdef DVD728
  4. #include "mytypes.h"
  5. #endif
  6. //
  7. // setVPP_Display()
  8. // parameter
  9. //
  10. #define DISPLAY_NORMAL     (0)
  11. #define DISPLAY_LETTERBOX  (0)
  12. #define DISPLAY_PANSCAN    (1)
  13. #define DISPLAY_ZOOM_1_2   (2)
  14. #define DISPLAY_ZOOM_1_6   (3)
  15. #define DISPLAY_ZOOM_2_0   (4)
  16. #define DISPLAY_ZOOM_3_0   (5)
  17. #define DISPLAY_ZOOM_4_0   (6)
  18. #define DISPLAY_ZOOM_MAX   DISPLAY_ZOOM_4_0
  19. #ifdef TWELVE_ZOOMFACTORS//axel2004/5/3 12:35pm
  20. #define VPP_ZOOM0 0
  21. #define VPP_ZOOM1 1
  22. #define VPP_ZOOM2 2
  23. #define VPP_ZOOM3 3
  24. #define VPP_ZOOM4 4
  25. #define VPP_ZOOM5 5
  26. #define VPP_ZOOM6 6
  27. #define VPP_ZOOM7 7
  28. #define VPP_ZOOM8 8
  29. #define VPP_ZOOM9 9
  30. #define VPP_ZOOMOUT1 10
  31. #define VPP_ZOOMOUT2 11
  32. #define VPP_ZOOMOUT3    12
  33. #define VPP_ZOOM_MAX VPP_ZOOMOUT3
  34. #else
  35. #define VPP_ZOOM0 0
  36. #define VPP_ZOOM1 1
  37. #define VPP_ZOOM2 2
  38. #define VPP_ZOOM3 3
  39. #define VPP_ZOOM4 4
  40. #define VPP_ZOOM5 5
  41. #define VPP_ZOOMOUT1 6
  42. #define VPP_ZOOMOUT2 7
  43. #define VPP_ZOOMOUT3    8
  44. #define VPP_ZOOM_MAX VPP_ZOOMOUT3
  45. #endif//#ifdef TWELVE_ZOOMFACTORS
  46. // Source Aspect Ratio
  47. #define ASPECT_4_3       (0)
  48. #define ASPECT_16_9      (1)
  49. #define ASPECT_ALMOST_FULL    (2)
  50. // pixel aspect ratio: used for MPEG-4
  51. #define PIXEL_ASPECT_FORBIDDEN 0 // forbidden
  52. #define PIXEL_ASPECT_SQUARE 1 // 1:1 (square pixel)
  53. #define PIXEL_ASPECT_PAL_4_3 2 // 12:11 (625 type for 4:3 picture)
  54. #define PIXEL_ASPECT_NTSC_4_3 3 // 10:11 (525 type for 4:3 picture)
  55. #define PIXEL_ASPECT_PAL_16_9 4 // 16:11 (625 type for 16:9 picture)
  56. #define PIXEL_ASPECT_NTSC_16_9 5 // 40:33 (525 type for 16:9 picture)
  57. #define PIXEL_ASPECT_ALMOST_FULL 6 // 40:33 (525 type for 16:9 picture)
  58. #define PIXEL_ASPECT_EXTENDED 15 // extended parameters from MPEG-4
  59. #define VPP_EXPANSION_FIXED 0
  60. #define VPP_EXPANSION_ASPECT 1
  61. #define VPP_EXPANSION_FREE 2
  62. #define OFFSET_CENTER     0
  63. #define OFFSET_ZERO         1
  64. #define OFFSET_USER         2
  65. #define OFFSET_USER_CENTER  3
  66. void            setVPP_OffsetMode(int);
  67. void            setVPP_OffsetX(int);
  68. void            setVPP_OffsetY(int);
  69. #define VPP_MATRIX_ENTRY(src,aspect,tv,zoom) 
  70. (((src)<<5) | ((aspect)<<4) | ((tv)<<3) | (zoom))
  71. //
  72. // Source Resoultion
  73. //
  74. #define VPP_RES_720x480    (0)
  75. #define VPP_RES_720x576    (1)
  76. #define VPP_RES_480x480    (2)
  77. #define VPP_RES_480x576    (3)
  78. #define VPP_RES_352x480    (4)
  79. #define VPP_RES_352x576    (5)
  80. #define VPP_RES_352x240    (6)
  81. #define VPP_RES_352x288    (7)
  82. #define is_res_pal(res) ((res)&0x01)
  83. //
  84. #define VPP_RES_PAL (0x01)
  85. #define VPP_RES_720 (0x00)
  86. #define VPP_RES_480 (0x02)
  87. #define VPP_RES_352 (0x04)
  88. void setVPP_ParamInit(int source_res, int source_aspect, int tv);
  89. void setVPP_SourceRes(int source_res);
  90. void setVPP_PictureSize(int w, int h);
  91. unsigned        setVPP_PictureWidth(void);
  92. unsigned        setVPP_PictureHeight(void);
  93. //
  94. // tv format
  95. void setVPP_TVformat(int);           // 0:525-line system,
  96.                                                 // 1:625-line system
  97. // tv aspect-ratio
  98. void            set_vpp_tv_aspect(int);         // 0:4:3, 1:16:9
  99. // video-source aspect-ratio
  100. void            set_vpp_src_aspect(int);        // 0:4:3, 1:16:9
  101. // vpp on/off
  102. void setVPP_VideoOn(void);
  103. void setVPP_VideoOff(void);
  104. void setVPP_chroma_vint_field(void);
  105. void setVPP_chroma_vint_frame(void);
  106. void setVPP_luma_vint_field(void);
  107. void setVPP_luma_vint_frame(void);
  108. void setVPP_Display(int mode);
  109. void setVPP_DoIt(void);
  110. void setVPP_DoItNow(void);
  111. void setVPP_ExpansionMode(int exp_mode);
  112. void fieldintr_vpp(int field, int use_pixel_aspect_ratio);
  113. void setVPP_YOffset(int yoff);
  114. int getVPP_PictureWidth();
  115. int getVPP_PictureHeight();
  116. int getVPP_HOffset();
  117. int getVPP_VOffset();
  118. void vpp_reset_framebuf_state(void);
  119. void setVPP_EnableVideo();
  120. void setVPP_DisableVideoFields(int n);
  121. void  update_dip_config(void);
  122. #define setVPP_DisableVideo() setVPP_DisableVideoFields(-1)
  123. void init_vpp(void);
  124. extern UINT8 pic_offsetx_max;
  125. extern UINT8 pic_offsety_max;
  126. #define getVPP_XOffsetMax() pic_offsetx_max
  127. #define getVPP_YOffsetMax() pic_offsety_max
  128. //
  129. // vpp register structure
  130. //
  131. typedef struct
  132. {
  133.    INT16 pic_w; // 0
  134.    INT16 pic_h; // 2
  135.    INT16 dis_x_start; // 4
  136.    INT16 dis_y_start; // 6
  137.    INT16 dis_x_size ; // 8
  138.    INT16 dis_y_size ; // a
  139. #ifdef DVD728
  140.    UINT32 vfactor; // c
  141.    UINT16 hfactor; // e
  142.    DS_CFG vpp_cfg; // 10
  143.    DS_CFG ds_field_cfg; // 12
  144.    DS_CFG dip_cfg; // 14
  145.    DS_CFG dip_param; // 16
  146. #else
  147.    UINT16 vfactor; // c
  148.    UINT16 hfactor; // e
  149.    UINT16 field_exchange; // 10 vpp parameters
  150. #endif
  151.    UINT16 y_offset; // 12
  152.    UINT16 cbcr_offset; // 14 [15:8] cb  [7:0] cr
  153. #ifdef DVD728
  154.    UINT16 line_offset; // 1c
  155.    UINT16 pix_offset; // 1d
  156. #else
  157.    UINT8 line_offset; // 15
  158.    UINT8 pix_offset; // 16
  159. #endif
  160. } t_vpp_reg;
  161. extern t_vpp_reg vpp_reg;
  162. //
  163. // TV format and aspect-ratio
  164. extern  INT8            vppsetup_tv_aspect;
  165. extern INT8 vppsetup_tv_system;
  166. #define getVPP_TVsystem() (vppsetup_tv_system)
  167. //
  168. // Source format and aspect-ratio
  169. extern  INT8            vppsetup_src_aspect;
  170. extern UINT8  Ksetup_jpeg_h_aspect;
  171. extern UINT8  Ksetup_jpeg_v_aspect;
  172. INT8    dec_field_dip_cntr;
  173. //
  174. // display size
  175. void    set_vpp_disp_size(int w, int h);
  176. int     get_vpp_disp_width(void);
  177. int     get_vpp_disp_height(void);
  178. //
  179. // OLD
  180. // for vpp.c compatible
  181. void vpp_set_pic(int w, int h);
  182. #define VPP_AUTOEXP         (1<<0)      // expansion or not
  183. #define VPP_ASPECT_RATIO    (1<<1)      // keeping aspect ratio
  184. #define VPP_CENTERED        (1<<2)      // put the picture in center
  185. #endif/*__VPP_H*/