diff --git a/src/call/call_audio.c b/src/call/call_audio.c index ea15e62a..64a26b47 100644 --- a/src/call/call_audio.c +++ b/src/call/call_audio.c @@ -217,7 +217,11 @@ int call_audio_feed_pcm(uint64_t call_id, const int16_t* pcm, int count) { inst = g_inst; pthread_mutex_unlock(&g_mtx); - if (len <= 0 || !ua || !inst) return -1; + if (len <= 0) return -1; + if (!ua || !inst) { + DEBUG_ERROR(DEBUG_CATEGORY_CALL, "%s: feed_pcm: instance not set (call_audio_init not called)", CALL_AUDIO_ID); + return -1; + } struct call_media_arg* a = (struct call_media_arg*)u_malloc(sizeof(*a)); if (!a) return -1; diff --git a/tools/chatgui-android/jni_bridge/android_jni_bridge.c b/tools/chatgui-android/jni_bridge/android_jni_bridge.c index 8457d0cd..fae1d9ba 100644 --- a/tools/chatgui-android/jni_bridge/android_jni_bridge.c +++ b/tools/chatgui-android/jni_bridge/android_jni_bridge.c @@ -1432,6 +1432,15 @@ int utun_bridge_call_is_online(const char* ch_id, uint64_t peer_node_id) { * ────────────────────────────────────────────────────────────────── */ int utun_bridge_call_audio_start(uint64_t call_id) { + struct UTUN_INSTANCE* inst = instance_lite_get_instance(); + if (!inst) { + DEBUG_ERROR(DEBUG_CATEGORY_CALL, "call_audio_start: no instance"); + return -1; + } + if (call_audio_init(inst) != 0) { + DEBUG_ERROR(DEBUG_CATEGORY_CALL, "call_audio_start: call_audio_init failed"); + return -1; + } return call_audio_start(call_id); }