[vlc-commits] avcodec: va: do not pass the hwaccel_context to the close function

Steve Lhomme git at videolan.org
Wed Jul 24 06:54:08 CEST 2019


vlc | branch: master | Steve Lhomme <robux4 at ycbcr.xyz> | Tue Jul 23 07:48:06 2019 +0200| [bfdf2590080c659710167032d6b5a9e61515b0a9] | committer: Steve Lhomme

avcodec: va: do not pass the hwaccel_context to the close function

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=bfdf2590080c659710167032d6b5a9e61515b0a9
---

 modules/codec/avcodec/d3d11va.c | 6 ++----
 modules/codec/avcodec/dxva2.c   | 6 ++----
 modules/codec/avcodec/va.c      | 4 ++--
 modules/codec/avcodec/va.h      | 4 ++--
 modules/codec/avcodec/vaapi.c   | 4 +---
 modules/codec/avcodec/video.c   | 7 +++----
 modules/hw/vdpau/avcodec.c      | 2 +-
 7 files changed, 13 insertions(+), 20 deletions(-)

diff --git a/modules/codec/avcodec/d3d11va.c b/modules/codec/avcodec/d3d11va.c
index 29d21ab8d5..4999639db5 100644
--- a/modules/codec/avcodec/d3d11va.c
+++ b/modules/codec/avcodec/d3d11va.c
@@ -294,12 +294,10 @@ static int Get(vlc_va_t *va, picture_t *pic, uint8_t **data)
     return VLC_SUCCESS;
 }
 
-static void Close(vlc_va_t *va, void **ctx)
+static void Close(vlc_va_t *va)
 {
     vlc_va_sys_t *sys = va->sys;
 
-    (void) ctx;
-
     directx_va_Close(va, &sys->dx_sys);
 
     D3D11_Destroy( &sys->hd3d );
@@ -414,7 +412,7 @@ static int Open(vlc_va_t *va, AVCodecContext *ctx, enum PixelFormat pix_fmt,
     return VLC_SUCCESS;
 
 error:
-    Close(va, NULL);
+    Close(va);
     return err;
 }
 
diff --git a/modules/codec/avcodec/dxva2.c b/modules/codec/avcodec/dxva2.c
index e5c8a1f043..8f777b05a7 100644
--- a/modules/codec/avcodec/dxva2.c
+++ b/modules/codec/avcodec/dxva2.c
@@ -235,14 +235,12 @@ static int Get(vlc_va_t *va, picture_t *pic, uint8_t **data)
     return VLC_SUCCESS;
 }
 
