libjpeg学习2:内存篇

前面文章说到到libjpeg的使用示例,里面的例子实际上是文件的操作,即解压JPEG文件,因为libjpeg有对FILE操作的函数,所以代码直接用jpeg_stdio_src(&cinfo, fp);就行了,这个库会去读取JPEG文件。但是实际应用场合中,很多都不是文件,比如从网络传输过来的是JPEG数据,需要解压为RGB或YUV;又或者传输RGB数据要转换成JPEG。总之,是基于内存的操作的。往往用文件的方式来处理很简单,而换成了内存操作就有点措手不及了。正如上个月搞的FFMPEG转换,保存为一个视频文件是很简单的,但我要将转换后的数据保存到某一片内存中传输到上位机,我不可能先保存为文件再读文件,这太没职业道德了。幸运的是,我花了1周多的时间搞定了这个问题。

阅读全文>>

libjpeg学习1:简单使用示例

libjpeg这个库主要用于处理jpeg数据,比如将RGB压缩成JPEG,或者将JPEG解压为RGB。其实早在4年前已经接触过,但一直没写过这方面的文章。后来想想还是有必要写出来,至少可以证明自己搞过这东西。

阅读全文>>

FFMPEG基于内存的转码实例

前面有文章写道,尝试在FFMPEG里面直接使用FTP协议将H.264祼码流封装为AVI视频格式存储到FTP服务器上,遗憾的是以失败告终。然此事须解决,在多方考虑之后,决定使用内存临时存储,而不是写入磁盘文件,一来不必要,二来对磁盘有损耗。

阅读全文>>

ffmpeg 0.8.7在windows环境mingw环境的编译

最近又接触了FFMPEG,想起当年初到公司时的情景,领导安排我更新当前所用的FFMPEG,那时公司还没有多少人接触嵌入式Linux。现在虽然公司还是不重视嵌入式基础,但“交叉编译”这类术语,很多人也有了认知。下面是当年做的笔记,一直不发表出来是怕有人说,但已经过去那么多年了,版本又那么旧,估计没什么了。

阅读全文>>

记一次由PCI BAR配置不正确引发的硬盘IO调度io_schedule阻塞的经历

五一前,接到一个bug,大意是说设备接固态硬盘时跑新内核会出现卡死导致WDT复位,使用旧内核没问题。新内核是去年年底别人编译的,旧内核是3年前现在已离职2年的人编译的,现在安排我解决这个问题。但其时正在进行其他部门的紧急测试任务,于是请求节后解决。我最近的计划是学习以太网驱动,而五一没什么计划就去看了,本来想研究SCSI的,但先等查问题后再说吧。

阅读全文>>

FTP学习的一些笔记

FTP大约在2011年下半年接触的,这个笔记也是当时记录的,一晃差不多4年过去了,如今又有项目安排做这个,事是人非,冥冥之中又会有新意思么?

阅读全文>>

再识PCI:一个PCI驱动实例

之前写了第一篇关于PCI的文章,当时只是作为入门的接触笔记,后来对PCI又研究了一下,主要包括PCI设备的扫描过程及PCI驱动注册过程。本文主要给出一个PCI实例,并在内核中做很多的打印以便跟踪其过程。代码参考i2c-i801.c文件,在intel平台上试验。

阅读全文>>

H3C三层交换机划分VLAN示例

很久很久之前搞Linux端口转发时,借了一台三层交换机,我拿到手还没拆包装箱。不知道是不是因为工作上的这个原因而买的。不过后来实现的端口转发和三层交换机完全不搭边,就不了了之了。现在领导安排我查查广播风暴的事情,在同一网段里测试过了,就想在不同网段里试试,于是又借了这一台。

阅读全文>>

关于以太网PAUSE的一点研究

在学习自动协商时,发现有以太网PAUSE帧这个东西,很网上资料很少,有讲到的也是很简略,似乎这是一个神秘的不想让人知道的东西。这里将自己对PAUSE帧的一些研究,对于太术语的方面,直接参考网上资料,不在这里提及。

阅读全文>>