如何给ffmpeg添加codec

Intro ffmpeg是一个很强大的框架,包含众多的编解码器、提供很多方便的函数用于解析或生成各种媒体文件。大部分情况下,开发者使用ffmpeg开发 ...

C11标准库中的atomic原子操作

Intro C11标准也推出了很久,只是对于嵌入式编程,一方面许多嵌入式工具链版本号较低,另一方面Linux内核编译选项还是c89的标准,以至于很多便 ...

聊聊scatterlist的chain结构

最近写一个驱动,涉及DMA内存管理,不可避免的需要了解到scatterlist。网上能够搜到很多方面的资料,例如这个和这个。同时内核源码里s ...

如何计算eMMC大小

User Area 计算方法其实已经在规范中给出了,参考eMMC 5.0 spec里的段落。首先是: 7.3.12 C_SIZE [73:62] The C_SIZE parameter is used to compute the device capacity for devices up to2 GB of density. See 7.4.52, SEC_COUNT [215:212] , for details on calculatingdensities greater than 2 ...

一个awk的例子

最近公司弃用svn,全部使用git来进行版本控制,使用gitlab作为服务软件。结果在迁移以前的Android的git仓库时发现gitlab ...

配置git diff的输出颜色

背景 最近需要大量比对之前同事对内核做的修改,用git show和git diff看各个commit之间的差异。虽然默认情况下,git配置里已经将 ...

Kernel Build Dashboard

Overview This tool (i.e. kbdashboard) is used to configure and manage building proceedings of multiple linux kernels. It is written in Golang and hosted in this reposity. Developpers, especially in embedded system, usually need to modify, build and test more than one linux kernel in different projects. Each project may use one kernel of specific version and compile with specific toolchain. Some may only manipulate one kernel but with different build directories according to different configurations. ...

将博客迁移至hugo

搭建 最近我用的linode发布了新的套餐,里面包含了每月$5的最便宜的配置,因此将套餐换成这个,节约一些资金,毕竟自己的VPS用的服务也不多 ...

GStreamer插件架构简析

Intro 编写了两个GStreamer插件,对GStreamer的插件架构有了一些了解,这篇文章分析了插件之间如何进行协商、数据如何流动。分析的代码 ...