annotate libmpdemux/aviwrite.h @ 8556:ecff1745d189

Document things from the start. Inspired by a patch from Thomas Jarosch <tomj@simonv.com>.
author diego
date Tue, 24 Dec 2002 18:41:20 +0000
parents 3854945aefbb
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2529
266dab71162b AVI muxer rewritten
arpi
parents:
diff changeset
1
266dab71162b AVI muxer rewritten
arpi
parents:
diff changeset
2 #define AVIWRITE_MAX_STREAMS 16
266dab71162b AVI muxer rewritten
arpi
parents:
diff changeset
3
266dab71162b AVI muxer rewritten
arpi
parents:
diff changeset
4 #define AVIWRITE_TYPE_VIDEO 0
266dab71162b AVI muxer rewritten
arpi
parents:
diff changeset
5 #define AVIWRITE_TYPE_AUDIO 1
266dab71162b AVI muxer rewritten
arpi
parents:
diff changeset
6
266dab71162b AVI muxer rewritten
arpi
parents:
diff changeset
7 typedef struct {
266dab71162b AVI muxer rewritten
arpi
parents:
diff changeset
8 // muxer data:
266dab71162b AVI muxer rewritten
arpi
parents:
diff changeset
9 int type; // audio or video
266dab71162b AVI muxer rewritten
arpi
parents:
diff changeset
10 int id; // stream no
266dab71162b AVI muxer rewritten
arpi
parents:
diff changeset
11 unsigned int ckid; // chunk id (00dc 01wb etc)
266dab71162b AVI muxer rewritten
arpi
parents:
diff changeset
12 double timer;
5572
8cd761968f35 BSD-BT848 TV update patch by Charles Henrich <henrich@sigbus.com>
arpi
parents: 2652
diff changeset
13 off_t size;
2529
266dab71162b AVI muxer rewritten
arpi
parents:
diff changeset
14 // buffering:
266dab71162b AVI muxer rewritten
arpi
parents:
diff changeset
15 unsigned char *buffer;
266dab71162b AVI muxer rewritten
arpi
parents:
diff changeset
16 unsigned int buffer_size;
2592
2efa0d20e4c4 buffer_len added
arpi
parents: 2529
diff changeset
17 unsigned int buffer_len;
2529
266dab71162b AVI muxer rewritten
arpi
parents:
diff changeset
18 // source stream:
266dab71162b AVI muxer rewritten
arpi
parents:
diff changeset
19 void* source; // sh_audio or sh_video
266dab71162b AVI muxer rewritten
arpi
parents:
diff changeset
20 int codec; // codec used for encoding. 0 means copy
266dab71162b AVI muxer rewritten
arpi
parents:
diff changeset
21 // avi stream header:
266dab71162b AVI muxer rewritten
arpi
parents:
diff changeset
22 AVIStreamHeader h; // Rate/Scale and SampleSize must be filled by caller!
266dab71162b AVI muxer rewritten
arpi
parents:
diff changeset
23 // stream specific:
266dab71162b AVI muxer rewritten
arpi
parents:
diff changeset
24 WAVEFORMATEX *wf;
266dab71162b AVI muxer rewritten
arpi
parents:
diff changeset
25 BITMAPINFOHEADER *bih; // in format
266dab71162b AVI muxer rewritten
arpi
parents:
diff changeset
26 } aviwrite_stream_t;
266dab71162b AVI muxer rewritten
arpi
parents:
diff changeset
27
266dab71162b AVI muxer rewritten
arpi
parents:
diff changeset
28 typedef struct {
7145
3854945aefbb new mencoder option -info, to store copyright, title, encoder version etc in AVI
arpi
parents: 5572
diff changeset
29 unsigned int id;
3854945aefbb new mencoder option -info, to store copyright, title, encoder version etc in AVI
arpi
parents: 5572
diff changeset
30 char *text;
3854945aefbb new mencoder option -info, to store copyright, title, encoder version etc in AVI
arpi
parents: 5572
diff changeset
31 } aviwrite_info_t;
3854945aefbb new mencoder option -info, to store copyright, title, encoder version etc in AVI
arpi
parents: 5572
diff changeset
32
3854945aefbb new mencoder option -info, to store copyright, title, encoder version etc in AVI
arpi
parents: 5572
diff changeset
33 typedef struct {
2529
266dab71162b AVI muxer rewritten
arpi
parents:
diff changeset
34 // encoding:
266dab71162b AVI muxer rewritten
arpi
parents:
diff changeset
35 MainAVIHeader avih;
266dab71162b AVI muxer rewritten
arpi
parents:
diff changeset
36 unsigned int movi_start;
266dab71162b AVI muxer rewritten
arpi
parents:
diff changeset
37 unsigned int movi_end;
266dab71162b AVI muxer rewritten
arpi
parents:
diff changeset
38 unsigned int file_end;
266dab71162b AVI muxer rewritten
arpi
parents:
diff changeset
39 // index:
266dab71162b AVI muxer rewritten
arpi
parents:
diff changeset
40 AVIINDEXENTRY *idx;
266dab71162b AVI muxer rewritten
arpi
parents:
diff changeset
41 int idx_pos;
266dab71162b AVI muxer rewritten
arpi
parents:
diff changeset
42 int idx_size;
266dab71162b AVI muxer rewritten
arpi
parents:
diff changeset
43 // streams:
266dab71162b AVI muxer rewritten
arpi
parents:
diff changeset
44 //int num_streams;
266dab71162b AVI muxer rewritten
arpi
parents:
diff changeset
45 aviwrite_stream_t* def_v; // default video stream (for general headers)
266dab71162b AVI muxer rewritten
arpi
parents:
diff changeset
46 aviwrite_stream_t* streams[AVIWRITE_MAX_STREAMS];
266dab71162b AVI muxer rewritten
arpi
parents:
diff changeset
47 } aviwrite_t;
266dab71162b AVI muxer rewritten
arpi
parents:
diff changeset
48
266dab71162b AVI muxer rewritten
arpi
parents:
diff changeset
49 aviwrite_stream_t* aviwrite_new_stream(aviwrite_t *muxer,int type);
266dab71162b AVI muxer rewritten
arpi
parents:
diff changeset
50 aviwrite_t* aviwrite_new_muxer();
266dab71162b AVI muxer rewritten
arpi
parents:
diff changeset
51 void aviwrite_write_chunk(aviwrite_t *muxer,aviwrite_stream_t *s, FILE *f,int len,unsigned int flags);
266dab71162b AVI muxer rewritten
arpi
parents:
diff changeset
52 void aviwrite_write_header(aviwrite_t *muxer,FILE *f);
266dab71162b AVI muxer rewritten
arpi
parents:
diff changeset
53 void aviwrite_write_index(aviwrite_t *muxer,FILE *f);
266dab71162b AVI muxer rewritten
arpi
parents:
diff changeset
54
266dab71162b AVI muxer rewritten
arpi
parents:
diff changeset
55
266dab71162b AVI muxer rewritten
arpi
parents:
diff changeset
56