avifile.h 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #ifndef __AVIFILE_H
  2. #define __AVIFILE_H
  3. #include "avi_def.h"
  4. //#define DEBUGINFO //信息打印开关
  5. /** big_endian */
  6. // #define RIFF_ID 0x52494646
  7. // #define AVI_ID 0x41564920
  8. // #define LIST_ID 0x4c495354
  9. // #define hdrl_ID 0x6864726c
  10. // #define avih_ID 0x61766968
  11. // #define strl_ID 0x7374726c
  12. // #define strh_ID 0x73747268
  13. // #define strf_ID 0x73747266
  14. // #define movi_ID 0x6d6f7669
  15. // #define mjpg_ID 0x4D4A5047
  16. // #define vids_ID 0x76696473
  17. // #define auds_ID 0x61756473
  18. /** little_endian */
  19. #define RIFF_ID _REV(0x52494646)
  20. #define AVI_ID _REV(0x41564920)
  21. #define LIST_ID _REV(0x4c495354)
  22. #define hdrl_ID _REV(0x6864726c)
  23. #define avih_ID _REV(0x61766968)
  24. #define strl_ID _REV(0x7374726c)
  25. #define strh_ID _REV(0x73747268)
  26. #define strf_ID _REV(0x73747266)
  27. #define movi_ID _REV(0x6d6f7669)
  28. #define mjpg_ID _REV(0x4D4A5047)
  29. #define vids_ID _REV(0x76696473)
  30. #define auds_ID _REV(0x61756473)
  31. typedef struct
  32. {
  33. uint32_t RIFFchunksize;
  34. uint32_t LISTchunksize;
  35. uint32_t avihsize;
  36. uint32_t strlsize;
  37. uint32_t strhsize;
  38. uint32_t movi_start; //数据块的起始位置
  39. uint32_t movi_size;
  40. uint16_t vids_fps;
  41. uint16_t vids_width;
  42. uint16_t vids_height;
  43. uint16_t auds_channels;
  44. uint16_t auds_sample_rate;
  45. uint16_t auds_bits;
  46. AVI_HDRL_LIST avi_hd;
  47. } AVI_TypeDef;
  48. #define MAKEWORD(ptr) (uint32_t)(((uint32_t)*((uint8_t*)(ptr))<<8)|(uint32_t)*(uint8_t*)((ptr)+1))
  49. #define MAKEuint32_t(ptr) (uint32_t)(((uint32_t)*(uint8_t*)(ptr)|(((uint32_t)*(uint8_t*)(ptr+1))<<8)|\
  50. (((uint32_t)*(uint8_t*)(ptr+2))<<16)|(((uint32_t)*(uint8_t*)(ptr+3))<<24)))
  51. int AVI_Parser(const uint8_t *buffer, uint32_t length);
  52. uint8_t AVIH_Parser(uint8_t *buffer);
  53. #endif