[Mplayer-cvslog] CVS: main/libvo vo_ggi.c,1.18,1.19
Alex Beregszaszi
alex at mplayer.dev.hu
Sun Feb 24 03:50:05 CET 2002
Update of /cvsroot/mplayer/main/libvo
In directory mplayer:/var/tmp.root/cvs-serv15805
Modified Files:
vo_ggi.c
Log Message:
do not fault if no directbuffer available (for example: ggi display-multi)
Index: vo_ggi.c
===================================================================
RCS file: /cvsroot/mplayer/main/libvo/vo_ggi.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- vo_ggi.c 24 Feb 2002 02:21:14 -0000 1.18
+++ vo_ggi.c 24 Feb 2002 02:50:02 -0000 1.19
@@ -27,7 +27,7 @@
#undef GET_DB_INFO
-/* max buffers */
+/* maximum buffers */
#define GGI_FRAMES 4
#include "../postproc/rgb2rgb.h"
@@ -130,14 +130,12 @@
if (ggiSetMode(ggi_conf.vis, &mode))
{
mp_msg(MSGT_VO, MSGL_ERR, "[ggi] unable to set mode\n");
- uninit();
return(-1);
}
if (ggiGetMode(ggi_conf.vis, &mode) != 0)
{
mp_msg(MSGT_VO, MSGL_ERR, "[ggi] unable to get mode\n");
- uninit();
return(-1);
}
@@ -183,20 +181,28 @@
default:
mp_msg(MSGT_VO, MSGL_FATAL, "[ggi] Unknown image format: %s\n",
vo_format_name(ggi_conf.srcformat));
- uninit();
return(-1);
}
vo_dwidth = ggi_conf.dstwidth = ggi_conf.gmode.virt.x;
vo_dheight = ggi_conf.dstheight = ggi_conf.gmode.virt.y;
- for (i = 0; i < GGI_FRAMES; i++)
- ggi_conf.buffer[i] = NULL;
+ ggi_conf.frames = ggiDBGetNumBuffers(ggi_conf.vis);
+ if (ggi_conf.frames > GGI_FRAMES)
+ ggi_conf.frames = GGI_FRAMES;
+
+ ggi_conf.currframe = 0;
+ if (!ggi_conf.frames)
+ {
+ mp_msg(MSGT_VO, MSGL_ERR, "[ggi] direct buffer unavailable\n");
+ return(-1);
+ }
- ggi_conf.frames = ggi_conf.currframe = 0;
+ for (i = 0; i < ggi_conf.frames; i++)
+ ggi_conf.buffer[i] = NULL;
/* get available number of buffers */
- for (i = 0; DB = ggiDBGetBuffer(ggi_conf.vis, i), i < GGI_FRAMES; i++)
+ for (i = 0; DB = ggiDBGetBuffer(ggi_conf.vis, i), i < ggi_conf.frames; i++)
{
if (!(DB->type & GGI_DB_SIMPLE_PLB) ||
(DB->page_size != 0) ||
@@ -207,13 +213,11 @@
continue;
ggi_conf.buffer[DB->frame] = DB;
- ggi_conf.frames++;
}
if (ggi_conf.buffer[0] == NULL)
{
mp_msg(MSGT_VO, MSGL_ERR, "[ggi] direct buffer unavailable\n");
- uninit();
return(-1);
}
More information about the MPlayer-cvslog
mailing list