[vlc-devel] [PATCH 20/23] va: remove vlc_va_Release() and vlc_va_Extract()

Steve Lhomme robux4 at videolabs.io
Wed Jun 21 14:15:05 CEST 2017


Noone is using them anymore.
---
 modules/codec/avcodec/d3d11va.c |  8 --------
 modules/codec/avcodec/dxva2.c   |  8 --------
 modules/codec/avcodec/va.h      | 36 +-----------------------------------
 modules/codec/avcodec/vaapi.c   | 10 ----------
 modules/codec/avcodec/video.c   | 10 ++--------
 modules/hw/vdpau/avcodec.c      |  8 --------
 6 files changed, 3 insertions(+), 77 deletions(-)

diff --git a/modules/codec/avcodec/d3d11va.c b/modules/codec/avcodec/d3d11va.c
index 059727175b..c279568107 100644
--- a/modules/codec/avcodec/d3d11va.c
+++ b/modules/codec/avcodec/d3d11va.c
@@ -173,12 +173,6 @@ void SetupAVCodecContext(vlc_va_t *va)
         sys->hw.workaround |= FF_DXVA2_WORKAROUND_INTEL_CLEARVIDEO;
 }
 
-static int Extract(vlc_va_t *va, picture_t *output, uint8_t *data)
-{
-    VLC_UNUSED(va); VLC_UNUSED(output); VLC_UNUSED(data);
-    return VLC_SUCCESS;
-}
-
 static void d3d11_pic_context_destroy(struct picture_context_t *opaque)
 {
     struct va_pic_context *pic_ctx = (struct va_pic_context*)opaque;
@@ -422,8 +416,6 @@ static int Open(vlc_va_t *va, AVCodecContext *ctx, enum PixelFormat pix_fmt,
     va->description = DxDescribe(dx_sys);
     va->setup   = Setup;
     va->get     = Get;
-    va->release = NULL;
-    va->extract = Extract;
 
     return VLC_SUCCESS;
 
diff --git a/modules/codec/avcodec/dxva2.c b/modules/codec/avcodec/dxva2.c
index d0f39bf064..7b2abe9e33 100644
--- a/modules/codec/avcodec/dxva2.c
+++ b/modules/codec/avcodec/dxva2.c
@@ -174,12 +174,6 @@ void SetupAVCodecContext(vlc_va_t *va)
         sys->hw.workaround |= FF_DXVA2_WORKAROUND_INTEL_CLEARVIDEO;
 }
 
-static int Extract(vlc_va_t *va, picture_t *output, uint8_t *data)
-{
-    VLC_UNUSED(va); VLC_UNUSED(output); VLC_UNUSED(data);
-    return VLC_SUCCESS;
-}
-
 static void d3d9_pic_context_destroy(struct picture_context_t *opaque)
 {
     struct va_pic_context *pic_ctx = (struct va_pic_context*)opaque;
@@ -336,8 +330,6 @@ static int Open(vlc_va_t *va, AVCodecContext *ctx, enum PixelFormat pix_fmt,
     va->description = DxDescribe(sys);
     va->setup   = Setup;
     va->get     = Get;
-    va->release = NULL;
-    va->extract = Extract;
     return VLC_SUCCESS;
 
 error:
diff --git a/modules/codec/avcodec/va.h b/modules/codec/avcodec/va.h
index 99bc5ba259..04986ec983 100644
--- a/modules/codec/avcodec/va.h
+++ b/modules/codec/avcodec/va.h
@@ -41,8 +41,6 @@ struct vlc_va_t {
     void (*setup)(vlc_va_t *, vlc_fourcc_t *output);
 #endif
     int  (*get)(vlc_va_t *, picture_t *pic, uint8_t **data);
-    void (*release)(void *pic, uint8_t *data);
-    int  (*extract)(vlc_va_t *, picture_t *pic, uint8_t *data);
 };
 
 /**
@@ -72,9 +70,7 @@ vlc_va_t *vlc_va_New(vlc_object_t *obj, AVCodecContext *,
  * @param pic pointer to VLC picture being allocated [IN/OUT]
  * @param data pointer to the AVFrame data[0] and data[3] pointers [OUT]
  *
- * @note This function needs not be reentrant. However it may be called
- * concurrently with vlc_va_Extract() and/or vlc_va_Release() from other
- * threads and other frames.
+ * @note This function needs not be reentrant.
  *
  * @return VLC_SUCCESS on success, otherwise an error code.
  */
@@ -84,36 +80,6 @@ static inline int vlc_va_Get(vlc_va_t *va, picture_t *pic, uint8_t **data)
 }
 
 /**
- * Releases a hardware surface from a libavcodec frame.
- * The surface has been previously allocated with vlc_va_Get().
- *
- * @param pic VLC picture being released [IN/OUT]
- *
- * @note This function needs not be reentrant. However it may be called
- * concurrently with vlc_va_Get() and/or vlc_va_Extract() from other threads
- * and other frames.
- */
-static inline void vlc_va_Release(vlc_va_t *va, picture_t *pic)
-{
-    va->release(pic, NULL);
-}
-
-/**
- * Extracts a hardware surface from a libavcodec frame into a VLC picture.
- * The surface has been previously allocated with vlc_va_Get() and decoded
- * by the libavcodec hardware acceleration.
- * The surface may still be used by libavcodec as a reference frame until it is
- * freed with vlc_va_Release().
- *
- * @note This function needs not be reentrant, but it may run concurrently with
- * vlc_va_Get() or vlc_va_Release() in other threads (with distinct frames).
- */
-static inline int vlc_va_Extract(vlc_va_t *va, picture_t *pic, uint8_t *data)
-{
-    return va->extract(va, pic, data);
-}
-
-/**
  * Destroys a libavcodec hardware acceleration back-end.
  * All allocated surfaces shall have been released beforehand.
  */
diff --git a/modules/codec/avcodec/vaapi.c b/modules/codec/avcodec/vaapi.c
index ff270425a9..2a0f1f58ce 100644
--- a/modules/codec/avcodec/vaapi.c
+++ b/modules/codec/avcodec/vaapi.c
@@ -126,12 +126,6 @@ static int GetVaProfile(AVCodecContext *ctx, VAProfile *va_profile,
     return VLC_SUCCESS;
 }
 
-static int Extract(vlc_va_t *va, picture_t *pic, uint8_t *data)
-{
-    (void) va; (void) pic; (void) data;
-    return VLC_SUCCESS;
-}
-
 #ifdef VLC_VA_BACKEND_DR
 
 static int GetDR(vlc_va_t *va, picture_t *pic, uint8_t **data)
@@ -216,8 +210,6 @@ static int CreateDR(vlc_va_t *va, AVCodecContext *ctx, enum PixelFormat pix_fmt,
     va->sys = sys;
     va->description = vaQueryVendorString(sys->hw_ctx.display);
     va->get = GetDR;
-    va->release = NULL;
-    va->extract = Extract;
     return VLC_SUCCESS;
 
 error:
@@ -390,8 +382,6 @@ static int Create(vlc_va_t *va, AVCodecContext *ctx, enum PixelFormat pix_fmt,
     va->sys = sys;
     va->description = vaQueryVendorString(sys->hw_ctx.display);
     va->get = Get;
-    va->release = NULL;
-    va->extract = Extract;
     return VLC_SUCCESS;
 
 error:
diff --git a/modules/codec/avcodec/video.c b/modules/codec/avcodec/video.c
index 5bf2b67e35..ef9a8a769a 100644
--- a/modules/codec/avcodec/video.c
+++ b/modules/codec/avcodec/video.c
@@ -1158,8 +1158,6 @@ static picture_t *DecodeBlock( decoder_t *p_dec, block_t **pp_block, bool *error
         }
         else
         {
-            if( p_sys->p_va != NULL )
-                vlc_va_Extract( p_sys->p_va, p_pic, frame->data[3] );
             picture_Hold( p_pic );
         }
 
@@ -1337,14 +1335,10 @@ static int lavc_va_GetFrame(struct AVCodecContext *ctx, AVFrame *frame,
      * data[3] actually contains the format-specific surface handle. */
     frame->data[3] = frame->data[0];
 
-    void (*release)(void *, uint8_t *) = va->release;
-    if (va->release == NULL)
-        release = lavc_ReleaseFrame;
-
-    frame->buf[0] = av_buffer_create(frame->data[0], 0, release, pic, 0);
+    frame->buf[0] = av_buffer_create(frame->data[0], 0, lavc_ReleaseFrame, pic, 0);
     if (unlikely(frame->buf[0] == NULL))
     {
-        release(pic, frame->data[0]);
+        lavc_ReleaseFrame(pic, frame->data[0]);
         return -1;
     }
 
diff --git a/modules/hw/vdpau/avcodec.c b/modules/hw/vdpau/avcodec.c
index 36eecefe51..c98832329a 100644
--- a/modules/hw/vdpau/avcodec.c
+++ b/modules/hw/vdpau/avcodec.c
@@ -108,12 +108,6 @@ static int Lock(vlc_va_t *va, picture_t *pic, uint8_t **data)
     return VLC_SUCCESS;
 }
 
-static int Copy(vlc_va_t *va, picture_t *pic, uint8_t *data)
-{
-    (void) va; (void) pic; (void) data;
-    return VLC_SUCCESS;
-}
-
 static int Open(vlc_va_t *va, AVCodecContext *avctx, enum PixelFormat pix_fmt,
                 const es_format_t *fmt, picture_sys_t *p_sys)
 {
@@ -203,8 +197,6 @@ static int Open(vlc_va_t *va, AVCodecContext *avctx, enum PixelFormat pix_fmt,
 
     va->description = infos;
     va->get = Lock;
-    va->release = NULL;
-    va->extract = Copy;
     return VLC_SUCCESS;
 
 error:
-- 
2.12.1



More information about the vlc-devel mailing list