自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(134)
  • 资源 (3)
  • 收藏
  • 关注

转载 MFC如何在有界面的应用程序中开启控制台窗口

在有界面的应用程序中开启控制台窗口有时候非常有用,尤其是在调试多线程应用程序中,由于通过断点的方式调试程序时会导致线程挂起从而导致各种难于预料的结果。这时候就可以通过开启控制台窗口往窗口输出信息来查看线程的运行情况,这比通过日志文件输出的方式更方便和实时。下面介绍两种开启控制台窗口的方法:1.通过AllocConsole()函数打开控制台窗口  AllocConsole();//打开控制...

2018-11-08 16:10:27 1013

转载 C++中临时对象及返回值优化

了解临时对象的来源什么是临时对象?        C++真正的临时对象是不可见的匿名对象,不会出现在你的源码中,但是程序在运行时确实生成了这样的对象.通常出现在以下两种情况:(1)为了使函数调用成功而进行隐式类型转换的时候。        传递某对象给一个函数,而其类型与函数的形参类型不同时,如果可以通过隐式转化的话可以使函数调用成功,那么此时会通过构造函数生成一个临时对象...

2018-08-24 11:41:00 356

转载 Protocol Buffer 序列化原理大揭秘 - 为什么Protocol Buffer性能这么好?

前言习惯用 Json、XML 数据存储格式的你们,相信大多都没听过Protocol Buffer Protocol Buffer 其实 是 Google出品的一种轻量 & 高效的结构化数据存储格式,性能比 Json、XML 真的强!太!多! 由于 Google出品,我相信Protocol Buffer已经具备足够的吸引力 今天,我将讲解为什么Protocol...

2018-08-24 09:49:03 702

转载 tcp连接listen的backlog剖析

TCP连接中,最重要的是连接TCP连接上,两个方向之间的各个状态及各个系统调用与状态之间的关系。往往可以以两种图表示,第一种是状态转换图,第二种是连接时序图。如下:状态图:时序图:    可见,listen状态是服务器接收连接建立的必经之路。调用listen后,服务器即进入了LISTEN状态。listen为:int listen(int sockfd, int backlog);其backlog是...

2018-04-11 14:46:21 1299

转载 【Linux编程】守护进程(daemon)详解与创建

本文主要参考自:linux系统编程之进程(八):守护进程详解及创建,daemon()使用一、概述Daemon(守护进程)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。它不需要用户输入就能运行而且提供某种服务,不是对整个系统就是对某个用户程序提供服务。Linux系统的大多数服务器就是通过守护进程实现的。常见的守护进程包括系统日志进程syslogd、 w...

2018-03-20 14:59:02 3680

转载 C++三种容器:list、vector和deque的区别

 在写C++程序的时候会发现STL是一个不错的东西,减少了代码量,使代码的复用率大大提高,减轻了程序猿的负担。还有一个就是容器,你会发现要是自己写一个链表、队列,或者是数组的时候,既要花时间还要操心怎么去维护,里面的指针啊,内存够不够用啊,长度问题,有没有可能溢出啊等等一系列的问题等着我们去解决,还是比较头疼的。所以容器的出现解决了这一个问题,它将这些数据结构都封装成了一个类,只需要加上头文件,我...

2018-03-13 20:31:39 287

转载 高级加密标准AES的工作模式(ECB、CBC、CFB、OFB)

最近在重构之前写的HTTP代理,这个代理是由代理客户端和代理服务端组成的,二者之前使用SSL保证通信内容不会受到中间人(MITM)攻击。而新的实现打算移除SSL,因为SSL握手的开销过大,尤其是客户端与服务端之间隔了个太平洋,另一方面本月中旬的时候Google安全团队证明了SSLv3已经是不安全的了,需要升级到TLS,但TLS同样有握手的开销。在新的实现中客户端和服务端之间的通信将使用AES加密,...

2018-03-05 14:25:02 737

转载 长期使人困惑的问题:TCP连接中断的实时检测

