LinuxSir.cn,穿越时空的Linuxsir!

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

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

[复制链接]
发表于 2006-5-12 09:22:59 | 显示全部楼层
可不可以把avs source 也做成rm52b 那样的阿,可是对文件操作,内存那些不太熟悉,哪位能不能做个修改阿
回复 支持 反对

使用道具 举报

发表于 2006-5-16 15:58:21 | 显示全部楼层

AVS works on PowerPC platform

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

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


AVS现在可以在PowerPC平台上跑了,但是速度好像有点慢。请问,mplayer显示的信息
V: xxx 7390/7390 200% 40% 0% 0 0
是什么意思?
回复 支持 反对

使用道具 举报

发表于 2006-5-16 16:32:39 | 显示全部楼层
祝贺你移植AVS到PowerPC上成功,能否把改后的代码让大家也分享一下。我也可以把它并入mplayer-avs_0.0.3中去。
回复 支持 反对

使用道具 举报

发表于 2006-5-17 13:16:16 | 显示全部楼层

AVS on PowerPC

Post by realtang
祝贺你移植AVS到PowerPC上成功,能否把改后的代码让大家也分享一下。我也可以把它并入mplayer-avs_0.0.3中去。


从哪里可以看出来我的系统每秒播放的帧数? 谢谢!

1. vd_avs.c

109c117,119
<               if( GetOneFrameBitsFromBuffer(data + used, len, &dwFrameLen, &dw
NouseDataLen) != 1      )
---
>               dwNouseDataLen = 0;
>               if( GetOneFrameBitsFromBuffer(data + used, len-used, &dwFrameLen
, &dwNouseDataLen) != 1 )

2. vlc.h里的所有字符数组定义由const char 改成const signed char

3. global.h 我直接修改了函数DWORD_SWAP,我想这个函数需要根据平台的字节序来定义

4. avsdeclib.cpp
135,136d135
< //zhusj
<     iBufLen = iLeft;

5. decode.cpp
InitDecode()里:从  if((dwCode & 0x00FFFFFF) == 0x00010000)改成了   if((dwCode & 0xFFFFFF00) == 0x00000100),需要根据平台的字节序来定义

6. global.cpp 需要根据平台的字节序来定义
114,120c112,114
< //    ((*(AVS_DWORD *)pbCurrent) != 0xB3010000) &&
< //    ((*(AVS_DWORD *)pbCurrent) != 0xB6010000) &&
< //    ((*(AVS_DWORD *)pbCurrent) != 0xB1010000)
<     ((*(AVS_DWORD *)pbCurrent) != 0x000001B3) &&
<     ((*(AVS_DWORD *)pbCurrent) != 0x000001B6) &&
<     ((*(AVS_DWORD *)pbCurrent) != 0x000001B1)
---
>     ((*(AVS_DWORD *)pbCurrent) != 0xB3010000) &&
>     ((*(AVS_DWORD *)pbCurrent) != 0xB6010000) &&
>     ((*(AVS_DWORD *)pbCurrent) != 0xB1010000)

7. vlc.cpp
改变数组定义
//char AVS_2DVLC_INTRA_dec[7][64][2]={{{-1,-1}}};
//char AVS_2DVLC_INTER_dec[7][64][2]={{{-1,-1}}};
//char AVS_2DVLC_CHROMA_dec[5][64][2]={{{-1,-1}}};
signed char AVS_2DVLC_INTRA_dec[7][64][2]={{{-1,-1}}};
signed char AVS_2DVLC_INTER_dec[7][64][2]={{{-1,-1}}};
signed char AVS_2DVLC_CHROMA_dec[5][64][2]={{{-1,-1}}};
回复 支持 反对

使用道具 举报

发表于 2006-5-17 13:55:08 | 显示全部楼层

mplayer-avs_0.0.3 now emerge!(thanks to ncicorient)

增加了对PowerPC的支持,也许Mac机上的mplayer可以支持AVS文件播放了吧,谁有兴趣帮忙测一下。
受影响的文件是
libavs中的global.h,decode.cpp,global.cpp三个。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2006-5-21 13:05:38 | 显示全部楼层
有没有人有音频部分的标准?
回复 支持 反对

使用道具 举报

发表于 2006-5-22 17:01:51 | 显示全部楼层
好东西
不知道能不能在64位的LINUX下运行
回复 支持 反对

使用道具 举报

发表于 2006-5-22 18:26:13 | 显示全部楼层
请教各位,我怎么在LINUX下跑不起来
麻烦各位高手出出招
谢谢了
回复 支持 反对

使用道具 举报

发表于 2006-5-27 20:07:41 | 显示全部楼层
我在sourceforge开了一个 OpenAVS 的项目。 https://sourceforge.net/projects/openavs/

大家可以去下载1.0.1版的解码库。 支持GNU的build系统,支持GCC 4.
回复 支持 反对

使用道具 举报

发表于 2006-6-12 22:08:15 | 显示全部楼层
Post by lionel
我在sourceforge开了一个 OpenAVS 的项目。 https://sourceforge.net/projects/openavs/

大家可以去下载1.0.1版的解码库。 支持GNU的build系统,支持GCC 4.


  老兄不要只是放两个源码包啊!你要知道不是每个想用AVS解码器的人都会编译或者干脆懒得编译的,不要管它效率性能等等问题,至少分别编译Windows和Linux下能用的解码器放上去,让大家对AVS有个感性的认知。
  还有我把这个帖子认真看完了,大多都在讨论Linux下的应用。可我认为要是能编译一个在Windows下MPC和KMP能调用的解码器出来能大大增加用户使用量。
  还想说一句,别管这个AVS是国家还是国际校准、国人自信心足不足、老外用不用。当年MP3和Xvid也没见它们去争什么国家国际校准,用户多了现在还不是成为了事实校准!!!AVS没有开源前咱们老百姓还真的帮不上什么帮,现在不同了,开源了可以把解码器做做好扩大用户量嘛。那帮拿皇粮的做个根本不能安装高清解码器也敢高高挂在主页上?
回复 支持 反对

使用道具 举报

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

本版积分规则

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