LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: MatthewGong

将AVS1-P2 Decoder项目移植到linux下

[复制链接]
发表于 2006-5-9 10:59:37 | 显示全部楼层

AVS on PowerPC

Post by realtang
从表面上看,解码可以完成但渲染出错了。你使用X11作vo吗?
CPU占用情况如何?


CPU只使用了40%左右,vo是x11,分辨率是1024*768,with depth 24 and 32 bpp
渲染是谁做的AVS模块还是mplayer?
回复 支持 反对

使用道具 举报

发表于 2006-5-9 11:40:54 | 显示全部楼层
渲染是mplayer做的,试试别的vo吧。SDL,DFB,fbdev之类的。
试试把vd_avs.c中的init()函数改成这样:
       
priv_t *p = (priv_t*)malloc(sizeof(priv_t));
memset(p, 0, sizeof(priv_t));
p->vo_initialized = 0;
p->img_type = MP_IMGTYPE_EXPORT;
sh->aspect = 1.3333;
sh->context = p;
return mpcodecs_config_vo(sh,sh->disp_w,sh->disp_h,IMGFMT_I420);

0.0.2的没有提供正确的长宽比sh->aspect,可能会使渲染出现问题。
因为我没有avs的标准文档,所以无法知道系统头里面的长宽比到底是怎样约定的,所以暂时把它设死为4:3吧。
回复 支持 反对

使用道具 举报

发表于 2006-5-9 12:27:02 | 显示全部楼层
Post by realtang
渲染是mplayer做的,试试别的vo吧。SDL,DFB,fbdev之类的。
试试把vd_avs.c中的init()函数改成这样:
       
priv_t *p = (priv_t*)malloc(sizeof(priv_t));
memset(p, 0, sizeof(priv_t));
p->vo_initialized = 0;
p->img_type = MP_IMGTYPE_EXPORT;
sh->aspect = 1.3333;
sh->context = p;
return mpcodecs_config_vo(sh,sh->disp_w,sh->disp_h,IMGFMT_I420);

0.0.2的没有提供正确的长宽比sh->aspect,可能会使渲染出现问题。
因为我没有avs的标准文档,所以无法知道系统头里面的长宽比到底是怎样约定的,所以暂时把它设死为4:3吧。


没有变化,我的系统上不支持SDL,DFB。当我使用fbdev, 错误信息如下:
VIDEO:  [VSVA]  720x576  24bpp  25.000 fps  1498.2 kbps (182.9 kbyte/s)
==========================================================================
Opening video decoder: [libavs] Chinese AVS Video decoder libavs0.0.1
VDec: vo config request - 720 x 576 (preferred csp: Planar I420)
Could not find matching colorspace - retrying with -vf scale...
Opening video filter: [scale]
VDec: using Planar YV12 as output csp (no 0)
Movie-Aspect is 1.33:1 - prescaling to correct movie aspect.
SwScaler: using unscaled Planar YV12 -> BGR 24-bit special converter
VO: [fbdev] 720x576 => 768x576 BGR 24-bit
VDecoder init failed
Can't put VSCREENINFO: Invalid argument
FATAL: Cannot initialize video driver.
Cannot find codec matching selected -vo and video format 0x56535641

Read DOCS/HTML/en/codecs.html!
==========================================================================
回复 支持 反对

使用道具 举报

发表于 2006-5-9 15:05:49 | 显示全部楼层
你试试加上-vf format选项。
回复 支持 反对

使用道具 举报

发表于 2006-5-9 17:21:53 | 显示全部楼层

AVS on PowerPC

Post by realtang
你试试加上-vf format选项。


decode里有些代码没有考虑endian的问题,我找到了几处,还是有问题。没有办法确定是否找完了,看来是希望不大。

再请教一个问题,好像Mplayer在调用decode函数的时候,缓冲区里给出了一桢的数据,但是AVS的解码器在调用函数GetOneFrameBitsFromBuffer的时候需要根据下一桢的起始标志如000001b3,000001b6来判断本桢的结束,但是缓冲区里没有下一桢的数据,导致avs解码器出现问题。
回复 支持 反对

使用道具 举报

发表于 2006-5-11 19:20:05 | 显示全部楼层
数字时代-中国数字音视频网

http://www.chinaavs.com

中国人自已的AVS标准,请支持!
回复 支持 反对

使用道具 举报

发表于 2006-5-12 08:37:38 | 显示全部楼层
提一下自己的看法阿

如果把avs倒成avi格式,然后再进行播放,这是不是违背了原来那些作者们的意思呢?

因为对avi进行解码,这样根本体现不出来avs的优势阿

虽然可以在linux下播放avs文件了,可是背离了作者的初衷。

我觉得应该像发布的source 那样,直接做个linux下的播放器
回复 支持 反对

使用道具 举报

发表于 2006-5-12 09:11:16 | 显示全部楼层
Post by fengss
提一下自己的看法阿

如果把avs倒成avi格式,然后再进行播放,这是不是违背了原来那些作者们的意思呢?

因为对avi进行解码,这样根本体现不出来avs的优势阿

虽然可以在linux下播放avs文件了,可是背离了作者的初衷。

我觉得应该像发布的source 那样,直接做个linux下的播放器

这个也是没办法的是,ES流格式的东西必须放在某种容器里面,才能作为正式发布的文件。AVI只是一种容器而已。而AVS的容器格式的国家标准到现在也没有出。
我不知道为什么,AVS的进展那么缓慢。音频还没成为国家标准,系统部分(就是容器的格式)也没有,视盘部分就更没有了。
回复 支持 反对

使用道具 举报

发表于 2006-5-12 09:14:07 | 显示全部楼层
此外,有没有人用过rm52b?
和发布的源代码,哪个更好?
回复 支持 反对

使用道具 举报

发表于 2006-5-12 09:16:38 | 显示全部楼层
那个stream也太长了,有没有短一些的阿?

要不测试多麻烦阿
我现在显示的都1000帧了,屏幕还刷呢
回复 支持 反对

使用道具 举报

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

本版积分规则

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