Re: Xine Libstk Video Output Plugin

Marc Strämke <[email protected]> Wed, 23 Jul 2003 16:31:02 +0200
Newsgroups gmane.comp.embedded.stk.gui.devel
Message-ID <[email protected]>
Darren Vincent Hart wrote:

> On Tue, 2003-07-22 at 06:04, Marc Strämke wrote:
> 
>>Hmmm how are you doing the Overlays atm, AFAIK may XLIB only be accessed 
>>by one frame at the time.
Aeh i must have been very stupid at the time i wrote it :)
I meant one thread at a time. (Thats the usual problem you have in SDL 
if you forget inter-thread locking
>>
> 
> 
> What do you mean "one frame at a time" ?  I am looking into doing
> something similar to XLockDisplay(..).  I will be following the example
> in the Xv xine driver, but haven't gotten around to it yet.
> 
> So at the moment we pass a stk::xine_panel to construct a xine video
> output port.  Xine uses that to get position and size and access to the
> stk::surface from which it creates an stk::overlay.  The overlay it gets
> atm is basically a wrapper to SDL_Overlay.  It seems to then allocate
> several (10 or so) overlays, probably for buffering or something.  It
> then calls stk::overlay::lock(), writes to the overlays in the
> appropriate format (YV12 or YUY2), calls stk::overlay::unlock() and
> calls stk::overlay::display on them (all through the C wrapper) which
> actually blits them to the surface they were created from.
> 
> I think the locking is either no working as expected, or we need to also
> lock the surface itself in xine and in libstk during certain operations
> (like surface::draw_line or maybe even widget::draw).
> 
> I am still thinking on this though...
>