[MPlayer-cvslog] CVS: main/libvo vo_yuv4mpeg.c,1.18,1.19

Reimar Döffinger CVS syncmail at mplayerhq.hu
Sun Dec 12 16:17:55 CET 2004


CVS change done by Reimar Döffinger CVS

Update of /cvsroot/mplayer/main/libvo
In directory mail:/var2/tmp/cvs-serv28669/libvo

Modified Files:
	vo_yuv4mpeg.c 
Log Message:
fix leak with -fixed-vo, allow concatenating


Index: vo_yuv4mpeg.c
===================================================================
RCS file: /cvsroot/mplayer/main/libvo/vo_yuv4mpeg.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- vo_yuv4mpeg.c	3 Dec 2004 21:02:13 -0000	1.18
+++ vo_yuv4mpeg.c	12 Dec 2004 15:17:53 -0000	1.19
@@ -51,8 +51,9 @@
 
 LIBVO_EXTERN (yuv4mpeg)
 
-static int image_width;
-static int image_height;
+static int image_width = 0;
+static int image_height = 0;
+static float image_fps = 0;
 
 static uint8_t *image = NULL;
 static uint8_t *image_y = NULL;
@@ -80,8 +81,19 @@
        uint32_t d_height, uint32_t fullscreen, char *title, 
        uint32_t format)
 {
+	if (image_width == width && image_height == height &&
+	     image_fps == vo_fps && vo_config_count)
+	  return 0;
+	if (vo_config_count) {
+	  mp_msg(MSGT_VO, MSGL_WARN,
+	    "Video formats differ (w:%i=>%i, h:%i=>%i, fps:%f=>%f), "
+	    "restarting output.\n",
+	    image_width, width, image_height, height, image_fps, vo_fps);
+	  uninit();
+	}
 	image_height = height;
 	image_width = width;
+	image_fps = vo_fps;
 	using_format = format;
 
 	if (Y4M_IS_INTERLACED)
@@ -146,7 +158,7 @@
 
 	/* At least the interlacing is ok now */
 	fprintf(yuv_out, "YUV4MPEG2 W%d H%d F%ld:%ld I%c A0:0\n", 
-			image_width, image_height, (long)(vo_fps * 1000000.0), 
+			image_width, image_height, (long)(image_fps * 1000000.0), 
 			(long)1000000, config_interlace);
 
 	fflush(yuv_out);
@@ -448,6 +460,7 @@
 	return 0;
 }
 
+// WARNING: config(...) also uses this
 static void uninit(void)
 {
     if(image)
@@ -469,6 +482,9 @@
 	if (yuv_filename)
 		free(yuv_filename);
 	yuv_filename = NULL;
+	image_width = 0;
+	image_height = 0;
+	image_fps = 0;
 }
 
 




More information about the MPlayer-cvslog mailing list