- 博客(14)
- 资源 (9)
- 收藏
- 关注
原创 哈希表的两种设计方法
针对leetcode的706题,设计简单hash表,有两种冲突处理方法:(1)开放寻址方法(再hash);(2)完全散列法.(hash+链表/bst)。设计hash表,有3种操作,增(包括改),删,查。hash函数为取模。(1)代码如下:class MyHashMap {public: struct kv{ int k; int v;...
2018-11-30 23:58:55 962
原创 gcc中高效的位操作内联函数(endian.h)
x86机器本机是小端序,在endian.h中有定义如下:/* i386/x86_64 are little-endian. */#define __BYTE_ORDER __LITTLE_ENDIAN对于位的翻转操作定义如下:# if __BYTE_ORDER == __LITTLE_ENDIAN# define htobe16(x) __bswap_16 (x)# ...
2018-11-29 14:58:17 4487
原创 取消默认构造,拷贝构造和赋值构造的宏定义
宏定义如下:// Put this in the declarations for a class to be unassignable.#define RTC_DISALLOW_ASSIGN(TypeName) \ void operator=(const TypeName&) = delete// A macro to disallow the copy constru...
2018-11-26 16:02:09 520
原创 webrtc的native api二次开发的环境构建
完成c++代码的编译之后ninja -C out/linux得到libwebrtc.a,这个静态库包括webrtc全部的o文件.直接-lwebrtc, -I${webrtc}/src目录,就可以用native api开发了.由于webrtc编译时,采用clang进行的编译,所以如果二次开发环境是gcc,会遇到一些库的不兼容例如:undefined reference:st...
2018-11-21 23:49:48 3148
原创 C/C++的自定义原子操作方法
class AtomicOps { public: static int Increment(volatile int* i) { //原子+1 return __sync_add_and_fetch(i, 1); } static int Decrement(volatile int* i) { //原子-1 return __sync_sub_and_fetch...
2018-11-14 15:56:54 3991
原创 C++11的default和delete的说明
在C++11标准中的描述是:=default: it means that you want to use the compiler-generated version of that function, so you don't need to specify a body.=delete: it means that you don't want the compiler to gen...
2018-11-14 11:38:50 300
原创 对autoconf构建的开源项目二次开发的步骤
1 适应本机的构建环境和依赖关系 aclocal automake2 正常的configure和make ./configure make3 在Makefile.am中添加增加的文件 (1)增加helloworld为测试的目标二进制文件,bin_PROGRAMS = rtpdump rtpplay rtpsend rtptrans helloworld (2...
2018-11-12 23:18:02 228
原创 webrtc中H264码流ulpfec与nack的联系
由于H264的rtp中不能区分视频流中是否每一帧的图像都连续,对于丢帧的情况无法处理,所以fec+nack会导致fec包丢失后,nack去申请重传fec的包.造成带宽的浪费.在rtp_video_sender.cc中,检测如下:// Payload types without picture ID cannot determine that a stream is complete ...
2018-11-11 00:08:52 2442 2
原创 webrtc的video_loopback的rtp包调试方法
1 修改video_loopback.cc中,设置duration的代码,使其大于0.如下WEBRTC_DEFINE_int( duration, 1,//change from 0 "Duration of the test in seconds. If 0, rendered will be shown instead.");int DurationSecs()...
2018-11-09 23:40:15 641
原创 git使用meld的方法
安装meldapt-get install meld配置git的merge工具, 修改本地的~/.gitconfig配置文件,加入以下几行配置[merge] tool = meld conflictstyle = diff3[mergetool "meld"] cmd = meld $LOCAL $BASE $REMOTE --output=$M...
2018-11-07 23:43:23 3164
原创 webrtc编译arm64位平台程序的方法
1 下源码:fetch --nohooks webrtcgclient sync2 下arm64的编译环境build/linux/sysroot_scripts/install-sysroot.py --arch=arm643生成编译文件gn gen out/Debug-device-arm64 --args='target_os="linux" target_cpu=...
2018-11-06 15:51:54 2213 2
原创 ubuntu标准压缩指令
tar -zcvf webrtc-tt.tar.gz ./webrtc-checkout/比图像化界面好,对软连接的压缩效果要稳定,不容易出错。
2018-11-04 20:11:41 162
原创 python报错SSL: CERTIFICATE_VERIFY_FAILED处理
python连接http的地址没问题,连接https地址就一直报错,报错如下:urllib2.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)>出现场景:webrtc的gclient sync的过程中出现:Installi...
2018-11-04 15:47:23 789
原创 webrtc或chromium的fetch和gclient报错处理
报错基本都是超时或者路由不到目地地址。因为浏览器或者系统的代理设置,可能不会设置到git。具体的解决方法:(1)设置socket的代理:apt-get install polipopolipo socksParentProxy=localhost:5678(2)设置http的代理:export http_proxy=127.0.0.1:1234export https_...
2018-11-03 17:10:15 2025
rs_fec.zip
2019-09-10
boost的asio做的udp接收程序带环形缓冲区
2017-03-17
ffmpeg官网h264转码vs可编译
2017-02-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人