From: James Courtier-D. <Ja...@su...> - 2002-05-01 00:05:53
|
KAY Robin wrote: >Can I relay on the structure provided to overlay_blend on being around >until the frame is marked displayed? I am implementing chroma-key >overlays and want to set a pointer in my pgx64_frame_t to point at the >vo_overlay_t supplyed by overlay_blend so I can render the overlay in >display_frame (as opposed to blending the overlay into the frame inside >overlay_blend). > >-- >Wishing you good fortune, >--Robin Kay-- (komadori) > > > > The way the current overlay_events work is that just before each video frame is displayed, one event is removed from the queue and processed. This processing might remove or add an overlay to the showing overlay list. Once the event has been processed, the overlays currently in the showing list are then blended with the video frame. I have been thinking about how we could change the way overlays are done, so as to fit in with the XvMC API better. The XvMC API has a "composite" function, which we should somehow get xine to use. The only way I have thought that this could be done currently is for the xine-lib/src/video_out drivers to handle the "video_overlay_multiple_overlay_blend" function, which is currently in the xine-lib/src/video_overlay.c. So, that way, your code would take control of the vo_overlay_t structure, and thus decide when it is released. I do not have a video card which supports XvMC, so I cannot test any possible XvMC interface. Maybe we should convert every xine-lib/src/video_out/* driver to simulate the XvMC interface, so if the video card itself does not support XvMC, the video_out driver does it in software instead. I think the XvMC interface might fit in better with what you are trying to do. Cheers James |