[MPlayer-dev-eng] mp-g2 pre14

D Richard Felker III dalias at aerifal.cx
Mon Apr 21 01:38:01 CEST 2003


On Sun, Apr 20, 2003 at 11:09:28PM +0200, Arpi wrote:
> Hi,
> 
> > pre14:
> 
> ok pre15 is out, with the brand new libvo2 API design (and xv driver as
> sample) by me, .so and iive
> 
> it would be great if vo driver developers/maintainers could check it
> (video_out.h) and tell me the possible problems, missing calls/features
> they see ASAP.

I dunno how this should be done, but there MUST be some way for the
player to 'hook in' between the filter chain and libvo2, in order to
control the rate at which frames are displayed. Otherwise, filters
that alter framerate (e.g. showing interlaced video at 60 fields per
second, inverse telecine, etc) cannot work properly! This was one of
the big deficiencies in the old design, so I hope G2's architecture
will fix it.

BTW, while we're on this topic, how would you recommend handling frame
rate stuff in the filter chain? Should mp_images have the absolute PTS
value attached? Or a delay relative to the previous frame? Or both?
I'm trying to think of how this can work well for both an interactive
player app, and an encoder that supports variable-fps output formats
(e.g. MPCF :))), and avoid the problems of idiotic source formats
(e.g. mpeg2) where the PTS can randomly reset in the middle of the
stream...

> the basic idea of new libvo2, is that do only the minimal device-dependent
> code in the vo drivers.

Excellent. :)))

> it means, that middle-level stuff, like get_image(), osd rendering, buffer
> management is moved to vf_vo2.c (which connects codecs/filters to vo2).
> so vo2 drivers just open/close teh device and exports its buffers, handle
> buffer flipping. for (backward) compatibility with buffer-less devices, liek
> svgalib, aalib, opengl and maybe some others the good-old draw_slice() is
> still there, but not recommended. slices will be rendered by vf_vo2 now,
> into the buffers exported by the vo driver.

BTW, I think for G200's broken "YV12" mode, it's best to export the
real Y buffer, and allocate fake U/V buffers in system mem, then
interleave them into real video mem at page-flip time. Or better yet,
maybe vf_vo2 could have some way of notifying the vo driver that a
slice is finished, so that it could be done along the way to improve
cache utilization...

Rich




More information about the MPlayer-dev-eng mailing list