]> git.sesse.net Git - vlc/blobdiff - include/vlc_picture.h
qt4: fix COM leak and handle errors
[vlc] / include / vlc_picture.h
index 7c7d4cc6f9c2b01a69171044cb38f82cf57bd5f9..d3e3b99c1f8f5ad6c6b4ca63a1c80ba8357889d0 100644 (file)
@@ -91,9 +91,8 @@ struct picture_t
     bool            b_progressive;          /**< is it a progressive frame ? */
     bool            b_top_field_first;             /**< which field is first */
     unsigned int    i_nb_fields;                  /**< # of displayed fields */
-    int8_t         *p_q;                           /**< quantification table */
-    int             i_qstride;                    /**< quantification stride */
-    int             i_qtype;                       /**< quantification style */
+    void          * context;          /**< video format-specific data pointer,
+             * must point to a (void (*)(void*)) pointer to free the context */
     /**@}*/
 
     /** Private data - the video output plugin might want to put stuff here to
@@ -103,7 +102,7 @@ struct picture_t
     /** This way the picture_Release can be overloaded */
     struct
     {
-        vlc_atomic_t refcount;
+        atomic_uintptr_t refcount;
         void (*pf_destroy)( picture_t * );
         picture_gc_sys_t *p_sys;
     } gc;
@@ -116,7 +115,7 @@ struct picture_t
  * This function will create a new picture.
  * The picture created will implement a default release management compatible
  * with picture_Hold and picture_Release. This default management will release
- * p_sys, p_q, gc.p_sys fields if non NULL.
+ * p_sys, gc.p_sys fields if non NULL.
  */
 VLC_API picture_t * picture_New( vlc_fourcc_t i_chroma, int i_width, int i_height, int i_sar_num, int i_sar_den ) VLC_USED;
 
@@ -134,6 +133,7 @@ VLC_API picture_t * picture_NewFromFormat( const video_format_t *p_fmt ) VLC_USE
 typedef struct
 {
     picture_sys_t *p_sys;
+    void (*pf_destroy)(picture_t *);
 
     /* Plane resources
      * XXX all fields MUST be set to the right value.
@@ -235,7 +235,7 @@ VLC_API int picture_Export( vlc_object_t *p_obj, block_t **pp_image, video_forma
  *
  * It can be useful to get the properties of planes.
  */
-VLC_API int picture_Setup( picture_t *, vlc_fourcc_t i_chroma, int i_width, int i_height, int i_sar_num, int i_sar_den );
+VLC_API int picture_Setup( picture_t *, const video_format_t * );
 
 
 /**
@@ -246,24 +246,11 @@ VLC_API int picture_Setup( picture_t *, vlc_fourcc_t i_chroma, int i_width, int
  *  - not be ephemere.
  *  - not have the fade flag.
  *  - contains only picture (no text rendering).
+ * \return the number of region(s) succesfully blent
  */
-VLC_API void picture_BlendSubpicture( picture_t *, filter_t *p_blend, subpicture_t * );
+VLC_API unsigned picture_BlendSubpicture( picture_t *, filter_t *p_blend, subpicture_t * );
 
 
-/*****************************************************************************
- * Flags used to describe the status of a picture
- *****************************************************************************/
-
-/* Quantification type */
-enum
-{
-    QTYPE_NONE,
-
-    QTYPE_MPEG1,
-    QTYPE_MPEG2,
-    QTYPE_H264,
-};
-
 /*****************************************************************************
  * Shortcuts to access image components
  *****************************************************************************/