[MPlayer-cvslog] r22899 - trunk/libmpdemux/muxer_mpeg.c

nicodvb subversion at mplayerhq.hu
Sun Apr 1 23:27:48 CEST 2007


Author: nicodvb
Date: Sun Apr  1 23:27:47 2007
New Revision: 22899

Modified:
   trunk/libmpdemux/muxer_mpeg.c

Log:
removed init_apts and init_vpts; added :adelay in addition to :vdelay

Modified: trunk/libmpdemux/muxer_mpeg.c
==============================================================================
--- trunk/libmpdemux/muxer_mpeg.c	(original)
+++ trunk/libmpdemux/muxer_mpeg.c	Sun Apr  1 23:27:47 2007
@@ -78,7 +78,7 @@ static uint32_t conf_vwidth = 0, conf_vh
 static uint32_t conf_vbitrate = 0;
 static int conf_init_vpts = 200, conf_init_apts = 200;
 static int conf_ts_allframes = 0;
-static int conf_init_adelay = 0;
+static int conf_init_adelay = 0, conf_init_vdelay = 0;
 static int conf_abuf_size = 0;
 static int conf_vbuf_size = 0;
 static int conf_drop = 0;
@@ -197,9 +197,8 @@ m_option_t mpegopts_conf[] = {
 	{"vpswidth", &(conf_panscan_width), CONF_TYPE_INT, M_OPT_GLOBAL|M_OPT_RANGE, 1, 16383, NULL},
 	{"vpsheight", &(conf_panscan_height), CONF_TYPE_INT, M_OPT_GLOBAL|M_OPT_RANGE, 1, 16383, NULL},
 	{"vbitrate", &(conf_vbitrate), CONF_TYPE_INT, M_OPT_GLOBAL|M_OPT_RANGE, 1, 104857599, NULL},
-	{"init_vpts", &(conf_init_vpts), CONF_TYPE_INT, M_OPT_GLOBAL|M_OPT_RANGE, 100, 700, NULL},	//2*frametime at 60fps
-	{"init_apts", &(conf_init_apts), CONF_TYPE_INT, M_OPT_GLOBAL|M_OPT_RANGE, 100, 700, NULL},
-	{"vdelay", &conf_init_adelay, CONF_TYPE_INT, M_OPT_GLOBAL|M_OPT_RANGE, 1, 32760, NULL},
+	{"vdelay", &conf_init_vdelay, CONF_TYPE_INT, M_OPT_GLOBAL|M_OPT_RANGE, 0, 32760, NULL},
+	{"adelay", &conf_init_adelay, CONF_TYPE_INT, M_OPT_GLOBAL|M_OPT_RANGE, 0, 32760, NULL},
 	{"vbuf_size", &conf_vbuf_size, CONF_TYPE_INT, M_OPT_GLOBAL|M_OPT_RANGE, 40, 1194, NULL},
 	{"abuf_size", &conf_abuf_size, CONF_TYPE_INT, M_OPT_GLOBAL|M_OPT_RANGE, 4, 64, NULL},
 	{"drop", &conf_drop, CONF_TYPE_FLAG, M_OPT_GLOBAL, 0, 1, NULL},
@@ -394,6 +393,10 @@ static muxer_stream_t* mpegfile_new_stre
   if (type == MUXER_TYPE_VIDEO) {
     spriv->type = 1;
     spriv->last_pts = conf_init_vpts * 90 * 300;
+    if(conf_init_vdelay) {
+      spriv->last_dts += conf_init_vdelay * 90 * 300;
+      spriv->last_pts += conf_init_vdelay * 90 * 300;
+    }
     spriv->id = 0xe0 + muxer->num_videos;
     s->ckid = be2me_32 (0x100 + spriv->id);
     if(priv->is_genmpeg1 || priv->is_genmpeg2) {
@@ -428,8 +431,8 @@ static muxer_stream_t* mpegfile_new_stre
     spriv->type = 0;
     spriv->drop_delayed_frames = conf_drop;
     spriv->last_pts = conf_init_apts * 90 * 300;
-    if(conf_init_adelay < 0 && ! spriv->drop_delayed_frames)
-      spriv->last_pts += (-conf_init_adelay) * 90 * 300;
+    if(conf_init_adelay && ! spriv->drop_delayed_frames)
+      spriv->last_pts += conf_init_adelay * 90 * 300;
     spriv->pts = spriv->last_pts;
     spriv->id = 0xc0 + muxer->num_audios;
     s->ckid = be2me_32 (0x100 + spriv->id);
@@ -2645,6 +2648,11 @@ int muxer_init_muxer_mpeg(muxer_t *muxer
   muxer->sysrate = priv->muxrate; 		// initial muxrate = constrained stream parameter
   priv->scr = muxer->file_end = 0;
 
+  if(conf_init_vdelay && conf_drop)
+  {
+	mp_msg(MSGT_MUXER, MSGL_ERR, "\nmuxer_mpg, :drop and :vdelay used together are not supported, exiting\n");
+	return 0;
+  }
   if(conf_init_adelay)
   	priv->init_adelay = - (double) conf_init_adelay / (double) 1000.0;
 



More information about the MPlayer-cvslog mailing list