VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1435|回复: 8

xvid解码时提示Division by zero或Access violation的错误该如何解决?

[复制链接]

1

主题

4

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-2-9 18:30:01 | 显示全部楼层 |阅读模式
1.我使用xvid mpeg-4 codec filter编码后网络发送数据、从网络接收数据后用xvid mpeg-4 video decoder filter解码.就算编码参数使用默认值,只要有b帧,解码时当出现第2个i帧时就会出现Division by zero的错误.把max_bframes设为0则不会出现任何问题,其实这也是禁止编码b帧.解码时能够保证是从i帖开始解码、并且数据没有错误.

2.当我不使用xvid filter,而直接使用xvidcore.dll提供的api解压缩数据时则会出现Access violation的错误.错误就发生在xvidcore的
decoder_bframe(dec, &bs, quant, fcode_forward, fcode_backward)这个函数中,
并且是
MACROBLOCK *mb = &dec->mbs[y * dec->mb_width + x];
MACROBLOCK *last_mb = &dec->last_mbs[y * dec->mb_width + x];
mb,last_mb里面的某些变量没有设置值.


请问这些该如何解决,大家提示下.
谢谢了.
回复

使用道具 举报

0

主题

15

帖子

12.00

积分

新手上路

Rank: 1

积分
12.00
发表于 2020-4-8 14:15:01 | 显示全部楼层
首先,xvid的解码器肯定不会有问题,或者说可能性非常小!
于是问题出在编码器或者网络传输上,后者的可能性非常大!
回复

使用道具 举报

1

主题

4

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
 楼主| 发表于 2020-4-11 09:15:01 | 显示全部楼层
to 爱萱儿:

为了避免网络传输造成的问题,我先做了一个测试,把编码后的数据存在本地一个buf,然后从这个buf中读数据解码后显示,因此数据应该不存在问题,即便这样,问题还是存在.

谢谢你的回复!
回复

使用道具 举报

0

主题

15

帖子

12.00

积分

新手上路

Rank: 1

积分
12.00
发表于 2020-4-14 16:30:01 | 显示全部楼层
先排除网络问题!单纯的把编码出来的数据给解码器,看看是否有问题!
回复

使用道具 举报

1

主题

4

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
 楼主| 发表于 2020-4-19 22:45:01 | 显示全部楼层
to 爱萱儿:

"先排除网络问题!单纯的把编码出来的数据给解码器,看看是否有问题!"

已经是这样做了,但还是存在这样的问题.
回复

使用道具 举报

0

主题

15

帖子

12.00

积分

新手上路

Rank: 1

积分
12.00
发表于 2020-4-26 19:30:01 | 显示全部楼层
那就是确定解码器的问题了?
是这样吗?
那你把你录下来的m4v文件发给我,我帮你看看是不是xvid的解码器问题!
回复

使用道具 举报

0

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-5-4 07:45:01 | 显示全部楼层
自己写的程序有bug,或者xvid设定有问题
回复

使用道具 举报

1

主题

4

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
 楼主| 发表于 2020-6-1 03:30:01 | 显示全部楼层
是我的问题,在把编码后的数据送入buf时,如果buf满了就没送入.
结果解码就有问题.

想问下大家,编码类型为p,b的帧可以丢弃吗?i帧呢?
回复

使用道具 举报

0

主题

15

帖子

12.00

积分

新手上路

Rank: 1

积分
12.00
发表于 2020-8-4 15:30:01 | 显示全部楼层
理论上,所有的帧都可以丢!
只是解码出来的图像没法看而已了,I帧最好别丢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表