-VLC_EXPORT( picture_t *, picture_New, ( vlc_fourcc_t i_chroma, int i_width, int i_height, int i_aspect ) );
+VLC_EXPORT( picture_t *, picture_New, ( vlc_fourcc_t i_chroma, int i_width, int i_height, int i_sar_num, int i_sar_den ) LIBVLC_USED );
+
+/**
+ * This function will create a new picture using the given format.
+ *
+ * When possible, it is preferred to use this function over picture_New
+ * as more information about the format is kept.
+ */
+VLC_EXPORT( picture_t *, picture_NewFromFormat, ( const video_format_t *p_fmt ) LIBVLC_USED );
+
+/**
+ * Resource for a picture.
+ */
+typedef struct
+{
+ picture_sys_t *p_sys;
+
+ /* Plane resources
+ * XXX all fields MUST be set to the right value.
+ */
+ struct
+ {
+ uint8_t *p_pixels; /**< Start of the plane's data */
+ int i_lines; /**< Number of lines, including margins */
+ int i_pitch; /**< Number of bytes in a line, including margins */
+ } p[PICTURE_PLANE_MAX];
+
+} picture_resource_t;
+
+/**
+ * This function will create a new picture using the provided resource.
+ *
+ * If the resource is NULL then a plain picture_NewFromFormat is returned.
+ */
+VLC_EXPORT( picture_t *, picture_NewFromResource, ( const video_format_t *, const picture_resource_t * ) LIBVLC_USED );