From: James Courtier-D. <Ja...@su...> - 2001-10-21 14:15:27
|
Hello OSD should be quite easy now, with the new libspudec. Although all the potential OSD stuff is still private inside libspudec, we could publish them. The new libspudec works as follows: - 1) Receives a filter map from navdvd. This specifies which stream_ids get re-assembled. If not using navdvd, all streams are re-assembled. 2) Received a CLUT from navdvd. The "discover clut" feature needs re-enabling. 3) It re-assembles multiple streams at once. 4) If it has an entire re-assembled spu, it processes it. 5) The commands are processed. These give us the "Forced display/Menu" details. 6) Drop all SPU packets unless the stream_id = user select stream or state.menu is set. Note that auto display of menu highlights now works without the user having to select the SPU stream_id. 7) Render the overlay into xpm rle format. 8) Add overlay_event to overlay_queue. The overlay_queue api would probably be better if it was moved to xine-engine/video_out.c 9) When video_out.c needs to do an overlay, it first checks the top of the overlay_event_queue. If an event needs to be actioned (compares vpts), it processes it. Only one event is processed per frame, for performance reasons. 10) Steps through overlaying all the overlays in the "show" list. (Currently only one overlay is supported, until xine api changes) 11) Continues to display the finished frame on the screen. As you can see, OSD can be easily implemented by just calling "add overlay_event" to the queue (step 8) Summary: What I am trying to say, is that before Ver 1.0, we should decide where the overlay_queue API resides, and adjust xine-lib appropriately. I think it should go in xine-engine/video_out.c, but I would like comments. At least the new libspudec is in the CVS, so everyone can fix bugs. For Version 1.0 features, I would like to see:- - a config dialog in xine-ui - user-configurable keyboard mappings (~/.xinekeymap) - streaming support (that's what I'm working on at the moment) - osd navdvd is pretty much ready now, as of 30 mins ago. :-) I might not have time to personally do the osd stuff, so maybe someone else wants to do it when we have decided where to put the overlay_queue api. I have a sample libosd, which has a lot of the OSD graphics already done. E.G. Volume bar etc. if anyone is interested. Cheers James -- Nothing in this world is exactly what it appears to be. |