vlc_picture_pool.h File Reference

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

Include dependency graph for vlc_picture_pool.h:

Go to the source code of this file.

Data Structures

struct  picture_pool_configuration_t
 Picture pool configuration. More...

Defines

#define VLC_PICTURE_POOL_H   1

Typedefs

typedef struct picture_pool_t picture_pool_t
 Picture pool handle.

Functions

picture_pool_tpicture_pool_NewExtended (const picture_pool_configuration_t *)
 It creates a picture_pool_t wrapping the given configuration.
picture_pool_tpicture_pool_New (int picture_count, picture_t *picture[])
 It creates a picture_pool_t wrapping the given arrays of picture.
picture_pool_tpicture_pool_NewFromFormat (const video_format_t *, int picture_count)
 It creates a picture_pool_t creating images using the given format.
void picture_pool_Delete (picture_pool_t *)
 It destroys a pool created by picture_pool_New.
picture_tpicture_pool_Get (picture_pool_t *)
 It retreives a picture_t from a pool.
void picture_pool_NonEmpty (picture_pool_t *, bool reset)
 It forces the next picture_pool_Get to return a picture even if no pictures are free.


Detailed Description

This file defines picture pool structures and functions in vlc.


Define Documentation

#define VLC_PICTURE_POOL_H   1


Typedef Documentation

Picture pool handle.

XXX it is not thread safe, all pool manipulations and picture_Release must be properly locked if needed.


Function Documentation

void picture_pool_Delete ( picture_pool_t  ) 

It destroys a pool created by picture_pool_New.

All pictures must already be released to the pool. The pool will then released them.

References i, picture_t::i_refcount, picture_t::p_release_sys, picture_t::pf_release, picture_pool_t::picture, picture_pool_t::picture_count, picture_Release(), picture_release_sys_t::release, and picture_release_sys_t::release_sys.

Referenced by Control(), Direct3DDestroyPool(), and ResetPictures().

picture_t* picture_pool_Get ( picture_pool_t  ) 

It retreives a picture_t from a pool.

The picture must be release by using picture_Release.

References i, picture_t::i_refcount, Lock(), picture_t::p_release_sys, picture_pool_t::picture, picture_pool_t::picture_count, picture_Hold(), picture_pool_t::tick, and picture_release_sys_t::tick.

Referenced by Get().

picture_pool_t* picture_pool_New ( int  picture_count,
picture_t picture[] 
)

It creates a picture_pool_t wrapping the given arrays of picture.

It is provided as convenience.

References cfg, picture_pool_configuration_t::picture, picture_pool_configuration_t::picture_count, and picture_pool_NewExtended().

Referenced by Get(), and picture_pool_NewFromFormat().

picture_pool_t* picture_pool_NewExtended ( const picture_pool_configuration_t  ) 

It creates a picture_pool_t wrapping the given configuration.

It is usefull to avoid 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. If defined, picture_pool_configuration_t::lock will be called before a picture is used, and picture_pool_configuration_t::unlock will be called as soon as a picture is unused. They are allowed to modify picture_t::p and access picture_t::p_sys.

References i, picture_t::i_refcount, picture_pool_configuration_t::lock, picture_release_sys_t::lock, picture_t::p_release_sys, picture_t::pf_release, picture_pool_configuration_t::picture, picture_pool_t::picture, picture_pool_configuration_t::picture_count, picture_pool_t::picture_count, Release(), picture_release_sys_t::release, picture_release_sys_t::release_sys, picture_release_sys_t::tick, picture_pool_t::tick, picture_pool_configuration_t::unlock, and picture_release_sys_t::unlock.

Referenced by Direct3DCreatePool(), and picture_pool_New().

picture_pool_t* picture_pool_NewFromFormat ( const video_format_t ,
int  picture_count 
)

It creates a picture_pool_t creating images using the given format.

Provided for convenience.

References i, picture_NewFromFormat(), picture_pool_New(), and picture_Release().

Referenced by Get().

void picture_pool_NonEmpty ( picture_pool_t ,
bool  reset 
)

It forces the next picture_pool_Get to return a picture even if no pictures are free.

If b_reset is true, all pictures will be marked as free.

It does it by releasing itself the oldest used picture if none is available. XXX it should be used with great care, the only reason you may need it is to workaround a bug.

References i, picture_t::i_refcount, picture_t::p_release_sys, picture_pool_t::picture, picture_pool_t::picture_count, picture_release_sys_t::tick, and Unlock().


Generated on Sun Nov 22 08:05:26 2009 for VLC by  doxygen 1.5.6