vlc | branch: master | Steve Lhomme <[email protected]> | Fri Oct 18 12:01:23 2019 +0200| [fac459a554415f6a7c7afd34cdf25bbd086bba44] | committer: Steve Lhomme
va_surface: add a function to get the surface index in the array > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=fac459a554415f6a7c7afd34cdf25bbd086bba44 --- modules/codec/avcodec/va_surface.c | 7 +++++++ modules/codec/avcodec/va_surface_internal.h | 1 + 2 files changed, 8 insertions(+) diff --git a/modules/codec/avcodec/va_surface.c b/modules/codec/avcodec/va_surface.c index 9f9c957836..1441340002 100644 --- a/modules/codec/avcodec/va_surface.c +++ b/modules/codec/avcodec/va_surface.c @@ -53,6 +53,7 @@ struct va_pool_t }; struct vlc_va_surface_t { + unsigned index; atomic_uintptr_t refcount; // 1 ref for the surface existance, 1 per surface/clone in-flight picture_context_t *pic_va_ctx; }; @@ -114,6 +115,7 @@ static int SetupSurfaces(vlc_va_t *va, va_pool_t *va_pool) vlc_va_surface_t *p_surface = malloc(sizeof(*p_surface)); if (unlikely(p_surface==NULL)) goto done; + p_surface->index = i; p_surface->pic_va_ctx = va_pool->callbacks.pf_new_surface_context(va, i, p_surface); if (unlikely(p_surface->pic_va_ctx==NULL)) { @@ -185,6 +187,11 @@ void va_surface_Release(vlc_va_surface_t *surface) free(surface); } +unsigned va_surface_GetIndex(vlc_va_surface_t *surface) +{ + return surface->index; +} + void va_pool_Close(vlc_va_t *va, va_pool_t *va_pool) { ReleasePoolSurfaces(va_pool); diff --git a/modules/codec/avcodec/va_surface_internal.h b/modules/codec/avcodec/va_surface_internal.h index e9bb532503..deb25125b0 100644 --- a/modules/codec/avcodec/va_surface_internal.h +++ b/modules/codec/avcodec/va_surface_internal.h @@ -69,6 +69,7 @@ int va_pool_SetupDecoder(vlc_va_t *, va_pool_t *, const AVCodecContext *, const vlc_va_surface_t *va_pool_Get(va_pool_t *); picture_context_t *va_surface_GetContext(vlc_va_surface_t *); +unsigned va_surface_GetIndex(vlc_va_surface_t *surface); void va_surface_AddRef(vlc_va_surface_t *surface); void va_surface_Release(vlc_va_surface_t *surface); _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
