- 博客(129)
- 资源 (1)
- 收藏
- 关注
转载 va_list、va_start、va_arg、va_end的原理与使用
概述由于在C语言中没有函数重载,解决不定数目函数参数问题变得比较麻烦;即使采用C++,如果参数个数不能确定,也很难采用函数重载.对这种情况,有些人采用指针参数来解决问题.下面就c语言中处理不定参数数目的问题进行讨论.VA_LIST 是在C语言中解决变参问题的一组宏他有这么几个成员:1) va_list型变量:#ifdef _M_ALPHAtypedef struct {
2012-06-29 11:11:33
622
转载 WinSocket模型的探讨——Overlapped模型(一)
重叠模型是Windows里一种重要的 I/O 模型,可以有效率的实现一些 I/O 操作,譬如文件读写、Socket读写等,在这里我们一起来研究一下重叠模型,看看它究竟为何方神圣。这篇文章分为以下几部分来说明:重叠模型的概念容易碰到的一些问题重叠模型的基本编程方法(accept 和 AcceptEx )突破64个事件的等待限制例程好了,下面就让我们一起来学
2012-06-05 09:59:33
524
转载 Windows下重叠I/O模型
一.重叠模型的优点1.可以运行在支持Winsock2的所有Windows平台 ,而不像完成端口只是支持NT系统。2.比起阻塞、select、WSAAsyncSelect以及WSAEventSelect等模型,重叠I/O(Overlapped I/O)模型使应用程序能达到更佳的系统性能。 因为它和这4种模型不同的是,使用重叠模型的应用程序通知缓冲区收发系统直接
2012-06-05 09:31:37
680
转载 Using CDialogResize
Using CDialogResizeIntroductionRecently I've been reading up on WTL, and I came across a rather interesting class that I hadn't seen mentioned anywhere, CDialogResize. Given the
2012-05-28 09:29:29
467
转载 Using CDialogResize
Using CDialogResizeIntroductionRecently I've been reading up on WTL, and I came across a rather interesting class that I hadn't seen mentioned anywhere, CDialogResize. Given the la
2012-05-28 09:28:02
166
转载 变量命名规则------匈牙利命名规则!
变量命名规则------匈牙利命名规则!几年以前,Charles Simonyi(他后来成为微软的著名程序员)设计了一种以前缀为基础的命名方法,这种方法后来称为"匈牙利表示法"以记念他.他的思想是根据每个标识符所代表的含义给它一个前缀.微软后来采用了这个思想,给每个标识符一个前缀以说明它的数据类型.因此,整型变量的前缀是n,长整型变量是nl,字符型数组变量是ca,以及字符串(以空类型结尾的
2012-05-25 13:49:08
449
转载 ubuntu加nginx配置应用
第一步,安装nginxapt-get updateapt-get install nginx即可完成安装启动nginx:/etc/init.d/nginx start然后就可以访问了,http://localhost/ , 一切正常!如果不能访问,先不要继续,看看是什么原因,解决之后再继续。第二步,安装Php和mysql安装php和MySQL:apt
2012-05-17 10:41:05
3208
转载 nginx安装配置详解
好久不写日志了,哪怕是网上摘抄的都很少在此记录了,自己怎么这么懒了啊。之前都是用apache服务器来配置php环境,今天有兴趣了解一些nginx来配置php环境。是在linux下配置。利用Linux Nginx架设高性能的Web环境 Linux Nginx ("engine x") 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Linux
2012-05-16 10:31:50
7328
转载 Poll() | 多路复用 I/O
和 select() 函数一样,poll() 函数也可以用于执行多路复用 I/O 。但 poll() 与 select()相比,用起来更加直观容易。使用该函数,需要包含 #include 文件,实际上最终包含的是 文件,poll.h 里的内容也就是 #include 。函数的原型:引用#include extern int poll (struct pollf
2012-05-07 13:35:52
940
转载 linux中select()函数分析
分类: C/C++ Linux/unix2009-05-25 15:08 25562人阅读 评论(14) 收藏 举报Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等
2012-05-04 11:46:48
639
转载 在SurfaceView中添加组件并且相互交互数据
李华明Himi 原创,转载务必在明显处注明: 转载自 【黑米GameDev街区】 原文链接: http://www.himigame.com/android-game/306.html 很多童鞋说我的代码运行后,点击home或者back后会程序异常,如果你也这样遇到过,那么你肯定没有仔细读完Himi的博文,第十九篇Himi专门写了关于这些错误的原因和解决方法,这里我在
2012-05-03 09:52:40
935
转载 你真的有必要退出吗——再说Android程序的退出功能
你真的有必要退出吗——再说Android程序的退出功能分类: Android2012-04-14 01:40 9345人阅读 评论(50) 收藏 举报搞Android开发有一段时间了,相信很多从Windows开发过来的Android程序员都习惯性地会跟我一样遇到过同一个问题:如何彻底退出程序?这里说下我自己的经验,并不权威,仅供参考。 一开始我也上网到处找退出的资料
2012-04-24 10:25:29
512
转载 FLV文件格式解析
FLV(Flash Video)是现在非常流行的流媒体格式,由于其视频文件体积轻巧、封装播放简单等特点,使其很适合在网络上进行应用,目前主流的视频网站无一例外地使用了FLV格式。另外由于当前浏览器与Flash Player紧密的结合,使得网页播放FLV视频轻而易举,也是FLV流行的原因之一。 FLV视频格式是Adobe公司设计开发的,目前已经免费开放,现在的版本是v10。下面我们
2012-03-16 17:29:17
461
转载 FLV文件格式分析
FLV是一个二进制文件,由文件头(FLV header)和很多tag组成。tag又可以分成三类:audio,video,script,分别代表音频流,视频流,脚本流(关键字或者文件信息之类)。FLV Header一般比较简单,包括文件类型之类的全局信息,如图:文件类型3bytes总是FLV(0x46 0x4C 0x56),否则...
2012-03-16 16:59:01
619
1
转载 学习C++和编程的50个观点
下面的是学C++时要注意的。绝对经典。!! 1.把C++当成一门新的语言学习(和C没啥关系!真的。); 2.看《Thinking In C++》,不要看《C++变成死相》; 3.看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因为他们很难而我们自己是初学者所以就不看; 4.不要被VC、BCB、BC、
2012-03-06 11:41:38
713
转载 extern "C" 的作用
1、在cpp文件中调用c文件中实现的函数的时候,需要用extern "C"声明该函数,否则cpp会按名字改编后的函数名去找该函数而找不到。(这是作用) c文件中有一函数: void Transfer(int a; char b); cpp文件中必须用extern "C"声明该函数如下才可以实行调用: extern "C" vo
2012-03-06 10:03:53
353
转载 X264多线程分析
很长一段时间没有写博客了,原因很多。SVC相关的研究和代码推进都暂时停止了, 因为有太多的其它学习和开发。SVC在视频的灵活传送和错误隐藏当面是有很大潜力的,但并非意味着它能适合于真正的网络工程应用。最近随着“阿凡达”的热播,很多人对3D视频的兴趣都热情起来,立体视频时代由这样的错觉3D开始,也将打开它的大幕了。 3D视频的制作超出了编解码范畴,更重要的利用视差进行渲染和视
2012-03-01 16:27:49
892
转载 C语言的面向对象设计-对X264/FFMPEG架构探讨
正文类似题目的文章已经不新鲜了,这里,我仅仅总结自己的一些代码经验,结合两款在视频开发领域比较常用的开源软件探讨C语言的应用问题。1.为什么要用C语言曾几何时,我也不熟悉C,最早接触C的是在大学四年级,当时已经学过pascal,过二级也是pascal。接着走上了Delphi的路,多方便的软件,写写画画,程序就出来了,本科的毕业设计就是这样出来的MIS,在当时还很时髦
2012-03-01 11:28:27
1113
转载 define宏定义中的#,##,@#及\符号
1、# (stringizing)字符串化操作符。其作用是:将宏定义中的传入参数名转换成用一对双引号括起来参数名字符串。其只能用于有传入参数的宏定义中,且必须置于宏定义体中的参数名前。如:#define example(instr) printf("the input string is:\t%s\n",#instr)#define example1(instr) #ins
2012-03-01 09:46:21
578
转载 Android 多媒体框架中Mediaplayer与Opencore的衔接过程
本文从代码的角度来分析Android多媒体框架中mediaplay是如何调用opencore的。一.摘要: 对于Android 多媒体框架,Google 在 Android 2.2中就已经实现了stagefright,但还是保留了opencore;在新推出的2.3版本中,正式抛弃了opencore,而采用stagefright。网上关于Android opencore架构的文
2012-02-28 11:12:50
706
转载 FFMpeg SDK 开发手册
FFMpeg 中比较重要的函数以及数据结构如下:1. 数据结构:(1) AVFormatContext(2) AVOutputFormat(3) AVInputFormat(4) AVCodecContext(5) AVCodec(6) AVFrame(7) AVPacket(8) AVPicture(9) AVStream2. 初始化函数:(1)
2012-02-23 15:09:03
947
转载 FLV帧全面分析。研究心得
做视频会议,用RTMP协议,就要把视频流封装成flv包。最近几星期一直在纠结怎么封装,终于让我找到规律了。首先下载一个flvparse软件。来分析flv的帧数据。打开软件,点浏览选择路径打开flv文件可以得到下图:上图打开的是一个好的flv文件,就是封包格式是正确的,我们可以来分析和观察一下。File Header和 MedadataTag是rtmp协议自动添加上的
2012-02-15 10:47:58
469
转载 FLV帧全面分析。研究心得。
做视频会议,用RTMP协议,就要把视频流封装成flv包。最近几星期一直在纠结怎么封装,终于让我找到规律了。首先下载一个flvparse软件。来分析flv的帧数据。打开软件,点浏览选择路径打开flv文件可以得到下图:上图打开的是一个好的flv文件,就是封包格式是正确的,我们可以来分析和观察一下。File Header和 MedadataTag是rtmp协议自动添加上的
2012-02-15 10:45:44
375
转载 Android开发指南(33) —— Multimedia and Camera - Camera
Android框架包含了对多种摄像头和摄像特性的支持,应用程序可以进行图片和视频的捕获。本文讨论了一种快速、简便的捕获图像和视频的方法,并简述了一种更高级的可为用户创建自定义摄像功能的方法。需要考虑的问题在让应用程序使用Android设备的摄像头之前,应该考虑一些期望如何使用此硬件的问题。· 摄像头需求 —— 摄像头的使用对于应用程序是否确实如此重要
2012-02-10 16:06:15
857
转载 ffmpeg的内部Video Buffer管理和传送机制
本文主要介绍ffmpeg解码器内部管理Video Buffer的原理和过程,ffmpeg的Videobuffer为内部管理,其流程大致为:注册处理函数->帧级释放->帧级申请->清空。1 注册get_buffer()和release_buffer()FFAPI_InitCodec()avcodec_alloc_context()avcodec_alloc_context2(
2012-02-10 11:21:23
2935
转载 FFMpeg 中比较重要的函数以及数据结构
FFMpeg 中比较重要的函数以及数据结构如下:1. 数据结构:(1) AVFormatContext(2) AVOutputFormat(3) AVInputFormat(4) AVCodecContext(5) AVCodec(6) AVFrame(7) AVPacket(8) AVPicture(9) AVStream2. 初始化函数:(1)
2012-02-01 13:30:20
1592
转载 http header详解
http header详解HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送WWW方式的数据,关于HTTP协议的详细内容请参考RFC2616。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求,请求头包含请求的方法、URI、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构。服务器以一个状态行作
2012-01-30 11:30:00
1106
转载 HTTP Dynamic Streaming 学习笔记[原理篇]
260 次阅读, 个人空间 , by 罗松涛 . 宽屏阅读 一、什么是HTTP Dynamic Streaming 使用传统的HTTP协议进行在线播放叫做“渐进下载”,所有的视频内容从头到尾必须从服务器传输到客户端,用户只能在传输完的视频长度中选择播放点,而不能自定义播放点及传输点,比如我们在看视频的时候是边下边看,没下载完则看不了,而且也不能绕到视频后面的片段。当视频
2012-01-30 11:10:12
4677
转载 http请求的详细过程
我们来看当我们在浏览器输入http://www.mycompany.com:8080/mydir/index.html,幕后所发生的一切。首先http是一个应用层的协议,在这个层的协议,只是一种通讯规范,也就是因为双方要进行通讯,大家要事先约定一个规范。1.连接 当我们输入这样一个请求时,首先要建立一个socket连接,因为socket是通过ip和端口建立的,所以之前还有一个DNS解析过程
2012-01-30 10:30:27
555
转载 kernel hacker修炼之道之Git使用方法(一)
Git使用方法(一) 作者 李万鹏 kernel hacker修炼之道之Git使用方法(一)kernel hacker修炼之道之Git使用方法(二)kernel hacker修炼之道之Git使用方法(三)kernel hacker修炼之道之Git使用方法(四)kernel hacker修炼之道之Git使用方法(五)
2012-01-29 10:35:32
614
转载 MTK 上的socket
移动互联网也炒了好几年了,现在开发手机也好,单独做应用也好,都会涉及到网络这一块。MTK 提供了网络功能,在GPRS上封装了socket 功能。MTK 上的socket 其实与linux 上的有些相似,其实说到socket 编程,只要封装实现了socket,那么基本上就要实现socket那些接口。先来简单的介绍一下socket,socket 编程是介于 传输层 和 应用层之间,可以简单的理解为
2012-01-18 11:39:49
513
转载 对MTK中媒体播放器的的认识
Mtk 6225及6235上的audio player 的结构整体上可以分为三层, 最上面的应用程序界面层, 中间的audio 播放api层, 和底层的编解码库及音频驱动. 其结构图大致如下所示: 由上图可以看出,整个调用层次较深. 我们分别来学习个层. 1: MMI Task 层 在该层 audio player 模块实现了播放器程序, 其中主要包括
2012-01-16 09:19:07
496
转载 【移植havlenapetr】的【ffmpeg】-->【Android播放器】
重点文章(包括文章后的评论):http://blog.youkuaiyun.com/moruite/archive/2011/04/06/6305944.aspx 解决Android平台移植ffmpeg的一揽子问题”havlenapetr 最新的ffmpeg可以直接编译通过,不过有个bug,就是播放完毕后,video_decoder线程不能退出,
2011-12-09 11:22:06
2728
转载 【Linux入门学习之】vi/vim编辑器必知必会
一、我们为什么要学习vim编辑器?Linux的命令行界面下面有非常多的文本编辑器。比如经常听说的就有Emacs、pico、nano、joe与vim等。vim可以看做是vi的高级版。我们为什么一定要学习vim呢?有以下几个原因:(1)所有的Unix like系统都会内置vi文本编辑器,其他的文本编辑器则不一定会存在。(2)很多软件的编辑接口都会主动调用vi。(3)
2011-12-07 17:56:22
365
转载 用Diff和Patch工具维护源码
在Unix系统下,维护源码版本可以使用很多方法,其中最常用的当然是大名鼎鼎的CVS,但实际上,简单的版本维护工作并没有必要使用复杂的CVS等专门的版本维护工具,Unix标配中的diff和patch工具就完全可以完成代码的简单备份和升级工作。在Unix系统下,维护源码版本可以使用很多方法,其中最常用的当然是大名鼎鼎的CVS,但实际上,简单的版本维护工作并没有必要使用复杂的CVS等专门的版本维
2011-12-07 09:53:48
279
转载 给Android应用开发者的十个建议
随着移动平台的发展和其应用的不断改善,质量成为决定成败的关键。用户要求他们选择安装的应用响应快、性能好,如果某个应用不能提供卓越的功能和稳定的用户体验,那这样的应用注定会被很快卸载。尽管现在Android智能手机和平板电脑的运行速率越来越快,但开发者仍需牢记,应用的运行环境仍受到电池和处理器等诸多资源的限制。以下是如何为应用“瘦身”的十条建议,以便能在当前和以后的所有Android设备都能
2011-12-07 09:22:18
335
转载 苹果http视频点播技术
在写一个基于iphone的应用,主要是用来播放视频的.但是提交给苹果审核的时候却遭到百般刁难.尤其是关于在3G网络上播放视频流的限制: 9.4 Video streaming content over a cellular network longer than 10 minutes must use HTTP Live and include a baseline 64 kbps
2011-11-25 17:14:25
661
转载 HTTP Live Streaming (HLS) 不错的视频直播技术
常用的流媒体协议主要有 HTTP 渐进下载和基于 RTSP/RTP 的实时流媒体协议,这二种基本是完全不同的东西,目前比较方便又好用的我建议使用 HTTP 渐进下载的方法。在这个中 apple 公司的 HTTP Live Streaming 是这个方面的代表。它最初是苹果公司针对iPhone、iPod、iTouch和iPad等移动设备而开发的流.现在见到在桌面也有很多应用了, HTML5 是直
2011-11-22 16:28:13
1699
转载 iPhone UIView 详解
曾经有人这么说过,在iphone里你看到的,摸到的,都是UIView,所以UIView在iphone开发里具有非常重要的作用。那么UIView我们到底知道多少呢。请看看下面的问题,如果这些你都知道,那么本文章的内容就请绕道,如果你还不太清楚,我想看了下面的内容,你就明白了。1。bounds和frame分别表示什么?2。ContentMode里UIViewContentModeScale
2011-11-18 11:40:08
590
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人