2007/5/1, Siarhei Siamashka <[EMAIL PROTECTED]>:
On Tuesday 01 May 2007 13:36, Kalle Vahlman wrote:
> 2007/5/1, Siarhei Siamashka <[EMAIL PROTECTED]>:
> > OK, thanks. It may take some time though. I'm still using old scratchbox
> > with mistral SDK here (did not have enough free time to upgrade yet).
> > Until I clean up my scratchbox mess, I can only provide some patch
> > without testing, if anybody courageous can try to build it :)
>
> Given that I fear not the perils of building a X server with
> nonstandard options[1], I shall be more than happy to conduct such
> adventurous acts :)
>
> And unless Mr. Kulve has objections, the results could be installed
> from a repository as well.
>
> [1]
>
http://syslog.movial.fi/archives/47-Shadows-for-everyone-well,-not-really.html

OK, here is this untested a patch for xserver to add ARMv6 optimized
YUV420 color format conversion. Theoretically it should compile
(I did not try to build xserver myself though) and work. If it refuses to
compile, fixing the patch should be not too difficult.

Applied and build without problems for me.

For testing, I fabricated some video with gstreamer:

gst-launch-0.10 videotestsrc num-buffers=300 \
   ! "video/x-raw-yuv, width=640, height=480" \
   ! ffenc_mpeg4 ! avimux \
   ! filesink location=640x480.avi

which resulted in [EMAIL PROTECTED] and [EMAIL PROTECTED] videos. For some
reason 320x240 and 352x288 refused to play with:

X11 error: BadValue (integer parameter out of range for operation)
MPlayer interrupted by signal 6 in module: flip_page

while gstreamer did play them just fine. Also the Nokia_N800.avi and
NokiaN93.avi died in the same way. My mplayer is compiled from the svn
trunk of the garage project, with some additional cflags I use (so
maybe those were the problem...).

Anyway, then I shut down af-base-apps and matchbox (to avoid scaling
the video) and ran "mplayer -benchmark <file>".

In the worst case only video playback may be broked. But if everything works
as expected, video output performance should become a lot better.

Video output performance can be tested by mplayer using -benchmark
option, 'VO:' stat shows how much time was used for video output, 'VC:' stat
shows how much time was used for video decoding.

There's something fishy in the decoding or something as the color bars
in the test video were broken (yellow and cyan to be precise), but
that seemed to be the case in a "vanilla" image too so nothing to do
with this patch. I could not see any other glitches in the output.

But on to the results:

VIDEO:  [DX50]  640x480  24bpp  30.000 fps  1597.6 kbps (195.0 kbyte/s)

Original:
V:  10.0 300/300 44% 74%  0.0% 0 0 0%
BENCHMARKs: VC:   4.387s VO:   7.436s A:   0.000s Sys:   0.482s =   12.305s
BENCHMARK%: VC: 35.6503% VO: 60.4311% A:  0.0000% Sys:  3.9185% = 100.0000%


Patched:
V:  10.0 300/300 42% 72%  0.0% 0 0 0%
BENCHMARKs: VC:   4.213s VO:   7.265s A:   0.000s Sys:   0.381s =   11.859s
BENCHMARK%: VC: 35.5296% VO: 61.2604% A:  0.0000% Sys:  3.2100% = 100.0000%

---

VIDEO:  [DX50]  800x480  24bpp  30.000 fps  1976.5 kbps (241.3 kbyte/s)

Original:
V:  10.0 300/300 54% 114%  0.0% 0 0 0%
BENCHMARKs: VC:   5.466s VO:  11.456s A:   0.000s Sys:   0.366s =   17.287s
BENCHMARK%: VC: 31.6179% VO: 66.2677% A:  0.0000% Sys:  2.1144% = 100.0000%

Patched:
V:  10.0 300/300 53% 70%  0.0% 0 0 0%
BENCHMARKs: VC:   5.346s VO:   7.043s A:   0.000s Sys:   0.449s =   12.838s
BENCHMARK%: VC: 41.6414% VO: 54.8602% A:  0.0000% Sys:  3.4984% = 100.0000%

There is a clear drop in amount of time used to output the videos for
800x480 (the numbers were stable trough multiple runs).

So I gather from the >10s benchmark time that we didn't get to real
time yet, but close to it? And of course this is just video, audio
decoding should be considered for real video playback performance
measurement.

If any of you can build xserver package with this patch, please put it for
download somewhere or send directly to me.

I put the deb up at:

 http://iki.fi/zuh/xserver-xomap_1.1.99.3-0.zuh2_armel.deb

until I get it to the repository. This version also has the composite
extension enabled, but AFAIK it does not depend on the libs or change
server behaviour if composite is not specifically used.

The server *should* be compiled with '-mcpu=arm1136j-s -mfpu=vfp
-mfloat-abi=softfp -O2', but as I had troubles with the
SBOX_EXTRA_COMPILER_ARGS env var being honored some time ago I'm not
guaranteeing it at the moment ;)

--
Kalle Vahlman, [EMAIL PROTECTED]
Powered by http://movial.fi
Interesting stuff at http://syslog.movial.fi
_______________________________________________
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers

Reply via email to