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... >