From 6aca96ae791a29cefb2bbe301b1096f90dea4c99 Mon Sep 17 00:00:00 2001 From: =?utf8?q?R=C3=A9mi=20Denis-Courmont?= Date: Wed, 24 Jul 2013 23:21:45 +0300 Subject: [PATCH] vaapi: use AVFrame.opaque to store per-picture state directly --- modules/codec/avcodec/vaapi.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/modules/codec/avcodec/vaapi.c b/modules/codec/avcodec/vaapi.c index 418f9afa88..d014d7d690 100644 --- a/modules/codec/avcodec/vaapi.c +++ b/modules/codec/avcodec/vaapi.c @@ -513,23 +513,17 @@ static int Get( vlc_va_t *va, AVFrame *p_ff ) if( i == 0 || i == 3 ) p_ff->data[i] = (void*)(uintptr_t)p_surface->i_id;/* Yummie */ } + p_ff->opaque = p_surface; return VLC_SUCCESS; } static void Release( vlc_va_t *va, AVFrame *p_ff ) { vlc_va_sys_t *sys = va->sys; - - VASurfaceID i_surface_id = (VASurfaceID)(uintptr_t)p_ff->data[3]; + vlc_va_surface_t *p_surface = p_ff->opaque; vlc_mutex_lock( &sys->lock ); - for( int i = 0; i < sys->i_surface_count; i++ ) - { - vlc_va_surface_t *p_surface = &sys->p_surface[i]; - - if( p_surface->i_id == i_surface_id ) - p_surface->i_refcount--; - } + p_surface->i_refcount--; vlc_mutex_unlock( &sys->lock ); } -- 2.39.2