- Timestamp:
- Dec 10, 2019 3:55:51 AM (4 years ago)
- Location:
- pjproject/trunk
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/trunk/pjmedia/include/pjmedia/videodev.h
r6085 r6117 274 274 */ 275 275 PJMEDIA_VID_DEV_CAP_OUTPUT_WINDOW_FLAGS = 512, 276 277 /** 278 * Support for setting the output video window full screen. 279 */ 280 PJMEDIA_VID_DEV_CAP_OUTPUT_FULLSCREEN = 1024, 276 281 277 282 /** … … 464 469 unsigned window_flags; 465 470 471 /** 472 * Video window's full screen status. This setting is optional, and will only be 473 * used if PJMEDIA_VID_DEV_CAP_OUTPUT_FULLSCREEN is set in the flags. 474 */ 475 pj_bool_t window_fullscreen; 476 466 477 } pjmedia_vid_dev_param; 467 478 -
pjproject/trunk/pjmedia/src/pjmedia-videodev/sdl_dev.c
r6085 r6117 702 702 } 703 703 704 if (!((strm->param.flags & PJMEDIA_VID_DEV_CAP_OUTPUT_FULLSCREEN) && 705 strm->param.window_fullscreen)) 706 { 707 flags |= SDL_WINDOW_FULLSCREEN; 708 } 709 704 710 #if PJMEDIA_VIDEO_DEV_SDL_HAS_OPENGL 705 711 if (strm->param.rend_id == OPENGL_DEV_IDX) … … 1017 1023 { 1018 1024 pi->flags |= PJMEDIA_VID_DEV_CAP_OUTPUT_WINDOW_FLAGS; 1025 } 1026 if (sdl_stream_get_cap(s, PJMEDIA_VID_DEV_CAP_OUTPUT_FULLSCREEN, 1027 &pi->window_fullscreen) == PJ_SUCCESS) 1028 { 1029 pi->flags |= PJMEDIA_VID_DEV_CAP_OUTPUT_FULLSCREEN; 1019 1030 } 1020 1031 … … 1094 1105 *wnd_flags |= PJMEDIA_VID_DEV_WND_RESIZABLE; 1095 1106 return PJ_SUCCESS; 1107 } else if (cap == PJMEDIA_VID_DEV_CAP_OUTPUT_FULLSCREEN) { 1108 Uint32 flag = SDL_GetWindowFlags(strm->window); 1109 *((pj_bool_t *)pval) = (flag & SDL_WINDOW_FULLSCREEN)? PJ_TRUE: PJ_FALSE; 1110 return PJ_SUCCESS; 1096 1111 } 1097 1112 … … 1189 1204 hwnd->info.window)); 1190 1205 return status; 1206 } else if (cap == PJMEDIA_VID_DEV_CAP_OUTPUT_FULLSCREEN) { 1207 int flag; 1208 if (*(pj_bool_t *)pval) 1209 flag = SDL_WINDOW_FULLSCREEN; 1210 else 1211 flag = 0; 1212 SDL_SetWindowFullscreen(strm->window, flag); 1213 return PJ_SUCCESS; 1191 1214 } 1192 1215 -
pjproject/trunk/pjmedia/src/pjmedia/videodev.c
r5255 r6117 48 48 DEFINE_CAP("orientation", "Video orientation"), 49 49 DEFINE_CAP("switch", "Switch device"), 50 DEFINE_CAP("wndflags", "Window flags") 50 DEFINE_CAP("wndflags", "Window flags"), 51 DEFINE_CAP("fullscreen", "Renderer fullscreen") 51 52 }; 52 53 … … 140 141 case PJMEDIA_VID_DEV_CAP_OUTPUT_WINDOW_FLAGS: 141 142 FIELD_INFO(window_flags); 143 break; 144 case PJMEDIA_VID_DEV_CAP_OUTPUT_FULLSCREEN: 145 FIELD_INFO(window_fullscreen); 142 146 break; 143 147 default: -
pjproject/trunk/pjsip/include/pjsua-lib/pjsua.h
r6106 r6117 8055 8055 8056 8056 8057 /** 8058 * Set video window full-screen. This operation is valid only when the 8059 * underlying video device supports PJMEDIA_VID_DEV_CAP_OUTPUT_FULLSCREEN 8060 * capability. Currently it is only supported on SDL backend. 8061 * 8062 * @param wid The video window ID. 8063 * @param enabled Set to PJ_TRUE if full screen is desired, PJ_FALSE 8064 * otherwise. 8065 * 8066 * @return PJ_SUCCESS on success, or the appropriate error code. 8067 */ 8068 PJ_DECL(pj_status_t) pjsua_vid_win_set_fullscreen(pjsua_vid_win_id wid, 8069 pj_bool_t enabled); 8070 8057 8071 /* 8058 8072 * Video codecs API -
pjproject/trunk/pjsip/include/pjsua2/media.hpp
r6112 r6117 1869 1869 */ 1870 1870 void setWindow(const VideoWindowHandle &win) PJSUA2_THROW(Error); 1871 1871 1872 /** 1873 * Set video window full-screen. This operation is valid only when the 1874 * underlying video device supports PJMEDIA_VID_DEV_CAP_OUTPUT_FULLSCREEN 1875 * capability. Currently it is only supported on SDL backend. 1876 * 1877 * @param enabled Set to true if full screen is desired, false 1878 * otherwise. 1879 */ 1880 void setFullScreen(bool enabled) PJSUA2_THROW(Error); 1881 1872 1882 private: 1873 1883 pjsua_vid_win_id winId; -
pjproject/trunk/pjsip/src/pjsua-lib/pjsua_vid.c
r6110 r6117 1739 1739 } 1740 1740 1741 1742 /* 1743 * Set video window fullscreen. 1744 */ 1745 PJ_DEF(pj_status_t) pjsua_vid_win_set_fullscreen( pjsua_vid_win_id wid, 1746 pj_bool_t enabled) 1747 { 1748 pjsua_vid_win *w; 1749 pjmedia_vid_dev_stream *s; 1750 pj_status_t status; 1751 1752 PJ_ASSERT_RETURN(wid >= 0 && wid < PJSUA_MAX_VID_WINS, PJ_EINVAL); 1753 1754 PJSUA_LOCK(); 1755 1756 w = &pjsua_var.win[wid]; 1757 s = pjmedia_vid_port_get_stream(w->vp_rend? w->vp_rend: w->vp_cap); 1758 if (s == NULL) { 1759 PJSUA_UNLOCK(); 1760 return PJ_EINVAL; 1761 } 1762 1763 status = pjmedia_vid_dev_stream_set_cap(s, 1764 PJMEDIA_VID_DEV_CAP_OUTPUT_FULLSCREEN, &enabled); 1765 1766 PJSUA_UNLOCK(); 1767 1768 return status; 1769 } 1741 1770 1742 1771 static void call_get_vid_strm_info(pjsua_call *call, -
pjproject/trunk/pjsip/src/pjsua2/media.cpp
r6112 r6117 1281 1281 #endif 1282 1282 } 1283 1284 void VideoWindow::setFullScreen(bool enabled) PJSUA2_THROW(Error) 1285 { 1286 #if PJSUA_HAS_VIDEO 1287 PJSUA2_CHECK_EXPR( pjsua_vid_win_set_fullscreen(winId, enabled) ); 1288 #else 1289 PJ_UNUSED_ARG(enabled); 1290 #endif 1291 } 1292 1283 1293 /////////////////////////////////////////////////////////////////////////////// 1284 1294 VideoPreviewOpParam::VideoPreviewOpParam()
Note: See TracChangeset
for help on using the changeset viewer.