Mercurial > mplayer.hg
view libmpdemux/aviwrite.h @ 2703:4e321443413f
Quick hack to don't use ldivxencode on systems where it'S not installed.
This should be improved: add compile check to configure (with sth. from encore2.h I guess), seperate divxdecore and encore as only one of them could possibly be
installed, add ifdefs to code so it doesn't spit errors about missing headers if no divx4 is present.
(I don't currently have installed divx4 so I only did the quick hack for first).
author | atmos4 |
---|---|
date | Mon, 05 Nov 2001 02:04:10 +0000 |
parents | fd279f14b9ab |
children | 8cd761968f35 |
line wrap: on
line source
#define AVIWRITE_MAX_STREAMS 16 #define AVIWRITE_TYPE_VIDEO 0 #define AVIWRITE_TYPE_AUDIO 1 typedef struct { // muxer data: int type; // audio or video int id; // stream no unsigned int ckid; // chunk id (00dc 01wb etc) double timer; unsigned int size; // buffering: unsigned char *buffer; unsigned int buffer_size; unsigned int buffer_len; // source stream: void* source; // sh_audio or sh_video int codec; // codec used for encoding. 0 means copy // avi stream header: AVIStreamHeader h; // Rate/Scale and SampleSize must be filled by caller! // stream specific: WAVEFORMATEX *wf; BITMAPINFOHEADER *bih; // in format } aviwrite_stream_t; typedef struct { // encoding: MainAVIHeader avih; unsigned int movi_start; unsigned int movi_end; unsigned int file_end; // index: AVIINDEXENTRY *idx; int idx_pos; int idx_size; // streams: //int num_streams; aviwrite_stream_t* def_v; // default video stream (for general headers) aviwrite_stream_t* streams[AVIWRITE_MAX_STREAMS]; } aviwrite_t; aviwrite_stream_t* aviwrite_new_stream(aviwrite_t *muxer,int type); aviwrite_t* aviwrite_new_muxer(); void aviwrite_write_chunk(aviwrite_t *muxer,aviwrite_stream_t *s, FILE *f,int len,unsigned int flags); void aviwrite_write_header(aviwrite_t *muxer,FILE *f); void aviwrite_write_index(aviwrite_t *muxer,FILE *f);