[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