-1
在PJSIP項目(Windows 32 Bit MFC/C++)中,我們正在使用SIP服務器來顯示傳入視頻呼叫。 由於使用了SDL/DirectShow(DirectX)圖層,SDL創建了自己的窗口來顯示傳入的視頻(它的工作原理)。我的config_site.h看起來像:PJSIP項目:從pjsua allways創建的窗口句柄NULL
#define PJMEDIA_HAS_VIDEO 1
#define PJMEDIA_HAS_FFMPEG 1
#define PJMEDIA_VIDEO_DEV_HAS_SDL 1
#define PJMEDIA_VIDEO_DEV_HAS_DSHOW 1
我會在自己的窗口而不是在SDL的窗口中顯示視頻。 所以我試圖讓SDL窗口的HWND,並使用它像一個自己的子窗口:
pjsua_call_get_info(call_id, &ci);
for (unsigned i = 0; i < ci.media_cnt; ++i)
{
if ((ci.media[i].type == PJMEDIA_TYPE_VIDEO) &&
(ci.media[i].dir & PJMEDIA_DIR_DECODING))
{
pjsua_vid_win_info wi;
pjsua_vid_win_get_info(ci.media[i].stream.vid.win_in, &wi);
// Using handle like this or whatever:
//HWND hwndOld = ::SetParent((HWND)&wi.hwnd.info.win.hwnd, pWnd->m_hWnd);
break;
}
}
問題:wi.hwnd.info.win.hwnd是百達NULL!
也許有人有與SDL的窗口類似的問題? 問題是,我是否明顯需要一個SDL圖層 - 也許我只會使用PJSIP來放置它?我的意思是:
#define PJMEDIA_HAS_VIDEO 1
#define PJMEDIA_HAS_FFMPEG 1
//#define PJMEDIA_VIDEO_DEV_HAS_SDL 1
//#define PJMEDIA_VIDEO_DEV_HAS_DSHOW 1
我已經試過此配置,但沒有視頻已經表明...
只是爲了信息: http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/2011-November/013684.html – duDE 2013-02-13 09:58:45