]> git.sesse.net Git - vlc/blobdiff - include/vlc_vout.h
Allowed vout_display_DeleteWindow(vd, NULL) to destroy unused window.
[vlc] / include / vlc_vout.h
index 08549089d5d39889120d470dd2c75e7c05ea46e5..8c75c72652d25ec96bff1094dd173ff5246a20c2 100644 (file)
 #include <vlc_filter.h>
 #include <vlc_subpicture.h>
 
-/**
- * Video picture heap, either render (to store pictures used
- * by the decoder) or output (to store pictures displayed by the vout plugin)
- */
-struct picture_heap_t
-{
-    int i_pictures;                                   /**< current heap size */
-
-    /* Real pictures */
-    picture_t*      pp_picture[VOUT_MAX_PICTURES];             /**< pictures */
-    int             i_last_used_pic;              /**< last used pic in heap */
-};
-
 /*****************************************************************************
  * Prototypes
  *****************************************************************************/
@@ -76,10 +63,6 @@ struct vout_thread_t
 {
     VLC_COMMON_MEMBERS
 
-    video_format_t      fmt_render;      /* render format (from the decoder) */
-    video_format_t      fmt_in;            /* input (modified render) format */
-    video_format_t      fmt_out;     /* output format (for the video output) */
-
     /* Private vout_thread data */
     vout_thread_sys_t *p;
 };
@@ -119,7 +102,7 @@ struct vout_thread_t
  * \return a vout if p_fmt is non NULL and the request is successfull, NULL
  * otherwise
  */
-VLC_EXPORT( vout_thread_t *, vout_Request, ( vlc_object_t *p_this, vout_thread_t *p_vout, video_format_t *p_fmt ) );
+VLC_EXPORT( vout_thread_t *, vout_Request, ( vlc_object_t *p_this, vout_thread_t *p_vout, const video_format_t *p_fmt ) );
 #define vout_Request(a,b,c) vout_Request(VLC_OBJECT(a),b,c)
 
 /**
@@ -131,7 +114,7 @@ VLC_EXPORT( vout_thread_t *, vout_Request, ( vlc_object_t *p_this, vout_thread_t
  * \param p_fmt the video format requested
  * \return a vout if the request is successfull, NULL otherwise
  */
-VLC_EXPORT( vout_thread_t *, vout_Create, ( vlc_object_t *p_this, video_format_t *p_fmt ) );
+VLC_EXPORT( vout_thread_t *, vout_Create, ( vlc_object_t *p_this, const video_format_t *p_fmt ) );
 #define vout_Create(a,b) vout_Create(VLC_OBJECT(a),b)
 
 /**
@@ -174,20 +157,16 @@ VLC_EXPORT( int, vout_GetSnapshot, ( vout_thread_t *p_vout,
                                      const char *psz_format, mtime_t i_timeout ) );
 
 /* */
-VLC_EXPORT( picture_t *,     vout_CreatePicture,  ( vout_thread_t *, bool, bool, unsigned int ) );
-VLC_EXPORT( void,            vout_DestroyPicture, ( vout_thread_t *, picture_t * ) );
-VLC_EXPORT( void,            vout_DisplayPicture, ( vout_thread_t *, picture_t * ) );
-VLC_EXPORT( void,            vout_LinkPicture,    ( vout_thread_t *, picture_t * ) );
-VLC_EXPORT( void,            vout_UnlinkPicture,  ( vout_thread_t *, picture_t * ) );
+VLC_EXPORT( picture_t *,     vout_GetPicture,     ( vout_thread_t * ) );
+VLC_EXPORT( void,            vout_PutPicture,     ( vout_thread_t *, picture_t * ) );
 
-/**
- * Return the spu_t object associated to a vout_thread_t.
- *
- * The return object is valid only as long as the vout is. You must not
- * release the spu_t object returned.
- * It cannot return NULL so no need to check.
- */
-VLC_EXPORT( spu_t *, vout_GetSpu, ( vout_thread_t * ) );
+VLC_EXPORT( void,            vout_HoldPicture,    ( vout_thread_t *, picture_t * ) );
+VLC_EXPORT( void,            vout_ReleasePicture, ( vout_thread_t *, picture_t * ) );
+
+/* */
+VLC_EXPORT( void, vout_PutSubpicture,             ( vout_thread_t *, subpicture_t * ) );
+VLC_EXPORT( int,  vout_RegisterSubpictureChannel, ( vout_thread_t * ) );
+VLC_EXPORT( void, vout_FlushSubpictureChannel,    ( vout_thread_t *, int ) );
 
 VLC_EXPORT( void, vout_EnableFilter, ( vout_thread_t *, const char *,bool , bool  ) );