pjsip media 扩展传视频

之前想扩展conference和加一个Video_port,后来看了下不会,太复杂。

在者他们做的事也是对声音的混合之类,就不想学着扩展了。

后来在pjsua_media中的pjsua_media_channel_update方法中看到了pjmedia_session_create之后

 

  /* Get the port interface of the first stream in the session.
  * We need the port interface to add to the conference bridge.
  */
  pjmedia_session_get_port(call->session, 0, &media_port);

  /* Notify application about stream creation.
  * Note: application may modify media_port to point to different
  * media port
  */
  if (pjsua_var.ua_cfg.cb.on_stream_created) {
   pjsua_var.ua_cfg.cb.on_stream_created(call_id, call->session,
    0, &media_port);
  }

以上是扩展之后的,就是创建完视频流之后调用一下应该程序的on_stream_created回调。

测试代码为: 

static void on_stream_created(pjsua_call_id call_id,
        pjmedia_session *sess,
                          unsigned stream_idx,
        pjmedia_port **p_port)
{
 if(stream_idx == 0)
 {
  pj_memcpy(&theApp.port_v,*p_port,sizeof(pjmedia_port));
 }
}

 

回调函数中保存端口

测试程序

 pjmedia_frame myFrame;
 myFrame.buf = new char[100];
 pj_str_t sendbuf = pj_str("testasdfasdfasdf");
 pj_memcpy(myFrame.buf,sendbuf.ptr,sendbuf.slen);
 myFrame.size = sendbuf.slen;
 myFrame.type = PJMEDIA_FRAME_TYPE_AUDIO;
 (theApp.port_v).put_frame(&theApp.port_v,&myFrame);

由于保存和测试的是声音端口,声音出发出卡卡声。

所以扩展思路有了,

保存视频端口,之后用Clock Generator
定时,用VFW Capture视频并传给视频端口。

对于如何扩展SIP传视频协商SDP处理请参考之前随笔!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值