对技术执着
分类:
2015-03-14 17:09:36
原文地址:解决 WMA 解码器效率问题的方法论思考 作者:gliethttp
:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://kware.blogbus.com/logs/18589110.html
1. 解决 WMA 解码器效率问题的方法论思考
- 直奔目标如何? 敢否直接挑战?
- 考察 wma 文件的现 MPlayer 播放情况?
- 建立独立的 wma 的播放器如何,自己直接建立 makefile;
- 同时分析 wma 的解码过程;
- 原则上讲算法优化自身与目标机器无关,只有实施才考虑到机器指令与空间优化问题;
- 可否直接考虑在 Windows 下直接分析;
- 成功的话可在了解 ARM 指令集上的优化移植;
2. Miscs
./mplayer -ao oss:/dev/sound/dsp -vo fbdev -fb /dev/fb/0 1.wmv
./mplayer -nosound -vo fbdev -fb /dev/fb/0 1.wmv
./mplayer -ao oss:/dev/sound/dsp -ac mad AnotherPimension.mp3
3. MPlayer 的编译配置 ./configure -h
安装路径 Installation directories:
--prefix=DIR 将 mplayer 安装进该前缀 [/usr/local]
--bindir=DIR 将 mplayer 执行文件安装进该 bindir [PREFIX/bin]
--datadir=DIR 用该目录安装机器无关的数据文件(fonts, skins) [PREFIX/share/mplayer]
--mandir=DIR 用该目录安装手册文件 [PREFIX/man]
--confdir=DIR 用该目录安装配置文件 [PREFIX/etc/mplayer]
--libdir=DIR 目标代码目录 [PREFIX/lib]
可选特性 Optional features:
--disable-mencoder 关闭 mencoder(a/v编码器) 编译 [enable]
--enable-gui 使能 gmplayer编译(GTK1.2 GUI) [disable]
--enable-largefiles 使能大于 2G 文件支持 [disable]
--enable-linux-devfs 设置缺省设备为 devfs [disable]
--enable-termcap 使用 termcap 键码数据库 [autodetect]
--enable-termios 使用 termios 键码数据库 [autodetect]
--disable-iconv 不用 iconv(3) 函数 [autodetect]
--disable-setlocale 关闭 setlocale,使用 mplayer [autodetect]
--disable-langinfo 不使用语言信息 langinfo [autodetect]
--enable-lirc 使能 LIRC (远程控制) 支持 [autodetect]
--enable-lircc 使能 LIRCCD(客户守侯 client daemon) 输入 [autodetect]
--enable-joystick 使能游戏棒 joystick 支持 [disable]
--disable-vm 去掉 X 视频模式扩展支持 [autodetect]
--disable-xf86keysym 去掉“多媒体”键 [autodetect]
--disable-tv 去掉 TV 接口 (tv/dvb 采集器) [enable]
--disable-tv-v4l 去掉 Video4Linux TV 接口支持 [autodetect]
--disable-tv-v4l2 去掉 Video4Linux2 TV 接口支持 [autodetect]
--disable-tv-bsdbt848 去掉 BSD BT848 TV 接口支持 [autodetect]
--disable-edl 去掉剪辑清单支持 [enable]
--disable-rtc 去掉 Linux 上的 RTC(/dev/rtc) [autodetect]
--disable-network 关闭网络支持 (http/mms/rtp) [enable]
--enable-winsock2 使能 winsock2 使用 [autodetect]
--enable-smb 使能 Samba (SMB) 输入支持 [autodetect]
--enable-live 使能 LIVE.COM 流媒体支持 [autodetect]
--disable-dvdread 关闭 libdvdread 支持 [autodetect]
--disable-mpdvdkit 关闭 mpdvdkit/mpdvdkit2 支持 [autodetect]
--disable-cdparanoia 关闭 cdparanoia 支持 [autodetect]
--disable-freetype 关闭 freetype2 字体渲染支持 [autodetect]
--disable-fontconfig 关闭字体配置查找支持 [autodetect]
--disable-unrarlib 关闭 Unique RAR 文件库 [enabled]
--enable-menu 使能 OSD 菜单支持(非DVD菜单) [disabled]
--disable-sortsub 关闭字幕排序 [enabled]
--enable-fribidi 使能使用 FriBiDi 库 [disabled]
--disable-enca 关闭 ENCA 字符集使用 [autodetect]
--disable-macosx 关闭 Mac OS X 特定特性 [autodetect]
--enable-macosx-finder-support 使能 Mac OS X Finder 调用参数分析 [disabled]
--enable-macosx-bundle 使能 Mac OS X 绑定文件位置 [autodetect]
--disable-inet6 关闭 IPv6 支持 [autodetect]
--disable-gethostbyname2 获取机器名函数不由 C 库提供 [autodetect]
--disable-ftp 关闭 ftp 支持 [enabled]
--disable-vstream 关闭 tivo vstream 客户支持 [autodetect]
编解码器 Codecs:
--enable-gif 使能 gif 图象支持 [autodetect]
--enable-png 使能 png 输入输出支持 [autodetect]
--enable-jpeg 使能 jpeg 输入输出支持 [autodetect]
--enable-liblzo 使能外部 liblzo 支持 [autodetect]
--disable-win32 关闭 Win32 DLL 支持 [autodetect]
--disable-dshow 关闭 Win32/DirectShow 支持 [autodetect]
--disable-qtx 关闭 Quicktime 编解码器 [autodetect]
--disable-xanim 关闭 XAnim DLL 支持 [autodetect]
--disable-real 关闭 RealPlayer DLL 支持 [autodetect]
--disable-xvid 关闭 XviD 编解码器 [autodetect]
--disable-x264 关闭 H.264 编码器 [autodetect]
--disable-divx4linux 关闭 DivX4linux 编解码器 [autodetect]
--enable-opendivx 使能 老的 OpenDivx 编解码器 [disable]
--disable-libavcodec 关闭 libavcodec [autodetect]
--disable-libavformat 关闭 libavformat [autodetect]
--enable-libfame 使能 libfame 实时编码器 [autodetect]
--disable-internal-tremor 不构造内部整数 OggVorbis [enabled]
--enable-tremor-low 构造低精度的内部 tremor [disabled]
--enable-external-tremor 构造外部的 tremor [disabled]
--disable-vorbis 完全关闭 OggVorbis 支持 [autodetect]
--enable-theora 构造支持 OggTheora [autodetect]
--disable-internal-matroska 关闭内部的 Matroska 支持 [enabled]
--enable-external-faad 构造支持外部 FAAD2(AAC) [autodetect]
--disable-internal-faad 关闭内部的 FAAD2(AAC) 支持 [autodetect]
--disable-ladspa 关闭 LADSPA plugin 插件支持 [autodetect]
--disable-libdv 关闭 libdv 0.9.5编解码支持 [autodetect]
--disable-mad 关闭 libmad(MPEG audio) 支持 [autodetect]
--disable-toolame 关闭 Toolame(MPEG layer2 audio) 支持 [autodetect]
--enable-xmms 构造支持 XMMS 输入插件 [disabled]
--disable-mp3lib 关闭内置的 mp3lib [enabled]
--disable-liba52 关闭内置的 liba52 [enabled]
--enable-libdts 使能 libdts 支持 [autodetect]
--disable-libmpeg2 关闭内置的 libmpeg2 [enabled]
--disable-amr_nb 关闭 amr 窄带, 浮点 [autodetect]
--disable-amr_nb-fixed 关闭 amr 窄带, 定点 [autodetect]
--disable-amr_wb 关闭 amr 宽带, 浮点 [autodetect]
视频输出 Video output:
--disable-vidix 关闭 VIDIX [enable on x86 *nix]
--enable-gl 构造支持 OpenGL 渲染 [autodetect]
--enable-dga[=n] 构造支持 DGA [n in {1, 2}] [autodetect]
--enable-vesa 构造支持 VESA [autodetect]
--enable-svga 构造支持 SVGAlib [autodetect]
--enable-sdl 构造支持 SDL 渲染 [autodetect]
--enable-aa 构造支持 AAlib 渲染 [autodetect]
--enable-caca 构造支持 CACA 渲染 [autodetect]
--enable-ggi 构造支持 GGI 渲染 [autodetect]
--enable-directx 构造支持 DirectX [autodetect]
--enable-dxr2 构造支持 DXR2 渲染 [autodetect]
--enable-dxr3 构造支持 DXR3/H+ 渲染 [autodetect]
--enable-dvb 构造支持经由 DVB-Card 的输出 [autodetect]
--enable-dvbhead 构造支持 DVB(HEAD version) [autodetect]
--enable-mga 构造支持 mga_vid(for Matrox G200/G4x0/G550)
(check for /dev/mga_vid) [autodetect]
--enable-xmga 构造支持 mga_vid X Window
(check for X & /dev/mga_vid) [autodetect]
--enable-xv 构造支持 Xv 渲染 X 4.x [autodetect]
--enable-xvmc 构造支持 XvMC 加速 X 4.x [disable]
--enable-vm 构造支持 X11 下的 XF86VidMode [autodetect]
--enable-xinerama 构造支持 X11 下的 Xinerama [autodetect]
--enable-x11 构造支持 X11 下的渲染 [autodetect]
--enable-fbdev 构造支持 FBDev 渲染 [autodetect]
--enable-mlib 构造支持 Solaris 下的 MLIB [autodetect]
--enable-3dfx 构造支持陈旧的 /dev/3dfx [disable]
--enable-tdfxfb 构造支持 tdfxfb(Voodoo 3/banshee)[disable]
--enable-directfb 构造支持 DirectFB [autodetect]
--enable-zr 构造支持 ZR360[56]7/ZR36060 [autodetect]
--enable-bl 构造支持 Blinkenlights [disable]
--enable-tdfxvid 构造支持 tdfx_vid [disable]
--disable-tga 关闭 targa 输出支持 [enable]
--disable-pnm 关闭 pnm 输出支持 [enable]
--disable-md5sum 关闭 md5sum 输出支持 [enable]
音频输出 Audio output:
--disable-alsa 关闭 ALSA 声音支持 [autodetect]
--disable-ossaudio 关闭 OSS 声音支持 [autodetect]
--disable-arts 关闭 aRts 声音支持 [autodetect]
--disable-esd 关闭 esd 声音支持 [autodetect]
--disable-polyp 关闭 Polypaudio 声音支持 [autodetect]
--disable-jack 关闭 JACK 声音支持 [autodetect]
--disable-nas 关闭 NAS 声音支持 [autodetect]
--disable-sgiaudio 关闭 SGI 声音支持 [autodetect]
--disable-sunaudio 关闭 Sun 声音支持 [autodetect]
--disable-win32waveout 关闭 Windows waveout 声音支持 [autodetect]
--disable-select 关闭使用 select() 声音支持 [enable]
杂类选项 Misc options:
--enable-runtime-cpudetection 打开运行时CPU检测信息 [disable]
--cc=COMPILER 用该 C 编译器建立 MPlayer [gcc]
--host-cc=COMPILER 用该 C 编译器建立建立过程中用到的应用 [gcc]
--as=ASSEMBLER 使用该汇编器建立 MPlayer [as]
--target=PLATFORM 目标平台(i386-linux, arm-linux, etc)
--enable-static 建立静态连接二进制文件,可用以下方式设置进一步的连接选项:
--enable-static="-lslang -lncurses"
--charset 转化帮助信息到该字符集
--enable-shared-pp 安装并使用共享的后处理库
--with-install=PATH 使用客户安装程序
高级选项 Advanced options:
--enable-mmx 构造支持 MMX [autodetect]
--enable-mmx2 构造支持 MMX2 (PIII, Athlon) [autodetect]
--enable-3dnow 构造支持 3DNow! [autodetect]
--enable-3dnowex 构造支持 3DNow! 扩展 [autodetect]
--enable-sse 构造支持 SSE [autodetect]
--enable-sse2 构造支持 SSE2 [autodetect]
--enable-shm 构造支持 shm [autodetect]
--enable-altivec 构造支持 Altivec (PowerPC) [autodetect]
--disable-fastmemcpy 关闭3DNow!/SSE/MMX优化memcpy()[enable]
--enable-big-endian 强制字节对齐到 big-endian [autodetect]
--enable-debug[=1-3] 编译调试信息进 mplayer [disable]
--enable-profile 编译 profiling 信息进 mplayer [disable]
--disable-sighandler 关闭系统崩溃时的信号处理 [enable]
--enable-crash-debug 使能系统崩溃时的自动 gdb 附加 [disable]
--enable-i18n 打开国际字符集支持 gettext() [autodetect]
--enable-dynamic-plugins 打开动态 a/v 插件支持 [disable]
冒险的选项(不报任何错误!)
--disable-gcc-checking 关闭 gcc 版本检查 [enable]
当自动发现失败时用以下选项 (标记有 (*) 表示接受通过 ':' 分割的多路径):
--with-extraincdir=DIR 外部头(png, mad, sdl, ...)目录 DIR (*)
--with-extralibdir=DIR 外部库文件(png, mad, sdl, ...)目录 DIR (*)
--with-x11incdir=DIR X 头 DIR (*)
--with-x11libdir=DIR X 库文件 DIR (*)
--with-dxr2incdir=DIR DXR2 头 DIR (*)
--with-dvbincdir=DIR DVB 头 DIR (*)
--with-madlibdir=DIR libmad (libmad 共享库) DIR (*)
--with-mlibdir=DIR libmlib (MLIB 支持,仅限 Solaris) DIR (*)
--with-codecsdir=DIR 二进制编解码器文件 DIR
--with-win32libdir=DIR Windows 动态加载库 DLL 文件目录
--with-xanimlibdir=DIR XAnim DLL 文件 DIR
--with-reallibdir=DIR RealPlayer DLL 文件 DIR
--with-xvidlibdir=DIR libxvidcore (XviD) DIR (*)
--with-xvidincdir=DIR XviD 头 DIR (*)
--with-x264libdir=DIR libx264 DIR
--with-x264incdir=DIR x264 头 DIR
--with-dtslibdir=DIR libdts 库 DIR (*)
--with-dtsincdir=DIR libdts 头 DIR (*)
--with-livelibdir=DIR LIVE.COM 流媒体库 DIR
--with-toolamedir=DIR Toolame 包含和库目录 DIR
--with-xmmsplugindir=DIR XMMS 插件 DIR
--with-xmmslibdir=DIR libxmms.so.1 目录 DIR
--with-bio2jack=DIR libbio2jack.a 目录 DIR
--with-cdparanoiaincdir=DIR CD paranoia 头 DIR (*)
--with-cdparanoialibdir=DIR CD paranoia 库(libcdda_*) DIR (*)
--with-xvmclib=NAME 适配器特定库名(如 XvMCNVIDIA)
--with-termcaplib=NAME termcap 功能库名,应以 lib 开始,检查 "termcap" 和 "tinfo"
--with-freetype-config=PATH freetype 配置路径(如 /opt/bin/freetype-config)
--with-fribidi-config=PATH fribidi 配置路径(如 /opt/bin/fribidi-config)
--with-glib-config=PATH glib* 配置路径(如 /opt/bin/glib-config)
--with-gtk-config=PATH gtk* 配置路径(如 /opt/bin/gtk-config)
--with-sdl-config=PATH sdl* 配置路径(如 /opt/bin/sdl-config)