极有可能是alsa的问题
这次的测试环境是1.2pre5。为了安装gnome环境,我必须编译gstreamer-plugins,而这个包需要一个avifile的包,我在编译时出了以下错误,这个错误在1.1下是不存在的。
rm -f .libs/avm_output.lo
g++ -DHAVE_CONFIG_H -I. -I. -I../../include -Wall -Wno-unused -I../../include -g -O2 -mcpu=i686 -march=i686 -ffast-math -fomit-frame-pointer -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -pipe -c avm_output.cpp-fPIC -DPIC -o .libs/avm_output.lo
../../include/avm_map.h: In member function `void
avm::AvmOutput::resetDebugLevels(int)':
../../include/avm_map.h:82: error: `class avm::avm_map<const char*, int,
avm::AvmOutput::AvmOutputPrivate::Less,
avm::AvmOutput::AvmOutputPrivate::Equal>::const_iterator' is protected
avm_output.cpp:154: error: within this context
make: *** Error 1
make: Leaving directory `/usr/src/mBuild/BUILD/avifile0.7-0.7.34/lib/common'
make: *** Error 1
make: Leaving directory `/usr/src/mBuild/BUILD/avifile0.7-0.7.34/lib'
make: *** Error 1
error: Bad exit status from /var/tmp/rpm-tmp.47494 (%build)
RPM build errors:
Bad exit status from /var/tmp/rpm-tmp.47494 (%build)
它的意思是说alsa有问题。当然,仅仅这么一个第三方的小东西是不会让我怀疑alsa的,但是紧接着又出了问题,这次我屏蔽掉了avifile组件来编译gstreamer-plugins,但是他也报告了错误,而这个错误同样也指向alsa
gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../gst-libs -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -pthread -I/usr/include/gstreamer-0.6 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libxml2 -DGST_DISABLE_DEPRECATED -g -Wall -O2 -g -pipe -march=i686 -c gstalsa.c -MT libgstalsa_la-gstalsa.lo -MD -MP -MF .deps/libgstalsa_la-gstalsa.TPlo-fPIC -DPIC -o libgstalsa_la-gstalsa.lo
gstalsa.c: In function `gst_alsa_set_params':
gstalsa.c:1099: error: too few arguments to function `snd_pcm_hw_params_get_channels'
gstalsa.c:1143: error: too few arguments to function `snd_pcm_hw_params_get_rate'
gstalsa.c:1145: error: too few arguments to function `snd_pcm_hw_params_get_format'
gstalsa.c:1147: error: too few arguments to function `snd_pcm_hw_params_get_periods'
gstalsa.c:1149: error: too few arguments to function `snd_pcm_hw_params_get_period_size'
gstalsa.c:1151: error: too few arguments to function `snd_pcm_hw_params_get_buffer_size'
gstalsa.c:1196: error: too few arguments to function `snd_pcm_hw_params_get_access'
make: *** Error 1
make: Leaving directory `/usr/src/mBuild/BUILD/gst-plugins-0.6.4/ext/alsa'
make: *** Error 1
make: Leaving directory `/usr/src/mBuild/BUILD/gst-plugins-0.6.4/ext'
make: *** Error 1
make: Leaving directory `/usr/src/mBuild/BUILD/gst-plugins-0.6.4'
make: *** Error 2
error: Bad exit status from /var/tmp/rpm-tmp.6055 (%build)
RPM build errors:
Bad exit status from /var/tmp/rpm-tmp.6055 (%build)
同样的问题又出现在以前从未出过问题的xmame上,遗憾的是这次我没有记录日志,没办法给大家演示了。
avifile这个小东东可能没什么代表性,但是gstreamer-plugins和xmame可是相当有影响力的,这两个东西要是报错,几乎就可以肯定了。gstreamer-plugin是gnome桌面环境下标配的多媒体接口,而xmame是著名的跨平台街机模拟器,对于unix架构操作系统他可以说是模拟圣人(mame)的代言人,而且这两个东西的声望一直都很好,这次报错可真叫我担心。
我想我现在有理由怀疑mplayer的问题其实是由alsa引起的,因为那个快捷方式里面有-ao alsa9这个参数。我只是希望alsa能尽快解决这些问题,只是不要太久。 应该不是alsa本身的问题,你看过我的FAQ没有?关于编译失败我的帖子里面有说明。 直接升级固然简单,但是不试着自己编译安装一遍怎么能发现其中深藏着的bug呢,再说了,如果xlonestar的站点上没有我需要的东西而又要手动安装,我该怎么办呢?
由于2.6内核把声音部分大量的剥离,而这部分是由alsa接手,而我用的声卡就是这种情况,所以我不可能再退回到alsa-0.9.x,以目前这种情况来看,大量的错误都指向同一个东西,应该是没什么值得怀疑的了……
页:
[1]