[MPlayer-dev-eng] [PATCH]Implement advanced deinterlacing for vdpau with SW decoders, try 2

Carl Eugen Hoyos cehoyos at ag.or.at
Sun Mar 15 20:50:35 CET 2009


Reimar Döffinger <Reimar.Doeffinger <at> gmx.de> writes:

> > > Can you explain the semantics of deint_surfaces (i.e. what is stored in
> > > it at what moment) in one short sentence? If not it's probably a bad
> > > idea.
> > 
> > deint_surfaces[0], deint_surfaces[1] are past surfaces, deint_surfaces[2]
> > is the future surface for reference.
> 
> No, it is the "future" one after the FFSWAP, before it was used to store
> the previous frame.

I believe this only depends on definitions of "future" and "previous", but lets
not discuss this, it doesn't work anyway.

[...]

> Well, it mostly did not work because you forgot this chunk:
> > -        struct vdpau_render_state *rndr = get_surface(0);
> > +        struct vdpau_render_state *rndr = get_surface(deint_counter);
> 
> Again, the reason I suggested it is because when decoding with VDPAU the
> past surfaces will not be in such a simple order, thus your current code
> using (vid_surface_num - 2) & 3 is a dead-end, you will have to throw
> away almost all of it if you implement deinterlacing+decoding.

Of the two screen pages the patch currently has, about one page stays unchanged.
I'd really like to commit something working, before looking at
hardware-accelerated decoding.
Perhaps past_pict (a bad name) simply becomes global and future_pict has to be
introduced (these are not big changes regarding the current patch), but for the
moment, this works fine as-is.

Or do you simply want a global array that gets filled in draw_image?

Carl Eugen




More information about the MPlayer-dev-eng mailing list