Index: pjproject/trunk/pjmedia/include/pjmedia/videodev.h
===================================================================
--- pjproject/trunk/pjmedia/include/pjmedia/videodev.h	(revision 6116)
+++ pjproject/trunk/pjmedia/include/pjmedia/videodev.h	(revision 6117)
@@ -274,4 +274,9 @@
      */
     PJMEDIA_VID_DEV_CAP_OUTPUT_WINDOW_FLAGS = 512,
+
+    /**
+     * Support for setting the output video window full screen.
+     */
+    PJMEDIA_VID_DEV_CAP_OUTPUT_FULLSCREEN = 1024,
 
     /**
@@ -464,4 +469,10 @@
     unsigned window_flags;
 
+    /**
+     * Video window's full screen status. This setting is optional, and will only be
+     * used if PJMEDIA_VID_DEV_CAP_OUTPUT_FULLSCREEN is set in the flags.
+     */
+    pj_bool_t window_fullscreen;
+
 } pjmedia_vid_dev_param;
 
Index: pjproject/trunk/pjmedia/src/pjmedia-videodev/sdl_dev.c
===================================================================
--- pjproject/trunk/pjmedia/src/pjmedia-videodev/sdl_dev.c	(revision 6116)
+++ pjproject/trunk/pjmedia/src/pjmedia-videodev/sdl_dev.c	(revision 6117)
@@ -702,4 +702,10 @@
         }
 
+        if (!((strm->param.flags & PJMEDIA_VID_DEV_CAP_OUTPUT_FULLSCREEN) &&
+            strm->param.window_fullscreen))
+        {
+            flags |= SDL_WINDOW_FULLSCREEN;
+        }
+
 #if PJMEDIA_VIDEO_DEV_SDL_HAS_OPENGL
         if (strm->param.rend_id == OPENGL_DEV_IDX)
@@ -1017,4 +1023,9 @@
     {
 	pi->flags |= PJMEDIA_VID_DEV_CAP_OUTPUT_WINDOW_FLAGS;
+    }
+    if (sdl_stream_get_cap(s, PJMEDIA_VID_DEV_CAP_OUTPUT_FULLSCREEN,
+			   &pi->window_fullscreen) == PJ_SUCCESS)
+    {
+	pi->flags |= PJMEDIA_VID_DEV_CAP_OUTPUT_FULLSCREEN;
     }
 
@@ -1094,4 +1105,8 @@
             *wnd_flags |= PJMEDIA_VID_DEV_WND_RESIZABLE;
 	return PJ_SUCCESS;
+    } else if (cap == PJMEDIA_VID_DEV_CAP_OUTPUT_FULLSCREEN) {
+	Uint32 flag = SDL_GetWindowFlags(strm->window);
+	*((pj_bool_t *)pval) = (flag & SDL_WINDOW_FULLSCREEN)? PJ_TRUE: PJ_FALSE;
+	return PJ_SUCCESS;
     }
 
@@ -1189,4 +1204,12 @@
 		      hwnd->info.window));
 	return status;	
+    } else if (cap == PJMEDIA_VID_DEV_CAP_OUTPUT_FULLSCREEN) {
+        int flag;
+        if (*(pj_bool_t *)pval)
+            flag = SDL_WINDOW_FULLSCREEN;
+        else
+            flag = 0;
+        SDL_SetWindowFullscreen(strm->window, flag);
+	return PJ_SUCCESS;
     }
 
Index: pjproject/trunk/pjmedia/src/pjmedia/videodev.c
===================================================================
--- pjproject/trunk/pjmedia/src/pjmedia/videodev.c	(revision 6116)
+++ pjproject/trunk/pjmedia/src/pjmedia/videodev.c	(revision 6117)
@@ -48,5 +48,6 @@
     DEFINE_CAP("orientation",   "Video orientation"),
     DEFINE_CAP("switch",        "Switch device"),
-    DEFINE_CAP("wndflags",      "Window flags")
+    DEFINE_CAP("wndflags",      "Window flags"),
+    DEFINE_CAP("fullscreen",    "Renderer fullscreen")
 };
 
@@ -140,4 +141,7 @@
     case PJMEDIA_VID_DEV_CAP_OUTPUT_WINDOW_FLAGS:
 	FIELD_INFO(window_flags);
+	break;
+    case PJMEDIA_VID_DEV_CAP_OUTPUT_FULLSCREEN:
+	FIELD_INFO(window_fullscreen);
 	break;
     default:
