if (!pool)
goto error;
- pool->pic_lock = master->pic_lock;
- pool->pic_unlock = master->pic_unlock;
return pool;
error:
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]);
+}