- 浏览: 1481564 次
- 性别:
- 来自: 南京
文章分类
- 全部博客 (419)
- XMPP (19)
- Android (180)
- Java (59)
- Network (4)
- HTML5 (13)
- Eclipse (9)
- SCM (23)
- C/C++ (4)
- UML (4)
- Libjingle (15)
- Tools&Softwares (29)
- Linphone (5)
- Linux&UNIX (6)
- Windows (18)
- Google (10)
- MISC (3)
- SIP (6)
- SQLite (5)
- Security (4)
- Opensource (29)
- Online (2)
- 文章 (3)
- MemoryLeak (10)
- Decompile (5)
- Ruby (1)
- Image (1)
- Bat (4)
- TTS&ASR (28)
- Multimedia (1)
- iOS (20)
- Asciiflow - ASCII Flow Diagram Tool.htm (1)
- Networking (1)
- DLNA&UPnP (2)
- Chrome (2)
- CI (1)
- SmartHome (0)
- CloudComputing (1)
- NodeJS (3)
- MachineLearning (2)
最新评论
-
bzhao:
点赞123!
Windows的adb shell中使用vi不乱码方法及AdbPutty -
wahahachuang8:
我觉得这种东西自己开发太麻烦了,就别自己捣鼓了,找个第三方,方 ...
HTML5 WebSocket 技术介绍 -
obehavior:
view.setOnTouchListenerview是什么
[转]android 一直在最前面的浮动窗口效果 -
wutenghua:
[转]android 一直在最前面的浮动窗口效果 -
zee3.lin:
Sorry~~
When I build "call ...
Step by Step about How to Build libjingle 0.4
在Windows下编译Libjingle 0.4+Linphone Voice Engine时候会遇到一些问题, 下面整理了一下, 当然并不是所有的patch都有用的.
http://code.google.com/p/libjingle/issues/detail?id=16
*** 64-bit.patch ***
*** ortp.patch ***
*** gcc4.patch ***
*** libjingle-fileshare.patch ***
*** mutex.patch ***
http://code.google.com/p/libjingle/issues/detail?id=11
fileshare.cc compile error
http://code.google.com/p/libjingle/issues/detail?id=6
Compile fix for new version of libortp2
http://code.google.com/p/libjingle/issues/detail?id=19
cannot login using 'call' from examples
http://code.google.com/p/libjingle/issues/detail?id=29
"make" command gives an error
其中, 我遇到的一个编译问题就是ortp.patch所提到的:
这里backup一下
diff --exclude='Makefile*' --exclude='.*' --exclude='*~' --exclude='*.lo' --exclude='*.o' -aurbB libjingle-orig/talk/session/phone/linphonemediaengine.cc libjingle-new-ortp/talk/session/phone/linphonemediaengine.cc --- libjingle-orig/talk/session/phone/linphonemediaengine.cc 2007-02-02 00:07:30.000000000 -0500 +++ libjingle-new-ortp/talk/session/phone/linphonemediaengine.cc 2007-07-19 11:24:09.000000000 -0400 @@ -80,19 +80,19 @@ } #endif #ifdef HAVE_SPEEX - if (i->name == speex_wb.mime_type && i->clockrate == speex_wb.clock_rate) { - rtp_profile_set_payload(&av_profile, i->id, &speex_wb); - } else if (i->name == speex_nb.mime_type && i->clockrate == speex_nb.clock_rate) { - rtp_profile_set_payload(&av_profile, i->id, &speex_nb); + if (i->name == payload_type_speex_wb.mime_type && i->clockrate == payload_type_speex_wb.clock_rate) { + rtp_profile_set_payload(&av_profile, i->id, &payload_type_speex_wb); + } else if (i->name == payload_type_speex_nb.mime_type && i->clockrate == payload_type_speex_nb.clock_rate) { + rtp_profile_set_payload(&av_profile, i->id, &payload_type_speex_nb); } #endif if (i->id == 0) - rtp_profile_set_payload(&av_profile, 0, &pcmu8000); + rtp_profile_set_payload(&av_profile, 0, &payload_type_pcmu8000); - if (i->name == telephone_event.mime_type) { +/* if (i->name == telephone_event.mime_type) { rtp_profile_set_payload(&av_profile, i->id, &telephone_event); - } + }*/ if (first) { LOG(LS_INFO) << "Using " << i->name << "/" << i->clockrate; @@ -114,12 +114,12 @@ bool LinphoneMediaEngine::FindCodec(const Codec &c) { if (c.id == 0) return true; - if (c.name == telephone_event.mime_type) - return true; +/* if (c.name == telephone_event.mime_type) + return true;*/ #ifdef HAVE_SPEEX - if (c.name == speex_wb.mime_type && c.clockrate == speex_wb.clock_rate) + if (c.name == payload_type_speex_wb.mime_type && c.clockrate == payload_type_speex_wb.clock_rate) return true; - if (c.name == speex_nb.mime_type && c.clockrate == speex_nb.clock_rate) + if (c.name == payload_type_speex_nb.mime_type && c.clockrate == payload_type_speex_nb.clock_rate) return true; #endif #ifdef HAVE_ILBC @@ -171,8 +171,8 @@ #ifdef HAVE_SPEEX ms_speex_codec_init(); - codecs_.push_back(Codec(110, speex_wb.mime_type, speex_wb.clock_rate, 0, 1, 8)); - codecs_.push_back(Codec(111, speex_nb.mime_type, speex_nb.clock_rate, 0, 1, 7)); + codecs_.push_back(Codec(110, payload_type_speex_wb.mime_type, payload_type_speex_wb.clock_rate, 0, 1, 8)); + codecs_.push_back(Codec(111, payload_type_speex_nb.mime_type, payload_type_speex_nb.clock_rate, 0, 1, 7)); #endif @@ -181,8 +181,8 @@ codecs_.push_back(Codec(102, payload_type_ilbc.mime_type, payload_type_ilbc.clock_rate, 0, 1, 4)); #endif - codecs_.push_back(Codec(0, pcmu8000.mime_type, pcmu8000.clock_rate, 0, 1, 2)); - codecs_.push_back(Codec(101, telephone_event.mime_type, telephone_event.clock_rate, 0, 1, 1)); + codecs_.push_back(Codec(0, payload_type_pcmu8000.mime_type, payload_type_pcmu8000.clock_rate, 0, 1, 2)); + // codecs_.push_back(Codec(101, telephone_event.mime_type, telephone_event.clock_rate, 0, 1, 1)); return true; } diff --exclude='Makefile*' --exclude='.*' --exclude='*~' --exclude='*.lo' --exclude='*.o' -aurbB libjingle-orig/talk/third_party/mediastreamer/audiostream.c libjingle-new-ortp/talk/third_party/mediastreamer/audiostream.c --- libjingle-orig/talk/third_party/mediastreamer/audiostream.c 2007-02-02 00:07:32.000000000 -0500 +++ libjingle-new-ortp/talk/third_party/mediastreamer/audiostream.c 2007-07-19 11:55:32.000000000 -0400 @@ -112,7 +112,7 @@ RtpSession **recvsend){ RtpSession *rtpr; rtpr=rtp_session_new(RTP_SESSION_SENDRECV); - rtp_session_max_buf_size_set(rtpr,MAX_RTP_SIZE); + rtp_session_set_recv_buf_size(rtpr,MAX_RTP_SIZE); rtp_session_set_profile(rtpr,profile); rtp_session_set_local_addr(rtpr,get_local_addr_for(remip),locport); if (remport>0) rtp_session_set_remote_addr(rtpr,remip,remport); @@ -133,7 +133,7 @@ /* creates two rtp filters to recv send streams (remote part)*/ rtps=rtp_session_new(RTP_SESSION_SENDONLY); - rtp_session_max_buf_size_set(rtps,MAX_RTP_SIZE); + rtp_session_set_recv_buf_size(rtps,MAX_RTP_SIZE); rtp_session_set_profile(rtps,profile); #ifdef INET6 rtp_session_set_local_addr(rtps,"::",locport+2); @@ -147,7 +147,7 @@ rtp_session_set_jitter_compensation(rtps,jitt_comp); rtpr=rtp_session_new(RTP_SESSION_RECVONLY); - rtp_session_max_buf_size_set(rtpr,MAX_RTP_SIZE); + rtp_session_set_recv_buf_size(rtpr,MAX_RTP_SIZE); rtp_session_set_profile(rtpr,profile); #ifdef INET6 rtp_session_set_local_addr(rtpr,"::",locport); @@ -217,8 +217,8 @@ ms_filter_set_property(stream->decoder,MS_FILTER_PROPERTY_FREQ,&pt->clock_rate); ms_filter_set_property(stream->decoder,MS_FILTER_PROPERTY_BITRATE,&pt->normal_bitrate); - ms_filter_set_property(stream->encoder,MS_FILTER_PROPERTY_FMTP, (void*)pt->fmtp); - ms_filter_set_property(stream->decoder,MS_FILTER_PROPERTY_FMTP,(void*)pt->fmtp); + ms_filter_set_property(stream->encoder,MS_FILTER_PROPERTY_FMTP, (void*)pt->send_fmtp); + ms_filter_set_property(stream->decoder,MS_FILTER_PROPERTY_FMTP,(void*)pt->recv_fmtp); /* create the synchronisation source */ stream->timer=ms_timer_new(); diff --exclude='Makefile*' --exclude='.*' --exclude='*~' --exclude='*.lo' --exclude='*.o' -aurbB libjingle-orig/talk/third_party/mediastreamer/msrtprecv.c libjingle-new-ortp/talk/third_party/mediastreamer/msrtprecv.c --- libjingle-orig/talk/third_party/mediastreamer/msrtprecv.c 2007-02-02 00:07:32.000000000 -0500 +++ libjingle-new-ortp/talk/third_party/mediastreamer/msrtprecv.c 2007-07-19 11:40:11.000000000 -0400 @@ -26,7 +26,7 @@ MSMessage *msgb_2_ms_message(mblk_t* mp){ MSMessage *msg; MSBuffer *msbuf; - if (mp->b_datap->ref_count!=1) return NULL; /* cannot handle properly non-unique buffers*/ + if (mp->b_datap->db_ref!=1) return NULL; /* cannot handle properly non-unique buffers*/ /* create a MSBuffer using the mblk_t buffer */ msg=ms_message_alloc(); msbuf=ms_buffer_alloc(0); @@ -120,7 +120,7 @@ gint got=0; /* we are connected with queues (surely for video)*/ /* use the sync system time to compute a timestamp */ - PayloadType *pt=rtp_profile_get_payload(r->rtpsession->profile,r->rtpsession->payload_type); + PayloadType *pt=rtp_profile_get_payload(rtp_session_get_recv_profile(r->rtpsession),rtp_session_get_recv_payload_type(r->rtpsession)); if (pt==NULL) { ms_warning("ms_rtp_recv_process(): NULL RtpPayload- skipping."); return; diff --exclude='Makefile*' --exclude='.*' --exclude='*~' --exclude='*.lo' --exclude='*.o' -aurbB libjingle-orig/talk/third_party/mediastreamer/msrtpsend.c libjingle-new-ortp/talk/third_party/mediastreamer/msrtpsend.c --- libjingle-orig/talk/third_party/mediastreamer/msrtpsend.c 2007-02-02 00:07:32.000000000 -0500 +++ libjingle-new-ortp/talk/third_party/mediastreamer/msrtpsend.c 2007-07-19 11:41:26.000000000 -0400 @@ -85,7 +85,7 @@ { guint32 clockts; /* use the sync system time to compute a timestamp */ - PayloadType *pt=rtp_profile_get_payload(r->rtpsession->profile,r->rtpsession->payload_type); + PayloadType *pt=rtp_profile_get_payload(rtp_session_get_send_profile(r->rtpsession),rtp_session_get_send_payload_type(r->rtpsession)); g_return_val_if_fail(pt!=NULL,0); clockts=(guint32)(((double)synctime * (double)pt->clock_rate)/1000.0); ms_trace("ms_rtp_send_process: sync->time=%i clock=%i",synctime,clockts);
发表评论
-
[Libjingle代码分析]随记
2011-02-28 15:24 3607call_main.cc的main()方法中创建CallCli ... -
[Libjingle代码分析]Libjingle的线程机制与Android平台的Handler机制相似
2011-02-27 19:55 2626不愧都是Google写的代码, Libjingle用到的Thr ... -
[Libjingle代码分析]对照Jingle的XMPP stanza理解Libjingle的几个关键数据结构
2011-02-27 13:34 35701. SessionManager管理多个Session: ... -
Libjingle代码分析之Thread篇
2011-02-23 14:59 0Libjingle的Thread机制竟然与Android的Ha ... -
Libjingle另一个很隐藏但却很致命的错误 - WSAECONNRESET (10054) Connection reset by peer.
2011-02-20 18:50 5454无论Libjingle 0.4.0还是0.5.2 (相比较0. ... -
Libjingle一个虽小但却很严重的bug - 误导人的SocketAddress构造函数参数名称
2011-02-19 23:47 3347在Libjingle+Linphone for Windows ... -
Build for Libjingle 0.5.2 + Mediastreamer2
2011-02-18 20:01 2751Mediastreamer support in 0.5.0 ... -
RTP Tools
2011-02-18 01:00 1882http://www.cs.columbia.edu/irt/ ... -
在Windows下编译最新版本的Libjingle
2011-02-17 14:09 12790Libjingle版本: 0.5.2 操作系统: Window ... -
Myjingle src code
2011-02-14 22:38 2666. -
终于搞定Windows下Libjingle+Linphone Voice Engine的语音通信
2011-02-14 20:49 4146Libjingle在Windows下的语音引擎默认的是GIPS ... -
[Libjingle 0.4]LibJingle编译指南
2011-02-14 17:24 1972LibJingle (for Ubuntu) 编译指南 ... -
Step by Step about How to Build libjingle 0.4
2011-02-12 17:36 52821. Download and Install Visual ... -
libjingle 0.4和0.5版本之间的区别
2011-02-12 15:19 2631我所知道的主要的区别是: 1. Build方式的区别. 0. ... -
决定花点时间研究下libjingle
2011-02-12 15:02 7062Project and Source Code Locatio ...
相关推荐
NULL 博文链接:https://mysuperbaby.iteye.com/blog/904758
libjingle0.6.14编译好的.lib
libjingle vs2010 编译通过
目前GOOGLECODE上的最新更新删除了libjingle.vcproj文件,采用scons脚本进行编译,增加了学习门槛,本次下载包增加了libjingle.vcproj文件并且已经通过了vs2005编译,方便大家学习使用。 Libjingle - Google Talk ...
VS2010编译libjingle0.6.2步骤 图文并茂
libjingle 0.6.6、0.6.9以及最新的0.6.10在windows和ubuntu-linux上编译通过,现将编译过程及遇到的一些问题总结分享一下
p2p 技术实现,从中可以学到很多 p2p技术的经验
作者:Group ArmTalk 文档:2011-11-30 指导文档内容: 1. Libjingle是什么 ...3. 怎么交叉编译Libjingle(arm-linux-) 以下是个人说明: 要在ARM架构的嵌入式设备使用libjingle,可以参考该文档进行操作
android需要的libjingle_peerconnection.jar和 arm64-v8a、armeabi-v7a、x86和x86_64下的libjingle_peerconnection_so.so文件
libjingle源码(含GIPS LITE),方便大家编译上传
android Webrtc ( libjingle_peerconnection_builds 包括例子
libjingle_peerconnection.jar libjingle_peerconnection.so 2016.8.11 号编译
带GIPS的libjingle source
Libjingle是Google提供的C++组件集,它为Google Talk的点对点通讯与语音呼叫功能提供交互操作性。组件包包括了Jingle和Jingle-Audio的google实现的源代码,它们是XMPP标准的推荐扩展,目前试验版可用。 我们发布此...
libjingle-0.5.1.zip,WebRTC nat打洞专用。
从官网上复制的libjingle开发者指南和源码索引,你也可以访问一下网站: https://developers.google.com/talk/libjingle/developer_guide