[maemo-developers] N800 & Video playback

From: Kalle Vahlman kalle.vahlman at gmail.com
Date: Thu May 3 08:57:48 EEST 2007
2007/5/1, Siarhei Siamashka <siarhei.siamashka at gmail.com>:
> On Tuesday 01 May 2007 17:49, Kalle Vahlman wrote:
> > > 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.
>
> Thanks a lot for building the package and putting it for download, everything
> seems to be fine, but more details will follow below.
>
> > For testing, I fabricated some video with gstreamer:
> >
> > which resulted in 640x480 at 30fps and 800x480 at 30fps 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.
>
> This X11 error on video playback start and also sometimes on switching
> fullscreen/windowed mode is a known problem [1] reported in this mailing list.
>
> If MPlayer dies on start, usually trying to start it again succeeds. So these
> 320x240 and 352x288 videos could be played as well if you were a bit more
> persistent :)

No, it's actually 100% reproducable in this situation (yes, I tried a
number of . You see, I didn't have the window manager running. It
breaks with the N800 video too.
Running with the window manager does make it runnable, but it also
changes the window size which I wanted to avoid.

> > My mplayer is compiled from the svn
> > trunk of the garage project, with some additional cflags I use (so
> > maybe those were the problem...).
>
> Do you have a set of cflags settings which work better than the default set?
> Can you share this information?

If by "default set" you mean what the default options in the toolchain
is, then yes (as there are none AFAIK ;). If you mean the default
options for mplayer, I don't know if they add any value. I like to use
my hardware well ;) so I tend to compile everything with VFP enabled
and optimized for the processor:

 CFLAGS='-mcpu=arm1136j-s -mfpu=vfp -mfloat-abi=softfp -O2'

Now, wheter it works better than thumb code is debatable, as
optimizing code size might be more beneficial than having fast floats.
But at least I was happy with the results we got from our testing,
detailed in

  http://syslog.movial.fi/archives/46-N800-VFP-or-not-to-VFP.html

I doubt they will do much good for mplayer, as I assume most critical
operations will be highly optimized already by hand and not left
entirely for the compiler...

> If you want a guaranteed video playback with divx/xvid/mpeg4 codecs, you
> should restrict to 512x384 resolution or lower and keep bitrate reasonable.
>
> The results for these 'insane' videos you have posted are somewhat weird, a
> complete statistics would  require also a number of frames dropped, otherwise
> we don't know how much work was done by the player. Probably missing audio
> track resulted in MPlayer not being able to provide a proper report.

Yeah, I guess the fabricated videos weren't that good. Have to do some
more testing with real videos...

> Yes, now N800 is faster than Nokia 770 for video output performance at last :)

This is _very_ cool indeed :)

-- 
Kalle Vahlman, zuh at iki.fi
Powered by http://movial.fi
Interesting stuff at http://syslog.movial.fi

More information about the maemo-developers mailing list