*/
video_frame_format_t format;
- void *p_data_orig; /**< pointer before memalign */
plane_t p[PICTURE_PLANE_MAX]; /**< description of the planes */
int i_planes; /**< number of allocated planes */
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
/** 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;
* 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, p_data_orig 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;
typedef struct
{
picture_sys_t *p_sys;
+ void (*pf_destroy)(picture_t *);
/* Plane resources
* XXX all fields MUST be set to the right value.
*
* 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 * );
/**
* - 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
*****************************************************************************/