libdvbpsi1.0.0 pre2/pre3的一个小bug

在使用libdvbpsi进行dvbdemo开发时,解决了NIT表section接收不完整的问题。通过与开发组合作,修复了dvbpsi_decoder_psi_sections_completed函数的逻辑错误,确保了section完整接收。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    最近把libdvbpsi应用到了个人的dvb demo开发中,用来分析各种SI信息真是舒服之极,任何字段、描述符手到擒来,不用再一个字节一个字节的去扣详细信息。

    开始时一切顺利,在做NIT表分析时,却发现在大多数情况下,NIT携带的数据只能处理一小部分。查了一下,NIT表在我的网络里分为俩个section,dvbpsi收到last section后就调用了我的回调函数,而不管是否收齐了所有的section。经查,dvbpsi_decoder_psi_sections_completed函数用于判断一个table的section是否已经收齐,但其中的判断条件居然是只要有一个section的section number等于last section number,就认为table已经收齐...。这在基于数据轮播(Data Carousel)dvb网络里完全错误的做法,因为用户可能在任意时间点来接收SI信息,而且dvbpsi的section注入是以ts packet为单位的,在这时section信息尚未解析,使用者不可能严格按照section number的顺序注入ts数据。通过根开发组的沟通,并提出修改建议,很快有了回应并给出一个patch让我测试,结果顺利解决问题,修改将在官方的pre4版中发布。

    至此,也算是在开源世界出了一点力吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值