WelcomeWelcome | FAQFAQ | DownloadsDownloads | WikiWiki

Author Topic: Mplayer - mmx(2), sse(2) supported but disabled  (Read 11557 times)

Offline Misalf

  • Hero Member
  • *****
  • Posts: 1702
Mplayer - mmx(2), sse(2) supported but disabled
« on: February 28, 2015, 01:12:47 PM »
Mplayer is quite slow on my netbook when used with  -fs -zoom .
(VLC performs better in fullscreen but has more deps)
Not sure if it's much of a significance but it displays these messages on each launch:
Code: [Select]
MPlayer 1.1-4.9.1 (C) 2000-2012 MPlayer Team
MMX supported but disabled
MMX2 supported but disabled
SSE supported but disabled
SSE2 supported but disabled
Also I'd like to try using  mplayer -vo xv some-file.avi .

I'm trying to compile Mplayer svn, TC 6.1rc2, x86:

Code: [Select]
export CFLAGS="-march=i486 -mtune=i686 -O2 -pipe"
export CXXFLAGS="-march=i486 -mtune=i686 -O2 -pipe"
export LDFLAGS="-Wl,-O1"

Code: [Select]
./configure --prefix=/usr/local   --enable-sse --enable-sse2 --enable-mmx --enable-mmxext  --enable-xmms --disable-vidix  --enable-xv --enable-alsa --enable-fbdev  --disable-x264 --disable-x264-lavc && make && make DESTDIR=/tmp/mplayer install-strip

The usual compile tools are loaded as well as lots of -dev stuff including yasm, Xorg, x264 ...

make fails with:
Code: [Select]
CC libavcodec/h264_cabac.o
In file included from libavcodec/cabac_functions.h:46:0,
                 from libavcodec/h264_cabac.c:37:
libavcodec/cabac_functions.h: In function 'get_cabac_noinline':
libavcodec/x86/cabac.h:192:5: error: 'asm' operand has impossible constraints
     __asm__ volatile(
     ^
common.mak:57: recipe for target 'libavcodec/h264_cabac.o' failed
make[1]: *** [libavcodec/h264_cabac.o] Error 1
make[1]: Leaving directory '/tmp/mplayer-svn-src/mplayer/ffmpeg'
Makefile:745: recipe for target 'ffmpeg/libavcodec/libavcodec.a' failed
make: *** [ffmpeg/libavcodec/libavcodec.a] Error 2

Any help greatly appreciated.
Download a copy and keep it handy: Core book ;)

Offline Rich

  • Administrator
  • Hero Member
  • *****
  • Posts: 11704
Re: Mplayer - mmx(2), sse(2) supported but disabled
« Reply #1 on: February 28, 2015, 04:16:44 PM »
Hi Misalf
Try adding  --disable-asm  to  ./configure

Offline Misalf

  • Hero Member
  • *****
  • Posts: 1702
Re: Mplayer - mmx(2), sse(2) supported but disabled
« Reply #2 on: February 28, 2015, 04:45:31 PM »
Thanks.
Hmm, this could decrease run-time performance, right?
--disable-asm  is not available but I could do  --yasm='' .
Trying now with  --yasm=nasm .

EDIT:
Same error.
Trying  --yasm=''
« Last Edit: February 28, 2015, 05:02:02 PM by Misalf »
Download a copy and keep it handy: Core book ;)

Offline Misalf

  • Hero Member
  • *****
  • Posts: 1702
Re: Mplayer - mmx(2), sse(2) supported but disabled
« Reply #3 on: February 28, 2015, 05:41:06 PM »
Still ...

Code: [Select]
CC libavcodec/h264.o
CC libavcodec/h264_cabac.o
In file included from libavcodec/cabac_functions.h:46:0,
                 from libavcodec/h264_cabac.c:37:
libavcodec/cabac_functions.h: In function 'get_cabac_noinline':
libavcodec/x86/cabac.h:192:5: error: 'asm' operand has impossible constraints
     __asm__ volatile(
     ^
common.mak:57: recipe for target 'libavcodec/h264_cabac.o' failed
make[1]: *** [libavcodec/h264_cabac.o] Error 1
make[1]: Leaving directory '/tmp/mplayer-svn-src/mplayer/ffmpeg'
Makefile:745: recipe for target 'ffmpeg/libavcodec/libavcodec.a' failed
make: *** [ffmpeg/libavcodec/libavcodec.a] Error 2

\:
Download a copy and keep it handy: Core book ;)

