[asterisk-commits] rizzo: trunk r94714 - /trunk/channels/console_video.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Sun Dec 23 06:36:32 CST 2007


Author: rizzo
Date: Sun Dec 23 06:36:32 2007
New Revision: 94714

URL: http://svn.digium.com/view/asterisk?view=rev&rev=94714
Log:
make sure the minimum surface depth is 16bpp so we can create YUVoverlays.
With this change we can do

	setenv SDL_VIDEODRIVER aalib

and output to an ascii window (which is still in an X11 window).
If you also do

	unsetenv DISPLAY

then the output goes into the main asterisk window, unfortunately
it interferes with the normal output so you don't see much.

In any case, i don't think we are very far away from having a working
xterm videophone!



Modified:
    trunk/channels/console_video.c

Modified: trunk/channels/console_video.c
URL: http://svn.digium.com/view/asterisk/trunk/channels/console_video.c?view=diff&rev=94714&r1=94713&r2=94714
==============================================================================
--- trunk/channels/console_video.c (original)
+++ trunk/channels/console_video.c Sun Dec 23 06:36:32 2007
@@ -2895,8 +2895,15 @@
 static void sdl_setup(struct video_desc *env)
 {
 	int dpy_fmt = SDL_IYUV_OVERLAY;	/* YV12 causes flicker in SDL */
-	int maxw, maxh;
-
+	int depth, maxw, maxh;
+	const SDL_VideoInfo *info = SDL_GetVideoInfo();
+
+	/* We want at least 16bpp to support YUV overlays.
+	 * E.g with SDL_VIDEODRIVER = aalib the default is 8
+	 */
+	depth = info->vfmt->BitsPerPixel;
+	if (depth < 16)
+		depth = 16;
 	/*
 	 * initialize the SDL environment. We have one large window
 	 * with local and remote video, and a keypad.
@@ -2989,7 +2996,7 @@
 	maxh = MAX( MAX(env->in.rem_dpy.h, env->out.loc_dpy.h), env->out.keypad_dpy.h);
 	maxw += 4 * BORDER;
 	maxh += 2 * BORDER;
-	env->screen = SDL_SetVideoMode(maxw, maxh, 0, 0);
+	env->screen = SDL_SetVideoMode(maxw, maxh, depth, 0);
 	if (!env->screen) {
 		ast_log(LOG_ERROR, "SDL: could not set video mode - exiting\n");
 		goto no_sdl;




More information about the asterisk-commits mailing list