- 博客(20)
- 资源 (11)
- 收藏
- 关注
原创 x264是怎样实现多种位深(bitdepth)支持的?
答案就是,工程在编译时,会同时生成一个 common-8.o 和 一个 common-10.o ,在前者里面,BIT_DEPTH 就是8,在后者里面,它就是10。同时,在前者里面,含有 x264_8_log(...) 函数符号,在后者里面,含有 x264_10_log(...) 符号。8bit 位深不够用了,现在都 10bit,12bit 了。也就是说,如果你去看 dll 库或者 .o 文件的话,是没有 x264_log 这个函数的,有的只是 x264_8_log 和/或 x264_10_log 函数。
2024-08-20 21:19:24 290
原创 x264的内存分配——减少内存碎片之法(2)
上下文”即context的概念常见于c语言的代码工程中。一般它就是最大、最复杂的一个结构体,里面包含着很多信息,一般也会占据着巨大的内存占用量。如果很多成员指针都占有内存,而这些内存还都不是特别大,那就会导致大量的内存碎片。x264减少内存碎片的思想比较简单,就是申请一大块内存,然后逐个分割。释放的时候也是将整块大内存释放掉。但是具体方法比较巧妙。
2024-01-27 10:40:35 359
原创 x264的内存分配——减少内存碎片之法(1)
首先说内存泄漏。搞c/c++的,对内存泄漏都非常敏感。你合入代码,如果发生内存泄漏,你就捅了马蜂窝,测试出了问题,领导要批评你,一个人害得所有模块的人走查内存。所以对内存泄漏都很敏感。合完程序后,如果能用valgrind检查一下最好:./testprog但是,还有一种情况,就算valgrind报告一切OK,程序的内存还是在往上涨,这是为什么?很可能就是内存碎片导致的。
2024-01-27 10:34:23 343
原创 编译不带版本后缀的x264库
make install后会生成软链接为 libx264.so。那怎样不要这个后缀,也不要软链接,就要个libx264.so就得了呢?原始版本的x264编译动态库的话,生成的库名是这样的:libx264.so.163, 或libx264-163.dll。把 -$API 和 .$API 都删了。然后configure、make、make install即可。打开 configure,搜索 $API 关键字,全部删掉。
2024-01-18 23:38:25 415 1
原创 C语言位操作总结 位运算
<br />置位<br /> #define BIT3 (0x1 << 3)<br /> static int a;<br />void set_bit3(void) <br /> {<br /> a |= BIT3;<br /> }<br />void clear_bit3(void) <br /> {<br /> a &= ~BIT3;<br /> }<br />判断位是否为1 if (a
2010-06-09 15:37:00 933
原创 [总结] C语言的位操作技巧
<br />置位<br /> #define BIT3 (0x1 << 3)<br /> static int a;<br />void set_bit3(void) <br /> {<br /> a |= BIT3;<br /> }<br />void clear_bit3(void) <br /> {<br /> a &= ~BIT3;<br /> }<br />判断位是否为1 if (a & BIT3)<br />nt a|=(1
2010-06-01 17:33:00 826
原创 wm5 手机同步发现
今天上午手机不能同步了。充电还可以。排除了usb线和pc软件设置的问题,于是又怀疑是usb口坏掉了。搞了一上午没搞好。中午拿去楼下小店里,老板拿酒精擦了擦接口里面,貌似还没好。在网上查了很多资料,说是在设置,usb链接到pc中勾选掉“高级网络功能”选项。我这么搞了一下。打开设备管理器,一插上,就蹦出来一个“windows CE usb devices”,让装驱动。哪有什么驱动啊,两秒钟这个
2009-09-02 13:51:00 450
原创 一个头文件包含的问题
foo.hfoo.cmainfile.c----------------------foo.c 定义结构体:typedef struct __tag_bitstream{ /*original stream data*/ FILE *stream; //关联的文件指针 /*original data*/ char *original; /*th
2009-07-27 21:22:00 559
原创 RTP负载H263
RFC2190 - RTP Payload Format for H.263 Video Streamshttp://tools.ietf.org/html/rfc2190RTP Payload Format for ITU-T Rec. H.263 Videohttp://tools.ietf.org/html/rfc4629RTP Payload Format fo
2009-07-21 09:51:00 1643
原创 Darwin Streaming Server编译运行过程
原创。 <!-- /* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso
2009-07-15 15:56:00 4954 4
原创 遇见一个Deploy dll的问题
发现其中一个工程生成的dll,Deploy以后,debug进不去。怪。 后来发现,是自己将Project->Setting->Link->output设置为自定义的路径了。后来deploy时,没把生成的这个搞进模拟器中。 必须设为$OutDir/***.dll 才行。 ***输出文件名貌似无所谓。
2009-06-28 22:38:00 887
原创 贴两个图,纪念一下
没啥神奇东西,也不是自己写的代码,拼拼凑凑,总算是出图了。基于Dshow的流媒体播放手机端。服务器端使用Darwin Streaming Server。声音也有了,但由于这个是模拟器,效果不好。等周一上了真机试试。很简陋,但本人实在水平一般,几个月实在难,也算是很不容易了。
2009-06-27 22:03:00 602 1
翻译 Rad & none_RAD
该文绝大部分文字本来准备出现于正在写的一本新书中的,不过写完之后感觉和书的主题不甚贴切,因此就毅然从书中删掉了。不过感觉这段文字说出了很多一直想说的话,因此便将它独立成文。 似乎说到Delphi,就会谈到这个话题。不错,Delphi是RAD(Rapid Application Development) VB的出现,掀起了一场编程方式的革命,它带来可视化编程,一种无数程序员所梦想的编程
2009-06-25 14:11:00 504
转载 libavformat/libavcodec学习
为什么需要两个库文件 libavformat 和 libavcodec:许多视频文件格式(AVI就是一个最好的例子)实际上并没有明确指出应该使用哪种编码来解析音频和视频数据;它们只是定义了音频流和视频流(或者,有可能是多个音频视频流)如何被绑定在一个文件里面。这就是为什么有时候,当你打开了一个AVI文件时,你只能听到声音,却不能看到图象--因为你的系统没有安装合适的视频解码器。所以
2009-06-25 12:39:00 878
原创 C/C++ 常用调试函数及技巧(不断更新中)
void __cdecl exit(__in int _Code); 执行环境: Console程序头文件: 在stdlib.h中,用法: exit(1); 即以退出码1退出程序。output窗口输出:The program [4440] tmndec-1.7.exe: Native has exited with code 1 (0x
2009-06-23 14:35:00 844
原创 通过windows mobile 5模拟器调试网络程序,模拟器独立ip的设置方法
主要方法来自:http://blog.csdn.net/ppcat_001/archive/2007/11/27/1904082.aspx本文做补充。 上文实在太重要,这里再转一把。红色且有灰色背景的问题为本人注释。 本文介绍配置Pocket PC 2003 SE设备仿真器网络设置的方法共有六个步骤:1、下载虚拟网卡驱动程序 2、在PC上安装虚拟网卡驱动
2009-06-22 17:27:00 4074 1
原创 First step,From tomcat
今日开始装tomcat,以前也常常看到这个词,总以为它和linux结合,很高深,现在看来,确实很高深,但至少知道是做什么用的了。经过一个下午的独自摸索,总算装上了,startup一下,一个黑窗口一闪而过,也能在网页中看到猫了,以为这就成功了。当然,后来在与eclipse集成时发现很多奇怪的问题,又查了各种资料,才惊奇并且很没面子的发现启动了tomcat之后,那个黑窗口其实一直应该留在桌面上的……而
2006-04-28 15:27:00 834
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人