summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLiong Sauw Ming <ming@teluu.com>2015-03-22 09:39:31 +0000
committerLiong Sauw Ming <ming@teluu.com>2015-03-22 09:39:31 +0000
commit40d82503230ff68564a37c2a6264b94997563f7d (patch)
tree138eb53b6a885e0927dbf1743fd243fce2bf5ba9
parentd5d58e0dc82e8c440224a3b9285a4174f3e290c9 (diff)
Re #1790: Misc fixes:
* Fixed crash when trying to set NULL surface * Fixed race condition between setting surface and rendering * Fixed crash due to GC of VideoWindow git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@5016 74dad513-b988-da41-8d7b-12977e46ad98
-rw-r--r--pjmedia/src/pjmedia-videodev/android_opengl.c4
-rw-r--r--pjsip-apps/src/swig/java/android/src/org/pjsip/pjsua2/app/MyApp.java2
-rw-r--r--pjsip-apps/src/swig/pjsua2.i2
3 files changed, 4 insertions, 4 deletions
diff --git a/pjmedia/src/pjmedia-videodev/android_opengl.c b/pjmedia/src/pjmedia-videodev/android_opengl.c
index 292f1497..6e5ee869 100644
--- a/pjmedia/src/pjmedia-videodev/android_opengl.c
+++ b/pjmedia/src/pjmedia-videodev/android_opengl.c
@@ -229,7 +229,7 @@ static pj_status_t render(void * data)
{
struct andgl_stream *stream = (struct andgl_stream *)data;
- if (!stream->window || stream->err_rend == 0)
+ if (stream->display == EGL_NO_DISPLAY || stream->err_rend == 0)
return PJ_SUCCESS;
pjmedia_vid_dev_opengl_draw(stream->gl_buf, stream->vid_size.w,
@@ -481,7 +481,7 @@ static pj_status_t andgl_stream_put_frame(pjmedia_vid_dev_stream *strm,
struct andgl_stream *stream = (struct andgl_stream*)strm;
pj_status_t status;
- if (!stream->is_running || !stream->window)
+ if (!stream->is_running || stream->display == EGL_NO_DISPLAY)
return PJ_EINVALIDOP;
stream->frame = frame;
diff --git a/pjsip-apps/src/swig/java/android/src/org/pjsip/pjsua2/app/MyApp.java b/pjsip-apps/src/swig/java/android/src/org/pjsip/pjsua2/app/MyApp.java
index fbc3cedf..9b3e3baa 100644
--- a/pjsip-apps/src/swig/java/android/src/org/pjsip/pjsua2/app/MyApp.java
+++ b/pjsip-apps/src/swig/java/android/src/org/pjsip/pjsua2/app/MyApp.java
@@ -95,7 +95,7 @@ class MyCall extends Call {
cmi.getStatus() == pjsua_call_media_status.PJSUA_CALL_MEDIA_ACTIVE &&
cmi.getVideoIncomingWindowId() != pjsua2.INVALID_ID)
{
- vidWin = cmi.getVideoWindow();
+ vidWin = new VideoWindow(cmi.getVideoIncomingWindowId());
}
}
diff --git a/pjsip-apps/src/swig/pjsua2.i b/pjsip-apps/src/swig/pjsua2.i
index 4e58e21e..88637ae1 100644
--- a/pjsip-apps/src/swig/pjsua2.i
+++ b/pjsip-apps/src/swig/pjsua2.i
@@ -107,7 +107,7 @@ using namespace pj;
%ignore pj::WindowHandle::display;
%ignore pj::WindowHandle::window;
%typemap(in) jobject surface {
- $1 = (jobject)ANativeWindow_fromSurface(jenv, $input);
+ $1 = ($input? (jobject)ANativeWindow_fromSurface(jenv, $input): NULL);
}
%extend pj::WindowHandle {
void setWindow(jobject surface) { $self->window = surface; }