Offline Rich

  • Administrator
  • Hero Member
  • *****
  • Posts: 11704
Re: Mplayer - mmx(2), sse(2) supported but disabled
« Reply #4 on: February 28, 2015, 08:13:58 PM »
Hi Misalf
I think that error is due to running out of registers, maybe try adding   -fomit-frame-pointer

Offline Misalf

  • Hero Member
  • *****
  • Posts: 1702
Re: Mplayer - mmx(2), sse(2) supported but disabled
« Reply #5 on: February 28, 2015, 10:05:00 PM »
Thanks Rich.
That error disappears after adding  -fomit-frame-pointer  to CFLAGS and CXXFLAGS .

It still doesn't finish though:
Code: [Select]
...
CC libavcodec/libschroedingerenc.o
CC libavcodec/libvorbisenc.o
CC libavcodec/libvpxdec.o
CC libavcodec/libvpxenc.o
libavcodec/libvpxenc.c: In function 'vpx_init':
libavcodec/libvpxenc.c:369:5: warning: 'rc_buffer_aggressivity' is deprecated (declared at libavcodec/avcodec.h:2339) [-Wdeprecated-declarations]
     enccfg.rc_undershoot_pct     = round(avctx->rc_buffer_aggressivity * 100);
     ^
libavcodec/libvpxenc.c:449:5: warning: 'mb_threshold' is deprecated (declared at libavcodec/avcodec.h:1820) [-Wdeprecated-declarations]
     if (avctx->mb_threshold) {
     ^
libavcodec/libvpxenc.c:452:9: warning: 'mb_threshold' is deprecated (declared at libavcodec/avcodec.h:1820) [-Wdeprecated-declarations]
         ctx->static_thresh = avctx->mb_threshold;
         ^
CC libavcodec/libxvid.o
libavcodec/libxvid.c: In function 'xvid_encode_init':
libavcodec/libxvid.c:373:5: error: unknown type name 'xvid_plugin_lumimasking_t'
     xvid_plugin_lumimasking_t masking_l       = { 0 }; /* For lumi masking */
     ^
libavcodec/libxvid.c:374:5: error: unknown type name 'xvid_plugin_lumimasking_t'
     xvid_plugin_lumimasking_t masking_v       = { 0 }; /* For variance AQ */
     ^
libavcodec/libxvid.c:563:18: error: request for member 'method' in something not a structure or union
         masking_l.method                          = 0;
                  ^
libavcodec/libxvid.c:575:18: error: request for member 'method' in something not a structure or union
         masking_v.method                           = 1;
                  ^
common.mak:57: recipe for target 'libavcodec/libxvid.o' failed
make[1]: *** [libavcodec/libxvid.o] Error 1
make[1]: Leaving directory '/tmp/mplayer-svn-src/mplayer/ffmpeg'
Makefile:745: recipe for target 'ffmpeg/libavcodec/libavcodec.a' failed
make: *** [ffmpeg/libavcodec/libavcodec.a] Error 2

By configuring with  --disable-xvid  it gets past this point but exits later with:
Code: [Select]
YASM libavutil/x86/emms.o
YASM libavutil/x86/float_dsp.o
CC libavutil/x86/float_dsp_init.o
YASM libavutil/x86/lls.o
CC libavutil/x86/lls_init.o
CC libavutil/xga_font_data.o
CC libavutil/xtea.o
AR libavutil/libavutil.a
make[1]: Leaving directory '/tmp/mplayer-svn-src/mplayer/ffmpeg'
cc -o mplayer command.o m_property.o mixer.o mp_fifo.o mplayer.o parser-mpcmd.o pnm_loader.o input/input.o libao2/ao_mpegpes.o libao2/ao_null.o libao2/ao_pcm.o libao2/audio_out.o libvo/aspect.o libvo/geometry.o libvo/video_out.o libvo/vo_mpegpes.o libvo/vo_null.o sub/spuenc.o libvo/vo_aa.o libao2/ao_alsa.o input/appleir.o libvo/vo_dga.o libvo/vo_fbdev.o libvo/vo_fbdev2.o libvo/vo_png.o libvo/vo_gif89a.o libvo/gl_common.o libvo/vo_gl.o libvo/csputils.o libvo/sdl_common.o libvo/x11_common.o libvo/vo_gl_tiled.o gui/util/bitmap.o gui/util/list.o gui/util/string.o gui/app/app.o gui/app/cfg.o gui/dialog/about.o gui/dialog/dialog.o gui/dialog/equalizer.o gui/dialog/fileselect.o gui/dialog/menu.o gui/dialog/msgbox.o gui/dialog/playlist.o gui/dialog/preferences.o gui/dialog/skinbrowser.o gui/dialog/tools.o gui/dialog/url.o gui/interface.o gui/skin/font.o gui/skin/skin.o gui/ui/actions.o gui/ui/main.o gui/ui/menu.o gui/ui/playbar.o gui/ui/render.o gui/ui/video.o gui/util/misc.o gui/wm/ws.o gui/wm/wsxdnd.o libvo/vo_jpeg.o libmenu/menu.o libmenu/menu_chapsel.o libmenu/menu_cmdlist.o libmenu/menu_console.o libmenu/menu_filesel.o libmenu/menu_list.o libmenu/menu_param.o libmenu/menu_pt.o libmenu/menu_txt.o libmenu/vf_menu.o libmenu/menu_dvbin.o libvo/vo_matrixview.o libvo/matrixview.o libvo/vo_md5sum.o udp_sync.o libao2/ao_openal.o libao2/ao_oss.o libvo/vo_pnm.o libao2/ao_sdl.o libvo/vo_sdl.o libvo/vo_tga.o libvo/vo_v4l2.o libao2/ao_v4l2.o libvo/vo_vdpau.o libvo/vo_cvidix.o libvo/vosub_vidix.o vidix/vidix.o vidix/drivers.o vidix/dha.o vidix/mtrr.o vidix/pci.o vidix/pci_names.o vidix/pci_dev_ids.o vidix/cyberblade_vid.o vidix/mach64_vid.o vidix/mga_vid.o vidix/mga_crtc2_vid.o vidix/nvidia_vid.o vidix/pm2_vid.o vidix/pm3_vid.o vidix/radeon_vid.o vidix/rage128_vid.o vidix/s3_vid.o vidix/sis_vid.o vidix/sis_bridge.o vidix/unichrome_vid.o libvo/vo_x11.o libvo/vo_xover.o libvo/vo_xv.o libvo/vo_xvidix.o libvo/vo_yuv4mpeg.o asxparser.o bstr.o codec-cfg.o cpudetect.o edl.o fmt-conversion.o m_config.o m_option.o m_struct.o mp_msg.o mp_strings.o mpcommon.o parser-cfg.o path.o playtree.o playtreeparser.o subopt-helper.o libaf/af.o libaf/af_center.o libaf/af_channels.o libaf/af_comp.o libaf/af_delay.o libaf/af_dummy.o libaf/af_equalizer.o libaf/af_extrastereo.o libaf/af_format.o libaf/af_gate.o libaf/af_hrtf.o libaf/af_karaoke.o libaf/af_pan.o libaf/af_resample.o libaf/af_scaletempo.o libaf/af_sinesuppress.o libaf/af_stats.o libaf/af_sub.o libaf/af_surround.o libaf/af_sweep.o libaf/af_tools.o libaf/af_volnorm.o libaf/af_volume.o libaf/filter.o libaf/format.o libaf/reorder_ch.o libaf/window.o libmpcodecs/ad.o libmpcodecs/ad_alaw.o libmpcodecs/ad_dk3adpcm.o libmpcodecs/ad_dvdpcm.o libmpcodecs/ad_hwac3.o libmpcodecs/ad_hwmpa.o libmpcodecs/ad_imaadpcm.o libmpcodecs/ad_msadpcm.o libmpcodecs/ad_pcm.o libmpcodecs/dec_audio.o libmpcodecs/dec_teletext.o libmpcodecs/dec_video.o libmpcodecs/img_format.o libmpcodecs/mp_image.o libmpcodecs/pullup.o libmpcodecs/vd.o libmpcodecs/vd_hmblck.o libmpcodecs/vd_lzo.o libmpcodecs/vd_mpegpes.o libmpcodecs/vd_mtga.o libmpcodecs/vd_null.o libmpcodecs/vd_raw.o libmpcodecs/vd_sgi.o libmpcodecs/vd_black.o libmpcodecs/vf.o libmpcodecs/vf_1bpp.o libmpcodecs/vf_2xsai.o libmpcodecs/vf_blackframe.o libmpcodecs/vf_boxblur.o libmpcodecs/vf_crop.o libmpcodecs/vf_cropdetect.o libmpcodecs/vf_decimate.o libmpcodecs/vf_delogo.o libmpcodecs/vf_denoise3d.o libmpcodecs/vf_detc.o libmpcodecs/vf_dint.o libmpcodecs/vf_divtc.o libmpcodecs/vf_down3dright.o libmpcodecs/vf_dsize.o libmpcodecs/vf_dvbscale.o libmpcodecs/vf_eq.o libmpcodecs/vf_eq2.o libmpcodecs/vf_expand.o libmpcodecs/vf_field.o libmpcodecs/vf_fil.o libmpcodecs/vf_filmdint.o libmpcodecs/vf_fixpts.o libmpcodecs/vf_flip.o libmpcodecs/vf_format.o libmpcodecs/vf_framestep.o libmpcodecs/vf_gradfun.o libmpcodecs/vf_halfpack.o libmpcodecs/vf_harddup.o libmpcodecs/vf_hqdn3d.o libmpcodecs/vf_hue.o libmpcodecs/vf_il.o libmpcodecs/vf_ilpack.o libmpcodecs/vf_ivtc.o libmpcodecs/vf_kerndeint.o libmpcodecs/vf_mirror.o libmpcodecs/vf_noformat.o libmpcodecs/vf_noise.o libmpcodecs/vf_ow.o libmpcodecs/vf_palette.o libmpcodecs/vf_perspective.o libmpcodecs/vf_phase.o libmpcodecs/vf_pp7.o libmpcodecs/vf_pullup.o libmpcodecs/vf_rectangle.o libmpcodecs/vf_remove_logo.o libmpcodecs/vf_rgbtest.o libmpcodecs/vf_rotate.o libmpcodecs/vf_sab.o libmpcodecs/vf_scale.o libmpcodecs/vf_smartblur.o libmpcodecs/vf_softpulldown.o libmpcodecs/vf_stereo3d.o libmpcodecs/vf_softskip.o libmpcodecs/vf_swapuv.o libmpcodecs/vf_telecine.o libmpcodecs/vf_test.o libmpcodecs/vf_tfields.o libmpcodecs/vf_tile.o libmpcodecs/vf_tinterlace.o libmpcodecs/vf_unsharp.o libmpcodecs/vf_vo.o libmpcodecs/vf_yadif.o libmpcodecs/vf_yuvcsp.o libmpcodecs/vf_yvu9.o libmpdemux/aac_hdr.o libmpdemux/asfheader.o libmpdemux/aviheader.o libmpdemux/aviprint.o libmpdemux/demuxer.o libmpdemux/demux_aac.o libmpdemux/demux_asf.o libmpdemux/demux_audio.o libmpdemux/demux_avi.o libmpdemux/demux_demuxers.o libmpdemux/demux_film.o libmpdemux/demux_fli.o libmpdemux/demux_lmlm4.o libmpdemux/demux_mf.o libmpdemux/demux_mkv.o libmpdemux/demux_mov.o libmpdemux/demux_mpg.o libmpdemux/demux_nsv.o libmpdemux/demux_pva.o libmpdemux/demux_rawaudio.o libmpdemux/demux_rawvideo.o libmpdemux/demux_realaud.o libmpdemux/demux_real.o libmpdemux/demux_roq.o libmpdemux/demux_smjpeg.o libmpdemux/demux_ts.o libmpdemux/demux_ty.o libmpdemux/demux_ty_osd.o libmpdemux/demux_viv.o libmpdemux/demux_vqf.o libmpdemux/demux_y4m.o libmpdemux/ebml.o libmpdemux/extension.o libmpdemux/mf.o libmpdemux/mp3_hdr.o libmpdemux/mp_taglists.o libmpdemux/mpeg_hdr.o libmpdemux/mpeg_packetizer.o libmpdemux/parse_es.o libmpdemux/parse_mp4.o libmpdemux/video.o libmpdemux/yuv4mpeg.o libmpdemux/yuv4mpeg_ratio.o osdep/getch2.o osdep/timer-linux.o stream/open.o stream/stream.o stream/stream_bd.o stream/stream_cue.o stream/stream_file.o stream/stream_mf.o stream/stream_null.o stream/url.o sub/eosd.o sub/find_sub.o sub/osd.o sub/spudec.o sub/sub.o sub/sub_cc.o sub/subreader.o sub/vobsub.o stream/ai_alsa.o stream/ai_oss.o sub/font_load.o stream/stream_cdda.o stream/cdinfo.o stream/dvb_tune.o stream/stream_dvb.o stream/stream_dvdnav.o stream/stream_dvd.o stream/stream_dvd_common.o libmpcodecs/ad_faad.o libvo/aclib.o av_helpers.o av_opts.o libaf/af_lavcac3enc.o libaf/af_lavcresample.o libmpcodecs/ad_ffmpeg.o libmpcodecs/ad_spdif.o libmpcodecs/vd_ffmpeg.o libmpcodecs/vf_geq.o libmpcodecs/vf_lavc.o libmpcodecs/vf_lavcdeint.o libmpcodecs/vf_screenshot.o libmpdemux/demux_lavf.o stream/stream_ffmpeg.o sub/av_sub.o libmpcodecs/vf_fspp.o libmpcodecs/vf_mcdeint.o libmpcodecs/vf_qp.o libmpcodecs/vf_spp.o libmpcodecs/vf_uspp.o sub/font_load_ft.o stream/stream_ftp.o libmpdemux/demux_gif.o libmpcodecs/vf_bmovl.o libaf/af_export.o osdep/mmap_anon.o libmpcodecs/vd_ijpg.o libmpcodecs/ad_liba52.o libmpcodecs/vf_ass.o sub/ass_mp.o sub/subassconvert.o libmpcodecs/ad_libdv.o libmpcodecs/vd_libdv.o libmpdemux/demux_rawdv.o libmpcodecs/ad_libmad.o libmpcodecs/vd_theora.o libmpcodecs/ad_mpg123.o stream/stream_rtsp.o stream/freesdp/common.o stream/freesdp/errorlist.o stream/freesdp/parser.o stream/librtsp/rtsp.o stream/librtsp/rtsp_rtp.o stream/librtsp/rtsp_session.o stream/stream_netstream.o stream/asf_mmst_streaming.o stream/asf_streaming.o stream/cookies.o stream/http.o stream/network.o stream/pnm.o stream/rtp.o stream/udp.o stream/tcp.o stream/stream_rtp.o stream/stream_udp.o stream/realrtsp/asmrp.o stream/realrtsp/real.o stream/realrtsp/rmff.o stream/realrtsp/sdpplin.o stream/realrtsp/xbuffer.o libmpcodecs/vd_mpng.o libmpcodecs/vf_pp.o stream/stream_pvr.o libmpcodecs/ad_qtaudio.o libmpcodecs/vd_qtvideo.o libmpcodecs/ad_realaud.o libmpcodecs/vd_realvid.o libmpcodecs/ad_speex.o stream/cache2.o stream/frequencies.o stream/stream_tv.o stream/tv.o stream/tvi_dummy.o stream/tvi_v4l2.o stream/audio_in.o sub/unrar_exec.o stream/stream_vcd.o libmpcodecs/ad_libvorbis.o libmpdemux/demux_ogg.o loader/wrapper.o loader/elfdll.o loader/ext.o loader/ldt_keeper.o loader/module.o loader/pe_image.o loader/pe_resource.o loader/registry.o loader/resource.o loader/win32.o libmpcodecs/ad_acm.o libmpcodecs/ad_dmo.o libmpcodecs/ad_dshow.o libmpcodecs/ad_twin.o libmpcodecs/vd_dmo.o libmpcodecs/vd_dshow.o libmpcodecs/vd_vfw.o libmpcodecs/vd_vfwex.o libmpdemux/demux_avs.o loader/afl.o loader/drv.o loader/vfl.o loader/dshow/DS_AudioDecoder.o loader/dshow/DS_Filter.o loader/dshow/DS_VideoDecoder.o loader/dshow/allocator.o loader/dshow/cmediasample.o loader/dshow/graph.o loader/dshow/guids.o loader/dshow/inputpin.o loader/dshow/mediatype.o loader/dshow/outputpin.o loader/dmo/DMO_AudioDecoder.o loader/dmo/DMO_VideoDecoder.o loader/dmo/buffer.o loader/dmo/dmo.o loader/dmo/dmo_guids.o libmpcodecs/vd_xanim.o libmpdemux/demux_xmms.o osdep/shmem.o ffmpeg/libpostproc/libpostproc.a ffmpeg/libavfilter/libavfilter.a ffmpeg/libavformat/libavformat.a ffmpeg/libavcodec/libavcodec.a ffmpeg/libswscale/libswscale.a ffmpeg/libswresample/libswresample.a ffmpeg/libavutil/libavutil.a -Wl,--version-script,binary.ver -Wl,-z,noexecstack  -Wl,-O1 -pie   -lncurses -lrt -lpng -lz -ljpeg -lgif -lasound -ldl -lpthread -L/usr/local/lib -ldvdread -lcdio_cdda -lcdio -lcdio_paranoia  -L/usr/local/lib -lfreetype -lz -lfontconfig  -L/usr/local/lib -lfribidi -lglib-2.0  -lass -lenca -lz -lbz2 -llzo2 -lmad -lvorbisenc -lvorbis -logg -lspeex -lgsm -ltheoradec -logg -lmpg123 -la52 -lfaad -L/usr/local/lib -lopus  -ldv -L/usr/local/lib -lschroedinger-1.0  -lvpx /usr/local/lib/libxmms.so.1 -export-dynamic -lpthread -ldl -rdynamic -L/usr/local/lib -L/usr/local/lib -L/usr/local/lib -ldvdnav -L/usr/local/lib -ldvdread -lpthread -lm   -lXext -lX11 -lpthread -lXss -lXv -lvdpau -lXinerama -lXxf86vm -lXxf86dga -laa -lSDL -lGL -ldl -lEGL -ldl -lopenal -lfaac -lmp3lame -lgtk-x11-2.0 -lgdk-x11-2.0 -lpangocairo-1.0 -lgio-2.0 -lXrender -lXinerama -lXrandr -lXcursor -lXcomposite -lXdamage -lXfixes -lX11 -lXext -latk-1.0 -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lpangoft2-1.0 -lpango-1.0 -lm -lgobject-2.0 -lglib-2.0 -lfontconfig -lfreetype -lglib-2.0
ffmpeg/libavcodec/libavcodec.a(dcadec.o): In function `dca_decode_init':
dcadec.c:(.text.unlikely+0x383): undefined reference to `ff_fmt_convert_init'
ffmpeg/libavcodec/libavcodec.a(ac3dec_fixed.o): In function `ac3_decode_init':
ac3dec_fixed.c:(.text.unlikely+0x2ec): undefined reference to `ff_fmt_convert_init'
ffmpeg/libavcodec/libavcodec.a(ac3dec_float.o): In function `ac3_decode_init':
ac3dec_float.c:(.text.unlikely+0x2ec): undefined reference to `ff_fmt_convert_init'
collect2: error: ld returned 1 exit status
Makefile:752: recipe for target 'mplayer' failed
make: *** [mplayer] Error 1
« Last Edit: February 28, 2015, 10:11:04 PM by Misalf »
Download a copy and keep it handy: Core book ;)

