FFMPEG学习【libavutil】:Mathematics
来源:互联网 发布:北京旅游酒店推荐知乎 编辑:程序博客网 时间:2024/05/21 10:53
使用时间戳和时基的数学实用程序。
一、模块
AVRational
有理数计算
二、宏
#define ff_ctz ff_ctz_c #define ff_ctzll ff_ctzll_c #define ff_clz ff_clz_c #define av_parity __builtin_parity三、枚举
enum AVRounding {AV_ROUND_ZERO = 0, //
AV_ROUND_INF = 1,
AV_ROUND_DOWN = 2,
AV_ROUND_UP = 3,
AV_ROUND_NEAR_INF = 5,
AV_ROUND_PASS_MINMAX = 8192
}舍入方法。
四、函数
static av_always_inlineav_const int ff_ctz_c (int v)尾随零位计数。
参数:v:输入值。 如果v为0,结果为未定义。
返回:尾随0位数
av_const int ff_ctzll_c (long long v)
av_const unsigned ff_clz_c (unsigned x)
int64_t av_const av_gcd (int64_t a, int64_t b)计算两个整数操作数的最大公约数。
参数:a,b:操作数
返回:和b的GCD达到标志; 如果a> = 0且b> = 0,则返回值为> = 0; 如果一个== 0和b == 0,返回0。
该操作在数学上等同于* b / c,但直接写入可以溢出。
此函数等同于AV_ROUND_NEAR_INF的av_rescale_rnd()。
该操作在数学上等同于* b / c,但直接写入可能会溢出,并且不支持不同的舍入方法。
该操作在数学上等同于* bq / cq。
此函数等效于AV_ROUND_NEAR_INF的av_rescale_q_rnd()。
该操作在数学上等同于* bq / cq。
返回:以下值之一:
-1如果ts_a在ts_b之前
1,如果ts_a在ts_b之后
如果它们代表相同的位置,则为0
换句话说,比较整数a和b的最低有效log2(mod)位。
av_compare_mod(0x11, 0x02, 0x10) < 0 // since 0x11 % 0x10 (0x1) < 0x02 % 0x10 (0x2)av_compare_mod(0x11, 0x02, 0x20) > 0 // since 0x11 % 0x20 (0x11) > 0x02 % 0x20 (0x02)参数:a,b:操作数
mod:除数; 必须是2的倍数
返回:如果%mod <b%mod,则为负值
一个正值,如果一个%mod> b%mod
如果一个%mod == b%mod为零
该功能被设计为每个音频包进行调用,以将输入时间戳缩放到不同的时基。 与简单的av_rescale_q()调用相比,此功能对于可能的不一致的帧持续时间是稳健的。
最后一个参数是必须为同一个流的所有后续调用保留的状态变量。 对于第一个调用,* last应初始化为AV_NOPTS_VALUE。
参数:in_tb:输入时间时基
in_ts:输入时间戳
fs_tb:持续时间 。常这比int_tb和out_tb更精细(更大)
last:指向以fs_tb表示的充当状态变量的时间戳的指针
out_tb:输出时基
duration:持续时间直到对该功能的下次呼叫(即当前分组/帧的持续时间)
返回:时间戳表示为out_tb
注意:在此功能的上下文中,“持续时间”是指样本,而不是秒。
此功能保证当重复添加相同的值时,不会发生舍入错误的累积。
参数:ts_tb:输入时间戳时基
ts:输入时间戳
inc_tb:inc时间基准
inc:要添加的值
- FFMPEG学习【libavutil】:Mathematics
- FFMPEG学习【libavutil】:Mathematics:AVRational
- FFMPEG学习【libavutil】:String Manipulation
- FFMPEG学习【libavutil】:视频相关
- FFMPEG学习【libavutil】:Crypto and Hashing(一)
- FFMPEG学习【libavutil】:Crypto and Hashing(二)
- FFMPEG学习【libavutil】:Crypto and Hashing(三)
- FFMPEG学习【libavutil】:Crypto and Hashing(四)
- FFMPEG学习【libavutil】:Crypto and Hashing(五)
- FFMPEG学习【libavutil】:Memory Management(一)
- FFMPEG学习【libavutil】:Memory Management(二)
- FFMPEG学习【libavutil】:数据结构(一)
- FFMPEG学习【libavutil】:数据结构(二)
- FFMPEG学习【libavutil】:数据结构(三)
- FFMPEG学习【libavutil】:数据结构(四)
- FFMPEG学习【libavutil】:音频相关(一)
- FFMPEG学习【libavutil】:音频相关(二)
- FFMPEG学习【libavutil】:音频相关(三)
- JavaScript中Array对象
- 【jzoj5222】【GDOI2018模拟7.12】【A】【数据结构】
- BigDecimal 除法运算出现 java.lang.ArithmeticException
- HDU 1166 敌兵布阵(线段树)(第一部分 单点更新)
- 移动开发----Android开发者网址导航
- FFMPEG学习【libavutil】:Mathematics
- eclipse中Tomcat 引用java类型的动态WEB项目
- Android 视频回放时间轴,支持缩放,拖动,自动移动到最近视频开始时间
- Java笔记
- hbase启动后HMaster自动关闭
- Android Paint之PathEffect详解
- .net实现app接口的Demo简单教程
- 刚创建的maven项目,pom.xml的第一行就报错
- JSONObject 遍历各个字段值