[MPlayer-cvslog] r18780 - trunk/mplayer.c

Michael Niedermayer michaelni at gmx.at
Fri Jun 23 14:36:36 CEST 2006


On Fri, Jun 23, 2006 at 12:54:17AM -0400, Rich Felker wrote:
> On Thu, Jun 22, 2006 at 12:06:05AM +0300, Uoti Urpala wrote:
> > On Wed, 2006-06-21 at 22:29 +0200, michael wrote:
> > > Log:
> > > send flip_page() through the filter chain
> > > ignoring the filter chain cannot and does not work with frame skip / insertion filters
> > > if this breaks something then just reverse it, ive not exhaustively tested it ...
> > 
> > I think this is wrong, even though it might not break anything now. At
> I agree. Page flip is not an operation the filter chain should know
> about! As far as the filter chain is concerned, each frame passed to
> put_image is being 'displayed'. Page flipping only happens at the vo
> level.

i agree but current and past mplayer send flip from mplayer.c dirctly to the
vo and some filters generated flip which are sent through the filter chain
to the vo, obviously that cannot work, my solution was to sent the flips from
mplayer.c through the filter chain too, and discard flips in frame droping
filters, the timing is wrong for the vf-inserted flips but that was already 
wrong before my change as flips are either way generated by filters at random
furthermore the flips generated by mplayer.c will also be wrongly timed if
anything (audio, video decoding, demuxing, ...) takes too long

mplayer design if i understand it correctly is:
1. decode frame
2. send though filter chain (this can lead to an arbirary number of frames
   0-n being sent to the vo)
3. sleep
4. send flip page to vo from mplayer.c

its clear that this cannot work, one (dirty) solution is to send flip through
the filter chain, another would be to move the timing & flipping code to the
vo where it IMHO belongs to, then a vo could decide to either flip in a
hardware interupt handler, by a seperate (realtime/high priority whatever)
thread, a simple sleep until X in case the vo is out of buffers but a new
empty buffer is requested or a flip on vsync if the vo supports that

Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

In the past you could go to a library and read, borrow or copy any book
Today you'd get arrested for mere telling someone where the library is

More information about the MPlayer-cvslog mailing list