VLC  3.0.15
Data Structures | Macros | Typedefs | Enumerations | Functions
vlc_picture.h File Reference
Include dependency graph for vlc_picture.h:

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_tpicture_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_tpicture_NewFromFormat (const video_format_t *p_fmt)
 This function will create a new picture using the given format. More...
 
picture_tpicture_NewFromResource (const video_format_t *, const picture_resource_t *)
 This function will create a new picture using the provided resource. More...
 
picture_tpicture_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_tpicture_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...
 

Detailed Description

This file defines picture structures and functions in vlc

Macro Definition Documentation

◆ A_PITCH

#define A_PITCH   p[A_PLANE].i_pitch

◆ A_PIXELS

#define A_PIXELS   p[A_PLANE].p_pixels

◆ PICTURE_PLANE_MAX

#define PICTURE_PLANE_MAX   (VOUT_MAX_PLANES)

Maximum number of plane for a picture.

◆ U_PITCH

#define U_PITCH   p[U_PLANE].i_pitch

◆ U_PIXELS

#define U_PIXELS   p[U_PLANE].p_pixels

◆ V_PITCH

#define V_PITCH   p[V_PLANE].i_pitch

◆ V_PIXELS

#define V_PIXELS   p[V_PLANE].p_pixels

◆ Y_PITCH

#define Y_PITCH   p[Y_PLANE].i_pitch

◆ Y_PIXELS

#define Y_PIXELS   p[Y_PLANE].p_pixels

Typedef Documentation

◆ picture_context_t

◆ plane_t

typedef struct plane_t plane_t

Description of a planar graphic field.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
Y_PLANE 
U_PLANE 
V_PLANE 
A_PLANE 

Function Documentation

◆ picture_Clone()

picture_t* picture_Clone ( picture_t pic)

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.

Returns
A clone picture on success, NULL on error.

◆ picture_Copy()

void picture_Copy ( 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_Hold may do what you want without the copy overhead. Provided for convenience.

Parameters
p_dstpointer to the destination picture.
p_srcpointer to the source picture.

Referenced by ImageConvert().

◆ picture_CopyPixels()

void picture_CopyPixels ( picture_t p_dst,
const picture_t p_src 
)

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().

◆ picture_CopyProperties()

void picture_CopyProperties ( picture_t p_dst,
const picture_t p_src 
)

This function will copy all picture dynamic properties.

Referenced by picture_DestroyClone().

◆ picture_Export()

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:

  • if strictly lower than 0, the original dimension will be used.
  • if equal to 0, it will be deduced from the other dimension which must be different to 0.
  • if strictly higher than 0, it will override the dimension. If at most one of them is > 0 then the picture aspect ratio will be kept.

< Not enough memory

< Unspecified error

< No error

◆ picture_Hold()

picture_t* picture_Hold ( picture_t p_picture)

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_New()

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_NewFromFormat()

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_NewFromResource()

picture_t* picture_NewFromResource ( const video_format_t ,
const picture_resource_t  
)

◆ picture_Release()

void picture_Release ( picture_t p_picture)

◆ picture_Reset()

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_TS_INVALID.

Referenced by vout_GetPicture().

◆ picture_Setup()

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.

◆ plane_CopyPixels()

void plane_CopyPixels ( plane_t p_dst,
const plane_t p_src 
)