自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Austin的博客

欢迎来到我的博客,我会在此和大家分享技术资料。

  • 博客(53)
  • 资源 (4)
  • 收藏
  • 关注

原创 x264源码分析三:x264_slices_write和x264_slice_write函数分析

下面将分析x264

2014-05-07 17:26:35 2380

原创 x264源码分析二:encode_frame函数和x264_encoder_encode函数

下面将开始分析x

2014-05-07 16:16:15 4309

原创 x264源码分析一:main函数和encode函数

由于公司要做x264相关项目,所以今天开始学习x264。

2014-05-06 17:36:40 2099

原创 ffmpeg源码分析五:ffmpeg调用x264编码器的过程分析

所有编码器和解码器都是在

2014-05-06 15:35:16 2668

原创 ffmpeg源码分析四:transcode_step函数

该函数的主要功能是一步完整的转换工作

2014-05-06 11:49:22 3438

原创 ffmpeg源码分析三:transcode_init函数

transcode_init()函数是在转换前做准备工作的。下面看看其源代码:

2014-05-05 16:49:09 2680 1

原创 ffmpeg源码分析二:main函数和transcode函数

首先从main函数看起,gaihuansh

2014-04-30 17:25:21 3694 1

原创 ffmpeg源码分析一:概述

首先先看ffmpeg.c中,有类似于如下的一些变量:[cpp] view plaincopy"font-size:18px;">static InputStream *input_streams = NULL;  static int         nb_input_streams = 0;  static InputFile   *i

2014-04-30 17:00:59 3247

翻译 CMake手册详解:(二)生成器篇

CMake支持下列生成器:Visual Studio 6: 生成Visual Studio 6 工程文件。Visual Studio 7: 生成Visual Studio .NET 2002 工程文件。Visual Studio 10: 生成Visual Studio 10(2010) 工程文件。 Visual Studio 10 Win64会生成x64平台的工程;Visual Studio

2015-06-05 14:37:37 2304

翻译 CMake手册详解:(一)开始篇

前言CMake是目前比较流行的跨平台构建工具,接触过跨平台项目的小伙伴应该都对他很熟悉。为了能更好的学习CMake,我打算从CMake官网的开发手册入手,系统的学习 CMake。CMake的版本也在不停更新,有些新的命令和变量会随着版本更新添加进来,这是后事了,暂且不管;现在锁定CMake 2.8.12作为手册翻译的版本。(因为目前ubuntu系统的最新版本CMake就是这版),下面就进入正题:手册

2015-05-20 11:34:22 9879

转载 C++中const、volatile、mutable的用法

const用法const修饰变量 const修饰变量,一般有两种写法: const TYPE value; TYPE const value; 这两种写法在本质上是一样的。它的含义是:const修饰的类型为TYPE的变量value是不可变的。对于一个非指针的类型TYPE,无论怎么写,都是一个含义,即value值不可变。例如:const int nValue; //nValue是cons

2015-05-12 15:45:29 695

原创 随便多少人你都能管

一线经理的职责是什么?关于这个问题,我希望有一个一致的答案。遗憾的是,这些人的职位名称都还不一致呢。有些一线经理被叫作“经理”,而有些则被称作为“主管”。即使在一个敏捷的环境里,如果他们是开发团队或测试团队的职能经理,他们中的一些人还在写着代码或做着具体的测试工作呢。对于一些团队来说,他们都是从各自的经理那里学会如何行为处事的。他们不知道,其实同事之间两两结对工作或者多人聚在一起编

2015-02-28 16:04:26 923

原创 COM组件编程—自动化