Offline Juanito

  • Administrator
  • Hero Member
  • *****
  • Posts: 14851

Offline Misalf

  • Hero Member
  • *****
  • Posts: 1702
Re: Mplayer - mmx(2), sse(2) supported but disabled
« Reply #7 on: March 01, 2015, 10:12:59 AM »
Thanks Juanito.

I don't know how to use that file.
I guess it can be given as input file to a certain program?

Anyway, I executed this line, from above file, in mplayer source dir:
Code: [Select]
find . -name Makefile -type f -exec sed -i 's/-O2//g' {} \;

I added  --disable-big-endian  to  ./configure

and edited  HAVE_...  variables in  config.mak
Code: [Select]
HAVE_FAST_CMOV = no
HAVE_I686 = yes
HAVE_FAST_CLZ = no

and  /* CPU stuff */  in  config.h .
Code: [Select]
#undef WORDS_BIGENDIAN
...
#define HAVE_FAST_CMOV 0
#define HAVE_I686 1
#define HAVE_FAST_CLZ 0

"make" still fails with the same error as shown in my last post (By configuring with  --disable-xvid).

--

Is  HAVE_I686  the same as  HAVE_CMOV ? There is no  HAVE_CMOV  in the  config.*  files but  HAVE_I686  is at that position.
Should I do this?
Code: [Select]
HAVE_I686 = no
Code: [Select]
#define __CPU__ 486
...
#define HAVE_I686 0

