- 浏览: 231496 次
- 性别:
- 来自: 南京
最新评论
-
baby8117628:
vc下mp3 IDv1和IDV2的读取 -
gezexu:
你好,我按照你的步骤一步步进行但是安装libvorbis的时候 ...
linux如何搭建强大的FFMPEG环境 -
ini_always:
帅哥,转载也把格式做好点,另外出处也要注明一下吧。。。
MP3文件格式解析
文章列表
/*-------------------------------------------------------------------------
* tpool.h – 线程池定义
* -------------------------------------------------------------------------
*/
#ifndef _TPOOL_H_
#define _TPOOL_H_
#include <stdio.h>
#include <pthread.h>
/*工作线程链表*/
typedef struct tpool_work{
...
本文描述在网上能够找到的最简单,最快速的哈夫曼编码。本方法不使用任何扩展动态库,比如STL或者组件。只使用简单的C函数,比如:memset,memmove,qsort,malloc,realloc和memcpy。
因此,大家都会发现,理解甚至修改这个编码都是很容易的。
背景
哈夫曼压缩是个无损的压缩算法,一般用来压缩文本和程序文件。哈夫曼压缩属于可变代码长度算法一族。意思是个体符号(例如,文本文件中的字符)用一个特定长度的位序列替代。因此,在文件中出现频率高的符号,使用短的位序列,而那些很少出现的符号,则用较长的位序列。
编码使用
我用简单的C函数写这个编码是为了让它在任何地方使用都会比较方便。 ...
一直赞叹Sun对待技术的严谨和优雅(bless Sun)。Sun JDK中Java库的源代码,连注释都清清楚楚、规规范范,javadoc注解的使用也一丝不苟,读起来很熟舒服。因此,在日常工作和学习中,经常读读 Java库的源代码,不亦乐乎?如果遇 ...
http://hi.baidu.com/%5F%E2%64%5F%B7%B3%5F%DE%B2%C2%D2/blog/item/32b9cecab44c4b8cc8176851.html
进应用程序的性能是一项非常耗时耗力的工作,但是究竟程序中是哪些函数消耗掉了大部分执行时间,这通常都不是非常明显的。在本文中我们将学习如何使用 gprof 为 Linux ®™ 平台上的用户空间和系统调用精确分析性能瓶颈。
...
atoi函数不同平台的实现问题
工程中要通过文件得到数值,想当然的就使用了atoi这个函数。在
Windows下使用,没什么问题。但是一移植到Linux下,问题就出来了,
发现得到的数总是不对劲。用gdb跟踪一下,发现大于2147483647的数
均返回2147483647这个值。又在Windows下debug了一下,发现得到的数
值正常,能够得到大于2147483647的数。
这就比较有趣了,2147483647十六进制表示是0x7FFFFFFF。应该是
越界问题。查了一些资料,发现gcc在实现atoi函数的时候,如果输入
的字符串数值大于int型最大值将返回INT_MAX( ...
最近在做的一个项目中要实现字母大小写无关比较,很自然的使用标准c库中的函数
tolower(),但是由于使用次数很多,对输入的字符数组每个都要使用一次,经过性能测
试,发现使用tolower函数的性能只有不使用该函数的的三分之一。
察看了一下tolower函数的源码,发现其对MT有加锁互斥操作,而做的项目正后生成
的是MT库,因此性能上会有问题。因此参考tolower函数,写了一个宏,定义如下:
#define MYTOLOWER(c) (c>='A'&&c<='Z' ? c+32:c)
用该宏来代替tolower函数,测试后发现果然使性能提高了,但 ...
/*这是修改后的代码,VC下读ID3v2 & ID3v1 , 读mp3_tagHeader都没问题.*/
/******************************************************************
File : mp3info.c
*******************************************************************************/
#include<stdio.h>
#include<io.h>
#include<string.h>
#inclu ...
今天突发奇想,就在以前音频播放器(详细情况请看这里——http://blog.csdn.net/baymoon/archive/2006/11 /16/1388693.aspx)的基础上用ffmpeg写了个简单的多媒体播放器,这里把源代码贴出来,供大家参评;这里的多媒体播放,并没有用到什么很强大的音视频同步技术,而只是简单的使用了视频随着音频同步,想必你看了代码之后会有所悟的。。。不多说了,看代码。。。
/***************************************************************************
* ma ...
ffmpeg提取音频播放器总结;
一:简介
从编写音频播放器代码到完成播放器编写,测试,整整5天的时间,这时间还不算之前对 ffmpeg熟悉的时间,可以说是历经千辛万苦,终于搞出来了,虽然最终效果还不是很理想,但是已经可以 ...
C++代码优化方法总结
优化是一个非常大的主题,本文并不是去深入探讨性能分析理论,算法的效率,况且我也没有这个能力。我只是想把一些可以简单的应用到你的C++代码中的优化技术总结在这里,这样,当你遇到几种不同的编程策略的时候,就可以对每种策略的性能进行一个大概的估计。这也是本文的目的之所在。
一. 优化之前
在进行优化之前,我们首先应该做的是发现我们代码的瓶颈(bottleneck)在哪里。然而当你做这件事情的时候切忌从一个debug-version进行推断,因为debug-version中包含了许多额外的代码。一个debug-version可执行体要比release-version大出 ...
一、什么是互斥锁
另一种在多线程程序中同步访问手段是使用互斥量。程序员给某个对象加上一把“锁”,每次只允许一个线程去访问它。如果想对代码关键部分的访问进行控制,你必须在进入这段代码之前锁定一把互斥量,在完成操作之后再打开它。
互斥量函数有
pthread_mutex_init 初始化一个互斥量
pthread_mutex_lock 给一个互斥量加锁
pthread_mutex_trylock 加锁,如果失败不阻塞
pthread_mutex_unlock 解锁
可以通过使用pth ...
提高 Linux 上 socket 性能
加速网络应用程序的 4 种方法
developerWorks
文档选项
将打印机的版面设置成横向打印模式
打印本页
将此页作为电子邮件发送
将此页作为电子邮件发送
级别: 中级
M. Tim Jones (mtj@mtjones.com), 资深软件工程师, Emulex
2006 年 2 月 13 日
使用 Sockets API,我们可以开发客户机和服务器应用程序,它们可以在本地网络上进行通信,也可以通过 Internet 在全球范围内进行通信。与其他 API 一样,您可以通过一些方法使用 Sockets ...
C语言宏定义技巧(zt)
1,防止一个头文件被重复包含
#ifndef COMDEF_H
#define COMDEF_H
//头文件内容
#endif
2,重新定义一些类型,防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植。
typedef unsigned char boolean; /* Boolean value type. */
typedef unsigned long int uint32; /* Unsigned 32 bit value */
typedef unsigned short ui ...
译文]Smashing The Stack For Fun And Profit
2000年12月20
原作 by Aleph One
[email]aleph1@underground.org[/email]
翻译 [email]xuzq@chinasafer.com[/email]
www.chinasafer.com
'践踏堆栈'[C语言编程] n. 在许多C语言的实现中,有可能通过写入例程
中所声明的数组的结 ...