On-Screen Display (OSD) Support in libxine-java
xine-lib provides support for dynamic On-Screen-Display interfaces. The xine hacker guide explains the underlying concepts. libxine-java (current SVN version only) provides the XineOSD class for this. To create an XineOSD instance call the createOSD method of the XineController.
Example: Draw some text and a cross over the video.
final int width = 320;
final int height = 240;
// create OSD renderer
XineOSD osd = controller.createOSD(0, 0, width, height);
/* set sans serif 24 font */
osd.setFont("sans", 24);
/* copy pre-defined colors for white, black border, transparent background to
starting at the index used by the first text palette */
osd.setTextPalette(XineLibConstants.XINE_TEXTPALETTE_WHITE_BLACK_TRANSPARENT,
XineLibConstants.XINE_OSD_TEXT1);
/* copy pre-defined colors for white, no border, translucid background to
starting at the index used by the second text palette */
osd.setTextPalette(XineLibConstants.XINE_TEXTPALETTE_WHITE_NONE_TRANSLUCID,
XineLibConstants.XINE_OSD_TEXT2);
osd.drawText( 0, 100, "white text, black border", XineLibConstants.XINE_OSD_TEXT1);
osd.drawText( 0, 130, "white text, no border", XineLibConstants.XINE_OSD_TEXT2);
osd.drawLine( 0, 0, width-1, height-1, 10);
osd.drawLine(width-1, 0, 0 , height-1, 10);
osd.show(0); /* 0 stands for 'now' */