X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=include%2Fvlc_picture_pool.h;h=7eced8fe35dcfd2f27ae783e58b4e59f9e7976a1;hb=2344ab6ae1f2db7e1c079edeecaec410ad52b119;hp=4bcdc44d245b8c2970f5b9e6146bc35baab9bac0;hpb=74b6f45ec83116438c32164d0e5cad4e2804e7e9;p=vlc diff --git a/include/vlc_picture_pool.h b/include/vlc_picture_pool.h index 4bcdc44d24..7eced8fe35 100644 --- a/include/vlc_picture_pool.h +++ b/include/vlc_picture_pool.h @@ -53,7 +53,7 @@ typedef struct { /** * It creates a picture_pool_t wrapping the given configuration. * - * It is usefull to avoid useless picture creations/destructions. + * It avoids useless picture creations/destructions. * The given picture must not have a reference count greater than 1. * The pool takes ownership of the picture and MUST not be used directly. * When deleted, the pool will release the pictures using picture_Release. @@ -62,21 +62,21 @@ typedef struct { * as soon as a picture is unused. They are allowed to modify picture_t::p and * access picture_t::p_sys. */ -VLC_EXPORT( picture_pool_t *, picture_pool_NewExtended, ( const picture_pool_configuration_t * ) ); +VLC_API picture_pool_t * picture_pool_NewExtended( const picture_pool_configuration_t * ) VLC_USED; /** * It creates a picture_pool_t wrapping the given arrays of picture. * * It is provided as convenience. */ -VLC_EXPORT( picture_pool_t *, picture_pool_New, ( int i_picture, picture_t *pp_picture[] ) ); +VLC_API picture_pool_t * picture_pool_New( int picture_count, picture_t *picture[] ) VLC_USED; /** * It creates a picture_pool_t creating images using the given format. * * Provided for convenience. */ -VLC_EXPORT( picture_pool_t *, picture_pool_NewFromFormat, ( const video_format_t *, int i_picture ) ); +VLC_API picture_pool_t * picture_pool_NewFromFormat( const video_format_t *, int picture_count ) VLC_USED; /** * It destroys a pool created by picture_pool_New. @@ -84,14 +84,14 @@ VLC_EXPORT( picture_pool_t *, picture_pool_NewFromFormat, ( const video_format_t * All pictures must already be released to the pool. The pool will then * released them. */ -VLC_EXPORT( void, picture_pool_Delete, ( picture_pool_t * ) ); +VLC_API void picture_pool_Delete( picture_pool_t * ); /** * It retreives a picture_t from a pool. * * The picture must be release by using picture_Release. */ -VLC_EXPORT( picture_t *, picture_pool_Get, ( picture_pool_t * ) ); +VLC_API picture_t * picture_pool_Get( picture_pool_t * ) VLC_USED; /** * It forces the next picture_pool_Get to return a picture even if no @@ -104,7 +104,23 @@ VLC_EXPORT( picture_t *, picture_pool_Get, ( picture_pool_t * ) ); * XXX it should be used with great care, the only reason you may need * it is to workaround a bug. */ -VLC_EXPORT( void, picture_pool_NonEmpty, ( picture_pool_t *, bool b_reset ) ); +VLC_API void picture_pool_NonEmpty( picture_pool_t *, bool reset ); + +/** + * It reserves picture_count pictures from the given pool and returns + * a new pool with thoses pictures. + * + * The master pool must be full. + * The returned pool must be deleted before the master pool. + * When deleted, all pictures return to the master pool. + */ +VLC_API picture_pool_t * picture_pool_Reserve(picture_pool_t *, int picture_count) VLC_USED; + +/** + * It returns the size of the given pool. + */ +VLC_API int picture_pool_GetSize(picture_pool_t *); + #endif /* VLC_PICTURE_POOL_H */