VLC
3.0.21
|
Go to the source code of this file.
Data Structures | |
struct | plane_t |
Description of a planar graphic field. More... | |
struct | picture_context_t |
struct | picture_t |
Video picture. More... | |
struct | picture_resource_t |
Resource for a picture. More... | |
Macros | |
#define | PICTURE_PLANE_MAX (VOUT_MAX_PLANES) |
Maximum number of plane for a picture. More... | |
#define | Y_PIXELS p[Y_PLANE].p_pixels |
#define | Y_PITCH p[Y_PLANE].i_pitch |
#define | U_PIXELS p[U_PLANE].p_pixels |
#define | U_PITCH p[U_PLANE].i_pitch |
#define | V_PIXELS p[V_PLANE].p_pixels |
#define | V_PITCH p[V_PLANE].i_pitch |
#define | A_PIXELS p[A_PLANE].p_pixels |
#define | A_PITCH p[A_PLANE].i_pitch |
Typedefs | |
typedef struct plane_t | plane_t |
Description of a planar graphic field. More... | |
typedef struct picture_context_t | picture_context_t |
Enumerations | |
enum | { Y_PLANE = 0, U_PLANE = 1, V_PLANE = 2, A_PLANE = 3 } |
Functions | |
picture_t * | picture_New (vlc_fourcc_t i_chroma, int i_width, int i_height, int i_sar_num, int i_sar_den) |
This function will create a new picture. More... | |
picture_t * | picture_NewFromFormat (const video_format_t *p_fmt) |
This function will create a new picture using the given format. More... | |
picture_t * | picture_NewFromResource (const video_format_t *, const picture_resource_t *) |
This function will create a new picture using the provided resource. More... | |
picture_t * | picture_Hold (picture_t *p_picture) |
This function will increase the picture reference count. More... | |
void | picture_Release (picture_t *p_picture) |
This function will release a picture. More... | |
void | picture_CopyProperties (picture_t *p_dst, const picture_t *p_src) |
This function will copy all picture dynamic properties. More... | |
void | picture_Reset (picture_t *) |
This function will reset a picture information (properties and quantizers). More... | |
void | picture_CopyPixels (picture_t *p_dst, const picture_t *p_src) |
This function will copy the picture pixels. More... | |
void | plane_CopyPixels (plane_t *p_dst, const plane_t *p_src) |
void | picture_Copy (picture_t *p_dst, const picture_t *p_src) |
This function will copy both picture dynamic properties and pixels. More... | |
picture_t * | picture_Clone (picture_t *pic) |
Perform a shallow picture copy. More... | |
int | picture_Export (vlc_object_t *p_obj, block_t **pp_image, video_format_t *p_fmt, picture_t *p_picture, vlc_fourcc_t i_format, int i_override_width, int i_override_height) |
This function will export a picture to an encoded bitstream. More... | |
int | picture_Setup (picture_t *, const video_format_t *) |
This function will setup all fields of a picture_t without allocating any memory. More... | |
This file defines picture structures and functions in vlc
#define PICTURE_PLANE_MAX (VOUT_MAX_PLANES) |
Maximum number of plane for a picture.
typedef struct picture_context_t picture_context_t |
Perform a shallow picture copy.
This function makes a shallow copy of an existing picture. The same planes and resources will be used, and the cloned picture reference count will be incremented.
This function will copy both picture dynamic properties and pixels.
You have to notice that sometime a simple picture_Hold may do what you want without the copy overhead. Provided for convenience.
p_dst | pointer to the destination picture. |
p_src | pointer to the source picture. |
Referenced by ImageConvert().
This function will copy the picture pixels.
You can safely copy between pictures that do not have the same size, only the compatible(smaller) part will be copied.
Referenced by picture_DestroyClone().
This function will copy all picture dynamic properties.
Referenced by picture_DestroyClone().
int picture_Export | ( | vlc_object_t * | p_obj, |
block_t ** | pp_image, | ||
video_format_t * | p_fmt, | ||
picture_t * | p_picture, | ||
vlc_fourcc_t | i_format, | ||
int | i_override_width, | ||
int | i_override_height | ||
) |
This function will export a picture to an encoded bitstream.
pp_image will contain the encoded bitstream in psz_format format.
p_fmt can be NULL otherwise it will be set with the format used for the picture before encoding.
i_override_width/height allow to override the width and/or the height of the picture to be encoded:
< Not enough memory
< Unspecified error
< No error
This function will increase the picture reference count.
It will not have any effect on picture obtained from vout
It returns the given picture for convenience.
Referenced by ImageConvert(), ImageWrite(), picture_pool_ClonePicture(), SpuRenderRegion(), and ThreadDisplayPreparePicture().
picture_t* picture_New | ( | vlc_fourcc_t | i_chroma, |
int | i_width, | ||
int | i_height, | ||
int | i_sar_num, | ||
int | i_sar_den | ||
) |
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, gc.p_sys fields if non NULL.
References picture_NewFromResource().
picture_t* picture_NewFromFormat | ( | const video_format_t * | p_fmt | ) |
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.
Referenced by filter_chain_VideoBufferNew(), filter_new_picture(), picture_pool_NewFromFormat(), subpicture_region_New(), and video_new_buffer().
picture_t* picture_NewFromResource | ( | const video_format_t * | , |
const 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.
References AllocatePicture(), picture_priv_t::destroy, picture_t::format, picture_priv_t::gc, video_format_t::i_chroma, video_format_t::i_height, plane_t::i_lines, picture_resource_t::i_lines, plane_t::i_pitch, picture_resource_t::i_pitch, picture_t::i_planes, video_format_t::i_sar_den, video_format_t::i_sar_num, video_format_t::i_visible_height, video_format_t::i_visible_width, video_format_t::i_width, video_format_t::i_x_offset, video_format_t::i_y_offset, picture_priv_t::opaque, picture_t::p, picture_resource_t::p, plane_t::p_pixels, picture_resource_t::p_pixels, picture_t::p_sys, picture_resource_t::p_sys, picture_resource_t::pf_destroy, picture_priv_t::picture, picture_Destroy(), picture_DestroyFromResource(), picture_Setup(), picture_priv_t::refs, unlikely, video_format_CopyCrop(), and video_format_Setup().
Referenced by picture_New(), and picture_pool_ClonePicture().
void picture_Release | ( | picture_t * | p_picture | ) |
This function will release a picture.
It will not have any effect on picture obtained from vout
Referenced by FilterDeletePictures(), ImageConvert(), ImageRead(), ImageWrite(), picture_pool_NewFromFormat(), picture_pool_Release(), picture_pool_ReleasePicture(), picture_pool_Reserve(), spuregion_CreateFromPicture(), SpuRenderRegion(), subpicture_NewFromPicture(), subpicture_region_Delete(), subpicture_region_private_Delete(), ThreadDisplayPreparePicture(), and vout_PutPicture().
void picture_Reset | ( | picture_t * | ) |
This function will reset a picture information (properties and quantizers).
It is sometimes useful for reusing pictures (like from a pool).
References picture_t::b_force, picture_t::b_progressive, picture_t::b_top_field_first, picture_t::date, picture_t::i_nb_fields, PictureDestroyContext(), and VLC_TICK_INVALID.
Referenced by vout_GetPicture().
int picture_Setup | ( | picture_t * | , |
const video_format_t * | |||
) |
This function will setup all fields of a picture_t without allocating any memory.
XXX The memory must already be initialized. It does not need to be released.
It will return VLC_EGENERIC if the core does not understand the requested format.
It can be useful to get the properties of planes.