Index: pjproject/branches/projects/uwp/pjsip-apps/src/pjsua/android/app/src/main/java/MainActivity.java
===================================================================
--- pjproject/branches/projects/uwp/pjsip-apps/src/pjsua/android/app/src/main/java/MainActivity.java	(revision 5513)
+++ pjproject/branches/projects/uwp/pjsip-apps/src/pjsua/android/app/src/main/java/MainActivity.java	(revision 5532)
@@ -139,4 +139,15 @@
 	    }
 	}
+
+        @Override
+        public void onCallVideoStart() {
+            MainActivity ma = ((MyHandler)ui_handler.get()).mTarget.get();
+            SurfaceView surfaceView = (SurfaceView)
+                ma.findViewById(R.id.surfaceViewIncomingCall);
+
+            WindowHandle wh = new WindowHandle();
+            wh.setWindow(surfaceView.getHolder().getSurface());
+            pjsua.setVideoWindow(wh);
+        }
     }
 
@@ -262,15 +273,19 @@
     public void surfaceChanged(SurfaceHolder holder, int format, int w, int h)
     {
-	pjsua.setIncomingVideoRenderer(holder.getSurface());
+        WindowHandle wh = new WindowHandle();
+        wh.setWindow(holder.getSurface());
+        pjsua.setVideoWindow(wh);
     }
 
     public void surfaceCreated(SurfaceHolder holder)
     {
-	pjsua.setIncomingVideoRenderer(holder.getSurface());
+
     }
 
     public void surfaceDestroyed(SurfaceHolder holder)
     {
-	pjsua.setIncomingVideoRenderer(null);
+        WindowHandle wh = new WindowHandle();
+        wh.setWindow(null);
+        pjsua.setVideoWindow(wh);
     }
     
Index: pjproject/branches/projects/uwp/pjsip-apps/src/pjsua/android/jni/pjsua.i
===================================================================
--- pjproject/branches/projects/uwp/pjsip-apps/src/pjsua/android/jni/pjsua.i	(revision 5513)
+++ pjproject/branches/projects/uwp/pjsip-apps/src/pjsua/android/jni/pjsua.i	(revision 5532)
@@ -15,8 +15,12 @@
 %feature("director") PjsuaAppCallback;
 
-/* Convert Surface object to ANativeWindow for setIncomingVideoRenderer() */
+/* Convert Surface object to ANativeWindow */
 %typemap(in) jobject surface {
     $1 = $input? (jobject)ANativeWindow_fromSurface(jenv, $input) : NULL;
 }
 
+%extend WindowHandle {
+    void setWindow(jobject surface) { $self->window = surface; }
+}
+
 %include "pjsua_app_callback.h"
Index: pjproject/branches/projects/uwp/pjsip-apps/src/pjsua/android/jni/pjsua_app_callback.cpp
===================================================================
--- pjproject/branches/projects/uwp/pjsip-apps/src/pjsua/android/jni/pjsua_app_callback.cpp	(revision 5513)
+++ pjproject/branches/projects/uwp/pjsip-apps/src/pjsua/android/jni/pjsua_app_callback.cpp	(revision 5532)
@@ -31,5 +31,14 @@
 static char **restart_argv;
 static pjsua_callback pjsua_cb_orig;
-static jobject callVideoSurface;
+static pjsua_vid_win_id winId = PJSUA_INVALID_ID;
+
+void setVideoWindow(const WindowHandle& win)
+{
+    pjmedia_vid_dev_hwnd vhwnd;
+   
+    vhwnd.info.window = win.window;
+    if (winId != PJSUA_INVALID_ID)
+    	pjsua_vid_win_set_win(winId, &vhwnd);
+}
 
 extern const char *pjsua_app_def_argv[];
@@ -58,11 +67,6 @@
 	    med_info->stream.vid.win_in != PJSUA_INVALID_ID)
 	{
-	    pjmedia_vid_dev_hwnd vhwnd;
-
-	    /* Setup renderer surface */
-	    pj_bzero(&vhwnd, sizeof(vhwnd));
-	    vhwnd.type = PJMEDIA_VID_DEV_HWND_TYPE_ANDROID;
-	    vhwnd.info.window = callVideoSurface;
-	    pjsua_vid_win_set_win(med_info->stream.vid.win_in, &vhwnd);
+	    winId = med_info->stream.vid.win_in;
+	    registeredCallbackObject->onCallVideoStart();
 	    break;
 	}
@@ -163,9 +167,3 @@
 }
 
-
-void setIncomingVideoRenderer(jobject surface)
-{
-    callVideoSurface = surface;
-}
-
 #endif
Index: pjproject/branches/projects/uwp/pjsip-apps/src/pjsua/android/jni/pjsua_app_callback.h
===================================================================
--- pjproject/branches/projects/uwp/pjsip-apps/src/pjsua/android/jni/pjsua_app_callback.h	(revision 5513)
+++ pjproject/branches/projects/uwp/pjsip-apps/src/pjsua/android/jni/pjsua_app_callback.h	(revision 5532)
@@ -20,6 +20,4 @@
 #define __PJSUA_APP_CALLBACK_H__
 
-#include <jni.h>
-
 class PjsuaAppCallback {
 public:
@@ -27,5 +25,12 @@
     virtual void onStarted(const char *msg) {}
     virtual void onStopped(int restart) {}
+    virtual void onCallVideoStart() {}
 };
+
+typedef struct WindowHandle {
+    void    	*window;
+} WindowHandle;
+
+void setVideoWindow(const WindowHandle& win);
 
 extern "C" {
@@ -34,5 +39,4 @@
 int pjsuaRestart();
 void setCallbackObject(PjsuaAppCallback* callback);
-void setIncomingVideoRenderer(jobject surface);
 }
 
