@feanor Ok, a difference between theory and reality I did read things like that about that in Altivec related documents but only store instructions (dstst) were discouraged (potentially using dcbz to clear memory aimed to be written, avoiding fetching data from RAM).
@tommysammy How do you get those numbers? I only get 17fps according to output.
Quote:
@Hans
I checked Prometheus trailer again. It runs here with 19fps and not 21 fps.My fault. I read somewhere that there is room for optimization for graphic.library and RadeonHD driver. Maybe i am wrong.
What command line options are you using when testing? Antique is using none, which may be part of the problem. For example, I just had a video play back rather jerkily with the default audio output. That went away as soon as I switched to the AHI output (-ao ao_ahi).
@Antique Quote:
How do you get those numbers? I only get 17fps according to output.
While waiting for Tommysammy to reply with his command line options, you might want to experiment with this yourself.
Output from MPlayerGui LiveForIt-MPlayer-6.4 SVN-r37230-snapshot-1.1.1 (C) 2000-2014 MPlayer Team
Playing Media:Filme/Prometheus.mp4. Cache fill: 0.00% (0 bytes) Select error: No such file or directory AmigaOS4.1 Bug select() don't reset or set errno value Cache fill: 19.84% (2031616 bytes)
libavformat version 55.33.100 (internal) libavformat file format detected. [mov,mp4,m4a,3gp,3g2,mj2 @ 0x4a6f0bf8]stream 0, timescale not set Cache not responding! [performance issue] [lavf] stream 0: video (h264), -vid 0 [lavf] stream 1: audio (aac), -aid 0, -alang eng [lavf] stream 2: video (mjpeg), -vid 1 VIDEO: [H264] 1920x816 24bpp 23.976 fps 6828.3 kbps (833.5 kbyte/s) Clip info: major_brand: mp42 minor_version: 0 compatible_brands: mp42isomavc1 creation_time: 2011-12-23 08:24:51 genre: Trailer artist: 20th Fox title: Prometheus - Trailer encoder: HandBrake 4344svn 2011111001 date: 2012 Load subtitles in Media:Filme/ Select error: No such file or directory AmigaOS4.1 Bug select() don't reset or set errno value VO: [comp_yuv2] Welcome man !. ========================================================================== Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family libavcodec version 55.52.102 (internal) Selected video codec: [ffh264] vfm: ffmpeg (FFmpeg H.264) ========================================================================== ========================================================================== Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders AUDIO: 44100 Hz, 2 ch, floatbe, 154.4 kbit/5.47% (ratio: 19305->352800) Selected audio codec: [ffaac] afm: ffmpeg (FFmpeg AAC (MPEG-2/MPEG-4 Audio)) ========================================================================== Not supported audio format 0000001c Endian: BE Signed: Yes Float: Yes Bits: 32 Special Type: 0 Using Format AF_FORMAT_S16_BE AHI: Sound format 28 not supported by this driver. AO: [ahi_dev] 44100Hz 2ch s16be (2 bytes per sample) Starting playback... libmpcodecs/vd.c:mpcodecs_config_vo:d Movie-Aspect is 1.78:1 - prescaling to correct movie aspect. VO: [comp_yuv2] 1920x816 => 1920x1080 Planar YV12 ** your forceing aspect to 1.78:1 WARNING: workbench screen resolution suggests 1.78:1 VO: Disabling blanker alloc_output_buffer:155 - format 19 ANS_LENGTH=69.40 Internal COMP YUV FPS 21 VO: Enabling blanker gfx_ReleaseArg:422
Exiting... (Quit)
Curious, sometimes this trailer runs with 21fps sometimes with 19fps
3 times 21fps, this is with skiploopfilter. 17fps without it.
LiveForIt-MPlayer-6.4 SVN-r37230-snapshot-1.1.1 (C) 2000-2014 MPlayer Team
Playing RAM Disk:Prometheus - Trailer.mp4. libavformat version 55.33.100 (internal) libavformat file format detected. [mov,mp4,m4a,3gp,3g2,mj2 @ 0x58f17bf8]stream 0, timescale not set [lavf] stream 0: video (h264), -vid 0 [lavf] stream 1: audio (aac), -aid 0, -alang eng [lavf] stream 2: video (mjpeg), -vid 1 VIDEO: [H264] 1920x816 24bpp 23.976 fps 6828.3 kbps (833.5 kbyte/s) Clip info: major_brand: mp42 minor_version: 0 compatible_brands: mp42isomavc1 creation_time: 2011-12-23 08:24:51 genre: Trailer artist: 20th Fox title: Prometheus - Trailer encoder: HandBrake 4344svn 2011111001 date: 2012 Load subtitles in RAM Disk: VO: [comp_yuv2] Welcome man !. ========================================================================== Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family libavcodec version 55.52.102 (internal) Selected video codec: [ffh264] vfm: ffmpeg (FFmpeg H.264) ========================================================================== ========================================================================== Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders AUDIO: 44100 Hz, 2 ch, floatbe, 154.4 kbit/5.47% (ratio: 19305->352800) Selected audio codec: [ffaac] afm: ffmpeg (FFmpeg AAC (MPEG-2/MPEG-4 Audio)) ========================================================================== Not supported audio format 0000001c Endian: BE Signed: Yes Float: Yes Bits: 32 Special Type: 0 Using Format AF_FORMAT_S16_BE AHI: Sound format 28 not supported by this driver. AO: [ahi_dev] 44100Hz 2ch s16be (2 bytes per sample) Starting playback... libmpcodecs/vd.c:mpcodecs_config_vo:d Movie-Aspect is 2.35:1 - prescaling to correct movie aspect. VO: [comp_yuv2] 1920x816 => 1920x816 Planar YV12 screen w 1920 h 1200 aspect 1.60:1 VO: Disabling blanker alloc_output_buffer:155 - format 19 New_Face failed. Maybe the font path is wrong. Please supply the text font file (~/.mplayer/subfont.ttf). subtitle font: load_sub_face failed. New_Face failed. Maybe the font path is wrong. Please supply the text font file (~/.mplayer/subfont.ttf). subtitle font: load_sub_face failed. A: 0.6 V: 0.0 A-V: 0.554 ct: 0.000 0/ 0 ??% ??% ??,?% 2 0 Select error: No such file or directory AmigaOS4.1 Bug select() don't reset or set errno value A: 0.5 V: 0.1 A-V: 0.437 ct: 0.004 0/ 0 ??% ??% ??,?% 2 0 ANS_LENGTH=69.40 A: 11.1 V: 8.8 A-V: 2.295 ct: 0.065 0/ 0 71% 6% 1.6% 50 0
************************************************ **** Your system is too SLOW to play this! **** ************************************************
Possible reasons, problems, workarounds: - Most common: broken/buggy _audio_ driver - Try -ao sdl or use the OSS emulation of ALSA. - Experiment with different values for -autosync, 30 is a good start. - Slow video output - Try a different -vo driver (-vo help for a list) or try -framedrop! - Slow CPU - Don't try to play a big DVD/DivX on a slow CPU! Try some of the lavdopts, e.g. -vfm ffmpeg -lavdopts lowres=1:fast:skiploopfilter=all. - Broken file - Try various combinations of -nobps -ni -forceidx -mc 0. - Slow media (NFS/SMB mounts, DVD, VCD etc) - Try -cache 8192. - Are you using -cache to play a non-interleaved AVI file? - Try -nocache. Read DOCS/HTML/en/video.html for tuning/speedup tips. If none of this helps you, read DOCS/HTML/en/bugreports.html.
I did last night, if you check the github page[1], I am a bit sick with the flu atm, but I wanted to run some benchmarks first, but currently this version gives me another fps in some cases and also helps performance with other formats as well (like mpeg/ogg) not just h264. I'll post some benchmarks soon.
in my experience, the more branches you eliminate the better, code can be fully decoded in the pipeline and the compiler usually does a pretty good job of scheduling the instructions to minimize stalls, etc. Plus in case of small loops (this is after all a very small loop), there is no reason not to unroll, as we have plenty of registers to use. What I'm undecided is whether I should just increase src += stride or use the i*stride form. But looking at the asm output, I'm guessing this is a better form, as the src += creates a dependency for each store, whereas the i*stride steps can be precalculated and just used when needed.