Commit 149587ec authored by Laurent Aimar's avatar Laurent Aimar

Replaced vout_display_t::get by ::pool.

parent 7c18ac73
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
#include <vlc_es.h> #include <vlc_es.h>
#include <vlc_picture.h> #include <vlc_picture.h>
#include <vlc_picture_pool.h>
#include <vlc_subpicture.h> #include <vlc_subpicture.h>
#include <vlc_keys.h> #include <vlc_keys.h>
#include <vlc_mouse.h> #include <vlc_mouse.h>
...@@ -265,14 +266,16 @@ struct vout_display_t { ...@@ -265,14 +266,16 @@ struct vout_display_t {
*/ */
vout_display_info_t info; vout_display_info_t info;
/* Return a new picture_t (mandatory). /* Return a pointer over the current picture_pool_t* (mandatory).
* *
* For performance reasons, it is best to provide at least count
* pictures but it is not mandatory.
* You can return NULL when you cannot/do not want to allocate * You can return NULL when you cannot/do not want to allocate
* more pictures. * pictures.
* If you want to create a pool of reusable pictures, you can * The vout display module keeps the ownership of the pool and can
* use a picture_pool_t. * destroy it only when closing or on invalid pictures control.
*/ */
picture_t *(*get)(vout_display_t *); picture_pool_t *(*pool)(vout_display_t *, unsigned count);
/* Prepare a picture for display (optional). /* Prepare a picture for display (optional).
* *
......
...@@ -30,11 +30,11 @@ ...@@ -30,11 +30,11 @@
/* XXX DO NOT use it outside the vout module wrapper XXX */ /* XXX DO NOT use it outside the vout module wrapper XXX */
/** /**
* It retreive a picture from the display * It retreives a picture pool from the display
*/ */
static inline picture_t *vout_display_Get(vout_display_t *vd) static inline picture_pool_t *vout_display_Pool(vout_display_t *vd, unsigned count)
{ {
return vd->get(vd); return vd->pool(vd, count);
} }
/** /**
......
...@@ -58,7 +58,10 @@ static picture_t *VideoBufferNew(filter_t *filter) ...@@ -58,7 +58,10 @@ static picture_t *VideoBufferNew(filter_t *filter)
vd->fmt.i_width == fmt->i_width && vd->fmt.i_width == fmt->i_width &&
vd->fmt.i_height == fmt->i_height); vd->fmt.i_height == fmt->i_height);
return vout_display_Get(vd); picture_pool_t *pool = vout_display_Pool(vd, 1);
if (!pool)
return NULL;
return picture_pool_Get(pool);
} }
static void VideoBufferDelete(filter_t *filter, picture_t *picture) static void VideoBufferDelete(filter_t *filter, picture_t *picture)
{ {
...@@ -112,7 +115,7 @@ static vout_display_t *vout_display_New(vlc_object_t *obj, ...@@ -112,7 +115,7 @@ static vout_display_t *vout_display_New(vlc_object_t *obj,
vd->info.has_pictures_invalid = false; vd->info.has_pictures_invalid = false;
vd->cfg = cfg; vd->cfg = cfg;
vd->get = NULL; vd->pool = NULL;
vd->prepare = NULL; vd->prepare = NULL;
vd->display = NULL; vd->display = NULL;
vd->control = NULL; vd->control = NULL;
......
...@@ -34,9 +34,9 @@ ...@@ -34,9 +34,9 @@
/** /**
* It retreive a picture from the display * It retreive a picture from the display
*/ */
static inline picture_t *vout_display_Get(vout_display_t *vd) static inline picture_pool_t *vout_display_Pool(vout_display_t *vd, unsigned count)
{ {
return vd->get(vd); return vd->pool(vd, count);
} }
/** /**
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment