数据不对导致硬解解码失败
数据不对导致硬解解码失败
背景
升级网络框架后出现硬解失败,自动切到了软解,这是报错内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
[18:23:47 803] [FSPlayer] Continuity check failed for pid 4096 expected 4 got 0
[18:23:47 803] [FSPlayer] ContΩinuity check failed for pid 256 expected 14 got 0
[18:23:47 803] [FSPlayer] Packet corrupt (stream = 0, dts = 113115780).
[18:23:47 803] [FSPlayer] Packet corrupt (stream = 0, dts = 113112180).
[18:23:47 840] [FSPlayer] Continuity check failed for pid 257 expected 11 got 0
[18:23:47 852] [FSPlayer] Continuity check failed for pid 0 expected 4 got 1
[18:23:53 206] [FSPlayer] Invalid NAL unit 0, skipping.
[18:23:53 240] [FSPlayer] vt decoder cb: output image buffer is null: -12909
[18:23:53 241] [FSPlayer] hardware accelerator failed to decode picture
[18:23:53 278] [FSPlayer] VideoToolbox decoder needs reconfig, restarting..
[18:23:53 526] [FSPlayer] avcodec_send_packet failed:Unknown error occurred(-1313558101).
[18:23:53 567] [FSPlayer] No frame decoded?
[18:23:53 567] [FSPlayer] avcodec_send_packet failed:Generic error in an external library(-542398533).
排查
新版本 libcurl 网络库使用H2协议在多次暂停恢复处理的Bug,导致读取的数据有误,说到底是给了解码器不认的数据了。
本文由作者按照 CC BY 4.0 进行授权