I am working on video support via pjsip/pjsua2 for android.
My problem is with runtime camera permisson. No matter if I grant the permission, video always fails on
2018-11-02 05:14:15.785 16674-16742/com.icewarp.instantmessanger E/Default: Title: pjsua_vid_dev_set_setting(dev_id, PJMEDIA_VID_DEV_CAP_ORIENTATION, &orient, keep)
Code: 520008
Description: Invalid or unsupported video capability (PJMEDIA_EVID_INVCAP)
Location: ../src/pjsua2/media.cpp:1498
java.lang.Exception: Title: pjsua_vid_dev_set_setting(dev_id, PJMEDIA_VID_DEV_CAP_ORIENTATION, &orient, keep)
Code: 520008
Description: Invalid or unsupported video capability (PJMEDIA_EVID_INVCAP)
Location: ../src/pjsua2/media.cpp:1498
at org.pjsip.pjsua2.pjsua2JNI.VidDevManager_setCaptureOrient__SWIG_0(Native Method)
at org.pjsip.pjsua2.VidDevManager.setCaptureOrient(VidDevManager.java:91)
at com.foo.bar.sip.client.core.SipCallManager$callListener$1.onCallMediaActivated(SipCallManager.kt:534)
at com.foo.bar.sip.client.core.SipCall.onCallMediaState(SipCall.kt:336)
at org.pjsip.pjsua2.pjsua2JNI.SwigDirector_Call_onCallMediaState(pjsua2JNI.java:2539)
However, next app launch everything works (after the crash)
Also, if I try catch it and restart the library it works
(since permission is already now granted)
My hypothesis is that the library predates runtime permissions and caches something on startup, to which it wont have access to since permission is not granted yet at library startup, And then even if granted, it uses cached (invalid) values.
Anyone any idea about this? Has anyone got video working on targetSdk 23+?
TLDR; I initialize endpoint / library at app startup. I ask for permission after clicking on Make call button. Only after granting the permission I actually make the call via pjsip.
Starting endpoint only after granting permission is problematic since I need the account registration status from the library to show / hide the makeCall button.
But solution could be to to restart the pjsip after granting the permission after clicking makeCall button.
However while incoming call, it is very problematic, since restarting the pjsip stack would decline to call essentially.
Thanks
_______________________________________________ Visit our blog: http://blog.pjsip.org pjsip mailing list pjsip@xxxxxxxxxxxxxxx http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org