VLC 4.0.0-dev

This file defines picture structures and functions in vlc. More...

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_buffer_t
 
struct  vlc_video_context_operations
 
struct  picture_t
 Video picture. More...
 
struct  vlc_pic_chain
 picture chaining helpers 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 uint32_t vlc_ancillary_id
 
typedef struct plane_t plane_t
 Description of a planar graphic field. More...
 
typedef struct picture_context_t picture_context_t
 
typedef struct picture_buffer_t picture_buffer_t
 
typedef struct vlc_decoder_device vlc_decoder_device
 
typedef struct vlc_video_context vlc_video_context
 
typedef struct vlc_pic_chain vlc_picture_chain_t
 picture chaining helpers More...
 

Enumerations

enum  vlc_video_context_type {
  VLC_VIDEO_CONTEXT_VAAPI = 1 , VLC_VIDEO_CONTEXT_VDPAU , VLC_VIDEO_CONTEXT_DXVA2 , VLC_VIDEO_CONTEXT_D3D11VA ,
  VLC_VIDEO_CONTEXT_AWINDOW , VLC_VIDEO_CONTEXT_NVDEC , VLC_VIDEO_CONTEXT_CVPX , VLC_VIDEO_CONTEXT_MMAL ,
  VLC_VIDEO_CONTEXT_GSTDECODE
}
 Decoder device type. More...
 
enum  { Y_PLANE = 0 , U_PLANE = 1 , V_PLANE = 2 , A_PLANE = 3 }
 

Functions

vlc_video_contextvlc_video_context_Create (vlc_decoder_device *, enum vlc_video_context_type private_type, size_t private_size, const struct vlc_video_context_operations *)
 
void vlc_video_context_Release (vlc_video_context *)
 
enum vlc_video_context_type vlc_video_context_GetType (const vlc_video_context *)
 
void * vlc_video_context_GetPrivate (vlc_video_context *, enum vlc_video_context_type)
 
vlc_video_contextvlc_video_context_Hold (vlc_video_context *)
 
vlc_decoder_devicevlc_video_context_HoldDevice (vlc_video_context *)
 Get the decoder device used by the device context. More...
 
static vlc_video_contextpicture_GetVideoContext (picture_t *pic)
 
static bool picture_HasChainedPics (const picture_t *pic)
 Check whether a picture has other pictures linked. More...
 
static void vlc_picture_chain_Init (vlc_picture_chain_t *chain)
 Initializes or reset a picture chain. More...
 
static bool vlc_picture_chain_IsEmpty (const vlc_picture_chain_t *chain)
 Check whether a picture chain holds pictures or not. More...
 
static bool vlc_picture_chain_HasNext (const vlc_picture_chain_t *chain)
 Check whether a picture chain has more than one picture. More...
 
static picture_tvlc_picture_chain_PopFront (vlc_picture_chain_t *chain)
 Pop the front of a picture chain. More...
 
static picture_tvlc_picture_chain_PeekFront (vlc_picture_chain_t *chain)
 Peek the front of a picture chain. More...
 
static void vlc_picture_chain_Append (vlc_picture_chain_t *chain, picture_t *pic)
 Append a picture to a picture chain. More...
 
static void vlc_picture_chain_AppendChain (picture_t *chain, picture_t *tail)
 Append a picture chain to a picture chain. More...
 
static void vlc_picture_chain_GetAndClear (vlc_picture_chain_t *in, vlc_picture_chain_t *out)
 Copy the picture chain in another picture chain and clear the original picture chain. More...
 
static vlc_picture_chain_t picture_GetAndResetChain (picture_t *pic)
 Reset a picture chain. More...
 
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...
 
void picture_Destroy (picture_t *picture)
 Destroys a picture without references. More...
 
static picture_tpicture_Hold (picture_t *picture)
 Increments the picture reference count. More...
 
static void picture_Release (picture_t *picture)
 Decrements the picture reference count. 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_AttachAncillary (picture_t *pic, struct vlc_ancillary *ancillary)
 Attach an ancillary to the picture. More...
 
void * picture_AttachNewAncillary (picture_t *pic, vlc_ancillary_id id, size_t size)
 Allocate a new ancillary and attach it to a picture. More...
 
struct vlc_ancillarypicture_GetAncillary (const picture_t *pic, vlc_ancillary_id id)
 Return the ancillary identified by an ID. 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, bool b_crop)
 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...
 
static void picture_SwapUV (picture_t *picture)
 Swap UV planes of a Tri Planars picture. More...
 

Detailed Description

This file defines picture structures and functions in vlc.

Typedef Documentation

◆ vlc_ancillary_id

typedef uint32_t vlc_ancillary_id