Index: pjproject/trunk/pjsip/include/pjsua-lib/pjsua.h
===================================================================
--- pjproject/trunk/pjsip/include/pjsua-lib/pjsua.h	(revision 6116)
+++ pjproject/trunk/pjsip/include/pjsua-lib/pjsua.h	(revision 6117)
@@ -8055,4 +8055,18 @@
 
 
+/**
+ * Set video window full-screen. This operation is valid only when the
+ * underlying video device supports PJMEDIA_VID_DEV_CAP_OUTPUT_FULLSCREEN
+ * capability. Currently it is only supported on SDL backend.
+ *
+ * @param wid		The video window ID.
+ * @param enabled   	Set to PJ_TRUE if full screen is desired, PJ_FALSE 
+ *			otherwise.
+ *
+ * @return		PJ_SUCCESS on success, or the appropriate error code.
+ */
+PJ_DECL(pj_status_t) pjsua_vid_win_set_fullscreen(pjsua_vid_win_id wid,
+                                                  pj_bool_t enabled);
+
 /*
  * Video codecs API
Index: pjproject/trunk/pjsip/include/pjsua2/media.hpp
===================================================================
--- pjproject/trunk/pjsip/include/pjsua2/media.hpp	(revision 6116)
+++ pjproject/trunk/pjsip/include/pjsua2/media.hpp	(revision 6117)
@@ -1869,5 +1869,15 @@
      */
     void setWindow(const VideoWindowHandle &win) PJSUA2_THROW(Error);
-    
+
+    /**
+     * Set video window full-screen. This operation is valid only when the
+     * underlying video device supports PJMEDIA_VID_DEV_CAP_OUTPUT_FULLSCREEN
+     * capability. Currently it is only supported on SDL backend.
+     *
+     * @param enabled   	Set to true if full screen is desired, false
+     *				otherwise.
+     */
+    void setFullScreen(bool enabled) PJSUA2_THROW(Error);
+
 private:
     pjsua_vid_win_id		winId;
Index: pjproject/trunk/pjsip/src/pjsua-lib/pjsua_vid.c
===================================================================
--- pjproject/trunk/pjsip/src/pjsua-lib/pjsua_vid.c	(revision 6116)
+++ pjproject/trunk/pjsip/src/pjsua-lib/pjsua_vid.c	(revision 6117)
@@ -1739,4 +1739,33 @@
 }
 
+
+/*
+ * Set video window fullscreen.
+ */
+PJ_DEF(pj_status_t) pjsua_vid_win_set_fullscreen( pjsua_vid_win_id wid,
+                                                  pj_bool_t enabled)
+{
+    pjsua_vid_win *w;
+    pjmedia_vid_dev_stream *s;
+    pj_status_t status;
+
+    PJ_ASSERT_RETURN(wid >= 0 && wid < PJSUA_MAX_VID_WINS, PJ_EINVAL);
+
+    PJSUA_LOCK();
+
+    w = &pjsua_var.win[wid];
+    s = pjmedia_vid_port_get_stream(w->vp_rend? w->vp_rend: w->vp_cap);
+    if (s == NULL) {
+	PJSUA_UNLOCK();
+	return PJ_EINVAL;
+    }
+
+    status = pjmedia_vid_dev_stream_set_cap(s,
+			    PJMEDIA_VID_DEV_CAP_OUTPUT_FULLSCREEN, &enabled);
+
+    PJSUA_UNLOCK();
+
+    return status;
+}
 
 static void call_get_vid_strm_info(pjsua_call *call,
Index: pjproject/trunk/pjsip/src/pjsua2/media.cpp
===================================================================
--- pjproject/trunk/pjsip/src/pjsua2/media.cpp	(revision 6116)
+++ pjproject/trunk/pjsip/src/pjsua2/media.cpp	(revision 6117)
@@ -1281,4 +1281,14 @@
 #endif
 }
+
+void VideoWindow::setFullScreen(bool enabled) PJSUA2_THROW(Error)
+{
+#if PJSUA_HAS_VIDEO
+    PJSUA2_CHECK_EXPR( pjsua_vid_win_set_fullscreen(winId, enabled) );
+#else
+    PJ_UNUSED_ARG(enabled);
+#endif
+}
+
 ///////////////////////////////////////////////////////////////////////////////
 VideoPreviewOpParam::VideoPreviewOpParam()
