Open alexliyu7352 opened 1 year ago
什么文件触发的,能把ts文件上传吗?
从代码逻辑看,没有全局状态,s是从输入的data里读的,s/reader/pkhd都是局部变量,甚至pes的值也是从data里解析出来的,不应该不能恢复状态。
很难复现这个问题.是我通过日志发现的. 我也认真的阅读了您的代码, 从逻辑上看, 这些应该都属于局部变量. 也就是再次调用ts_demuxer_input应该不会再次触发才对. 但是实际上接下去会一直不停的触发. 所以我现在捕捉错误后, 按照以下流程重新创建demuxer后就不在触发了. ts_demuxer_destroy ts_demuxer_create ts_demuxer_set_notify
我现在不排除是程序其他逻辑上的问题.但是仔细检查后并没有发现有不妥的地方.
当这里触发assert后, 如果捕捉了错误或者忽略了assert后, 后续的所有的流都将不停的触发这里. 看调试是s的值不对.并且始终无法再次恢复.
failed:Assertion failed: (0), function ts_demuxer_input, file /home/alex/CLionProjects/media_server/3rdpart/media-server/libmpeg/source/mpeg-ts-dec.c, line 253.
场景是拉取hls并转成mpegts, 中间某个切片出现了问题后, 导致后续拉取正常的切片也会不停的触发这, 没办法恢复状态. 所以这里如何重置状态呢?毕竟后续的切片都是正常的切片了.