| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- #ifndef __AVIFILE_H
- #define __AVIFILE_H
- #include "avi_def.h"
- //#define DEBUGINFO //信息打印开关
- /** big_endian */
- // #define RIFF_ID 0x52494646
- // #define AVI_ID 0x41564920
- // #define LIST_ID 0x4c495354
- // #define hdrl_ID 0x6864726c
- // #define avih_ID 0x61766968
- // #define strl_ID 0x7374726c
- // #define strh_ID 0x73747268
- // #define strf_ID 0x73747266
- // #define movi_ID 0x6d6f7669
- // #define mjpg_ID 0x4D4A5047
- // #define vids_ID 0x76696473
- // #define auds_ID 0x61756473
- /** little_endian */
- #define RIFF_ID _REV(0x52494646)
- #define AVI_ID _REV(0x41564920)
- #define LIST_ID _REV(0x4c495354)
- #define hdrl_ID _REV(0x6864726c)
- #define avih_ID _REV(0x61766968)
- #define strl_ID _REV(0x7374726c)
- #define strh_ID _REV(0x73747268)
- #define strf_ID _REV(0x73747266)
- #define movi_ID _REV(0x6d6f7669)
- #define mjpg_ID _REV(0x4D4A5047)
- #define vids_ID _REV(0x76696473)
- #define auds_ID _REV(0x61756473)
- typedef struct
- {
- uint32_t RIFFchunksize;
- uint32_t LISTchunksize;
- uint32_t avihsize;
- uint32_t strlsize;
- uint32_t strhsize;
- uint32_t movi_start; //数据块的起始位置
- uint32_t movi_size;
- uint16_t vids_fps;
- uint16_t vids_width;
- uint16_t vids_height;
- uint16_t auds_channels;
- uint16_t auds_sample_rate;
- uint16_t auds_bits;
- AVI_HDRL_LIST avi_hd;
- } AVI_TypeDef;
- #define MAKEWORD(ptr) (uint32_t)(((uint32_t)*((uint8_t*)(ptr))<<8)|(uint32_t)*(uint8_t*)((ptr)+1))
- #define MAKEuint32_t(ptr) (uint32_t)(((uint32_t)*(uint8_t*)(ptr)|(((uint32_t)*(uint8_t*)(ptr+1))<<8)|\
- (((uint32_t)*(uint8_t*)(ptr+2))<<16)|(((uint32_t)*(uint8_t*)(ptr+3))<<24)))
- int AVI_Parser(const uint8_t *buffer, uint32_t length);
- uint8_t AVIH_Parser(uint8_t *buffer);
- #endif
|