I'm preferring speed over size or CPU compatibility. At least for now.
Download a copy and keep it handy: Core book ;)

Offline Rich

  • Administrator
  • Hero Member
  • *****
  • Posts: 11704
Re: Mplayer - mmx(2), sse(2) supported but disabled
« Reply #8 on: March 01, 2015, 10:35:05 AM »
Hi Misalf
686 doesn't have SSE2, try  --disable-sse2. Are building this to submit to the repository or for yourself?

Offline Misalf

  • Hero Member
  • *****
  • Posts: 1702
Re: Mplayer - mmx(2), sse(2) supported but disabled
« Reply #9 on: March 01, 2015, 10:40:55 AM »
Thanks Rich.
I'll try that next.

I'm compiling this for myself to see if I can get better performance / less choppy playback.
For submitting it should be 468?
Download a copy and keep it handy: Core book ;)

Offline Rich

  • Administrator
  • Hero Member
  • *****
  • Posts: 11704
Re: Mplayer - mmx(2), sse(2) supported but disabled
« Reply #10 on: March 01, 2015, 10:47:23 AM »
Hi Misalf
Yes, submitted extensions should be compiled with  -march=i486 -mtune=i686  so they are 486 compatible.
For a personal extension, try  -march=native -mtune=native

Offline Misalf

  • Hero Member
  • *****
  • Posts: 1702
