From aa4d6d035d292463f7d523f8fa947142c035ef71 Mon Sep 17 00:00:00 2001 From: Ronan Abhamon Date: Wed, 1 Feb 2017 14:13:10 +0100 Subject: [PATCH] linphone_call_ogl_render supports preview --- coreapi/linphonecall.c | 19 ++++++++++++++----- include/linphone/call.h | 3 ++- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/coreapi/linphonecall.c b/coreapi/linphonecall.c index 17c7e6159..27368bb8c 100644 --- a/coreapi/linphonecall.c +++ b/coreapi/linphonecall.c @@ -3175,10 +3175,10 @@ static void configure_adaptive_rate_control(LinphoneCall *call, MediaStream *ms, bool_t enabled = linphone_core_adaptive_rate_control_enabled(lc); bool_t is_advanced = TRUE; const char *algo = linphone_core_get_adaptive_rate_algorithm(lc); - + if (strcasecmp(algo, "basic") == 0) is_advanced = FALSE; else if (strcasecmp(algo, "advanced") == 0) is_advanced = TRUE; - + if (enabled && is_advanced && !media_stream_avpf_enabled(ms)){ ms_warning("Advanced adaptive rate control requested but avpf is not activated. Reverting to basic rate control instead."); is_advanced = TRUE; @@ -5088,9 +5088,18 @@ void linphone_call_replace_op(LinphoneCall *call, SalOp *op) { sal_op_release(oldop); } -void linphone_call_ogl_render(LinphoneCall *call) { +void linphone_call_ogl_render(LinphoneCall *call, bool_t is_preview) { VideoStream *stream = call->videostream; + if (!stream) + return; - if (stream && stream->output && ms_filter_get_id(stream->output) == MS_OGL_ID) - ms_filter_call_method(stream->output, MS_VIDEO_DISPLAY_CALL_GENERIC_RENDER, NULL); + if (!is_preview) { + if (stream->output && ms_filter_get_id(stream->output) == MS_OGL_ID) + ms_filter_call_method(stream->output, MS_VIDEO_DISPLAY_CALL_GENERIC_RENDER, NULL); + + return; + } + + if (stream->output2 && ms_filter_get_id(stream->output2) == MS_OGL_ID) + ms_filter_call_method(stream->output2, MS_VIDEO_DISPLAY_CALL_GENERIC_RENDER, NULL); } diff --git a/include/linphone/call.h b/include/linphone/call.h index 6989318c3..178af25c8 100644 --- a/include/linphone/call.h +++ b/include/linphone/call.h @@ -567,8 +567,9 @@ LINPHONE_PUBLIC bool_t linphone_call_media_in_progress(LinphoneCall *call); /** * Call generic OpenGL render for a given call. * @param call The call. + * @is_preview If true the preview is displayed otherwise it's the input stream. */ -LINPHONE_PUBLIC void linphone_call_ogl_render(LinphoneCall *call); +LINPHONE_PUBLIC void linphone_call_ogl_render(LinphoneCall *call, bool_t is_preview); /** * @}