summaryrefslogtreecommitdiff
path: root/include/xine
diff options
context:
space:
mode:
authorReinhard Nißl <rnissl@gmx.de>2009-06-11 00:39:30 +0200
committerReinhard Nißl <rnissl@gmx.de>2009-06-11 00:39:30 +0200
commit238ba1caecd660647b04a3bff862c9df1f0319aa (patch)
treeb374706f64119a355aec0e426151315204cbceb5 /include/xine
parentc88576e64e9a107d2e5675e0178aba62179e9b7f (diff)
downloadxine-lib-238ba1caecd660647b04a3bff862c9df1f0319aa.tar.gz
xine-lib-238ba1caecd660647b04a3bff862c9df1f0319aa.tar.bz2
Provide framework to define a video output area within the OSD area.
The supplied functions and constants allow to define a video output area (called video window) within the OSD area to show for example a small preview of the current channel in the top right corner while zapping through the channel list displayed as OSD. A VDPAU enabled xine-lib implements VO_CAP_VIDEO_WINDOW_OVERLAY already.
Diffstat (limited to 'include/xine')
-rw-r--r--include/xine/osd.h11
-rw-r--r--include/xine/video_out.h7
2 files changed, 18 insertions, 0 deletions
diff --git a/include/xine/osd.h b/include/xine/osd.h
index b22c02996..ef0994e8a 100644
--- a/include/xine/osd.h
+++ b/include/xine/osd.h
@@ -43,6 +43,10 @@ struct osd_object_s {
int area_touched; /* work area was used for painting */
int display_x,display_y; /* where to display it in screen */
+ /* video output area within osd extent */
+ int video_window_x, video_window_y;
+ int video_window_width, video_window_height;
+
/* extent of reference coordinate system */
int extent_width, extent_height;
@@ -237,6 +241,13 @@ struct osd_renderer_s {
void (*set_argb_buffer) (osd_object_t *osd, uint32_t *argb_buffer,
int dirty_x, int dirty_y, int dirty_width, int dirty_height);
+ /*
+ * osd video window defines an area withing osd extent where the
+ * video shall be scaled to while an osd is displayed on screen.
+ * both width and height must be > 0 to take effect.
+ */
+ void (*set_video_window) (osd_object_t *osd,
+ int window_x, int window_y, int window_width, int window_height);
/* private stuff */
diff --git a/include/xine/video_out.h b/include/xine/video_out.h
index 9da1a596f..d152ddec4 100644
--- a/include/xine/video_out.h
+++ b/include/xine/video_out.h
@@ -296,6 +296,7 @@ struct xine_video_port_s {
#define VO_CAP_ZOOM_Y 0x00800000
#define VO_CAP_CUSTOM_EXTENT_OVERLAY 0x01000000 /* driver can blend custom extent overlay to output extent */
#define VO_CAP_ARGB_LAYER_OVERLAY 0x02000000 /* driver supports true color overlay */
+#define VO_CAP_VIDEO_WINDOW_OVERLAY 0x04000000 /* driver can scale video to an area within overlay */
/*
* vo_driver_s contains the functions every display driver
@@ -442,6 +443,12 @@ struct vo_overlay_s {
int width; /* width of subpicture area */
int height; /* height of subpicture area */
+ /* area within osd extent to scale video to */
+ int video_window_x;
+ int video_window_y;
+ int video_window_width;
+ int video_window_height;
+
/* extent of reference coordinate system */
int extent_width;
int extent_height;