Re: Mplayer - mmx(2), sse(2) supported but disabled
« Reply #11 on: March 01, 2015, 12:02:58 PM »
I do compile with  -march=i486 -mtune=i686

The generated  config.h  file contains  #define __CPU__ 686
(also with  -march=native -mtune=native)
Should this be changed to  #define __CPU__ 486  if more compatibility is desired?
(I wouldn't like to be limited to just this box to use this build on; would be ok for now though)

Or should this be changed to the architecture I'm apparently compiling on (i386)?
Code: [Select]
Detected host architecture: i386
Checking for cross compilation ... no
Checking for host cc ... cc
Checking for CPU vendor ... GenuineIntel (6:28:2)
Checking for CPU type ...  Intel(R) Atom(TM) CPU N270   @ 1.60GHz
Checking for kernel support of mmx ... yes
Checking for kernel support of mmxext ... yes
Checking for kernel support of sse ... yes
Checking for kernel support of sse2 ... yes
Checking for kernel support of sse3 ... yes
Checking for kernel support of ssse3 ... yes
Checking for kernel support of cmov ... yes
« Last Edit: March 01, 2015, 12:05:17 PM by Misalf »
Download a copy and keep it handy: Core book ;)

Offline curaga

  • Administrator
  • Hero Member
  • *****
  • Posts: 11050
