summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAndreas Auras <yak54@inkennet.de>2012-01-03 11:27:10 +0100
committerAndreas Auras <yak54@inkennet.de>2012-01-03 11:27:10 +0100
commit928e63d9a618982ec4bee0ff69af488cbfa296d5 (patch)
tree0717db8e6245eb57d3496dd6fd55943f793d5cee /include
parent8165471bca17ba07f00816d243e0818347f7f8af (diff)
downloadxine-lib-928e63d9a618982ec4bee0ff69af488cbfa296d5.tar.gz
xine-lib-928e63d9a618982ec4bee0ff69af488cbfa296d5.tar.bz2
Complete rewrite of vdpau output driver osd handling.
The new implementation has the following advantages towards the existing one: There is now a unique processing of RLE coded images and ARGB based overlay images. For both formats scaled and unscaled images and a video window are supported. Both formats are rendered now in given order into the same output surface not using a dedicated output surface for scaled, unscaled and ARGB images any more. Processing of YCBCR overlay images now uses corresponding vdpau upload functions eliminating the existing (possible slower) conversation to RGB images. Optimized processing of first overlay from stack avoiding unnecessary surface initialization and rendering operations. Currently the new implementation does only take the dirty rect information of a ARGB overlay into account for optimization if this is the only one object that should be displayed.
Diffstat (limited to 'include')
-rw-r--r--include/xine.h15
1 files changed, 7 insertions, 8 deletions
diff --git a/include/xine.h b/include/xine.h
index c04e270c2..0fa01dd4e 100644
--- a/include/xine.h
+++ b/include/xine.h
@@ -2196,7 +2196,7 @@ void xine_event_send (xine_stream_t *stream, const xine_event_t *event) XINE_PRO
#define XINE_OSD_CAP_FREETYPE2 0x0001 /* freetype2 support compiled in */
#define XINE_OSD_CAP_UNSCALED 0x0002 /* unscaled overlays supp. by vo drv */
#define XINE_OSD_CAP_CUSTOM_EXTENT 0x0004 /* hardware scaled to match video output window */
-#define XINE_OSD_CAP_ARGB_LAYER 0x0008 /* supports separate true color layer */
+#define XINE_OSD_CAP_ARGB_LAYER 0x0008 /* supports ARGB true color pixmaps */
#define XINE_OSD_CAP_VIDEO_WINDOW 0x0010 /* can scale video to an area within osd extent */
typedef struct xine_osd_s xine_osd_t;
@@ -2264,13 +2264,12 @@ void xine_osd_set_palette (xine_osd_t *self,
const uint8_t *const trans ) XINE_PROTECTED;
/*
- * set an argb buffer to be blended into video
- * the buffer must exactly match the osd dimensions
- * and stay valid while the osd is on screen. pass
- * a NULL pointer to safely remove the buffer from
- * the osd layer. only the dirty area will be
- * updated on screen. for convinience the whole
- * osd object will be considered dirty when setting
+ * Set an ARGB buffer to be blended into video.
+ * The buffer must stay valid while the OSD is on screen.
+ * Pass a NULL pointer to safely remove the buffer from
+ * the OSD layer. Only the dirty area will be
+ * updated on screen. For convenience the whole
+ * OSD object will be considered dirty when setting
* a different buffer pointer.
* see also XINE_OSD_CAP_ARGB_LAYER
*/