[MPlayer-cvslog] r22947 - trunk/libmpdemux/muxer_mpeg.c
nicodvb
subversion at mplayerhq.hu
Sun Apr 8 18:15:41 CEST 2007
Author: nicodvb
Date: Sun Apr 8 18:15:41 2007
New Revision: 22947
Modified:
trunk/libmpdemux/muxer_mpeg.c
Log:
added :interleaving2, a better method to determine which stream whouls be flushed
at every iteration of the loop (based on the lowest percentage of buffer used
- same algo as libavformat)
Modified: trunk/libmpdemux/muxer_mpeg.c
==============================================================================
--- trunk/libmpdemux/muxer_mpeg.c (original)
+++ trunk/libmpdemux/muxer_mpeg.c Sun Apr 8 18:15:41 2007
@@ -83,6 +83,7 @@ static int conf_abuf_size = 0;
static int conf_vbuf_size = 0;
static int conf_drop = 0;
static int conf_telecine = 0;
+static int conf_interleaving2 = 0;
static float conf_telecine_src = 0;
static float conf_telecine_dest = 0;
@@ -204,6 +205,7 @@ m_option_t mpegopts_conf[] = {
{"drop", &conf_drop, CONF_TYPE_FLAG, M_OPT_GLOBAL, 0, 1, NULL},
{"tsaf", &conf_ts_allframes, CONF_TYPE_FLAG, M_OPT_GLOBAL, 0, 1, NULL},
{"telecine", &conf_telecine, CONF_TYPE_FLAG, M_OPT_GLOBAL, 0, PULLDOWN32, NULL},
+ {"interleaving2", &conf_interleaving2, CONF_TYPE_FLAG, M_OPT_GLOBAL, 0, 1, NULL},
{"film2pal", &conf_telecine, CONF_TYPE_FLAG, M_OPT_GLOBAL, 0, TELECINE_FILM2PAL, NULL},
{"tele_src", &(conf_telecine_src), CONF_TYPE_FLOAT, M_OPT_GLOBAL, 0, 0, NULL},
{"tele_dest", &(conf_telecine_dest), CONF_TYPE_FLOAT, M_OPT_GLOBAL, 0, 0, NULL},
@@ -1286,8 +1288,10 @@ static inline int find_best_stream(muxer
muxer_priv_t *priv = muxer->priv;
muxer_headers_t *spriv;
pack_stats_t p;
+ unsigned int perc, sperc;
ndts = -1;
+ perc = -1;
//THIS RULE MUST ALWAYS apply: dts <= SCR + 0.7 seconds
for(i = 0; i < muxer->avih.dwStreams; i++)
@@ -1307,6 +1311,16 @@ static inline int find_best_stream(muxer
dts = spriv->framebuf[0].dts;
ndts = i;
}
+
+ if(conf_interleaving2)
+ {
+ sperc = (spriv->track_bufsize * 1024) / spriv->max_buffer_size;
+ if(sperc < perc)
+ {
+ ndts = i;
+ perc = sperc;
+ }
+ }
}
return ndts;
More information about the MPlayer-cvslog
mailing list