-static void Close(vlc_va_t *va, void **ctx)
+static void Close(vlc_va_t *va)
 {
     vlc_va_sys_t *sys = va->sys;
     if ( sys == NULL )
         return;
 
-    (void) ctx;
-
     directx_va_Close(va, &sys->dx_sys);
 
     if (sys->dxva2_dll)
@@ -342,7 +340,7 @@ static int Open(vlc_va_t *va, AVCodecContext *ctx, enum PixelFormat pix_fmt,
     return VLC_SUCCESS;
 
 error:
-    Close(va, NULL);
+    Close(va);
     return VLC_EGENERIC;
 }
 /* */
diff --git a/modules/codec/avcodec/va.c b/modules/codec/avcodec/va.c
index edfe3b6f43..7558b2b687 100644
--- a/modules/codec/avcodec/va.c
+++ b/modules/codec/avcodec/va.c
@@ -122,9 +122,9 @@ vlc_va_t *vlc_va_New(vlc_object_t *obj, AVCodecContext *avctx,
     return va;
 }
 
-void vlc_va_Delete(vlc_va_t *va, void **hwctx)
+void vlc_va_Delete(vlc_va_t *va)
 {
     if (va->ops->close != NULL)
-        va->ops->close(va, hwctx);
+        va->ops->close(va);
     vlc_object_delete(va);
 }
diff --git a/modules/codec/avcodec/va.h b/modules/codec/avcodec/va.h
index a03374c038..3e6b827c8f 100644
--- a/modules/codec/avcodec/va.h
+++ b/modules/codec/avcodec/va.h
@@ -30,7 +30,7 @@ typedef struct vlc_va_sys_t vlc_va_sys_t;
 
 struct vlc_va_operations {
     int (*get)(vlc_va_t *, picture_t *pic, uint8_t **surface);
-    void (*close)(vlc_va_t *, void **hwctx);
+    void (*close)(vlc_va_t *);
 };
 
 struct vlc_va_t {
@@ -97,6 +97,6 @@ static inline int vlc_va_Get(vlc_va_t *va, picture_t *pic, uint8_t **surface)
  * Destroys a libavcodec hardware acceleration back-end.
  * All allocated surfaces shall have been released beforehand.
  */
-void vlc_va_Delete(vlc_va_t *, void **);
+void vlc_va_Delete(vlc_va_t *);
 
 #endif
diff --git a/modules/codec/avcodec/vaapi.c b/modules/codec/avcodec/vaapi.c
index 5522f345c5..7e8329bf88 100644
--- a/modules/codec/avcodec/vaapi.c
+++ b/modules/codec/avcodec/vaapi.c
@@ -132,13 +132,11 @@ static int Get(vlc_va_t *va, picture_t *pic, uint8_t **data)
     return VLC_SUCCESS;
 }
 
-static void Delete(vlc_va_t *va, void **hwctx)
+static void Delete(vlc_va_t *va)
 {
     vlc_va_sys_t *sys = va->sys;
     vlc_object_t *o = VLC_OBJECT(va);
 
-    (void) hwctx;
-
     vlc_vaapi_DestroyContext(o, sys->hw_ctx.display, sys->hw_ctx.context_id);
     vlc_vaapi_DestroyConfig(o, sys->hw_ctx.display, sys->hw_ctx.config_id);
     vlc_decoder_device_Release(sys->dec_device);
diff --git a/modules/codec/avcodec/video.c b/modules/codec/avcodec/video.c
index 0829bfc6ee..2232b7a291 100644
--- a/modules/codec/avcodec/video.c
+++ b/modules/codec/avcodec/video.c
@@ -1368,7 +1368,6 @@ void EndVideoDec( vlc_object_t *obj )
     decoder_t *p_dec = (decoder_t *)obj;
     decoder_sys_t *p_sys = p_dec->p_sys;
     AVCodecContext *ctx = p_sys->p_context;
-    void *hwaccel_context;
 
     post_mt( p_sys );
 
@@ -1380,11 +1379,10 @@ void EndVideoDec( vlc_object_t *obj )
 
     cc_Flush( &p_sys->cc );
 
-    hwaccel_context = ctx->hwaccel_context;
     avcodec_free_context( &ctx );
 
     if( p_sys->p_va )
-        vlc_va_Delete( p_sys->p_va, &hwaccel_context );
+        vlc_va_Delete( p_sys->p_va );
 
     vlc_sem_destroy( &p_sys->sem_mt );
     free( p_sys );
@@ -1677,8 +1675,9 @@ no_reuse:
     if (p_sys->p_va != NULL)
     {
         msg_Err(p_dec, "existing hardware acceleration cannot be reused");
-        vlc_va_Delete(p_sys->p_va, &p_context->hwaccel_context);
+        vlc_va_Delete(p_sys->p_va);
         p_sys->p_va = NULL;
+        p_context->hwaccel_context = NULL;
     }
 
     p_sys->profile = p_context->profile;
diff --git a/modules/hw/vdpau/avcodec.c b/modules/hw/vdpau/avcodec.c
index 49536e6d60..599e86cc06 100644
--- a/modules/hw/vdpau/avcodec.c
+++ b/modules/hw/vdpau/avcodec.c
@@ -118,7 +118,7 @@ static int Lock(vlc_va_t *va, picture_t *pic, uint8_t **data)
     return VLC_SUCCESS;
 }
 
-static void Close(vlc_va_t *va, void **hwctx)
+static void Close(vlc_va_t *va)
 {
     vlc_va_sys_t *sys = va->sys;
 



More information about the vlc-commits mailing list