目前TCP/IP已经成为网络的主导技术。通过对TCP底层实现的分析,对TCP/IP编程中一个长期使人困惑的问题----网络连接中断的实时检测—进行深入的分析,并提出相应的解决方案。    0引言  作为现代网络的主导技术,TCP/IP编程看起来非常简单,但在经历了最初的高效率后,往往会在细节面前停滞不前,这常常是因为对TCP协议底层细节的缺乏了解所导致的。  TCP是面向连接协议,

2016-03-24 17:29:31 8309

转载 什么是码率控制? 在视频编码中,码率控制的概念是什么,它是通过什么实现的?

码率控制实际上是一种编码的优化算法,它用于实现对视频流码流大小的控制。那么它控制的目的是什么呢?我们可以试想一下,同样的视频编码格式,码流大,它包含的信息也就越多,那么对应的图像也就越清晰,反之亦然。目前常用的两种码流控制方式是VBR和CBR,VBR是动态比特率,CBR是固定比特率。那么他们是怎么来实现的呢?我们首先看视频编码的目的,它是为了在有限的带宽中传输尽可能清晰的视频,我们以每秒25/

2016-02-24 14:46:59 2785

转载 rtmp发送H264及aac的音视频

RTMP推送的音视频流的封装形式和FLV格式相似,由此可知,向FMS推送H264和AAC直播流,需要首先发送"AVC sequence header"和"AAC sequence header",这两项数据包含的是重要的编码信息,没有它们,解码器将无法解码。  AVC sequence header就是AVCDecoderConfigurationRecord结构,该结构在标准文档“ISO

2016-01-10 22:07:28 643

转载 AAC音频格式简析

1.ADTS是个啥ADTS全称是(Audio Data Transport Stream),是AAC的一种十分常见的传输格式。记得第一次做demux的时候,把AAC音频的ES流从FLV封装格式中抽出来送给硬件解码器时,不能播;保存到本地用pc的播放器播时,我靠也不能播。当时崩溃了,后来通过查找资料才知道。一般的AAC解码器都需要把AAC的ES流打包成ADTS的格式,一般是在AAC

2016-01-10 00:14:38 3946

转载 printf 打印颜色

