- 博客(16)
- 资源 (1)
- 收藏
- 关注
原创 lua栈理解及lua和C++的数据交换API介绍
1. 理解lua的栈到底是什么? lua的栈类似于以下的定义, 它是在创建lua_State的时候创建的: TValue stack[max_stack_len] // 欲知内情可以查 lstate.c 的stack_init函数 存入栈的数据类型包括数值, 字符串, 指针, talbe, 闭包等, 下面是一个栈的例子:
2012-01-18 17:30:42
2518
转载 lua的闭包概念理解与介绍
lua的闭包是个新概念,理解它需要个过程。今天在网上找了几篇文章看,不错,先记录下。1,lua闭包普通篇 http://hi.baidu.com/happynp/blog/item/b7736a1f7f65b3ffe0fe0b90.html2,lua闭包文艺篇 http://www.ibm.com/developerworks/cn/linux/l-cn-closure/3,lua闭包
2012-01-18 11:24:21
9933
2
原创 Lua的类实现继承、多态以及setmetatable方法
1,Lua类实现从网上搜了几个类实现,自己照猫画老虎的弄个如下:ClassYM = {x=0,y=0}--这句是重定义元表的索引,必须要有,ClassYM.__index = ClassYM --模拟构造体,一般名称为new()function ClassYM:new(x,y) local self = {} setmetatable(s
2012-01-17 14:05:21
13109
转载 性能分析工作strace命令用法详解及使用例子
1 功能说明strace 命令是一种强大的工具, 能够显示任何由用户空间程式发出的系统调用. strace 显示这些调用的参数并返回符号形式的值. strace 从内核接收信息, 而且无需以任何特别的方式来构建内核. strace 的每一行输出包括系统调用名称, 然后是参数和返回值.下面记录几个常用option:-f -F选项告诉strace同时跟踪fork和vfork出来的进程
2012-01-13 20:07:50
6284
原创 简单C++调用lua函数及C++和lua相互函数调用小例子
//简单C++调用lua函数,改自网络//test.cpp#include extern "C" {#include "lua.h"#include "lualib.h"#include "lauxlib.h"}/*Lua解释器指针*/lua_State* L;int main ( int argc, char *argv[] ){ /*初始化Lua*/L = l
2012-01-10 20:06:06
5456
原创 Linux下Lua如何调用c动态库函数及luaL_checknumber,lua_pushnumber
一,从网上找的一个例子,代码如下://***In mylib.c#include #include "lua.h"#include "lualib.h"#include "lauxlib.h"static int l_sin (lua_State *L) {double d = luaL_checknumber(L, 1);lua_pushnumber(L,
2012-01-09 23:07:02
4803
原创 lua_State和luaL_newstate,luaL_openlibs及lua_close
1,lua_State在Lua中的定义如下: struct lua_State { CommonHeader; lu_byte status; StkId top; /* first free slot in the stack */ global_State *l_G; CallInfo *ci; /* call
2012-01-09 00:07:01
7685
原创 服务器性能分析工具gprof的使用及没有生成gmon.out文件的原因
早上从网上查看资料时无意中看到了gprof这个工具,随便把他用在项目里试了一下。结果发现调用次数的数据比较全,但调用时间基本上都是0。网上查了一下发现gprof只记录执行时间超过0.01秒即10毫秒的函数调用时间:*(,我测的是服务器程序,这个时间也太长了吧!!!! 从网上总结了gprof使用的注意事项,说不定以后会用到:一,gprof只能查看用户函数信息。如果想查看库函数的
2011-12-22 11:28:33
3877
原创 Windows环境下编译生成libpq类库(Debug和Release)
Windows环境下编译生成libpq类库(Debug和Release)在windows下编译需要nmake工具,先设置nmake环境一、添加windows环境变量 第一种方法(来自网络传说,本人没试过): a) 在include变量里面补充了:C
2011-09-27 18:39:32
1551
原创 Linux下Luabind编译和使用环境的搭建
自己弄了下 虽然可以用,但是bjam没安装成功,同事说他可以,把安装步骤发我。按着他的步骤在新的一台机子上安装,和我自己的安装结果是一样的,,,先把安装步骤记录一下,以后有空再查查吧,为什么呀,不成功?1. 安装lua a: make linux //有的机子上会提示 luaconf.h:275:31: error: readline/readline.h: No
2011-07-23 22:48:12
1641
原创 FMpeg分析6:AVPicture、AVFrame和AVPacket
typedef struct AVPicture { uint8_t *data[4]; int linesize[4]; ///} AVPicture;typedef struct AVFrame{ uint8_t *data[4]; // 有多重意义,其一用NULL 来判断是否被占用 int linesize[4];
2011-06-12 21:42:00
10184
原创 FMpeg分析5:AVCodecContext和AVCodec
他们之间的关系和URLProtocol、URLContext之间是一样的,AVCodecContext动态的记录一个解码器的上下文信息,而AVCodec是每个解码器都会拥有一个自己的静态对像,并通过avcodec_register()函数注册成一个链表,表头在utils.c里定义static AVCodec *first_avcodec = NULL;AVCodecContex
2011-06-11 17:00:00
5278
原创 FMpeg分析4:AVStream
前几篇说的都还是数据源文件格式解析部分,哪么解析完后呢,读出的数据流保存在哪呢?正是现在讲的AVStream对像,在AVInputFormat的read_header中初始化AVFormatContext对像时,他会解析出该输入文件有哪些类型的数据流,并初始化AVFormatContext的AVStream *streams[MAX_STREAMS];一个AVStream代表一个流对像,
2011-06-11 12:09:00
4231
原创 FFMpeg分析3:AVFormatContext和AVIContext、FLVContext等XXXContext
AVFormatContext在FFMpeg里是一个非常重要的的结构,是其它输入、输出相关信息的一个容器,需要注意的是其中两个成员:struct AVInputFormat *iformat;//数据输入格式struct AVOutputFormat *oformat;//数据输出格式这两个成员不能同时赋值,即AVFormatContext不能同时做为输入、输出格式的
2011-06-11 11:07:00
4969
原创 FFMpeg分析2:AVInputFormat和AVOutputFormat
我们先看一下音视频播放器的大概结构(个人想法,不保证正确):1、数据源输入(Input)->2、文件格式解析器(Demux)->3、音视频解码(Decoder)->4、颜色空间转换(仅视频)->5、渲染输出(Render Output)。前一篇介绍的几个struct是数据源输入模块里的内容,哪么这一帖所讲的就是第二个模块即文件格式解析器里用到的内容。 AVInputF
2011-06-10 23:48:00
5115
1
原创 FFMpeg分析1:URLProtocol,URLContext和ByteIOContext
与其说是分析,不如说是学习,只是看在自己第一次写系列文章的份上,给足自己面子,取个有"深度"的题目!如有人被题目所蒙骗进来,还望见谅! URLProtocol,URLContext和ByteIOContext是FFMpeg操作文件(即I/O,包括网络数据流)的结构,这几个结构现实的功能类似于C++的多态继承吧,C++的多态是通过子类继承实现,而FFMpeg的“多态”是通过
2011-06-10 17:07:00
3871
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人