diff options
Diffstat (limited to 'pjsip-apps')
-rw-r--r-- | pjsip-apps/src/pjsua/pjsua_app.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/pjsip-apps/src/pjsua/pjsua_app.c b/pjsip-apps/src/pjsua/pjsua_app.c index fae0cb13..912d986f 100644 --- a/pjsip-apps/src/pjsua/pjsua_app.c +++ b/pjsip-apps/src/pjsua/pjsua_app.c @@ -977,21 +977,27 @@ static void on_call_media_event(pjsua_call_id call_id, if (event->type == PJMEDIA_EVENT_FMT_CHANGED) { /* Adjust renderer window size to original video size */ pjsua_call_info ci; - pjsua_vid_win_id wid; - pjmedia_rect_size size; pjsua_call_get_info(call_id, &ci); if ((ci.media[med_idx].type == PJMEDIA_TYPE_VIDEO) && (ci.media[med_idx].dir & PJMEDIA_DIR_DECODING)) { + pjsua_vid_win_id wid; + pjmedia_rect_size size; + pjsua_vid_win_info win_info; + wid = ci.media[med_idx].stream.vid.win_in; + pjsua_vid_win_get_info(wid, &win_info); + size = event->data.fmt_changed.new_fmt.det.vid.size; - pjsua_vid_win_set_size(wid, &size); - } + if (size.w != win_info.size.w || size.h != win_info.size.h) { + pjsua_vid_win_set_size(wid, &size); - /* Re-arrange video windows */ - arrange_window(PJSUA_INVALID_ID); + /* Re-arrange video windows */ + arrange_window(PJSUA_INVALID_ID); + } + } } #else PJ_UNUSED_ARG(call_id); |