av_read_frame 连续读包出现EOF的问题

昨天发现的问题,在解码ape文件的时候,解码没几回就出现了EOF,但是文件肯定是还没有读完的。一开始以为是解码出现的问题,后来测试其他格式的文件解码没有问题,唯独ape这块儿有这个问题。

今天调试的时候,发现ape读出来的paket size很大,而且发现通过avcodec_decode_audio4来解码数据的时候,返回值总是0。于是猜想,是不是可能包没有解码玩就丢弃了。

然后,通过进一步调试,发现自己解码的处理逻辑上有点问题(在原有的处理逻辑下,数据包只会循环解码2次就丢弃了,根本没有去判断这个数据包是否还可以继续解码)。修改了下逻辑,再次运行,果然没有问题了。

至于ape文件解码,为什么连续读包就出现EOF的原因,只是测试了下packet的使用情况,并没有时间去深入源码去看了。

测试结果如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值