changeset 22861:a9b5d1ddbd80

in flush_buffers() removed code that required the presence of an amount of audio data >= video data in the temporal domain
author nicodvb
date Sun, 01 Apr 2007 12:25:31 +0000
parents efe51e2b81c3
children b9f09be55449
files libmpdemux/muxer_mpeg.c
diffstat 1 files changed, 3 insertions(+), 24 deletions(-) [+]
line wrap: on
line diff
--- a/libmpdemux/muxer_mpeg.c	Sun Apr 01 12:21:47 2007 +0000
+++ b/libmpdemux/muxer_mpeg.c	Sun Apr 01 12:25:31 2007 +0000
@@ -1457,8 +1457,6 @@
 	muxer_stream_t *s, *vs, *as;
 	muxer_headers_t *vpriv = NULL, *apriv = NULL;
 	muxer_priv_t *priv = (muxer_priv_t *) muxer->priv;
-	double duration;
-	uint64_t iduration, iaduration;
 	
 	/* 
 		analyzes all streams and decides what to flush
@@ -1494,30 +1492,11 @@
 		mp_msg(MSGT_MUXER, MSGL_DBG2, "\nVIDEO, FLUSH %d frames (of %d), 0 to %d\n", n, vpriv->framebuf_used, n-1);
 
 		vpriv = (muxer_headers_t*) vs->priv;
-		
-		duration = 0;
-		iduration = 0;
-		for(i = 0; i < n; i++)
-			iduration += vpriv->framebuf[i].idur;
-		duration = (double) (iduration / 27000000.0);
-		
-		if(as != NULL)
+
+		if(as != NULL) apriv = (muxer_headers_t*) as->priv;
+		if(as != NULL && (apriv->size == 0))
 		{
 			apriv = (muxer_headers_t*) as->priv;
-			iaduration = 0;
-			for(i = 0; i < apriv->framebuf_used; i++)
-			{
-				iaduration += apriv->framebuf[i].idur;
-			}
-			if(iaduration < iduration)
-			{
-				mp_msg(MSGT_MUXER, MSGL_DBG2, "Not enough audio data exit\n");
-				return 0;
-			}
-		}
-		
-		if(as != NULL && (apriv->size == 0))
-		{
 			init_delay = vpriv->framebuf[0].pts - vpriv->framebuf[0].dts;
 		
 			for(i = 0; i < apriv->framebuf_cnt; i++)