VLC 4.0.0-dev
|
Data Structures | |
struct | picture_pool_t |
Macros | |
#define | POOL_MAX 256 |
#define POOL_MAX 256 |
|
static |
References picture_pool_t::available_list, container_of, picture_priv_t::pool, picture_priv_t::pool_node, and vlc_list_append().
Referenced by picture_pool_New(), and picture_pool_NewFromFormat().
|
static |
References picture_HasChainedPics(), picture_InternalClone(), picture_pool_ReleaseClone(), picture_pool_t::refs, and vlc_atomic_rc_inc().
Referenced by picture_pool_Get(), and picture_pool_Wait().
|
static |
References picture_pool_t::available_list, picture_pool_t::inuse_list, picture_pool_t::refs, vlc_atomic_rc_dec(), and vlc_list_is_empty().
Referenced by picture_pool_Release(), and picture_pool_ReleaseClone().
picture_t * picture_pool_Get | ( | picture_pool_t * | pool | ) |
Obtains a picture from a pool if any is immediately available.
The picture must be released with picture_Release().
References picture_pool_t::available_list, picture_pool_t::lock, picture_pool_ClonePicture(), picture_pool_GetAvailableLocked(), picture_pool_t::refs, vlc_atomic_rc_get(), vlc_list_is_empty(), vlc_mutex_lock(), and vlc_mutex_unlock().
Referenced by PrerenderPicture(), SourceConverterBuffer(), and VoutVideoFilterInteractiveNewPicture().
|
static |
picture_pool_t * picture_pool_New | ( | unsigned | count, |
picture_t *const * | tab | ||
) |
Creates a pool of preallocated pictures.
Free pictures can be allocated from the pool, and are returned to the pool when they are no longer referenced.
This avoids allocating and deallocationg pictures repeatedly, and ensures that memory consumption remains within limits.
To obtain a picture from the pool, use picture_pool_Get(). To increase and decrease the reference count, use picture_Hold() and picture_Release() respectively.
count | number of pictures in the array |
tab | array of pictures |
References count, picture_pool_AppendPic(), picture_pool_NewCommon(), POOL_MAX, and unlikely.
|
static |
References picture_pool_t::available_list, picture_pool_t::inuse_list, picture_pool_t::lock, picture_pool_t::refs, picture_pool_t::released, unlikely, vlc_atomic_rc_init(), vlc_cond_init(), vlc_list_init(), vlc_mutex_init(), and picture_pool_t::wait.
Referenced by picture_pool_New(), and picture_pool_NewFromFormat().
picture_pool_t * picture_pool_NewFromFormat | ( | const video_format_t * | fmt, |
unsigned | count | ||
) |
Allocates pictures from the heap and creates a picture pool with them.
This is a convenience wrapper for picture_NewFromFormat() and picture_pool_New().
fmt | video format of pictures to allocate from the heap |
count | number of pictures to allocate |
References count, picture_NewFromFormat(), picture_pool_AppendPic(), picture_pool_NewCommon(), picture_pool_Release(), POOL_MAX, unlikely, and vlc_assert_unreachable.
Referenced by ChangeFilters(), ModuleThread_UpdateVideoFormat(), vout_Start(), and VoutSetupConverter().
void picture_pool_Release | ( | picture_pool_t * | pool | ) |
Releases a pool created by picture_pool_New() or picture_pool_NewFromFormat().
References picture_pool_t::available_list, picture_pool_t::inuse_list, list, picture_pool_t::lock, picture_priv_t::picture, picture_pool_Destroy(), picture_Release(), picture_priv_t::pool, picture_priv_t::pool_node, picture_pool_t::released, vlc_list_foreach, vlc_list_remove(), vlc_mutex_lock(), and vlc_mutex_unlock().
Referenced by ChangeFilters(), CreateVoutIfNeeded(), DeleteDecoder(), picture_pool_NewFromFormat(), vout_ReleaseDisplay(), vout_Start(), VoutConverterRelease(), and VoutSetupConverter().
|
static |
References picture_pool_t::available_list, container_of, picture_priv_t::gc, picture_pool_t::lock, picture_priv_t::opaque, picture_pool_Destroy(), picture_Release(), picture_priv_t::pool, picture_priv_t::pool_node, picture_pool_t::released, vlc_cond_signal(), vlc_list_append(), vlc_list_remove(), vlc_mutex_lock(), vlc_mutex_unlock(), and picture_pool_t::wait.
Referenced by picture_pool_ClonePicture().
picture_t * picture_pool_Wait | ( | picture_pool_t * | pool | ) |
Obtains a picture from a pool.
The picture must be released with picture_Release().
References picture_pool_t::available_list, picture_pool_t::lock, picture_pool_ClonePicture(), picture_pool_GetAvailableLocked(), picture_pool_t::refs, vlc_atomic_rc_get(), vlc_cond_wait(), vlc_list_is_empty(), vlc_mutex_lock(), vlc_mutex_unlock(), and picture_pool_t::wait.
Referenced by ModuleThread_NewVideoBuffer().