diff options
Diffstat (limited to 'pjsip-apps/src/swig')
3 files changed, 20 insertions, 7 deletions
diff --git a/pjsip-apps/src/swig/java/android/src/org/pjsip/pjsua2/app/CallActivity.java b/pjsip-apps/src/swig/java/android/src/org/pjsip/pjsua2/app/CallActivity.java index 9a057778..ff81b026 100644 --- a/pjsip-apps/src/swig/java/android/src/org/pjsip/pjsua2/app/CallActivity.java +++ b/pjsip-apps/src/swig/java/android/src/org/pjsip/pjsua2/app/CallActivity.java @@ -79,7 +79,7 @@ public class CallActivity extends Activity if (holder == null) vidWH.getHandle().setWindow(null); else - vidWH.getHandle().setWindow(pjsua2.android_opengl_get_surface(holder.getSurface())); + vidWH.getHandle().setWindow(holder.getSurface()); try { MainActivity.currentCall.vidWin.setWindow(vidWH); } catch (Exception e) {} 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 92cc66bb..fbc3cedf 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 @@ -20,6 +20,7 @@ package org.pjsip.pjsua2.app; import java.io.File; import java.util.ArrayList; + import org.pjsip.pjsua2.*; @@ -243,6 +244,14 @@ class MyAccountConfig { class MyApp { static { + try{ + System.loadLibrary("openh264"); + System.loadLibrary("yuv"); + } catch (UnsatisfiedLinkError e) { + System.out.println("UnsatisfiedLinkError: " + e.getMessage()); + System.out.println("This could be safely ignored if you " + + "don't need video."); + } System.loadLibrary("pjsua2"); System.out.println("Library loaded"); } diff --git a/pjsip-apps/src/swig/pjsua2.i b/pjsip-apps/src/swig/pjsua2.i index 91f91916..4e58e21e 100644 --- a/pjsip-apps/src/swig/pjsua2.i +++ b/pjsip-apps/src/swig/pjsua2.i @@ -101,16 +101,20 @@ using namespace pj; %template(AudioDevInfoVector) std::vector<pj::AudioDevInfo*>; %template(CodecInfoVector) std::vector<pj::CodecInfo*>; -%include "pjsua2/media.hpp" -// Create an interface for android_opengl_get_surface() +/* pj::WindowHandle::setWindow() receives Surface object */ #if defined(SWIGJAVA) && defined(__ANDROID__) -%inline %{ -extern "C" { - void* android_opengl_get_surface(jobject surface); +%{#include <android/native_window_jni.h>%} +%ignore pj::WindowHandle::display; +%ignore pj::WindowHandle::window; +%typemap(in) jobject surface { + $1 = (jobject)ANativeWindow_fromSurface(jenv, $input); +} +%extend pj::WindowHandle { + void setWindow(jobject surface) { $self->window = surface; } } -%} #endif +%include "pjsua2/media.hpp" %include "pjsua2/presence.hpp" %include "pjsua2/account.hpp" %include "pjsua2/call.hpp" |