vportcap.h
上传用户:dahaojd
上传日期:2008-01-29
资源大小:14357k
文件大小:5k
源码类别:

DSP编程

开发平台:

C/C++

  1. /*
  2.  *  Copyright 2003 by Texas Instruments Incorporated.
  3.  *  All rights reserved. Property of Texas Instruments Incorporated.
  4.  *  Restricted rights to use, duplicate or disclose this code are
  5.  *  granted through contract.
  6.  *  
  7.  */
  8. /* "@(#) DDK 1.10.00.23 07-02-03 (ddk-b12)" */
  9. #ifndef _VPORTCAP_H
  10. #define _VPORTCAP_H
  11. #ifdef __cplusplus
  12. extern "C" {
  13. #endif
  14. #include <vport.h>
  15. /********************************************************/
  16. /* video port capture fiedl inverse enable              */
  17. /********************************************************/
  18. /* select whether detected field needs to be inverted   */
  19. /* this is only used when exc is enabled and line       */
  20. /* counter is reseted at the start of vertical blanking */
  21. /* period and when FID signal is toggled during the     */
  22. /* vertical blanking period, e.g., in NTSC              */
  23. #define   VPORTCAP_FINV_DISABLE       0x0
  24. #define   VPORTCAP_FINV_ENABLE        0x1
  25. /***********************************************/
  26. /* video port capture line counter reset mode  */
  27. /***********************************************/
  28. /* line counter reset at the start of vertical */ 
  29. /* blank period EAV when exc is disabled.      */
  30. /* Or at the active edge of the vertical       */
  31. /* control signal when exc is enabled          */
  32. #define   VPORTCAP_VRST_START_VBLK       0x0 
  33. #define   VPORTCAP_VRST_START_VSYNC      0x0            
  34. #define   VPORTCAP_VRST_EAV_V0           0x0
  35. /* line counter reset at the end of vertical   */
  36. /* blank period EAV   when exc is disabled.    */
  37. /* Or at the inative edge of the vertical      */
  38. /* control signal when exc is disabled         */
  39. #define   VPORTCAP_VRST_END_VBLK         0x1 
  40. #define   VPORTCAP_VRST_END_VSYNC        0x1 
  41. #define   VPORTCAP_VRST_EAV_V1           0x1
  42. /***********************************************/
  43. /* video port capture pixel counter reset mode */
  44. /***********************************************/
  45. /* line counter reset at the start of horizontal blank period */
  46. #define   VPORTCAP_HRST_EAV         0x0 
  47. #define   VPORTCAP_HRST_START_HBLK  0x0
  48. #define   VPORTCAP_HRST_START_HSYNC 0x0 
  49. /* line counter reset at the end of horizontal blank period */
  50. #define   VPORTCAP_HRST_SAV         0x1 
  51. #define   VPORTCAP_HRST_END_HBLK    0x1
  52. #define   VPORTCAP_HRST_END_HSYNC   0x1 
  53. /***********************************************/
  54. /* video port capture field detect method      */
  55. /***********************************************/
  56. /* used only when exc is enabled               */
  57. /* field detect logic off, using EAV or FID    */
  58. /* input for field detection                   */
  59. #define   VPORTCAP_FLDD_DISABLE       0x0  
  60. /* field detect logic on */
  61. #define   VPORTCAP_FLDD_ENABLE        0x1  
  62. /* video port capture external control enable    */
  63. /* In capture operation, embedded EAV/SAV code   */
  64. /* is used when exc disabled. And HCTL/VCTL/FID  */
  65. /* is used when it is enabled                    */
  66. /* This mode is for some legacy video decoders   */
  67. /* that don't insert embedded EAV/SAV code       */
  68. #define   VPORTCAP_EXC_DISABLE       0x0
  69. #define   VPORTCAP_EXC_ENABLE        0x1          
  70. /* VPORT capture 10-Bit mode Bit Packing format */
  71. #define    VPORTCAP_BPK_10BIT_ZERO_EXTENDED 0x0
  72. #define    VPORTCAP_BPK_10BIT_SIGN_EXTENDED 0x1
  73. #define    VPORTCAP_BPK_10BIT_DENSE         0x2
  74. typedef struct {
  75.     Int  cmode;    /* capture mode settings   */  
  76.     Int  fldOp;    /* field & frame operation */
  77.     
  78.     /* bit 8-15 */
  79.     Int  scale;    /* indicate whether to enable 1/2 scaling */
  80.     Int  resmpl;   /* indicate whether to enable choroma     */
  81.                                /* sub-sampling                           */
  82.     Int  bpk10Bit; /* 10-bit bit-pack mode                   */
  83.     /* bit 16-23 */
  84.     Int  hCtRst;   /* horizontal counter reset mode            */         
  85.     Int  vCtRst;   /* vertical counter reset mode              */
  86.     Int  fldDect;  /* enable whether to use FID input or field */
  87.                       /* detection logic based on the timing      */
  88.                       /* relation of hsync and vsync              */
  89.     Int  extCtl;   /* enable external timing control           */
  90.     Int  fldInv;   /* enable inversion of the detected fid     */    
  91.     
  92.     Uint16 fldXStrt1;  /* field 1 X start */
  93.     Uint16 fldYStrt1;  /* field 1 Y start */
  94.     Uint16 fldXStrt2;  /* field 2 X start */
  95.     Uint16 fldYStrt2;  /* field 2 Y start */
  96.     Uint16 fldXStop1;  /* field 1 X stop  */    
  97.     Uint16 fldYStop1;  /* field 1 Y stop  */
  98.     Uint16 fldXStop2;  /* field 2 X stop  */
  99.     Uint16 fldYStop2;  /* field 2 Y stop  */
  100.     Uint16 thrld;      /* video FIFO threshold */
  101.     /* frame buffer settings */
  102.     Int   numFrmBufs; /* number of frame buffers that the driver allocates */
  103.     Int   alignment;  /* frame buffer alignment */
  104.     Int   mergeFlds;  /* indicate to interleave data of the two fields in memory */
  105.                                /* or just store them seperated */
  106.     Int   segId;      /* memory segment ID, used by MEM_alloc() to allocate */
  107.                                /* video frame buffer */       
  108.     /* EDMA priority */
  109.     Int   edmaPri;    /* channel EDMA priority */
  110.     Int   irqId;                                   
  111. } VPORTCAP_Params;
  112. extern IOM_Fxns VPORTCAP_Fxns;
  113. #ifdef __cplusplus
  114. }
  115. #endif /* extern "C" */
  116. #endif /* _VPORTCAP_H */