控制字符的通用格式如下:Esc[{attr1};...;{attrn}m其中:Esc 是转义字符, 其值为"\033";[ 是常量的左中括号;{attr1};...{attrn} 是若干属性, 通常是由一个有特定意义的数字代替, 每个属性之间用分号分隔;m 就是字面常量字符m;属性列表如下:1. 通用格式控制:0 重置所有属性1 高亮/加粗2 暗

2016-01-05 11:39:58 663

转载 linux信号量全面介绍

信号量一.什么是信号量信号量的使用主要是用来保护共享资源,使得资源在一个时刻只有一个进程(线程)所拥有。信号量的值为正的时候,说明它空闲。所测试的线程可以锁定而使用它。若为0,说明它被占用,测试的线程要进入睡眠队列中,等待被唤醒。二.信号量的分类在学习信号量之前,我们必须先知道——Linux提供两种信号量:(1) 内核信号量,由内核控制路径使用(2) 用户态进程

2015-12-18 14:32:09 696

原创 linux posix 通过pthread_join获取线程pthread_exit返回的数据

#include #include typedef struct _foo{ int a,b,c;}foo;void printfoo(foo* fp){ if(fp) printf("a:%d\nb:%d\nc:%d\n",fp->a,fp->b,fp->c); else printf("ptr is Null\n");}void* proc1(void* a

2015-12-10 11:20:26 883

转载 Linux 中 RPM包 安装 查询 卸载命令的总结

之前一直在用ubuntu,安装卸载软件基本上是使用apt-get 这个非常的简单,而且过程中遇到的软件依赖会自动帮我们处理,类似于傻瓜式安装。另外在 Linux 操作系统下,几乎所有的软件都可以通过RPM 进行安装、卸载及管理等操作。RPM 的全称为Redhat Package Manager ,是由Redhat 公司提出的,用于管理Linux 下软件包的软件。Linux 安装时,除了几个核心模块

2015-12-10 10:40:24 780

转载 rtmp协议消息体介绍

RTMP协议是一个互联网TCP/IP五层体系结构中应用层的协议。RTMP协议中基本的数据单元称为消息(Message)。当RTMP协议在互联网中传输数据的时候,消息会被拆分成更小的单元,称为消息块(Chunk)。1 消息消息是RTMP协议中基本的数据单元。不同种类的消息包含不同的Message Type ID,代表不同的功能。RTMP协议中一共规定了十多种消息类型,分别发挥着不

2015-12-09 18:06:24 2389

转载 linux的分离和可结合状态

(2)线程的分离与结合    在任何一个时间点上,线程是可结合的(joinable),或者是分离的(detached)。一个可结合的线程能够被其他线程收回其资源和杀死;在被其他线程回收之前,它的存储器资源(如栈)是不释放的。相反,一个分离的线程是不能被其他线程回收或杀死的,它的存储器资源在它终止时由系统自动释放。线程的分离状态决定一个线程以什么样的方式来终止自己。在上面的例子中,我们采用了

2015-12-09 15:45:51 340

转载 qt5程序头文件包含风格推荐

老版本:C/C++ code?12#include #include 忘了哪本书上推荐这样包含:C/C++ code?12#include #include 而今天在测试Qt5代码时发现:QApplicati

2015-11-28 10:53:30 2023

转载 qt中文乱码问题

首先呢,声明一下,QString 是不存在中文支持问题的,很多人遇到问题,并不是本身 QString 的问题,而是没有将自己希望的字符串正确赋给QString。很简单的问题,"我是中文"这样写的时候,它是传统的 char 类型的窄字符串,我们需要的只不过是通过某种方式告诉QString 这四个汉字采用的那种编码。而问题一般都出在很多用户对自己当前的编码没太多概念,于是一

2015-11-26 00:08:08 287

转载 QT 绘图设备和Graphics View Framework

绘图设备是指继承QPainterDevice的子类。Qt一共提供了四个这样的类,分别是QPixmap、QBitmap、QImage和QPicture。其中,QPixmap专门为图像在屏幕上的显示做了优化,而QBitmap是QPixmap的一个子类,它的色深限定为1,你可以使用QPixmap的isQBitmap()函数来确定这个QPixmap是不是一个QBitmap。QImage专门为图像的像素级访

2015-11-25 21:52:22 4157 1

转载 关于qt中的tr()函数

在论坛中漂,经常遇到有人遇到tr相关的问题。用tr的有两类人:(1)因为发现中文老出问题,然后搜索,发现很多人用tr,于是他也开始用tr(2)另一类人,确实是出于国际化的需要,将需要在界面上显示的文件都用tr包起来,这有分两种:(2a) 用tr包住英文(最最推荐的用法,源码英文,然后提供英文到其他语言的翻译包)(2b) 用tr包住中文(源码用中文,然后提供中文到其他语言的翻译包)

2015-11-24 13:47:54 485

转载 Qt QPainter绘图原理

Qt绘图要用到QPainter类,绘图的设备通常是主部件,也可以是QLabel部件或QTextEdit部件,通过一定的算法实现可以绘制出很漂亮的图形或我们需要的图形。绘制时需要先定义一个QPainter类对象,绘制可以选择的道具可以使Qpen(画笔)、QBrush(画刷)。使用QPen写文本时还可以指定字体(QFont类)如下面一段代码:QPanter painter;QPen

2015-11-23 23:55:46 970

转载 [转]UDP/TCP穿越NAT的P2P通信方法研究(UDP/TCP打洞 Hole Punching)

内容概述:在p2p通信领域中,由NAT(Network Address Translation,网络地址转换)引起的问题已经众所周知了,它会导致在NAT内部的p2p客户端在无论以何种有效的公网ip都无法访问的问题。虽然目前已经发展出多种穿越NAT的技术,但相关的技术文档却很少,用来证明这些技术的稳定性和优点的实际数据更少。本文的目的在于描述和分析在实际中运用得最广泛、最可靠同时也是最简单的一种NA

2015-11-22 23:27:14 756

转载 windows编译qtav

error: avutil is required, but compiler can not find it.You should set some environment vars so that compiler can find FFmpeg and other libraries files.For VC compiler, they are INCLUDE and LI

2015-11-21 23:57:21 6682 1

转载 初识sip

1、什么是SIPSIP(会话发起协议)属于IP应用层协议,用于在IP网上为用户提供会话应用。会话(Session)指两方或多方用户之间的语音、视频、及其他媒体形式的通信,具体可能是IP电话、会议、即时消息等等。SIP是一个信令协议,它对应于传统电话网络中的呼叫信令协议(比如SS7 ISUP)。构建一个完整多媒体通信架构还需要结合其他一些协议,必要的有:RTP,用于媒体传输;

2015-11-16 14:53:36 1934

转载 SIP中松散路由(Loose Router)和严格路由(Strict Router)的概念

接下来谈谈松散路由(Loose Router)和严格路由(Strict Router),这其实也是SIP协议里的概念。我们经常可以看到在Router字段中设置的SIP URI经常有一个lr的属性,例如,这就是表示这个地址所在的Proxy Server是一个Loose Router,如果没有lr属性,它就是一个Strict Router。Loose Router实际上表示Pr

2015-11-03 13:48:23 5154

转载 PJSIP 添加视频的思路和想法

关于PJSIP 添加视频的思路和想法pjsip协议栈因为体积小巧效率高,纯C语言开发,被许多SIP客户端使用,包括手机端,PC客户端等。        csimple android手机端即为pjsip协议栈开发,另外PJSUA为命令行版本的PJSIP。这两个开源项目可以作为PJSIP协议栈开发的参考项目。        最近我做了个基于PJSIP的PC客户端,http:/

2015-11-03 11:03:02 2837

转载 Qt5简介及Qt5基本框架

使用Qt5.x版本中的不同方面来开发应用程序,着重于新的Qt Quick的技术,提供了编写C++后端的必要内容,并扩展了QtQuick。   本章提供了关于Qt5高层次的概述。它对开发者有效的展示了不同的应用模式并且使用Qt5对应用程序进行预演。此外,该章的目的是提供Qt5内容的广泛概述以及如何联系Qt5的创造者。一、前言Qt5重点   Qt5是对非常成功的Qt4的完整

2015-11-02 22:14:36 14486

转载 pjsip之PJNATH简介(1)

在学习pjsip的过程中,发现只是单单的阅读英文官方文档,对于里边概念的理解还是不够透彻,并且苦于pjsip没有发现全一点的中文版本,所以想尽自己所能为建设和谐社会而贡献一份力量,文中定会有所疏漏,希望各位看客能够不吝赐教。  1:pjsip教程(一)之PJNATH简介  2:pjsip教程(二)之ICE穿越打洞:Interactive Connectivity Establishment

2015-11-02 18:37:36 3179

转载 SIP 中的Dialog,call,session 和 transaction

如果你对Sip协议中Call, Dialog, Transaction和Message之间的关系感觉到迷惑,那么,那么我可以告诉你,你并不孤单,因为大多数初学者对于这些名词之间的关系都会感到疑惑.Messages(消息) 消息是在服务器和客户端之间交换的独立文本, 有两种类型的消息,分别是请求(Requests)和响应(Responses).

2015-10-30 11:37:58 1033

转载 pjsip项目概要及c语言面向对象方法实现

最近在学习SIP,刚刚看了一个很好的开源工程 pjsip 很强大!  可是对 SIP 还不是很了解,特增加了一个学习计划:SIP学习 RFC 文档参见:http://www.ietf.org/rfc/rfc3261.txtSIP 也是类似 HTTP 的一个协议集合,在网上搜索了一下相关的信息,摘录如下: SIP消息的第一行包含消息的类型和所使用的SIP版本(

2015-10-30 10:23:01 4836 1

转载 打开pjsip2.1版本的视频支持

要打开pjsip2.1的视频支持。首先需要修改pjmedia\include\pjmedia\config.h文件,如下所示,修改PJMEDIA_HAS_VIDEO的值为1, 修改PJMEDIA_HAS_FFMPEG的值为1#ifndef PJMEDIA_HAS_VIDEO#   define PJMEDIA_HAS_VIDEO              1#endif#i

2015-10-27 11:01:55 1506

转载 pjsua帮助手册(中文)

PJSUA是一个开源的命令行SIP用户代理(软电话),用PJSIP协议,PJNATH,和PJMEDIA实现。 它虽然只有很简单的命令行界面,但是功能齐全。SIP功能: 多个id(帐户注册); 多个呼叫; 支持IPv6(在1.2版本中添加); PRACK(100rel,RFC 3262); UPDATE (RFC 3311); OPTIO

2015-10-26 09:22:36 999

转载 h264帧边界识别

帧边界识别简介H.264 将构成一帧图像所有nalu 的集合称为一个AU,帧边界识别实际上就是识别AU。因为H.264 取消帧级语法,所以无法简单地从码流中获取AU。解码器只有在解码的过程中,通过某些语法元素的组合才能判断一帧图像是否结束。一般来说,解码器必须在完成一帧新图像的第一个slice_header 语法解码之后,才能知道前一帧图像已经结束。因此,最严谨的AU 识别步骤如下:

2015-10-14 17:02:42 2413

转载 linux下杀死进程(kill)的N种方法

常规篇: 首先,用ps查看进程,方法如下:$ ps -ef……smx       1822     1  0 11:38 ?        00:00:49 gnome-terminalsmx       1823  1822  0 11:38 ?        00:00:00 gnome-pty-helpersmx       1824  1822  0 11:38

2015-10-14 10:28:26 649

转载 流媒体基本要点简述:如何在H264数据中获取PTS?

这里pts的base_clock都是按照1000(毫秒)计算,如果复用到ts里,base_clock是90k,所以还应该再乘以90。关于H264中sps里面记录的帧率是实际帧率的2倍,包括slice里面的pic_order_cnt_lsb也是2倍递增,我推测可能是编码按照分场(顶场、底场)编码所致。H264的ES原始数据一般是以NAL(Network Abstract Layer)的格式存

2015-10-13 15:08:24 1825 3

转载 C语言中函数参数入栈的顺序

先通过一个小程序来看一看:#include void foo(int x, int y, int z) { printf("x = %d at [%X]n", x, &x); printf("y = %d at [%X]n", y, &y); printf("z = %d at [%X]n", z, &z); } int main(int argc, char *a

2015-10-13 11:57:40 464

转载 H2.64中I帧和IDR帧的区别

DR(Instantaneous Decoding Refresh)--即时解码刷新。      I和IDR帧都是使用帧内预测的。它们都是同一个东西而已,在编码和解码中为了方便,要首个I帧和其他I帧区别开,所以才把第一个首个I帧叫IDR,这样就方便控制编码和解码流程。IDR帧的作用是立刻刷新,使错误不致传播,从IDR帧开始,重新算一个新的序列开始编码。而I帧不具有随机访问的能力,这个功能是由I

2015-09-22 15:53:46 487

转载 实现RTP协议的H.264视频传输系统

1.  引言       随着信息产业的发展,人们对信息资源的要求已经逐渐由文字和图片过渡到音频和视频,并越来越强调获取资源的实时性和互动性。但人们又面临着另外一种不可避免的尴尬,就是在网络上看到生动清晰的媒体演示的同时,不得不为等待传输文件而花费大量时间。为了解决这个矛盾,一种新的媒体技术应运而生,这就是流媒体技术。流媒体由于具有启动时延小、节省客户端存储空间等优势,逐渐成为人们的首选,流媒

2015-09-22 15:44:42 694

转载 TS流 PS流 ES流

ES流(Elementary Stream): 也叫基本码流,包含视频、音频或数据的连续码流.      PES流(Packet Elementary Stream): 也叫打包的基本码流, 是将基本的码流ES流根据需要分成长度不等的数据包, 并加上包头就形成了打包的基本码流PES流.      TS流(Transport Stream): 也叫传输流, 是由固定长度为188字

2015-09-22 12:09:10 2543

manpages-posix-dev rpm包

manpages-posix-dev离线安装包。提供给yum install manpages-posix-dev没用的同学。

2015-12-12

国防科学技术大学操作系统视频下载地址

国防科学技术大学操作系统视频下载地址,从大番薯网站花积分下载过来的

2012-04-25

c++辅助课件

c++辅助课件 谭浩强版C++适用,清华出版社教材适用

2012-04-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除