库和头文件不对应引起的运行异常(典型)

  1. 1、前言
  2. 2、问题
  3. 3、原因分析

1、前言

最近在调试一个编码问题时,发现一些奇怪的现象:比如动态码率更新不生效,但同步更新平均码率后就生效了;在测试过程中,也发现了一些奇怪的现象,感觉很不科学,后面才发现问题,排查的过程甚是困难。

2、问题

H.264编码动态码率更新不生效

3、原因分析

库编译使用的头文件与上层调用使用的头文件不一致,两个宏开关不同!====> 头文件和库不对应导致的问题!!!
详细分析:
库中结构体的内存是按照库中头文件中结构体的声明进行分配的,假如上层没有定义frame_num这个变量的内存,但是在底层的库中内存分配中却定义了这个变量,这样就会导致内存错位,传参错位!!!因此就会引起一些奇怪不合理的现象。比如动态码率更新不生效的问题就是参数错位,本来要传参给frame_num的数值却传递给前一个参数,平均码率在结构体内存中是目标码率的下一个,所以参数错位,传递给平均码率的参数实质是传递给了目标码率,所以就生效了。


THE END!


本博文只能阅读,谢绝转载,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 2963033731@qq.com

文章标题:库和头文件不对应引起的运行异常(典型)

字数:361

本文作者:Soaring Lee

发布时间:2021-08-20, 20:07:17

最后更新:2021-08-23, 23:24:14

原始链接:https://soaringleefighting.github.io/2021/08/20/【Bugfix系列】库和头文件不对应引起的运行异常(典型)/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

×

喜欢就点赞,疼爱就打赏

相册