Diffstat (limited to 'noncore/multimedia/camera/jpegtoavi/avifmt.h') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/multimedia/camera/jpegtoavi/avifmt.h | 116 |
1 files changed, 116 insertions, 0 deletions
diff --git a/noncore/multimedia/camera/jpegtoavi/avifmt.h b/noncore/multimedia/camera/jpegtoavi/avifmt.h new file mode 100644 index 0000000..53ce60d --- a/dev/null +++ b/noncore/multimedia/camera/jpegtoavi/avifmt.h @@ -0,0 +1,116 @@ +#ifndef _AVIFMT_HH_ +#define _AVIFMT_HH_ + +/* 4 bytes */ +typedef int WORD; +typedef unsigned int DWORD; +/* 1 byte */ +typedef char BYTE; + + +/* flags for use in flags in AVI_avih */ +const DWORD AVIF_HASINDEX=0x00000010; /* index at end of file */ +const DWORD AVIF_MUSTUSEINDEX=0x00000020; +const DWORD AVIF_ISINTERLEAVED=0x00000100; +const DWORD AVIF_TRUSTCKTYPE=0x00000800; +const DWORD AVIF_WASCAPTUREFILE=0x00010000; +const DWORD AVIF_COPYRIGHTED=0x00020000; + + +struct AVI_avih { + DWORD us_per_frame; // frame display rate (or 0L) + DWORD max_bytes_per_sec; // max. transfer rate + DWORD padding; // pad to multiples of this size; + // normally 2K. + DWORD flags; + DWORD tot_frames; // # frames in file + DWORD init_frames; + DWORD streams; + DWORD buff_sz; + DWORD width; + DWORD height; + DWORD reserved[4]; +}; + + +struct AVI_strh { + unsigned char type[4]; /* stream type */ + unsigned char handler[4]; + DWORD flags; + DWORD priority; + DWORD init_frames; /* initial frames (???) */ + DWORD scale; + DWORD rate; + DWORD start; + DWORD length; + DWORD buff_sz; /* suggested buffer size */ + DWORD quality; + DWORD sample_sz; + /* + DWORD frame[4]; + XXX 16 bytes ? */ +}; + + +struct AVI_strf { /* == BitMapInfoHeader */ + DWORD sz; + DWORD width; + DWORD height; + DWORD planes_bit_cnt; + unsigned char compression[4]; + DWORD image_sz; + DWORD xpels_meter; + DWORD ypels_meter; + DWORD num_colors; /* used colors */ + DWORD imp_colors; /* important colors */ + /* may be more for some codecs */ +}; + + +struct AVI_list_hdr { + unsigned char id[4]; + DWORD sz; + unsigned char type[4]; +}; + + +struct AVI_list_odml { + struct AVI_list_hdr list_hdr; + + unsigned char id[4]; + DWORD sz; + DWORD frames; +}; + + +struct AVI_list_strl { + struct AVI_list_hdr list_hdr; + + /* chunk strh */ + unsigned char strh_id[4]; + DWORD strh_sz; + struct AVI_strh strh; + + /* chunk strf */ + unsigned char strf_id[4]; + DWORD strf_sz; + struct AVI_strf strf; + + /* list odml */ + struct AVI_list_odml list_odml; +}; + + +struct AVI_list_hdrl { + struct AVI_list_hdr list_hdr; + + /* chunk avih */ + unsigned char avih_id[4]; + DWORD avih_sz; + struct AVI_avih avih; + + /* list strl */ + struct AVI_list_strl strl; +}; + +#endif |