1、接口分类调度接口(dispinterface) :IDispatch::Invoke的一个实现所能调用的函数集合,客户只能通过IDispatch::Invoke使用组件。COM(vbtl)接口(custome) :一个指针,指向一个函数指针数组,数组前三个元素是 QueryInterface,AddRef和Release。双重接口(dual) :客户既可以通过调度接口(IDispa

2015-02-11 17:41:18 1686

原创 COM组件编程—数据类型

1、智能指针CComPtrATL的CComPtr模板类提供了基本的智能指针功能。你可以把CComPtr类作为一个COM接口指针来使用,当类超出他的有效范围时,他将自动调用Release()CComPtr ptrMath;HRESULT hr;ht = CoCreateInstance(CLSID_Math, NULL, CLSCTX_LOCAL_SERV

2015-02-11 13:01:48 1228

原创 COM组件编程—接口定义语言IDL

通过IDL描述接口,再通过MIDL编译生成代理和残根DLL。IDL的一个示例:import "unknwn.idl" ; typedef struct { double x ; double y ; double z ;} Point3d ;interface IZ : IUnknown{ HRESULT FzStructIn([in] Point3d pt) ;

2015-02-11 10:45:14 2155

原创 COM组件编程—IUnknown的三个接口函数

对于COM组件,正确处理IUnknown的三个接口函数非常重要。对于QueryInterface,一个参考处理如下:HRESULT __stdcall CA::QueryInterface(const IID& iid, void** ppv){ if (iid == IID_IUnknown) { *ppv = static_cast(this) ; } else

2015-02-11 10:13:35 1363

原创 COM组件编程—理论知识

1、 COM组件是一个C++类,他从一系列接口派生而来,并实现了所有的接口。这些接口都是纯虚类。2、COM组件有三个最基本的接口类,分别是IUnknown、IClassFactory、IDispatch。    COM规范规定任何组件、任何接口都必须从IUnknown继承。    所以我们使用COM的一个简单流程如下:CoInitialize(NULL);IUnknown

2015-02-11 09:47:41 3931

转载 CMake的使用

一、      基本使用安装:下载二进制包后可直接解压使用从源码安装则执行命令:./configure; make; make install使用:cmake dir_path,生成工程文件或makefile文件二、      概念out-of-source build,与in-source build相对,即将编译输出文件与源文件放到不同目录中;三、      基本结构

2014-12-02 15:26:55 700

原创 c/c++编译预处理

一、宏定义(常见#define和#undef)如下:#define PI 3.1415926                    /*不带参数的宏定义*/#define Max(a,b)  a>b?a:b            /*带参数的宏定义*/#undef PI                                         /* 取消宏定义*/说明:宏

2014-12-01 12:26:12 569

原创 GCC编译优化选项

GCC编译器优化选项介绍:GCC编译器在目前是不是用最多的编译器也相去不远,尤其在嵌入式领域很多编译器都是基于GCC的cross gcc版本。毕竟功能成熟而且有开放的源代码。这里只介绍优化编译的参数-O用来开启优化编译选项。-O0:默认模式,不做任何优化。-O1:优化。该模式下对于一个大的函数或功能会花费更多的时间和内存。  

2014-11-18 10:18:54 6257

原创 qt各大模块简介

Qt 5 与 Qt 4 最大的一个区别之一是底层架构有了修改。Qt 5 引入了模块化的概念,将众多功能细分到几个模块之中。Qt 4 也有模块的概念,但是是一种很粗的划分,而 Qt 5 则更加细化。本节主要对 Qt 5 的模块进行一个简单的介绍,以便以后大家需要哪些功能的时候知道到哪个模块去寻找。Qt 5 模块分为 Essentials Modules 和 Add-on Modules 两部

2014-11-17 18:17:54 3712 1

原创 c++ 字符类型总结和相互转换

1.区别wchar_t,char,WCHAR   ANSI:即 char,可用字符串处理函数:strcat( ),strcpy( ), strlen( )等以str打头的函数。   UNICODE:wchar_t是Unicode字符的数据类型,它实际定义在里:   typedef unsigned short wchar_t;   另外,在头文件中有这样的定义:type

2014-11-13 13:45:22 882

原创 预定义的宏

查看gcc所定义的宏的命令:cpp -dM /dev/null命令一: cpp -dM /dev/null命令二: gcc -dM -E - 1:OS MACRO:  WINDOWS: _WIN32、WIN32;  UNIX/LINUX: unix、__unix、__unix__;  SunOS/SOLARIS: __SVR4、__svr4__、sun、__

2014-11-12 18:05:35 699

原创 LVS+Keepalived搭建服务器集群

yi为什么要使用负载均衡技术?1、系统高可用性2、系统可扩展性3、负载均衡能力LVS+keepalived能很好的实现以上的要求,LVS提 供负载均衡,keepalived提供健康检查,故障转移,提高系统的可用性!采用这样的架构以后 很容易对现有系统进行扩展,只要在后端添加或者减少realserver,只要更改lvs的 配置文件,并能实现无缝配置变更! 二、LVS+Keep

2014-11-03 16:32:38 1484

原创 gsoap进行soap开发

1 通过wsdl文件生成.h文件从WSDL中产生头文件用法:wsdl2h -o 头文件名 WSDL文件名或URLwsdl2h常用选项-o 文件名,指定输出头文件-n 名空间前缀 代替默认的ns-c 产生纯C代码,否则是C++代码-s 不要使用STL代码-t 文件名,指定type map文件,默认为typemap.dat-e 禁止为enum成员加上名空间前缀

2014-09-17 11:03:33 836

转载 socket阻塞与非阻塞,同步与异步,select,pool,epool

1. 概念理解     在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式:同步:      所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。也就是必须一件一件事做,等前一件做完了才能做下一件事。例如普通B/S模式(同步):提交请求->等待服务器处理->处理

2014-09-02 10:30:37 1138

原创 Linux环境下配置samba服务

安装samba可以实现linux下文件和window共享,这样window下就可以操作linux的文件了。    1、关闭LINUX防火墙    sudo ufw disable    注:ufw是linux下的防火墙操作命令,相关的操作可以查看命令帮助    2、先卸载samba-common    sudo apt-get remove samba-common   

2014-08-29 09:29:47 712

原创 Linux环境下配置ssh服务

sudo apt-get install openssh-serverUbuntu缺省安装了openssh-client,所以在这里就不安装了,如果你的系统没有安装的话,再用apt-get安装上即可。然后确认sshserver是否启动了:ps -e |grep ssh如果只有ssh-agent那ssh-server还没有启动,需要/etc/init.d/ssh start,如果看到

2014-08-29 09:06:14 582

原创 Linux环境下配置tftp服务

第1步:安装tftp所需的软件。首先需要安装tftp-hpa,tftpd-hpa,前者是客户端,后者是服务程序,在终端下输入 sudo apt-get install tftp-hpa tftpd-hpa,安装tftp-hpa和tftpd-hpa。然后还需要安装xinetd,在终端下输入 sudo apt-get install xinetd,安装好xinetd。第2步: 配置相关

2014-08-29 09:01:17 637

转载 Linux下vim配置IDE

我的vim IDE界面: 1、安装Vim和Vim基本插件首先安装好Vim和Vim的基本插件。这些使用apt-get安装即可:lingd@ubuntu:~/arm$sudo apt-get install vim vim-scripts vim-doc其中vim-scripts是vim的一些基本插件,包括语法高亮的支持、缩进等等。vim中文帮助文档tar包下载地址:

2014-08-15 16:35:41 1300

转载 接下来的两年你可能需要这五种语言!

对于处在编程世界的我们来说,现在已经走到了一个转折点。十年前,程序员们对动态语言趋之若鹜。对我们中的大部分人来说,动态语言不仅使编程变得更加简单,同时也意味着一种时尚。时至今日,动态语言不再享有特别的青睐,现在的程序员使用新语言和旧语言的搭配来开发项目。我不禁要问,为了保持自身的竞争力,哪些编程语言是程序员们最需要永久掌握的?在我们讨论哪些编程语言在未来会吃香这个问题之前,先来看看不同编程

2014-08-07 11:04:19 1144

转载 FFmpeg中的sws_scale算法性能测试

经常用到ffmpeg中的sws_scale来进行图像缩放和格式转换,该函数可以使用各种不同算法来对图像进行处理。以前一直很懒,懒得测试和甄别应该使用哪种算法,最近的工作时间,很多时候需要等待别人。忙里偷闲,对ffmpeg的这一组函数进行了一下封装,顺便测试了一下各种算法。简单说一下测试环境,我使用的是Dell的品牌机,i5的CPU。ffmpeg是2010年8月左右的当时最新版本编译而成,我

2014-08-05 18:19:26 926

转载 人格的五大模型

人格可以理解为情绪,思维方式,习惯的复合体,具体左右一个人对周围人事所作出的反应。在组织行为学里有好多对人格特质进行描述的模型,其中比较有名的一个是大五模型(五维度人格模型)。在大五模型里用五个因素来考察人格特质: 外倾性(extroversion):外倾者者倾向于喜欢群居,善于社交和自我决断。内倾者则比较内向,胆小害羞,安静少语。 随和性(

2014-07-22 16:20:43 7758

转载 组织行为学对项目管理的意义

在MBA的课程中有一门是组织行为学,就我个人感觉项目管理者别的科目不看也罢,组织行为学这门还是看看比较好。组织行为学被定义为这样一种研究领域:探讨个体、群体以及结构对组织内部行为的影响。通俗的讲就是研究一个人的行为规则,比如人的需求层次会如何影响动机,又会如何影响人的行为。饿的要死的人,是不适合总谈理想的。研究一个群体的行为规则,比如从众心理如何产生以及如何预防。研

2014-07-22 16:19:07 1924

转载 技术还是管理?

我们必须承认技术和管理所面临的问题、所需要的性格和能力皆是不同。虽然有的时候管理也被认为是一种技术,但我们更愿意把直接贡献于软件产品的工作称之为技术,而把通过协调沟通等手段间接贡献于软件产品的工作称之为管理。 从先天性格来看,有的人天生适合做管理多一点,有的人天生适合做技术多一点。 比如说:有的程序员天生有点被动,不喜欢主动学习很多东西,不喜欢与人沟

2014-07-22 16:14:41 581

转载 Qt的信号和槽机制

信号与槽作为QT的核心机制在QT编程中有着广泛的应用,本文介绍了信号与槽的一些基本概念、元对象工具以及在实际使用过程中应注意的一些问题。QT是一个跨平台的C++ GUI应用构架,它提供了丰富的窗口部件集,具有面向对象、易于扩展、真正的组件编程等特点,更为引人注目的是目前Linux上最为流行的KDE桌面环境就是建立在QT库的基础之上。QT支持下列平台:MS/WINDOWS-95、98、NT和20

2014-07-19 17:27:27 620

转载 Qt中QObject分析

Qt的QObject1.试验代码:#include #include #include int main(int argc, char *argv[]){ QApplication app(argc, argv); int size = sizeof(QObject); QPushButton* quit = new QPushButton("Q

2014-07-18 17:21:44 1735

转载 x264编码流程分析

一·首先是main函数:

2014-07-04 10:36:38 670

转载 Windows 和 Linux 的IPC API对应表

Table 1. Process mappingWindowsLinuxClassificationCreateProcess()CreateProcessAsUser()fork()setuid()exec()MappableTerminateProcess()kill()Mappable

2014-06-09 16:09:35 901

转载 Linux使用GDB调试总结

1: 对于在应用程序中加入参数进行调试的方法:   直接用 gdb app -p1 -p2 这样进行调试是不行的。   需要像以下这样使用:    #gdb app    (gdb) r -p1 -p2    或者在运行run命令前使用set args命令:    (gdb) set args p1 p2    可以用show args 命令来查看2. 加入断点:

2014-06-09 14:52:37 643

敏捷开发(英文版)

敏捷开发学习文档,英文版,清晰。英语功底好的,建议下载看看。

2014-05-08

跟我一起写Makefile

学习Makefile的好资料,讲的很详细很系统,适合初学者学习使用。

2014-05-08

空空如也

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

TA关注的人

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