1、前言
最近在调试一个编码问题时,发现一些奇怪的现象:比如动态码率更新不生效,但同步更新平均码率后就生效了;在测试过程中,也发现了一些奇怪的现象,感觉很不科学,后面才发现问题,排查的过程甚是困难。
2、问题
H.264编码动态码率更新不生效
3、原因分析
库编译使用的头文件与上层调用使用的头文件不一致,两个宏开关不同!====> 头文件和库不对应导致的问题!!!
详细分析:
库中结构体的内存是按照库中头文件中结构体的声明进行分配的,假如上层没有定义frame_num这个变量的内存,但是在底层的库中内存分配中却定义了这个变量,这样就会导致内存错位,传参错位!!!因此就会引起一些奇怪不合理的现象。比如动态码率更新不生效的问题就是参数错位,本来要传参给frame_num的数值却传递给前一个参数,平均码率在结构体内存中是目标码率的下一个,所以参数错位,传递给平均码率的参数实质是传递给了目标码率,所以就生效了。
THE END!
本博文只能阅读,谢绝转载,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 2963033731@qq.com