自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 资源 (17)
  • 收藏
  • 关注

原创 音视频同步专题

<br />1 一个音视频同步算法。情况是这样的,我们同步网络把音频/视频分开传送到接收端,现在的问题关键问题的如果对这股流进行同步播放。<br />我现在的算法是这样的:<br />在发送方:<br />对于相同时刻的音频/视频帧,打上相同的时间戳(系统时间)<br />接收方:<br />保存两个队列,audio/video分别用来存放还未播放的音频和视频<br />1。当每接收到音频帧的时候,遍历此时的video队列,将此音频帧的时间戳跟每个视频帧的时间戳进行比较:<br />1)如果音频帧的时间在这

2010-09-29 15:48:00 1323

原创 TCP/IP下的组播编程基础

<br /> <br />本文讨论基于TCP/IP下的组播编程基础。所有的例子都可以Windows下台运行。<br />本文不会涉及到组播协议的实现,只是讨论组播编程需要的环境及API函数。关于组播的实现和需要的协议笔者将会另写文章讨论。组播描述<br />  组播(Multicast)是网络一种点对多(one to many)的通信方式,通过报文复制完成网络中一台server对应多台接收者的高效数据传送。对其形象的比喻就是类似于广播电台和电视台节目的发送。电台或电视台向特定频道发送他们的节目,而接收者可以

2010-09-29 11:29:00 2763

原创 Linux网络编程一步一步学-UDP组播

<br />组播客户端代码如下:<br />#include <sys/types.h>#include <sys/socket.h>#include <arpa/inet.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#define BUFLEN 255/**********************************************************************filena

2010-09-29 11:26:00 7452

原创 组播应用与编程

<br /><br />组播技术被认为是WWW技术推广之后出现的最激动人心的网络技术之一。1992年出现支<br />持IP组播的Mbone(组播主干网)和Mbone桌面工具;1993-1996年IP Multicast成为业界关注<br />的焦点,然而因发展条件不成熟使得IP组播只为业界所关注;进入1999年以来,IP组播具备<br />了发展的三个关键条件:支持组播的路由协议;基于开放标准的可测试管理协议;因商业发<br />展机遇而进入高速发展阶段。又一次掀起了组播实践的高潮,下面将有关组播应用作简

2010-09-29 11:24:00 3228

转载 VC中怎样修改生成的EXE文件的图标

不知道的话确实是个问题,VS中根本找不到修改的地方,综合网友们的说法,无外乎三种:1. 直接修改IDR_MAINFRAME图标,瞒天过海!2. 插入新图标,删掉IDR_MAINFRAME图标,然后将新图标的ID改为IDR_MAINFRAME,斩草除根!一劳永逸!不留后患!3. 最简单的方法,就是修改resource.h文件中图标的序号,将你想做为EXE文件图标的那个序号改到最小,如:    #define IDR_MAINFRAME                   128    #define IDR_

2010-09-29 11:08:00 1496

转载 va_g729a音频压缩的设置

<br />要使用va_g729a来进行音频压缩,<br />使用WaveInOpen来录音时,对格式的设置必须是这样,才可以压缩和解压,否侧解压出来的是噪音<br /><br />wfxFormat.wFormatTag:=WAVE_FORMAT_PCM;wfxFormat.nChannels:=1;wfxFormat.nSamplesPerSec:=8000 ;wfxFormat.nBlockAlign:=2;wfxFormat.wBitsPerSample:=16;wfxForma

2010-09-28 14:14:00 1758

转载 低级音频函数手册

提示: 因为其中的回调函数是在中断时间内访问的, 必须在 DLL 中; 要访问的数据都必须是在固定的数据段中; 除了PostMessagetimeGetSystemTimetimeGetTimetimeSetEventtimeKillEventmidiOutShortMsgmidiOutLongMsgOutputDebugString 外, 也不能有其他系统调用. --------------------------------------------------

2010-09-28 10:04:00 845

转载 SIP与RTP综合应用5-RTP解包过程

<br /><br />RTP接收部分比较简单(不用考虑jitterbuffer等),先从这里入手。<br />其实主要就3步:<br />1 创建一个udp,监听一个端口,比如5200。<br />2 收到RTP包,送到解包程序,继续收第 二个。<br />3 收齐一帧后,或保存文件,或解码去播放。<br />下面详细说一下具体过程:<br />1 创建UDP,非常非常地简单(这里只是简单地模拟RTP接收,虽然能正常工作,但是没有处理RTCP部分,会影响发送端):<br />lass CUDPSocket

2010-09-27 22:14:00 1442

转载 穿NAT的方法的核心思想及实现

