VLC
4.0.0-dev
|
Data Structures | |
struct | picture_priv_buffer_t |
Macros | |
#define | PICTURE_SW_SIZE_MAX (UINT32_C(1) << 28) /* 256MB: 8K * 8K * 4*/ |
Functions | |
static void | PictureDestroyContext (picture_t *p_picture) |
static void | picture_DestroyDummy (picture_t *p_picture) |
Destroys a picture allocated by picture_NewFromResource() but without a custom destruction callback. More... | |
static void | picture_DestroyFromFormat (picture_t *pic) |
Destroys a picture allocated with picture_NewFromFormat(). More... | |
void * | picture_Allocate (int *restrict fdp, size_t size) |
void | picture_Deallocate (int fd, void *base, size_t size) |
void | picture_Reset (picture_t *p_picture) |
This function will reset a picture information (properties and quantizers). More... | |
static int | LCM (int a, int b) |
int | picture_Setup (picture_t *p_picture, const video_format_t *restrict fmt) |
static bool | picture_InitPrivate (const video_format_t *restrict p_fmt, picture_priv_t *priv, const picture_resource_t *p_resource) |
picture_t * | picture_NewFromResource (const video_format_t *p_fmt, const picture_resource_t *p_resource) |
This function will create a new picture using the provided resource. More... | |
picture_t * | picture_NewFromFormat (const video_format_t *restrict fmt) |
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... | |
void | picture_Destroy (picture_t *picture) |
Destroys a picture without references. More... | |
void | plane_CopyPixels (plane_t *p_dst, const plane_t *p_src) |
void | picture_CopyProperties (picture_t *p_dst, const picture_t *p_src) |
This function will copy all picture dynamic properties. More... | |
void | picture_CopyPixels (picture_t *p_dst, const picture_t *p_src) |
This function will copy the picture pixels. More... | |
void | picture_Copy (picture_t *p_dst, const picture_t *p_src) |
This function will copy both picture dynamic properties and pixels. More... | |
static void | picture_DestroyClone (picture_t *clone) |
picture_t * | picture_InternalClone (picture_t *picture, void(*pf_destroy)(picture_t *), void *opaque) |
picture_t * | picture_Clone (picture_t *picture) |
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, bool b_crop) |
This function will export a picture to an encoded bitstream. More... | |
#define PICTURE_SW_SIZE_MAX (UINT32_C(1) << 28) /* 256MB: 8K * 8K * 4*/ |
Referenced by picture_NewFromFormat().
|
static |
References GCD().
Referenced by picture_Setup().
void* picture_Allocate | ( | int *restrict | fdp, |
size_t | size | ||
) |
References aligned_alloc().
Referenced by picture_NewFromFormat().
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.
References picture_t::context, picture_context_t::copy, likely, picture_DestroyClone(), and picture_InternalClone().
Referenced by picture_Release(), and vout_snapshot_Set().
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. |
References picture_CopyPixels(), and picture_CopyProperties().
Referenced by picture_Release(), and ThreadDisplayRenderPicture().
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.
References picture_t::context, picture_context_t::copy, picture_t::i_planes, picture_t::p, and plane_CopyPixels().
Referenced by picture_Copy(), and picture_Release().
This function will copy all picture dynamic properties.
References picture_t::b_force, picture_t::b_progressive, picture_t::b_still, picture_t::b_top_field_first, picture_t::date, and picture_t::i_nb_fields.
Referenced by picture_Copy(), and picture_Release().
void picture_Deallocate | ( | int | fd, |
void * | base, | ||
size_t | size | ||
) |
Referenced by picture_DestroyFromFormat().
void picture_Destroy | ( | picture_t * | picture | ) |
Destroys a picture without references.
This function destroys a picture with zero references left. Never call this function directly. Use picture_Release() instead.
References container_of, picture_priv_t::destroy, picture_priv_t::gc, PictureDestroyContext(), picture_priv_buffer_t::priv, and picture_t::refs.
Referenced by picture_Release().
|
static |
References picture_Release().
Referenced by picture_Clone().
|
static |
Destroys a picture allocated by picture_NewFromResource() but without a custom destruction callback.
Referenced by picture_InitPrivate().
|
static |
Destroys a picture allocated with picture_NewFromFormat().
References picture_buffer_t::base, picture_buffer_t::fd, picture_t::p_sys, picture_Deallocate(), and picture_buffer_t::size.
Referenced by picture_NewFromFormat().
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.
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:
References picture_t::date, picture_t::format, video_format_t::i_chroma, block_t::i_dts, video_format_t::i_height, block_t::i_pts, 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, image_HandlerCreate, image_HandlerDelete(), image_Write, VLC_EGENERIC, VLC_ENOMEM, and VLC_SUCCESS.
Referenced by picture_Release(), and vout_GetSnapshot().
|
static |
References picture_t::date, picture_priv_t::destroy, picture_t::format, picture_priv_t::gc, picture_priv_t::opaque, picture_t::p_sys, picture_resource_t::p_sys, picture_resource_t::pf_destroy, picture_priv_t::picture, picture_DestroyDummy(), picture_Setup(), picture_t::refs, and VLC_TICK_INVALID.
Referenced by picture_NewFromFormat(), and picture_NewFromResource().
picture_t* picture_InternalClone | ( | picture_t * | picture, |
void(*)(picture_t *) | pf_destroy, | ||
void * | opaque | ||
) |
References picture_t::format, plane_t::i_lines, picture_resource_t::i_lines, plane_t::i_pitch, picture_resource_t::i_pitch, picture_t::i_planes, likely, picture_t::p, picture_resource_t::p, plane_t::p_pixels, picture_resource_t::p_pixels, picture_t::p_sys, picture_Hold(), picture_NewFromResource(), and picture_priv_buffer_t::res.
Referenced by picture_Clone(), and picture_pool_ClonePicture().
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_NewFromFormat(), video_format_Init(), and video_format_Setup().
Referenced by picture_GetVideoContext().
picture_t* picture_NewFromFormat | ( | const video_format_t *restrict | fmt | ) |
References add_overflow, picture_buffer_t::base, picture_buffer_t::fd, plane_t::i_lines, plane_t::i_pitch, picture_t::i_planes, mul_overflow, picture_buffer_t::offset, picture_t::p, p, plane_t::p_pixels, picture_t::p_sys, picture_resource_t::p_sys, picture_priv_t::picture, picture_Allocate(), picture_DestroyFromFormat(), picture_InitPrivate(), PICTURE_PLANE_MAX, PICTURE_SW_SIZE_MAX, picture_priv_buffer_t::priv, picture_priv_buffer_t::res, picture_buffer_t::size, static_assert, and unlikely.
Referenced by decoder_NewPicture(), filter_NewPicture(), picture_New(), picture_pool_NewFromFormat(), subpicture_region_New(), thumbnailer_buffer_new(), video_splitter_NewPicture(), and VoutVideoFilterStaticNewPicture().
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 plane_t::i_lines, picture_resource_t::i_lines, plane_t::i_pitch, picture_resource_t::i_pitch, picture_t::i_planes, picture_t::p, picture_resource_t::p, plane_t::p_pixels, picture_resource_t::p_pixels, picture_priv_t::picture, picture_InitPrivate(), and unlikely.
Referenced by picture_InternalClone().
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_still, picture_t::b_top_field_first, picture_t::date, picture_t::i_nb_fields, PictureDestroyContext(), and VLC_TICK_INVALID.
Referenced by ModuleThread_NewVideoBuffer(), picture_Release(), vout_GetPicture(), and VoutVideoFilterInteractiveNewPicture().
int picture_Setup | ( | picture_t * | p_picture, |
const video_format_t *restrict | fmt | ||
) |
References add_overflow, ARRAY_SIZE, vlc_rational_t::den, picture_t::format, vlc_chroma_description_t::h, video_format_t::i_chroma, plane_t::i_lines, picture_t::i_nb_fields, plane_t::i_pitch, plane_t::i_pixel_pitch, picture_t::i_planes, plane_t::i_visible_lines, plane_t::i_visible_pitch, LCM(), vlc_rational_t::num, picture_t::p, p, vlc_chroma_description_t::p, plane_t::p_pixels, vlc_chroma_description_t::pixel_size, vlc_chroma_description_t::plane_count, unlikely, video_format_CopyCrop(), video_format_Setup(), VLC_EGENERIC, vlc_fourcc_GetChromaDescription(), VLC_SUCCESS, and vlc_chroma_description_t::w.
Referenced by picture_InitPrivate().
|
static |
References picture_t::context, picture_context_t::destroy, picture_context_t::vctx, and vlc_video_context_Release().
Referenced by picture_Destroy(), and picture_Reset().
References plane_t::i_pitch, plane_t::i_visible_lines, plane_t::i_visible_pitch, and plane_t::p_pixels.
Referenced by picture_CopyPixels(), and picture_Release().