]> git.sesse.net Git - vlc/blobdiff - include/vlc_vout.h
Missing #undef
[vlc] / include / vlc_vout.h
index d5e74698c06328ce67accf8bbd459db13275a20e..635434f08c7e87f4619300e62fb7dc622a7cfd0c 100644 (file)
@@ -115,6 +115,23 @@ struct picture_t
     struct picture_t *p_next;
 };
 
+/**
+ * This function will create a new picture.
+ * The picture created will implement a default release management compatible
+ * with picture_Yield and picture_Release. This default management will release
+ * picture_sys_t *p_sys field if non NULL.
+ */
+VLC_EXPORT( picture_t *, picture_New, ( vlc_fourcc_t i_chroma, int i_width, int i_height, int i_aspect ) );
+
+/**
+ * This function will force the destruction a picture.
+ * The value of the picture reference count should be 0 before entering this
+ * function.
+ * Unless used for reimplementing pf_release, you should not use this
+ * function but picture_Release.
+ */
+VLC_EXPORT( void, picture_Delete, ( picture_t * ) );
+
 /**
  * This function will increase the picture reference count.
  * It will not have any effect on picture obtained from vout
@@ -148,6 +165,23 @@ static inline void picture_CopyProperties( picture_t *p_dst, const picture_t *p_
     p_dst->b_top_field_first = p_src->b_top_field_first;
 }
 
+/**
+ * This function will copy the picture pixels.
+ */
+VLC_EXPORT( void, picture_CopyPixels, ( picture_t *p_dst, const picture_t *p_src ) );
+
+/**
+ * This function will copy both picture dynamic properties and pixels.
+ * You have to notice that sometime a simple picture_Yield may do what
+ * you want without the copy overhead.
+ * Provided for convenience.
+ */
+static inline void picture_Copy( picture_t *p_dst, const picture_t *p_src )
+{
+    picture_CopyPixels( p_dst, p_src );
+    picture_CopyProperties( p_dst, p_src );
+}
+
 /**
  * Video picture heap, either render (to store pictures used
  * by the decoder) or output (to store pictures displayed by the vout plugin)