<br />本来题目是几种,不过写到这里的时候,其中的一些东西已经被其它文章所含概了,所以这里只谈NAT的穿透的核心思想:punch技术,我称之为对穿.<br />   (1)先来说对穿的工作原理<br />   在这里我用两个都是在port restrict cone NAT后面的UAC做例子,假设一个是 A,一个是D。两个NAT 分别是B和C。<br />   先来说对穿的过程<br />   STEP1:UAC A通过A的porta向STUN服务器发送数据包,得到本socket的NAT的外网IP和

2010-09-27 22:10:00 115

原创 ds 视频参数 设置

<br />//视频参数设置 { HRESULT hr=0; IAMStreamConfig*pConfig=NULL; int typecount=0; int typesize=0; m_pCapture->FindInterface(&PIN_CATEGORY_CAPTURE,0,m_pBF,IID_IAMStreamConfig,(void**)&pConfig); if (pConfig!=NULL) { pConfig->Ge

2010-09-26 10:40:00 1851

转载 音频传输心得

<br />我暑假写了一个网络即时语音通讯的工具,较好的解决了声音采集和播放的问题,我把我的想法贴出来跟大家切磋,望指正。我的e-mial:k_bo@163.com <br />      语音录制的关键是解决好声音的连续和延迟这两个问题,可以采用五个内存块循环使用,每个内存块录制声音的长度为100ms,在录音开始前,用waveInPrepareHeader和waveInAddBuffer函数把所有的五个内存块都添加到录音设备以保存录音数据,这样就可以连续录制长达500ms的语音数据,当每个内存块录满数据后

2010-09-25 22:49:00 3993 1

转载 基于WaveX低级音频函数的实时语音通信

<br /> <br />编者注:<br />  虽然现在Microsoft说Windows低级音频函数已经obsoleted,DirectSound也已经大行其道,但其相对易用的特点还是值得学习的。本文的另一个特点是作者结合了局域网实时音频传输的课题给出了这些API函数的使用实例,使得全文不仅仅是单纯的API函数使用介绍,从而具有相当的实用价值。<br />未经作者许可,请勿转载!<br />1 摘要<br />2 背景介绍<br />3 相关数据结构<br />4 参数设置<br />5 基本操作流程<

2010-09-25 22:38:00 3631 2

转载 DirectDraw 示例

DirectDraw 在显示YUV图像的时候,由于 YUV 格式很多,显示不同格式的YUV图像都要针对不同格式专门写一些代码,这样很麻烦,同时也增加代码量。在网上看了一些 DirectDraw 示例以后,发现都是针对某一种格式的显示。我用最基本的 DirectDraw 显示方法,封装了几种格式的显示方法,我的显示器只支持示例中的 YUV 格式,所以只实现了几种格式,如有朋友还需要显示别的 YUV 格式可增加少量代码就可显示#ifndef DirectDraw_H #define DirectDraw_

2010-09-22 00:14:00 1859

原创 调用xvid 实现解码

///////////////////int init_decoder() { int ret; xvid_gbl_init_t xvid_gbl_init; xvid_dec_create_t xvid_dec_create; /* Reset the structure with zeros */ memset(&xvid_gbl_init, 0, sizeof(xvid_gbl_init_t)); memset(&xvid_dec_create, 0, sizeof

2010-09-21 17:18:00 2463 2

原创 原始视频流的格式问题

1 RGB

2010-09-21 10:48:00 3952 1

原创 最简单的DDRAW C代码实现(只支持YUV420数据)

<br /><br />#include <tchar.h><br />#include <ddraw.h><br />#pragma comment(lib, "dxguid.lib")<br />IDirectDraw7 *pIDirectDraw7;<br />IDirectDrawSurface7 *pIDirectDrawSurface7Primary;<br />IDirectDrawSurface7 *pIDirectDrawSurface7OffScreen;<br />DDSURFACED

2010-09-20 17:36:00 2250 1

转载 C++开发编码规范

<br />年后将开始本年度最重要的产品开发,而且在性能方面要求很高,希望通过这款网络产品打开大流量网络安全审计的市场。所以年前一直在做系统分析、系统设计、技术调研,我自己也要制定C++组的C++开发编码规范。<br />      以前4年多来,一直是开发人员想怎么写就怎么写,所以10万行代码里什么风格都有,unix风格, mfc风格, java风格,大小写、下划杠分隔,乱得很,所以这次很有必要统一规范一下;当然这个规范没办法采用单一的风格,只有看老代码里最多的使用的那种了,然后来个大杂烩,不然老员工不接

2010-09-19 17:11:00 934

转载 如何使用DirectDraw直接显示YUV视频数据

<br />                                      <br /> <br />最近在编写一个进行视频播放的ActiveX控件,工作已经接近尾声,现将其中显示YUV数据的使用DirectDraw的一些经验总结如下:(解码部分不是我编写的,我负责从网络接收数据,将数据传给解码器,并将解码得到的YUV数据进行显示,最初在显示部分我是先将YUV数据转换为RGB数据,再以位图的形式显示到屏幕上,但发现CPU占用率比较高,后来改用DirectDraw直接显示YUV数据)<br

