]> git.sesse.net Git - vlc/blobdiff - include/vlc_video.h
removed the languages we removed from our official builds and added Turkish
[vlc] / include / vlc_video.h
index dd962a02d7a5477fd98d511b16fa951d943384f1..d8fc2f67b8a7559a05997f72f47a295acb231548 100644 (file)
@@ -3,7 +3,7 @@
  * This header is required by all modules which have to handle pictures. It
  * includes all common video types and constants.
  *****************************************************************************
- * Copyright (C) 1999, 2000 VideoLAN
+ * Copyright (C) 1999 - 2005 VideoLAN
  * $Id$
  *
  * Authors: Vincent Seguin <seguin@via.ecp.fr>
@@ -110,6 +110,9 @@ struct picture_t
 
     /** This way the picture_Release can be overloaded */
     void (*pf_release)( picture_t * );
+
+    /** Next picture in a FIFO a pictures */
+    struct picture_t *p_next;
 };
 
 /**
@@ -199,19 +202,20 @@ struct picture_heap_t
  */
 struct subpicture_region_t
 {
-    /** \name Region properties */
-    /**@{*/
     video_format_t  fmt;                          /**< format of the picture */
     picture_t       picture;             /**< picture comprising this region */
 
-    char            *psz_text;       /**< text string comprising this region */
-
     int             i_x;                             /**< position of region */
     int             i_y;                             /**< position of region */
 
-    subpicture_region_t *p_next;                /**< next region in the list */
-    /**@}*/
+    char            *psz_text;       /**< text string comprising this region */
+    int             i_text_color;     /**< text color (RGB native endianess) */
+    int             i_text_alpha;                     /**< text transparency */
+    int             i_text_size;                              /**< text size */
+    int             i_text_align;         /**< horizontal alignment hint for */
 
+    subpicture_region_t *p_next;                /**< next region in the list */
+    subpicture_region_t *p_cache;       /**< modified version of this region */
 };
 
 /**
@@ -241,9 +245,9 @@ struct subpicture_t
     /**@{*/
     mtime_t         i_start;                  /**< beginning of display date */
     mtime_t         i_stop;                         /**< end of display date */
-    vlc_bool_t      b_ephemer;     /**< If this flag is set to true
-                                      the subtitle will be displayed
-                                      untill the next one appear */
+    vlc_bool_t      b_ephemer;    /**< If this flag is set to true the subtitle
+                                will be displayed untill the next one appear */
+    vlc_bool_t      b_fade;                               /**< enable fading */
     /**@}*/
 
     subpicture_region_t *p_region;  /**< region list composing this subtitle */
@@ -253,12 +257,15 @@ struct subpicture_t
      * changed by the video output thread, or simply ignored depending of the
      * subtitle type. */
     /**@{*/
-    int             i_x;                 /**< offset from alignment position */
-    int             i_y;                 /**< offset from alignment position */
-    int             i_width;                              /**< picture width */
-    int             i_height;                            /**< picture height */
-    int             b_absolute;                    /**< position is absolute */
-    int             i_flags;                             /**< position flags */
+    int          i_x;                    /**< offset from alignment position */
+    int          i_y;                    /**< offset from alignment position */
+    int          i_width;                                 /**< picture width */
+    int          i_height;                               /**< picture height */
+    int          i_alpha;                                  /**< transparency */
+    int          i_original_picture_width;  /**< original width of the movie */
+    int          i_original_picture_height;/**< original height of the movie */
+    int          b_absolute;                       /**< position is absolute */
+    int          i_flags;                                /**< position flags */
      /**@}*/
 
     /** Pointer to function that renders this subtitle in a picture */
@@ -269,6 +276,8 @@ struct subpicture_t
     /** Pointer to functions for region management */
     subpicture_region_t * ( *pf_create_region ) ( vlc_object_t *,
                                                   video_format_t * );
+    subpicture_region_t * ( *pf_make_region ) ( vlc_object_t *,
+                                                video_format_t *, picture_t * );
     void ( *pf_destroy_region ) ( vlc_object_t *, subpicture_region_t * );
 
     /** Private data - the subtitle plugin might want to put stuff here to
@@ -288,6 +297,12 @@ struct subpicture_t
 #define RESERVED_SUBPICTURE    1                   /* allocated and reserved */
 #define READY_SUBPICTURE       2                        /* ready for display */
 
+/* Subpicture position flags */
+#define SUBPICTURE_ALIGN_LEFT 0x1
+#define SUBPICTURE_ALIGN_RIGHT 0x2
+#define SUBPICTURE_ALIGN_TOP 0x4
+#define SUBPICTURE_ALIGN_BOTTOM 0x8
+
 /*****************************************************************************
  * Prototypes
  *****************************************************************************/