ffmpeg源码简析(十一)libavformat,libavcodec,libavutil

来源:互联网 发布:淘宝友情链接 编辑:程序博客网 时间:2024/06/05 08:34

libavformat

avformat.h 文件
定义识别文件格式和媒体类型库使用的宏、数据结构和函数,通常这些宏、数据结构和函数在此模块内相
对全局有效

allformat.c 文件
简单的注册/初始化函数,把相应的协议,文件格式,解码器等用相应的链表串起来便于查找。

cutils.c 文件
文件格式分析模块使用的两个工具类函数,都是对字符串的操作。

file.c
把 file 当做类似于 rtsp,rtp,tcp 等协议的一种协议,用 file:前缀标示 file 协议。
URLContext 结构抽象统一表示这些广义上的协议,对外提供统一的抽象接口。
各具体的广义协议实现文件实现 URLContext 接口。此文件实现了 file 广义协议的 URLContext 接口。

avio.h 文件
文件读写模块定义的数据结构和函数声明

avio.c

此文件实现了 URLProtocol 抽象层广义文件操作函数,由于 URLProtocol 是底层其他具体文件(file,pipe 等)
的简单封装,这一层只是一个中转站,大部分函数都是简单中转到底层的具体实现函数。

aviobuf.c

有缓存的广义文件 ByteIOContext 相关的文件操作,比如 open,read,close,seek 等等。

utils_format.c
识别文件格式和媒体格式部分使用的一些工具类函数。

avidec.c
文件解析的相关函数

libavcodec

avcodec.h
定义编解码器库使用的宏、数据结构和函数,通常这些宏、数据结构和函数在此模块内相对全局有效。

allcodec.c 文件
简单的注册/初始化函数,把编解码器用相应的链表串起来便于查找识别

dsputil.h 文件

定义 dsp 优化限幅运算使用的查找表及其初始化函数。

utils_codec.c
编解码库使用的帮助和工具函数

imgconvert_template.h
定义并实现图像颜色空间转换使用的函数和宏

imgconvert.c
定义并实现图像颜色空间转换使用的函数和宏

msrle.c
此文件实现微软行程长度压缩算法解码器

turespeech_data.h
此文件定义 truespeed 音频解码器使用的常数,此文件请参考 TrueSpeed 压缩算法

turespeech.c
此文件实现 truespeed 音频解码器

libavutil

common.h 文件
工具类数据类型定义,宏定义和两个简单的内联函数

bswap.h 文件
short 和 int 整数类型字节顺序交换,通常和 CPU 大端或小端有关。
对 int 型整数,小端 CPU 低地址内存存低位字节,高地址内存存高位字节。
对 int 型整数,大端 CPU 低地址内存存高位字节,高地址内存存低位字节。

rational.h 文件
用两整数精确表示分数。常规的可以用一个 float 或 double 型数来表示分数,但不是精确表示,在需要相
对比较精确计算的时候,为避免非精确表示带来的计算误差,采用两整数来精确表示。

mathematics.h
数学上的缩放运算。为避免计算误差,缩放因子用两整数表示做精确的整数运算。为防止计算溢出,强制转
换为 int 64 位整数后计算。
此处做了一些简化,运算精度会降低,但普通的人很难感知到计算误差。

avutil.h
基础工具库使用的一些常数和宏的定义。

1 0
原创粉丝点击