软件开发
文章平均质量分 71
lezhiyong
这个作者很懒,什么都没留下…
展开
-
linux虚拟系统与windows主机共享文件之用vmware-tools设置实现
来源:http://blog.csdn.net/lezhiyong 使用vmware下sharedfolders功能实现vmware中host与ghost间文件传输,无需任何网络相关设置,不使用任何网络协议,host和ghost可以是linux和windows操作系统,这里只介绍host是windows,ghost是linux下的设置,如果ghost是windows,请参考vmware原创 2012-08-01 15:52:40 · 1314 阅读 · 0 评论 -
一个分号引起的bug
代码:10 if (bUpdateAll&&m_pMovCtrl->GetStreamCell()->IsSendMode());//(m_pMovCtrl->IsHost()||m_pMovCtrl->IsPresenter()))11 {12 CPDU_CMD_FullScreen pudFullScreen(m_pMovCtrl->GetMyNodeID(),0,m_i原创 2013-08-08 22:35:28 · 1264 阅读 · 1 评论 -
自己设计工具类区分线程并进入对应线程调试多线程视频软件
来源:http://blog.csdn.net/lezhiyong视频软件中常见多路视频发送/接收的应用场景,如多用户视频会议、多路视频监控、多人视频群聊等。一般一路视频涉及到发送端视频采集、显示、编码、网络发送,接收端涉及接收端网络数据接收、解码、显示等数据链路,链路里面也常使用到线程来推/拉数据,那么对于多路视频会有多个线程并发运行,这类视频软件开发中经常遇到需要在代码中定位某函数原创 2012-08-05 16:44:09 · 1316 阅读 · 0 评论 -
规范工程中c/c++变量类型的定义
对变量类型定义规范的一些说明,更宏观的规范可参见完善中的《版本开发中项目、工程与代码规范》: 点击打开链接开发中经常碰到BOOL,bool,char, signed char,unsigned char, BYTE,CHAR,WORD,short , unsigned short,DWORD,int , long long ,float,double,__int64 等整型、浮点型、字符型原创 2012-08-05 15:33:41 · 3506 阅读 · 3 评论 -
通过双端队列实现三维视频监控中的视频数据调度
来源:http://blog.csdn.net/lezhiyong三维视频监控是集三维场景与二维视频于一体的综合监控系统,将传统监控画面、地理信息、三维场景等原本孤立的信息融合起来,实现各视频采集区域时间和空间信息的大场景立体可视化。 Picture via sarnoff原创 2012-07-30 06:15:53 · 1299 阅读 · 0 评论 -
多线程并发访问同一个对象时发生死锁的反思
来源:http://blog.csdn.net/lezhiyong 背景:SipPhone终端与多个其他设备的用户视频互通,由于Sip终端只能显示一路视频,所以模块A采用轮询方式将多个用户视频发送到sip终端上。模块A同时允许手动打开/关闭其中一个用户的视频,当该用户视频打开时候同时选送到sip终端显示。用户视频采用H264编码,Sip终端接收H263编码视频,所以用户视频需要经过H原创 2012-07-25 20:32:10 · 5943 阅读 · 0 评论 -
在频繁执行的函数中按需输出日志
来源: http://blog.csdn.net/lezhiyong 我们通常在程序中输出文本日志信息,这样可以有效监测软件运行状态和定位软件问题。 对于执行特别频繁的函数如网络数据接收与发送、音视频数据采集编码显示数据流等,有时需要在这些函数中定位数据是否发送、是否接收、是否数据有效等,这对于网络应用程序及长数据链路中的问题定位很有用,但直接在这些函数中添加日志输出命令肯定不行,这样日志原创 2012-09-02 01:42:18 · 1843 阅读 · 0 评论 -
线程安全的环形缓冲区实现
来源:http://blog.csdn.net/lezhiyong 应用背景:线程1将每次数量不一的音频采样点(PCM音频数据)写入环形缓冲区,线程2每次取固定数量采样点送音频编码器,线程1线程2在平均时间内的读写数据量相等。(倒入桶中的水量有时大有时小,但每次取一瓢喝:) 该环形缓冲区借鉴CoolPlayer音频播放器中的环形缓冲区代码实现,在读写操作函数中加了锁,允许多线程同原创 2012-08-18 00:02:30 · 7142 阅读 · 5 评论 -
打造可高效维护代码的几个原则
打造可高效维护代码的几个原则,一、唯一性原则,1、库函数:只在一个类中使用2、同样的功能只使用一个接口对外提供功能。3、只要是重复的东西尽量合并 相同特征抽象成基类, 相同方法抽象成虚基类或相同接口, 相同逻辑抽象成相同函数。二、一致性原则,1、不同模块中的语言与风格、信令结构、宏定义方式,2、分配和释放资源的结构一致:在同一代码结构层面上使用,同一个类中提供,同一个各cpp全局函数中提供。原创 2015-03-13 23:12:30 · 1242 阅读 · 0 评论 -
支持windows linux下将指定内存段转为16进制与ascii码的日志输出类
来源:http://blog.csdn.net/lezhiyong1. 简介 将指定内存段转为16进制与asci码的输出到日志文件的类。2. 功能介绍1) 支持window与linus双系统。2) 可指定输出目录。3) 日志能输出的时间精确到毫秒,日志能输出线程号。4) 提供字符串输出。5) 提供指定内存转换为16进制输出。6) 提供指定内存转换为16进制和原创 2015-06-30 16:43:07 · 1680 阅读 · 0 评论 -
一个双线程下同时操作指针变量导致野指针出现的问题总结
来源:http://blog.csdn.net/lezhiyong问题:在某项目的测试过程中,测试在高清压力测试过程中会偶尔出现RSS崩溃现象,崩溃时间不确定,由于在守护进程服务的守护下,RSS崩溃后被重新拉起,所以这个故障在崩溃马上发送时在网管上并没有体现服务停止的告警,只有当测试人员去RSS的var/run目录下找到edum***开头的文件才指定RSS发送崩溃。根据文件中提供的崩溃原创 2015-06-30 16:55:45 · 3044 阅读 · 1 评论 -
集成第三方模块编译时类型重定义冲突的解决方法
软件A中需要集成B音频引擎,B引擎库提供两个头文件:B_commontype.h和B_engineAPI.h,B_commontype.h中定义引擎用到的基本数据类型,B_engineAPI.h中include B_commontype.h文件并定义接口函数,接口函数使用B_commontype.h定义的基本数据类型。在需要使用该引擎库函数的Apply_B.cpp文件中将B_commont原创 2012-07-23 15:50:33 · 3843 阅读 · 0 评论 -
《c/c++商用工程之道》代码实现之2_锁_多线程安全的变量
6.2 锁对象 p225#ifdef WIN32#include #define MUTEX CRITICAL_SECTION#define MUTEXINIT(m) InitializeCriticalSection(m)#define MUTEXLOCK(m) EnterCriticalSection(m)#define MUTEXUNLOCK(m)原创 2012-07-29 21:45:16 · 1501 阅读 · 0 评论 -
《c/c++商用工程之道》代码实现之1_debug工具
《0 bug c/c++商用工程之道》书中的一些代码很实用可惜作者没有随书发布源码,对书中部分代码进行了实现,变量函数类名及实现代码一致,能自成体系,有些地方做了稍微调整,原因在后续文章中做了说明,可供结合原书学习。0 bug c/c++商用工程之道 5 debug工具 #ifdef CON_DEBUG #define CON_PRINTF printf #else #原创 2012-07-29 21:42:22 · 1867 阅读 · 0 评论 -
软件概要设计说明书—模板
1 引言1.1 目的介绍编写本文档的目的,主要内容及读者。1.2 需求概述描述所要实现的功能和性能等。1.3 名词及缩略语列出文档中所用到的专门术语的定义和缩写词的原文。1.4 参考资料可包括:a. 项目经核准的计划任务书、合同或上级机关的批文;b. 项目开发计划;c. 需求规格说明书;d. 文档所引用的资料、标准和规范。列出这些资料的作者、标题、编原创 2015-07-30 13:41:34 · 22168 阅读 · 0 评论