Re: Mplayer - mmx(2), sse(2) supported but disabled
« Reply #12 on: March 02, 2015, 12:27:53 PM »
Mplayer has some specific points:
- like all development the SVN/trunk is occasionally broken, try starting from a known working source tarball from the 5.x tcz/src
- mplayer explicitly warns against setting *FLAGS, and for good reason, the assembly files need different flags etc. If you enable the dynamic cpu detection, it will be submittable.
The only barriers that can stop you are the ones you create yourself.

Offline Misalf

  • Hero Member
  • *****
  • Posts: 1702
Re: Mplayer - mmx(2), sse(2) supported but disabled
« Reply #13 on: March 04, 2015, 12:33:56 PM »
Thanks, curaga.
I did that and it finished compiling.

Got the source from  http://tinycorelinux.net/6.x/x86/tcz/src/mplayer/  though.

I have cleared *FLAGS but added respective parameters to ./configure, as its output strongly recommends (doh!).

Also using  -fomit-frame-pointer  as suggested by Rich (because it sounds quite useful even if making debugging impossible, while the compiled files will get stripped anyway, right?), and maybe some tweaks from  .../tcz/src/mplayer/compile_mplayer  as suggested by Juanito (I'd actually rather not mess with these settings though).

Performance has increased drastically! Also with x11 and framebuffer. (:


Now I have a quite bloated MPlayer which I need to rebuild to be smaller and have less deps (and add dynamic cpu detection).
Also will do more testing of different file types. If it works out well, I'll first contact the current mplayer extension maintainer before making any attempts to submit. Maybe s/he want's to continue maintenance.

Cheers.
Download a copy and keep it handy: Core book ;)

Offline Misalf

  • Hero Member
  • *****
  • Posts: 1702
Re: Mplayer - mmx(2), sse(2) supported but disabled
« Reply #14 on: April 06, 2015, 03:42:58 PM »
So, I'm actually trying to create a submittable build of MPlayer.

Code: [Select]
./configure --enable-runtime-cpudetection --extra-cflags="-march=i486 -mtune=i686 -O2 -pipe -fomit-frame-pointer" --extra-ldflags="-Wl,-O1" ...
I hope that's OK so far? Like the  -O2  flag.

I'll do one version with OSD menu.
If needed, I can also do another version without OSD menu but with GUI support (GMPlayer).

Now I need you guys to tell me if a certain feature is important to be included, and what features are more or less useless or redundant.

For example, should I compile with  libbluray  or will it play blu-ray disks just fine without that dependency?
I'd say  aalib.tcz  (ASCII Art) is pretty much useless?

Also, OpenGL and VDPAU?
Building with GIF failed. If needed, I look into it.
MNG and libschroedinger-lavc failed as well.


This is a list of what the MPlayer developers think MUST be included.
Not sure about  tdfxfb . Everything else seems OK but I'll have yet to take a closer look.
Quote
* audio/video output
  - fbdev
  - JPEG/PNG/TGA
  - (X)MGA
  - OSS
  - tdfxfb
  - (c/x)vidix
  - X11/Xvideo

* codecs
  - libavcodec(internal)
  - native codecs (libmpeg2/mp3lib)
  - Vorbis Tremor codec(internal)
  - RealPlayer codecs support (*)
  - Win32/VfW/DShow/QT codecs support (*)
  - XAnim codecs support (*)

* general:
  - FreeType fonts support
  - HTML documentation
  - large file support
  - man page(s)

* input/demuxers:
  - DVD(libdvdread4/libdvdnav)
  - streaming
  - Matroska(internal)
  - (S)VCD
  - tv(v4l/v4l2)

(*) if available for your OS/hardware

Currently, the .dep file looks as follows (but hasn't been tested to be complete!):
Code: [Select]
ncurses.tcz
libpng.tcz
libjpeg-turbo.tcz
libasound.tcz
fontconfig.tcz
libcdio.tcz
fribidi.tcz
libass.tcz
lzo.tcz
libmad.tcz
speex.tcz
libtheora.tcz
mpg123.tcz
liba52.tcz
faad.tcz
libdv.tcz
libvpx.tcz
aalib.tcz
SDL.tcz
libopenal.tcz
libXss.tcz
libXinerama.tcz
libXxf86vm.tcz
libXxf86dga.tcz

Download a copy and keep it handy: Core book ;)