diff options
author | nicodvb <nicodvb@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2005-02-21 21:45:49 +0000 |
---|---|---|
committer | nicodvb <nicodvb@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2005-02-21 21:45:49 +0000 |
commit | 10069de306ed73689d8b62dd5ae72814e6ed03d1 (patch) | |
tree | 4006f167d138393e040bebd2a4ebd6ed00e0be34 /libmpdemux/muxer.h | |
parent | 4dc848b8033d0f67ce1639a7505442be8ba3e87c (diff) | |
download | mpv-10069de306ed73689d8b62dd5ae72814e6ed03d1.tar.bz2 mpv-10069de306ed73689d8b62dd5ae72814e6ed03d1.tar.xz |
new mpeg muxer compatible with dvd/[s]vcd; small changes in the muxer layer (sanity checks in the muxer_init functions)
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@14754 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux/muxer.h')
-rw-r--r-- | libmpdemux/muxer.h | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/libmpdemux/muxer.h b/libmpdemux/muxer.h index 2056ee9c5c..1983a3ea2a 100644 --- a/libmpdemux/muxer.h +++ b/libmpdemux/muxer.h @@ -8,7 +8,6 @@ #define MUXER_TYPE_MPEG 1 #define MUXER_TYPE_RAWVIDEO 2 -#define MUXER_MPEG_BLOCKSIZE 2048 // 2048 or 2324 - ? typedef struct { // muxer data: @@ -24,7 +23,9 @@ typedef struct { unsigned int buffer_len; // mpeg block buffer: unsigned char *b_buffer; - unsigned int b_buffer_ptr; + unsigned int b_buffer_size; //size of b_buffer + unsigned int b_buffer_ptr; //index to next data to write + unsigned int b_buffer_len; //len of next data to write // source stream: void* source; // sh_audio or sh_video int codec; // codec used for encoding. 0 means copy @@ -58,23 +59,27 @@ typedef struct muxer_t{ int idx_size; // streams: int num_videos; // for MPEG recalculations + int num_audios; unsigned int sysrate; // max rate in bytes/s //int num_streams; muxer_stream_t* def_v; // default video stream (for general headers) muxer_stream_t* streams[MUXER_MAX_STREAMS]; + void (*fix_stream_parameters)(muxer_stream_t *); void (*cont_write_chunk)(muxer_stream_t *,size_t,unsigned int); void (*cont_write_header)(struct muxer_t *); void (*cont_write_index)(struct muxer_t *); muxer_stream_t* (*cont_new_stream)(struct muxer_t *,int); FILE* file; + void *priv; } muxer_t; muxer_t *muxer_new_muxer(int type,FILE *); #define muxer_new_stream(muxer,a) muxer->cont_new_stream(muxer,a) +#define muxer_stream_fix_parameters(muxer, a) muxer->fix_stream_parameters(a) #define muxer_write_chunk(a,b,c) a->muxer->cont_write_chunk(a,b,c) #define muxer_write_header(muxer) muxer->cont_write_header(muxer) #define muxer_write_index(muxer) muxer->cont_write_index(muxer) -void muxer_init_muxer_avi(muxer_t *); -void muxer_init_muxer_mpeg(muxer_t *); -void muxer_init_muxer_rawvideo(muxer_t *); +int muxer_init_muxer_avi(muxer_t *); +int muxer_init_muxer_mpeg(muxer_t *); +int muxer_init_muxer_rawvideo(muxer_t *); |