[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