Bugfix系列库和头文件不对应引起的运行异常(典型)
Posted 飞翔的鲲
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Bugfix系列库和头文件不对应引起的运行异常(典型)相关的知识,希望对你有一定的参考价值。
DATE: 2021.8.20
1、前言
最近在调试一个编码问题时,发现一些奇怪的现象:比如动态码率更新不生效,但同步更新平均码率后就生效了;在测试过程中,也发现了一些奇怪的现象,感觉很不科学,后面才发现问题,排查的过程甚是困难。
2、问题
H.264编码动态码率更新不生效
3、原因分析
库编译使用的头文件与上层调用使用的头文件不一致,两个宏开关不同!====> 头文件和库不对应导致的问题!!!
详细分析:
库中结构体的内存是按照库中头文件中结构体的声明进行分配的,假如上层没有定义frame_num这个变量的内存,但是在底层的库中内存分配中却定义了这个变量,这样就会导致内存错位,传参错位!!!因此就会引起一些奇怪不合理的现象。比如动态码率更新不生效的问题就是参数错位,本来要传参给frame_num的数值却传递给前一个参数,平均码率在结构体内存中是目标码率的下一个,所以参数错位,传递给平均码率的参数实质是传递给了目标码率,所以就生效了。
THE END!
以上是关于Bugfix系列库和头文件不对应引起的运行异常(典型)的主要内容,如果未能解决你的问题,请参考以下文章