]> git.sesse.net Git - vlc/blobdiff - include/vlc_vout.h
Add new functions to Lua API.
[vlc] / include / vlc_vout.h
index e82f1fb7a638ec4738cab3bf77ed150fad1dd53e..dde94956470082c46c253f411ba7d32180f0e19c 100644 (file)
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  *****************************************************************************/
 
-#ifndef _VLC_VOUT_H_
-#define _VLC_VOUT_H_ 1
+#ifndef VLC_VOUT_H_
+#define VLC_VOUT_H_ 1
+
+/**
+ * \file
+ * This file defines common video output structures and functions in vlc
+ */
 
 #include <vlc_es.h>
 #include <vlc_filter.h>
@@ -95,6 +100,9 @@ struct picture_t
     bool            b_progressive;          /**< is it a progressive frame ? */
     unsigned int    i_nb_fields;                  /**< # of displayed fields */
     bool            b_top_field_first;             /**< which field is first */
+    uint8_t        *p_q;                           /**< quantification table */
+    int             i_qstride;                    /**< quantification stride */
+    int             i_qtype;                       /**< quantification style */
     /**@}*/
 
     /** The picture heap we are attached to */
@@ -152,6 +160,17 @@ static inline void picture_Release( picture_t *p_picture )
         p_picture->pf_release( p_picture );
 }
 
+/**
+ * Cleanup quantization matrix data and set to 0
+ */
+static inline void picture_CleanupQuant( picture_t *p_pic )
+{
+    free( p_pic->p_q );
+    p_pic->p_q = NULL;
+    p_pic->i_qstride = 0;
+    p_pic->i_qtype = 0;
+}
+
 /**
  * This function will copy all picture dynamic properties.
  */
@@ -163,6 +182,8 @@ static inline void picture_CopyProperties( picture_t *p_dst, const picture_t *p_
     p_dst->b_progressive = p_src->b_progressive;
     p_dst->i_nb_fields = p_src->i_nb_fields;
     p_dst->b_top_field_first = p_src->b_top_field_first;
+
+    /* FIXME: copy ->p_q and ->p_qstride */
 }
 
 /**
@@ -171,6 +192,7 @@ static inline void picture_CopyProperties( picture_t *p_dst, const picture_t *p_
  * only the compatible(smaller) part will be copied.
  */
 VLC_EXPORT( void, picture_CopyPixels, ( picture_t *p_dst, const picture_t *p_src ) );
+VLC_EXPORT( void, plane_CopyPixels, ( plane_t *p_dst, const plane_t *p_src ) );
 
 /**
  * This function will copy both picture dynamic properties and pixels.
@@ -234,6 +256,11 @@ struct picture_heap_t
 #define DISPLAYED_PICTURE       5            /* been displayed but is linked */
 #define DESTROYED_PICTURE       6              /* allocated but no more used */
 
+/* Quantification type */
+#define QTYPE_MPEG1            0
+#define QTYPE_MPEG2            1
+#define QTYPE_H264             2
+
 /*****************************************************************************
  * Shortcuts to access image components
  *****************************************************************************/
@@ -351,9 +378,9 @@ struct subpicture_t
                                                 video_format_t *, picture_t * );
     void ( *pf_destroy_region ) ( vlc_object_t *, subpicture_region_t * );
 
-    void ( *pf_pre_render ) ( video_format_t *, spu_t *, subpicture_t *, mtime_t );
-    subpicture_region_t * ( *pf_update_regions ) ( video_format_t *, spu_t *,
-                                                   subpicture_t *, mtime_t );
+    void ( *pf_pre_render ) ( video_format_t *, spu_t *, subpicture_t * );
+    void ( *pf_update_regions ) ( video_format_t *, spu_t *,
+                                  subpicture_t *, mtime_t );
 
     /** Private data - the subtitle plugin might want to put stuff here to
      * keep track of the subpicture */