vm_common_defs.h
上传用户:enenge
上传日期:2007-01-08
资源大小:96k
文件大小:5k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

Visual C++

  1. #ifndef _VM_COMMON_DEFS_H_
  2. #define _VM_COMMON_DEFS_H_
  3.    #   ifdef __cplusplus
  4.        extern "C" {
  5.    #   endif /* __cplusplus */
  6. #define VERSION 1 /* image structure version */
  7.    #   ifdef __cplusplus
  8.        }
  9.    #   endif /* __cplusplus  */ 
  10. /* maximum allowed number of VOs and VOLs */
  11. #define MAX_NUM_VOS 32
  12. #define MAX_NUM_VOLS 16
  13. /* end of bitstream code */
  14. #define EOB_CODE                        1
  15. #define EOB_CODE_LENGTH                32
  16. /*** 10/28 TEST */
  17. /* #define MB_trace_thres 22 */
  18. #define MB_trace_thres 8193 /* changed */
  19. /* 10/28 TEST ***/
  20. #define EXTENDED_PAR 0xF
  21. /* session layer and vop layer start codes */
  22. #define SESSION_START_CODE  0x01B0
  23. #define SESSION_END_CODE  0x01B1
  24. #define VO_START_CODE  0x8      
  25. #define VO_START_CODE_LENGTH 27
  26.                                          
  27. #define VO_HEADER_LENGTH        32        /* lengtho of VO header: VO_START_CODE +  VO_ID */
  28. #define SOL_START_CODE          0x01be   
  29. #define SOL_START_CODE_LENGTH   32
  30. #define VOL_START_CODE 0x12             /* 25-MAR-97 JDL : according to WD2 */
  31. #define VOL_START_CODE_LENGTH 28
  32. #define VOP_START_CODE 0x1B6   /* 25-MAR-97 JDL : according to WD2 */
  33. #define VOP_START_CODE_LENGTH 32
  34. #define GROUP_START_CODE 0x01B3 /* 05-05-1997 Minhua Zhou */
  35. #define GROUP_START_CODE_LENGTH  32        /* 10.12.97 Luis Ducla-Soares */
  36. #define VOP_ID_CODE_LENGTH 5
  37. #define VOP_TEMP_REF_CODE_LENGTH 16
  38. #define USER_DATA_START_CODE     0x01B2 /* Due to N2171 Cl. 2.1.9, MW 23-MAR-1998 */
  39. #define USER_DATA_START_CODE_LENGTH 32 /* Due to N2171 Cl. 2.1.9, MW 23-MAR-1998 */
  40. #define START_CODE_PREFIX     0x01 /* Due to N2171 Cl. 2.1.9, MW 23-MAR-1998 */
  41. #define START_CODE_PREFIX_LENGTH    24 /* Due to N2171 Cl. 2.1.9, MW 23-MAR-1998 */
  42. #define SHORT_VIDEO_START_MARKER         0x20 
  43. #define SHORT_VIDEO_START_MARKER_LENGTH  22   
  44. #define SHORT_VIDEO_END_MARKER            0x3F    
  45. #define GOB_RESYNC_MARKER         0x01 
  46. #define GOB_RESYNC_MARKER_LENGTH  17   
  47. /* motion and resync markers used in error resilient mode  */
  48. #define DC_MARKER                      438273    /* 09.10.97 LDS: according to WD4.0 */
  49. #define DC_MARKER_LENGTH                19
  50. #define MOTION_MARKER_COMB             126977    /* 26.04.97 LDS: according to VM7.0 */
  51. #define MOTION_MARKER_COMB_LENGTH       17
  52. #define MOTION_MARKER_SEP              81921     /* 26.04.97 LDS: according to VM6.0 */
  53. #define MOTION_MARKER_SEP_LENGTH        17
  54. #define RESYNC_MARKER           1           /* 26.04.97 LDS: according to VM6.0 */
  55. #define RESYNC_MARKER_LENGTH    17
  56. #define SPRITE_NOT_USED 0
  57. #define STATIC_SPRITE 1
  58. #define GMC_SPRITE 2 /* NTT for GMC coding */
  59. /* macroblock size */
  60. #define MB_SIZE 16
  61. /* VOL types */
  62. #define RECTANGULAR 0
  63. #define BINARY 1
  64. #define BINARY_SHAPE_ONLY 2 /* HYUNDAI (Grayscale) */
  65. #define GREY_SCALE 3  /* HYUNDAI (Grayscale) */
  66. /* macroblock modes */
  67. #define MODE_INTRA                      0
  68. #define MODE_INTER                      1
  69. #define MODE_INTRA_Q 2 /* not used currently */
  70. #define MODE_INTER_Q 3  /* not used currently */
  71. #define MODE_INTER4V                    4
  72. #define MODE_GMC                        5 /* NTT for GMC coding */
  73. #define MODE_GMC_Q                      6
  74. #define MBM_INTRA  0
  75. #define MBM_INTER16  1
  76. #define MBM_SPRITE  3
  77. #define MBM_INTER8  4
  78. #define MBM_TRANSPARENT  2
  79. #define MBM_OUT  5
  80. #define MBM_SKIPPED 6
  81. /* (from mot_est.h) */
  82. #define MBM_OPAQUE         7  /* opaque block value (all pixels 1 or 255)          */
  83. #define MBM_BOUNDARY       8  /* block in the boundary of the shape => transparent */
  84. #define MBM_FIELD00         9   /* ref(Top)=Top, ref(Bot)=Top */
  85. #define MBM_FIELD01         10  /* ref(Top)=Top, ref(Bot)=Bot */
  86. #define MBM_FIELD10         11  /* ref(Top)=Bot, ref(Bot)=Top */
  87. #define MBM_FIELD11         12  /* ref(Top)=Bot, ref(Bot)=Bot */
  88. #define MBM_B_MODE      0x07    /* Mode mask */
  89. #define MBM_B_FWDFRM    0       /* Forward frame prediction */
  90. #define MBM_B_BAKFRM    1       /* Backward frame prediction */
  91. #define MBM_B_AVEFRM    2       /* Average (bidirectional) frame prediction */
  92. #define MBM_B_DIRECT    3       /* Direct mode */
  93. /* nothing defined */           /* Transparent */
  94. #define MBM_B_FWDFLD    5       /* Forward field prediction */
  95. #define MBM_B_BAKFLD    6       /* Backward field prediction */
  96. #define MBM_B_AVEFLD    7       /* Average (bidirectional) field prediction */
  97. #define MBM_B_REFFLDS   0xF0    /* Mask of reference file selectors */
  98. #define MBM_B_FWDTOP    0x10    /* Fwd Top fld reference is bot if set */
  99. #define MBM_B_FWDBOT    0x20    /* Fwd Bot fld reference is bot if set */
  100. #define MBM_B_BAKTOP    0x40    /* Bak Top fld reference is bot if set */
  101. #define MBM_B_BAKBOT    0x80    /* Bak Bot fld reference is bot if set */
  102.  
  103. /* typedef enum
  104.    {
  105.    MBMODE_INTRA=0,
  106.    MBMODE_INTER16=1,
  107.    MBMODE_INTER8=4,
  108.    MBMODE_TRANSPARENT=2,
  109.    MBMODE_OUT=5,
  110.    MBMODE_SPRITE=3
  111.    } MBMODE; */
  112. /* (from mot_est.h) */
  113. #define BINARY_ALPHA  255
  114. #define BINARY_SHAPE  1
  115. #define ARB_SHAPE  1
  116. #define NO_SHAPE_EFFECTS 0
  117. #define REVERSE_VLC          1      /* 26.04.97 LDS */
  118. #endif