picture_pool_t *pool;
picture_t *picture;
bool in_use;
- int64_t tick;
+ uint64_t tick;
};
struct picture_pool_t {
- int64_t tick;
+ uint64_t tick;
/* */
unsigned picture_count;
picture_t **picture;
vlc_mutex_t lock;
};
-static void picture_pool_Release(picture_pool_t *pool)
+void picture_pool_Release(picture_pool_t *pool)
{
bool destroy;
if (!pool)
goto error;
- pool->pic_lock = master->pic_lock;
- pool->pic_unlock = master->pic_unlock;
return pool;
error:
return NULL;
}
-void picture_pool_Delete(picture_pool_t *pool)
-{
- picture_pool_Release(pool);
-}
-
picture_t *picture_pool_Get(picture_pool_t *pool)
{
vlc_mutex_lock(&pool->lock);
vlc_mutex_lock(&pool->lock);
sys->in_use = false;
pool->refs--;
- vlc_mutex_unlock(&pool->lock);
continue;
}
vlc_mutex_unlock(&pool->lock);
}
-int picture_pool_GetSize(picture_pool_t *pool)
+unsigned picture_pool_GetSize(const picture_pool_t *pool)
{
return pool->picture_count;
}
+
+void picture_pool_Enum(picture_pool_t *pool, void (*cb)(void *, picture_t *),
+ void *opaque)
+{
+ /* NOTE: So far, the pictures table cannot change after the pool is created
+ * so there is no need to lock the pool mutex here. */
+ for (unsigned i = 0; i < pool->picture_count; i++)
+ cb(opaque, pool->picture[i]);
+}