Update of /cvsroot/xine/xine-lib/include
In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv22629/include

Modified Files:
        xine.h.in 
Log Message:
Commit the XCB output plugins by Christoph Pfister after testing on Gentoo 
packages for about ten days.

Index: xine.h.in
===================================================================
RCS file: /cvsroot/xine/xine-lib/include/xine.h.in,v
retrieving revision 1.163
retrieving revision 1.164
diff -u -r1.163 -r1.164
--- xine.h.in   8 Feb 2007 02:10:58 -0000       1.163
+++ xine.h.in   15 Feb 2007 15:19:33 -0000      1.164
@@ -176,6 +176,7 @@
 #define XINE_VISUAL_TYPE_DIRECTX           7 /* used by the win32/msvc port */
 #define XINE_VISUAL_TYPE_CACA              8
 #define XINE_VISUAL_TYPE_MACOSX            9
+#define XINE_VISUAL_TYPE_XCB              11
 
 /*
  * free all resources, close all plugins, close engine.
@@ -1194,6 +1195,82 @@
 } x11_visual_t;
 
 /*
+ * this is the visual data struct any xcb gui
+ * must supply to the xine_open_video_driver call
+ * ("data" parameter)
+ */
+typedef struct {
+
+  /* some information about the display */
+  void        *connection; /* xcb_connection_t */
+  void        *screen;     /* xcb_screen_t     */
+
+  /* window to display the video in / on */
+  unsigned int window; /* xcb_window_t */
+
+  void        *user_data;
+
+  /*
+   * dest size callback
+   *
+   * this will be called by the video driver to find out
+   * how big the video output area size will be for a
+   * given video size. The ui should _not_ adjust it's
+   * video out area, just do some calculations and return
+   * the size. This will be called for every frame, ui
+   * implementation should be fast.
+   * dest_pixel_aspect should be set to the used display pixel aspect.
+   * NOTE: Semantics has changed: video_width and video_height
+   * are no longer pixel aspect corrected. Get the old semantics
+   * in the UI with
+   *   *dest_pixel_aspect = display_pixel_aspect;
+   *   if (video_pixel_aspect >= display_pixel_aspect)
+   *     video_width  = video_width * video_pixel_aspect / 
display_pixel_aspect + .5;
+   *   else
+   *     video_height = video_height * display_pixel_aspect / 
video_pixel_aspect + .5;
+   */
+  void (*dest_size_cb) (void *user_data,
+                       int video_width, int video_height,
+                       double video_pixel_aspect,
+                       int *dest_width, int *dest_height,
+                       double *dest_pixel_aspect);
+
+  /*
+   * frame output callback
+   *
+   * this will be called by the video driver for every frame
+   * it's about to draw. ui can adapt it's size if necessary
+   * here.
+   * note: the ui doesn't have to adjust itself to this
+   * size, this is just to be taken as a hint.
+   * ui must return the actual size of the video output
+   * area and the video output driver will do it's best
+   * to adjust the video frames to that size (while
+   * preserving aspect ratio and stuff).
+   *    dest_x, dest_y: offset inside window
+   *    dest_width, dest_height: available drawing space
+   *    dest_pixel_aspect: display pixel aspect
+   *    win_x, win_y: window absolute screen position
+   * NOTE: Semantics has changed: video_width and video_height
+   * are no longer pixel aspect corrected. Get the old semantics
+   * in the UI with
+   *   *dest_pixel_aspect = display_pixel_aspect;
+   *   if (video_pixel_aspect >= display_pixel_aspect)
+   *     video_width  = video_width * video_pixel_aspect / 
display_pixel_aspect + .5;
+   *   else
+   *     video_height = video_height * display_pixel_aspect / 
video_pixel_aspect + .5;
+   */
+  void (*frame_output_cb) (void *user_data,
+                          int video_width, int video_height,
+                          double video_pixel_aspect,
+                          int *dest_x, int *dest_y,
+                          int *dest_width, int *dest_height,
+                          double *dest_pixel_aspect,
+                          int *win_x, int *win_y);
+
+} xcb_visual_t;
+
+/*
  * this is the visual data struct any fb gui
  * may supply to the xine_open_video_driver call
  * ("data" parameter) to get frame_output_cd calls


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Xine-cvslog mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xine-cvslog

Reply via email to