Mercurial > mplayer.hg
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 |
rev | line source |
---|---|
2529 | 1 |
2 #define AVIWRITE_MAX_STREAMS 16 | |
3 | |
4 #define AVIWRITE_TYPE_VIDEO 0 | |
5 #define AVIWRITE_TYPE_AUDIO 1 | |
6 | |
7 typedef struct { | |
8 // muxer data: | |
9 int type; // audio or video | |
10 int id; // stream no | |
11 unsigned int ckid; // chunk id (00dc 01wb etc) | |
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 | 14 // buffering: |
15 unsigned char *buffer; | |
16 unsigned int buffer_size; | |
2592 | 17 unsigned int buffer_len; |
2529 | 18 // source stream: |
19 void* source; // sh_audio or sh_video | |
20 int codec; // codec used for encoding. 0 means copy | |
21 // avi stream header: | |
22 AVIStreamHeader h; // Rate/Scale and SampleSize must be filled by caller! | |
23 // stream specific: | |
24 WAVEFORMATEX *wf; | |
25 BITMAPINFOHEADER *bih; // in format | |
26 } aviwrite_stream_t; | |
27 | |
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 | 34 // encoding: |
35 MainAVIHeader avih; | |
36 unsigned int movi_start; | |
37 unsigned int movi_end; | |
38 unsigned int file_end; | |
39 // index: | |
40 AVIINDEXENTRY *idx; | |
41 int idx_pos; | |
42 int idx_size; | |
43 // streams: | |
44 //int num_streams; | |
45 aviwrite_stream_t* def_v; // default video stream (for general headers) | |
46 aviwrite_stream_t* streams[AVIWRITE_MAX_STREAMS]; | |
47 } aviwrite_t; | |
48 | |
49 aviwrite_stream_t* aviwrite_new_stream(aviwrite_t *muxer,int type); | |
50 aviwrite_t* aviwrite_new_muxer(); | |
51 void aviwrite_write_chunk(aviwrite_t *muxer,aviwrite_stream_t *s, FILE *f,int len,unsigned int flags); | |
52 void aviwrite_write_header(aviwrite_t *muxer,FILE *f); | |
53 void aviwrite_write_index(aviwrite_t *muxer,FILE *f); | |
54 | |
55 | |
56 |