[MPlayer-dev-eng] libvo2

David Holm dholm at telia.com
Thu Nov 15 09:34:56 CET 2001


Hi,
as some of you know my cvs updates were unappreciated (mainly due to 
your idiotic mailservers taking 3 hour sto deliver mail from the cvs 
mailinglist), so I got cut off from cvs access.
I'm not going to stop development of it because of this, but I have 
reprioritized.
The dxr3 users are pleased with my work in difference to you others. So 
I'll put all effort into getting the current libvo dxr3 plugni working 
correctly (meaning, win32 codec playback, audio and subpic playback 
without locking video) before I go back to libvo2.
I have created a draft of features om libvo2 and I'll post it now to get 
some feedback before I return to develop it. Most, if not all, of the 
things in the spec is from several developers and users on the list and 
I don't think that many additions have been made by me, just wanted to 
point that out so people don't start sending fan-mail to me.
Libvo2 Core is _NOT_ a concern for device developers, the libvo2 core is 
the glue between a device and the hard stuff (like pixel conversion, 
scaling etc)
I don't think it fully lists all the features since I had time to 
implement some more before Arpi shit in his pants and closed off my cvs 
access.
I'll post some headers later on for commenting, but they are a bit far 
from being in "feedback" mode right now. Comments ppl...

//David Holm

libvo2 specification draft

        Device Capabilites
   
    * Direct Rendering
    * (better) Hardware decoder support, including hw decoders to have 
access to the pts
    * Hardware scaling, flipping, croping etc
    * control() interface mimicing ioctl() making it easy
      for developers to add functionality to the device interface
      (My personal opinion is to use this interface for as many
       functions as possible)
    * Simpler device development by letting libvo2 core handle
      most of the general work (like pixel conversion, scaling, etc)

        Core Capabilities

    * Checking for the availability of a vo_* device.(requiers a
      prototype implementation in all vo_ devices)
    * Finding fastest way of scaling, processing, format conversion
      by scanning for available vo_ devices and their capabilites
      during startup. The user might want to output video using device
      vo_X, but device vo_Y is capable of hardware scaling which vo_X
      isn't, then vo2core will try to utilize vo_Y's scaling capabilites
      but still rendering graphics through vo_X.
      Say for instance you have a device in your computer containing a
      programmable DSP (Digital Signal Processor) but this device has
      nothing at all to do with video. Assuming someone would be
      interested in writing microcode for the DSP to say do hardware
      pixel conversion this device would be a very useful vo_ device
      although it's completely uncapable of video-output.
    * Converting codec output to the vo_ device's desired input
      format, and if possible directly rendering it to the device's
      buffer.

Additional notes

Well, I'm not that good at writing development drafts, but I hope you 
understand
what we are moving towards. I will supply some libvo2 headers for you to 
get a
deeper understanding of what is to come.
I need a lot of feedback, good, bad, whatever.

Someone on the mplayer-users list suggested a benchmark option which 
would try
different combos for a specified -vo device and write a translation table
(I'm suggesting something like ~/.mplayer/vo_<device>.translation or 
something
like that).
This is a great idea, especially if I can get you to see the point in 
providing
vo_ devices which has nothing to do with video output but still can be 
utilized
for doing calculations in hardware!




More information about the MPlayer-dev-eng mailing list