[MPlayer-dev-eng] [PATCH]Implement advanced deinterlacing for vdpau with SW decoders, try 2
Reimar Döffinger
Reimar.Doeffinger at gmx.de
Sun Mar 15 20:28:33 CET 2009
On Sun, Mar 15, 2009 at 06:20:11PM +0000, Carl Eugen Hoyos wrote:
> > > - field, 0, NULL,
> > > + field, 2, deint_surfaces,
> > > surface_render[vid_surface_num].surface,
> > > - 0, NULL, &src_rect_vid,
> > > + 1, &deint_surfaces[2], &src_rect_vid,
> >
> > 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 wanted to explain, because I still think this was a simple idea (although not
> a working one).
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.
> > at least I think
> > that this might allocate some extra data. We can try it anyway and see
> > what happens though.
>
> It is possible that mobile chipsets have even slower memory connections, but I
> would prefer to wait for bugreports, too.
Mobile chipsets usually use normal RAM, so yes memory is _extremely_
slow for them.
More information about the MPlayer-dev-eng
mailing list