mp4_header.h
上传用户:hxb_1234
上传日期:2010-03-30
资源大小:8328k
文件大小:3k
源码类别:

VC书籍

开发平台:

Visual C++

  1. #ifndef _MP4_HEADER_H_
  2. #define _MP4_HEADER_H_
  3. #define VO_START_CODE 0x8
  4. #define VOL_START_CODE 0x12
  5. #define GOP_START_CODE  0x1b3
  6. #define VOP_START_CODE 0x1b6
  7. #define I_VOP 0
  8. #define P_VOP 1
  9. #define B_VOP 2
  10. #define RECTANGULAR 0
  11. #define BINARY 1
  12. #define BINARY_SHAPE_ONLY 2 
  13. #define GRAY_SCALE 3
  14. #define STATIC_SPRITE 1
  15. #define USER_DATA_START_CODE 0x01b2
  16. #define NOT_CODED -1
  17. #define INTER 0
  18. #define INTER_Q   1
  19. #define INTER4V 2
  20. #define INTRA 3
  21. #define INTRA_Q   4
  22. #define STUFFING 7
  23. /*** *** ***/
  24. // mpeg4格式的数据结构定义
  25. typedef struct _mp4_header {
  26. // 视频对象层(vol:Video Object Layer)
  27. int ident;
  28. int random_accessible_vol;
  29. int type_indication;
  30. int is_object_layer_identifier;
  31. int visual_object_layer_verid;
  32. int visual_object_layer_priority;
  33. int aspect_ratio_info;
  34. int vol_control_parameters;
  35. int chroma_format;
  36. int low_delay;
  37. int vbv_parameters;
  38. int first_half_bit_rate;
  39. int latter_half_bit_rate;
  40. int first_half_vbv_buffer_size;
  41. int latter_half_vbv_buffer_size;
  42. int first_half_vbv_occupancy;
  43. int latter_half_vbv_occupancy;
  44. int shape;
  45. int time_increment_resolution;
  46. int fixed_vop_rate;
  47. int fixed_vop_time_increment;
  48. int width;
  49. int height;
  50. int interlaced;
  51. int obmc_disable;
  52. int sprite_usage;
  53. int not_8_bit;
  54. int quant_precision;
  55. int bits_per_pixel;
  56. int quant_type;
  57. int load_intra_quant_matrix;
  58. int load_nonintra_quant_matrix;
  59. int quarter_pixel;
  60. int complexity_estimation_disable;
  61. int error_res_disable;
  62. int data_partitioning;
  63. int intra_acdc_pred_disable;
  64. int scalability;
  65. // 图像组(gop:Group of Pictures)
  66. int time_code;
  67. int closed_gov;
  68. int broken_link;
  69. // 视频对象层(vop:Video Object Plane)
  70. int prediction_type;
  71. int time_base;
  72. int time_inc;
  73. int vop_coded;
  74. int rounding_type;
  75. int hor_spat_ref;
  76. int ver_spat_ref;
  77. int change_CR_disable;
  78. int constant_alpha;
  79. int constant_alpha_value;
  80. int intra_dc_vlc_thr;
  81. int quantizer;
  82. int fcode_for;
  83. int shape_coding_type;
  84. // 宏块(macroblock)
  85. int not_coded;
  86. int mcbpc;
  87. int derived_mb_type;
  88. int cbpc;
  89. int ac_pred_flag;
  90. int cbpy;
  91. int dquant;
  92. int cbp;
  93. // 额外的或导出的(extra/derived)
  94. int mba_size;
  95. int mb_xsize;
  96. int mb_ysize;
  97. int picnum;
  98. int mba;
  99. int mb_xpos;
  100. int mb_ypos;
  101. int dc_scaler;
  102. int intrablock_rescaled;
  103. } mp4_header;
  104. /*** *** ***/
  105. extern int getvolhdr();
  106. extern int getgophdr();
  107. extern int getvophdr();
  108. extern int __inline nextbits(int nbits);
  109. extern int __inline bytealigned(int nbits);
  110. extern void __inline next_start_code();
  111. extern int __inline nextbits_bytealigned(int nbit);
  112. #endif // _MP4_HEADER_H_