summaryrefslogtreecommitdiffstats
path: root/libmpdemux/muxer.h
diff options
context:
space:
mode:
authornicodvb <nicodvb@b3059339-0415-0410-9bf9-f77b7e298cf2>2005-02-21 21:45:49 +0000
committernicodvb <nicodvb@b3059339-0415-0410-9bf9-f77b7e298cf2>2005-02-21 21:45:49 +0000
commit10069de306ed73689d8b62dd5ae72814e6ed03d1 (patch)
tree4006f167d138393e040bebd2a4ebd6ed00e0be34 /libmpdemux/muxer.h
parent4dc848b8033d0f67ce1639a7505442be8ba3e87c (diff)
downloadmpv-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.h15
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 *);