From 0266873461cbbaeac7cc5a210fa90bab6c640b65 Mon Sep 17 00:00:00 2001 From: Liong Sauw Ming Date: Tue, 17 Mar 2015 09:59:42 +0000 Subject: Re #1786: Add support to specify output window as well for video preview param. git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@4995 74dad513-b988-da41-8d7b-12977e46ad98 --- pjsip/src/pjsua-lib/pjsua_vid.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'pjsip/src') diff --git a/pjsip/src/pjsua-lib/pjsua_vid.c b/pjsip/src/pjsua-lib/pjsua_vid.c index b0ae5e7b..028c7a35 100644 --- a/pjsip/src/pjsua-lib/pjsua_vid.c +++ b/pjsip/src/pjsua-lib/pjsua_vid.c @@ -188,6 +188,7 @@ PJ_DEF(void) pjsua_vid_preview_param_default(pjsua_vid_preview_param *p) p->show = PJ_TRUE; p->wnd_flags = 0; pj_bzero(&p->format, sizeof(p->format)); + pj_bzero(&p->wnd, sizeof(p->wnd)); } @@ -438,6 +439,7 @@ static pj_status_t create_vid_win(pjsua_vid_win_type type, pjmedia_vid_dev_index cap_id, pj_bool_t show, unsigned wnd_flags, + const pjmedia_vid_dev_hwnd *wnd, pjsua_vid_win_id *id) { pj_bool_t enable_native_preview; @@ -606,6 +608,10 @@ static pj_status_t create_vid_win(pjsua_vid_win_type type, vp_param.vidparam.window_hide = !show; vp_param.vidparam.flags |= PJMEDIA_VID_DEV_CAP_OUTPUT_WINDOW_FLAGS; vp_param.vidparam.window_flags = wnd_flags; + if (wnd) { + vp_param.vidparam.flags |= PJMEDIA_VID_DEV_CAP_OUTPUT_WINDOW; + vp_param.vidparam.window = *wnd; + } status = pjmedia_vid_port_create(w->pool, &vp_param, &w->vp_rend); if (status != PJ_SUCCESS) @@ -846,6 +852,7 @@ pj_status_t pjsua_vid_channel_update(pjsua_call_media *call_med, PJSUA_INVALID_ID, acc->cfg.vid_in_auto_show, acc->cfg.vid_wnd_flags, + NULL, &wid); if (status != PJ_SUCCESS) { pj_log_pop_indent(); @@ -916,6 +923,7 @@ pj_status_t pjsua_vid_channel_update(pjsua_call_media *call_med, //acc->cfg.vid_cap_dev, PJSUA_HIDE_WINDOW, acc->cfg.vid_wnd_flags, + NULL, &wid); if (status != PJ_SUCCESS) { pj_log_pop_indent(); @@ -1086,7 +1094,8 @@ PJ_DEF(pj_status_t) pjsua_vid_preview_start(pjmedia_vid_dev_index id, if (prm->format.detail_type == PJMEDIA_FORMAT_DETAIL_VIDEO) fmt = &prm->format; status = create_vid_win(PJSUA_WND_TYPE_PREVIEW, fmt, rend_id, id, - prm->show, prm->wnd_flags, &wid); + prm->show, prm->wnd_flags, + (prm->wnd.info.window? &prm->wnd: NULL), &wid); if (status != PJ_SUCCESS) { PJSUA_UNLOCK(); pj_log_pop_indent(); @@ -1920,6 +1929,7 @@ static pj_status_t call_change_cap_dev(pjsua_call *call, cap_dev, PJSUA_HIDE_WINDOW, acc->cfg.vid_wnd_flags, + NULL, &new_wid); if (status != PJ_SUCCESS) goto on_error; -- cgit v1.2.3