From 02369158f50408f4d805fe0284a37aa8fe953105 Mon Sep 17 00:00:00 2001 From: Pierre-Eric Pelloux-Prayer Date: Tue, 17 Apr 2012 11:13:29 +0200 Subject: [PATCH] Add video zoom API --- coreapi/linphonecore.c | 23 +++++++++++++++++++++++ coreapi/linphonecore.h | 2 ++ mediastreamer2 | 2 +- 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index fd1fe7d1c..f7d78a025 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -4776,3 +4776,26 @@ void linphone_core_init_default_params(LinphoneCore*lc, LinphoneCallParams *para params->in_conference=FALSE; } +void linphone_call_zoom_video(LinphoneCall* call, float zoom_factor, float cx, float cy) { + VideoStream* vstream = call->videostream; + float zoom[3]; + + if (zoom_factor < 1) + zoom_factor = 1; + float halfsize = 0.5 * 1.0 / zoom_factor; + + if ((cx - halfsize) < 0) + cx = 0 + halfsize; + if ((cx + halfsize) > 1) + cx = 1 - halfsize; + if ((cy - halfsize) < 0) + cy = 0 + halfsize; + if ((cy + halfsize) > 1) + cy = 1 - halfsize; + + zoom[0] = zoom_factor; + zoom[1] = cx; + zoom[2] = cy; + ms_filter_call_method(vstream->output, MS_VIDEO_DISPLAY_ZOOM, &zoom); +} + diff --git a/coreapi/linphonecore.h b/coreapi/linphonecore.h index 0bca75ce9..a5a1e8c0c 100644 --- a/coreapi/linphonecore.h +++ b/coreapi/linphonecore.h @@ -1131,6 +1131,8 @@ typedef struct LinphoneTunnel LinphoneTunnel; * get tunnel instance if available */ LinphoneTunnel *linphone_core_get_tunnel(LinphoneCore *lc); + + void linphone_call_zoom_video(LinphoneCall* call, float zoom_factor, float cx, float cy); #ifdef __cplusplus } diff --git a/mediastreamer2 b/mediastreamer2 index da89da8f9..c194c9209 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit da89da8f938e658ef713511e2ff653bce4b7d423 +Subproject commit c194c9209bf6c96d419c0513f979ca1114ff3111