summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libmpdemux/muxer.h1
-rw-r--r--mencoder.c10
-rw-r--r--mp_msg.h2
3 files changed, 8 insertions, 5 deletions
diff --git a/libmpdemux/muxer.h b/libmpdemux/muxer.h
index 1b7477cc68..3f5727cb1d 100644
--- a/libmpdemux/muxer.h
+++ b/libmpdemux/muxer.h
@@ -36,6 +36,7 @@ typedef struct {
size_t ipb[3]; // sizes of I/P/B frames
// muxer of that stream
struct muxer_t *muxer;
+ void *priv; // private stream specific data stored by the muxer
} muxer_stream_t;
typedef struct {
diff --git a/mencoder.c b/mencoder.c
index 7bbbf46905..cf8392ed19 100644
--- a/mencoder.c
+++ b/mencoder.c
@@ -232,7 +232,7 @@ static int parse_end_at(m_option_t *conf, const char* param);
#include "vobsub.h"
/* FIXME */
-void mencoder_exit(int level, char *how)
+static void mencoder_exit(int level, char *how)
{
if (how)
printf("Exiting... (%s)\n", how);
@@ -385,7 +385,7 @@ if(!parse_codec_cfg(get_path("codecs.conf"))){
if(!parse_codec_cfg(MPLAYER_CONFDIR "/codecs.conf")){
if(!parse_codec_cfg(NULL)){
mp_msg(MSGT_MENCODER,MSGL_HINT,MSGTR_CopyCodecsConf);
- exit(0);
+ mencoder_exit(1,NULL);
}
mp_msg(MSGT_MENCODER,MSGL_INFO,MSGTR_BuiltinCodecsConf);
}
@@ -804,7 +804,7 @@ if(audio_delay!=0.0){
} // if(sh_audio)
printf(MSGTR_WritingAVIHeader);
-muxer_write_header(muxer);
+if (muxer->cont_write_header) muxer_write_header(muxer);
decoded_frameno=0;
@@ -1263,11 +1263,11 @@ if(sh_audio && mux_a->codec==ACODEC_VBRMP3 && !lame_param_vbr){
#endif
printf(MSGTR_WritingAVIIndex);
-muxer_write_index(muxer);
+if (muxer->cont_write_index) muxer_write_index(muxer);
muxer_f_size=ftello(muxer_f);
printf(MSGTR_FixupAVIHeader);
fseek(muxer_f,0,SEEK_SET);
-muxer_write_header(muxer); // update header
+if (muxer->cont_write_header) muxer_write_header(muxer); // update header
if(ferror(muxer_f) || fclose(muxer_f) != 0) {
mp_msg(MSGT_MENCODER,MSGL_FATAL,MSGTR_ErrorWritingFile, out_filename);
mencoder_exit(1, NULL);
diff --git a/mp_msg.h b/mp_msg.h
index c398e1acc5..fecc4a8e17 100644
--- a/mp_msg.h
+++ b/mp_msg.h
@@ -85,6 +85,8 @@ extern int verbose; // defined in mplayer.c
#define MSGT_NETST 38 // Netstream
+#define MSGT_MUXER 39 // muxer layer
+
#define MSGT_MAX 64
void mp_msg_init();