2010-09-19 16:43:00 2222 3

转载 如何使用DirectDraw直接显示YUV视频数据

<br />                                      <br /> <br />最近在编写一个进行视频播放的ActiveX控件,工作已经接近尾声,现将其中显示YUV数据的使用DirectDraw的一些经验总结如下:(解码部分不是我编写的,我负责从网络接收数据,将数据传给解码器,并将解码得到的YUV数据进行显示,最初在显示部分我是先将YUV数据转换为RGB数据,再以位图的形式显示到屏幕上,但发现CPU占用率比较高,后来改用DirectDraw直接显示YUV数据)<br

2010-09-19 16:39:00 2490

转载 VC 小技巧 专题

1VC中如何拷贝已有资源(对话框、菜单等)如果你想把一个工程(A工程)中已有对话框完整拷贝到另一个工程(B工程)中,可以用下面的办法:首先在B中,“文件”-“打开”,选择A的“.rc”资源文件,A的资源就会显示在B工程的代码区里,你就可以选择所需要的资源拖到B工程中就可以了。

2010-09-15 22:54:00 748

原创 VC 调试错误 专题

1 LNK1181: cannot open input file“1.obj”  出错原因:在Pjoject--->Settings---->link---->input 写入需要库时在 末尾 输入一个 1  解决方法:删除 多余的 12 VC编译错误:error LNK2001: 无法解析的外部符号 __iob错误:1>libxvidcore.lib(bitstream

2010-09-15 22:04:00 3483

转载 VC 对话框 怎么实现 鼠标拖动 变大 变小

<br />使用 WS_THICKFRAME<br /><br />ModifyStyle(0,WS_THICKFRAME);

2010-09-08 16:51:00 1125

转载 *DEFINE_GUID宏与#include 的使用

      使用DEFINE_GUID宏可以让你通过包含同一个头文件来定义GUID值而不必使用extern关键词。比如,你的工程中有三个源文件:src1.cpp,src2.cpp,src3.cpp,它们都使用一个相同的GUID值,而为了保证一致性,这个GUID只能在你的工程中定义一次,这时,其它的源文件必须定义外部引用来使用它。用了DEFINE_GUID,你可以使用在所有源文件中包含同一个头文件,在头文件中这样定义GUID:    DEFINE_GUID(CLSID_MyObject,          0

2010-09-04 17:55:00 2136

转载 C++类设计原则

<br />class CCodecMgr<br />{<br />public:<br /> CCodecMgr();<br /> virtual  ~CCodecMgr();<br /> <br /> BOOL InitCodecV(BITMAPINFO bmp); <br /> void DestroyCodecV();<br /> BOOL EncodeVideoData(char* pin,int len,char* pout,int* lenr,BOOL* pKey);<br /> BOOL D

2010-09-03 21:31:00 768

转载 Filter编写之 自定义接口实例

自己解决了,函数方式写的不对,改成// {EF31F705-32A7-477a-90C9-2C7E81EB025D}#ifndef __H_MyFilter__#define __H_MyFilter__#ifdef __cplusplusextern "C" {#endifDEFINE_GUID(IID_IMyFilter,  0xef31f705, 0x32a7, 0x477a, 0x90, 0xc9, 0x2c, 0x7e, 0x81, 0xeb, 0x2, 0x5d);DECLARE_INTERFA

2010-09-03 17:02:00 2963 1

原创 在头文件定义全局变量以后

1glo.h#ifndef _GLO_H_#define _GLO_H_ DWORD test; #endif// _GLO_H#if !defined(AFX_1_H__7B1238F7_C7C0_49EF_8C9A_CAB897B6C2A3__INCLUDED_)#define AFX_1_H__7B1238F7_C7C0_49EF_8C9A_CAB897B6C2A3__INCLUDED_#if _MSC_VER > 1000#pragm

2010-09-03 14:08:00 1348

转载 变量的定义和声明

1 广义地说,声明包含定义,但并非所有的声明都是定义。对于“int lower_limit;”来说,它既是声明又是定义;而对“extern lower_limit;”来说,它是声明不是定义。“声明”仅仅告诉编译器变量名的值的类型而已,不会生成目标代码,当然也不会给它分配存储空间,更不会增大可执行程序的体积。由于声明并不分配存储空间,因此同一个声明可以在程序中多次出现。它的位置可在执行代码之外,也可在执行代码里面。而“定义”不仅要告诉编译器变量名的值的类型,而且还要给变量分配存储空间。既然在定义变量时就已经建

2010-09-03 11:39:00 592

转载 超级P2P搜索引擎

<br />搜索Google大家都用过吧?我们正是利用它强劲的搜索功能来突破封锁下载,Google搜索和限制下载有什么关系,没可能实现吧?不要不相信哦,往下看哦! <br /><br />http://www.google.com/intl/zh-CN/<br />http://www.3721.com/<br />http://www.baidu.com/<br /><br />  首先打开Google,在关键词输入框中输入“index of/“inurl:lib(双引号为英文状态下),选择“搜索简体中文

2010-09-02 09:52:00 4573

转载 如何进阶为职业程序员---三年程序员生涯的感悟

<br />不知不觉已经工作三年了,回顾自己三年的程序员生涯,总结了一些东西,希望对想从事程序员工作的xdjm们有些帮助。<br />如何从编程爱好者进阶为职业程序员:<br />一、简单才是美<br />好的代码一定是最简单的,这应该是每个职业程序员心中万世不变的箴言。一个简单的“hello world”,可以有十几种实现,但是职业程序员绝对不会标新立异,他们会选择最简单最常用的那种。<br />为什么要写简单的程序?一、简单的程序易于扩展;二、简单的程序易于维护;三、简单的程序易于发现问题…… 写简单程

2010-09-01 10:56:00 951

原创 Call Stack技巧(调用堆栈调试)

<br />1、堆栈调试的原理<br />      调用堆栈反映了当前断点处函数是被哪些函数按照什么顺序调用的?<br />2、堆栈调试的技巧<br />      在“Call Stack”对话框中显示了一个调用系列,最上面的是当前函数,往下依次是调用函数的上级函数,单击这些函数名可以跳到对     应的函数中。<br />3、调用方式(VC++ 6.0)<br />      View-->Debug  Window ---->Call Stack<br />4、示例图片<br />  

2010-09-01 10:52:00 8869

win7-pyhton64位scrapy成功安装教程及依赖包

在win7上安装crapy教程及各种依赖包

2015-04-22

排序算法实现

实现的算法如下: /* ************* *1.简单选择排序 *2.堆排序实现 *3.直接插入排序 *4.冒泡排序 *5.归并排序 *6.快速排序 *7.计数排序 *8.基数排序 * ************/

2014-07-03

链表实现--singleList.c

链表实现同时包括单链表逆序实现、求单链表倒数第N个数、用标尺法找单链表中间节点

2014-07-03

高质量程序设计指南.C.C语言(第三版)

高质量程序设计指南.C.C语言(第三版)

2014-07-03

Linux netstat命令详解

Linux netstat命令详解 netstat 是网络编程常用的命令

2014-07-03

DHCP服务器研究与实现

基于线程池机制的高性能DHCP服务器研究与实现

2014-07-03

网络编程必备 TCP/ IP 详解

TCP/IP详解,卷1:协议》是一本完整而详细的TCP/IP协议指南。描述了属于每一层的各个协议以及它们如何在不同操作系统中运行。作者用Lawrence Berkeley实验室的tcpdump程序来捕获不同操作系统和TCP/IP实现之间传输的不同分组。对tcpdump输出的研究可以帮助理解不同协议如何工作。本书适合作为计算机专业学生学习网络的教材和教师参考书。也适用于研究网络的技术人员。

2009-11-04

UDP 文件传输 学习QQ文件传输

UDP 文件传输 从网上下载的和广大网友共享 学习UDP 文件传输更有实用价值

2009-11-04

TCP报文分析--三次握手 四次挥手

TCP报文分析--三次握手 四次挥手 还介绍了一点 SYN洪水攻击

2009-11-04

C++Builder.5.编程实例与技巧

我叫做阿BEN,是一家网络公司程序员。这是一家总部在香港的分公司,做的是电子商务平台开发的项目。我主要负责项目程序的开发工作。作为一间香港上市公司,公司提供了一个良好的环境,公司给在待遇和福利方面体现出优势,公司为我和拍档阿JOHN在天河北租了一套70平方米的公寓式住宅,里面设备齐全,除了女朋友没有配置外,其他的比如冰箱、洗衣机、电视、空调都有。我笑称,在这里住一年不出去也不会饿死,通过小区网络,有保姆、有送货上门的各种商品。我们不像一些自由撰稿人一样,没有公司背景,我们应该只能称为准SOHO吧,每周一和周五要回公司报到,平时就自己安排时间,只要能够完成任务。

2009-05-26

全双工语音通信 Winsock

全双工语音通信 从期刊网上下载的好不容易找到的 winsock方面的写得不错有参考价值

2008-11-01

全双工语音通信||基于局域网的IP电话

全双工语音通信||基于局域网的IP电话||网上收集的做Winsock方面的通信的合集

2008-11-01

网络语音聊天系统的实现

基于Winsock技术的网络语音聊天系统的实现.pdf

2008-10-31

软件工程师复习 挺有帮助的

报考软件考试的兄弟看看 DOC格式 让大家对软件工程师考试有个了解

2008-09-26

空空如也

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

TA关注的人

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