[MPlayer-dev-eng] dr2 implementation thoughts

Arpi arpi at thot.banki.hu
Wed Jul 17 02:39:06 CEST 2002


Hi,

> > > 1) The vo driver could use AGP or otherwise specialized memcpy
> > >    routines to actually do the copying. Even for instance sending
> > >    accellerator commands to the video device to setup DMA copying of
> > >    just the changed blocks. Particularly useful would be the
> > >    capability of the MGA G200 driver to optimize its U/V plane
> > >    interleaving. With multiple calls to draw_slice, the copy order is
> > >    Y, UV, Y, UV, Y, UV, ..., which can't be good for the cache.
> >
> > yes, i proposed it in my mail today, including sample C implementation
> imho yes its bad for the cache
> but all other orders would mean more branch misspredictions so thats bad too, 
> ideally we should try all possible copy orderings on all cpus ...

yes, probably. anyway, at least in my experiments the pci/agp video memory
writes are much slower than brach misspredictions.

> > > 2) It could work with double buffering -- the vo driver would just
> > >    keep the changed macroblock masks from the previous frame and
> > >    bitwise merge them with the new ones, so as to copy every
> > >    macroblock that's changed in the last 2 frames.
> >
> > hmm, good point. we really need this to handle more than 1 buffers
> ehh, lavc currently already exports a mb_skip table which contains 8-bit 
> values which are incremented for every skip and set to 0 otherwise, so we 
> only need to check mb_skip_table[...] >= buffer_count
great!


A'rpi / Astral & ESP-team

--
Developer of MPlayer, the Movie Player for Linux - http://www.MPlayerHQ.hu



More information about the MPlayer-dev-eng mailing list