vlc | branch: master | Steve Lhomme <[email protected]> | Tue Jul 23 07:42:02 
2019 +0200| [8ebc9d7590d49d6fff3a044288f663d47fd69b1f] | committer: Steve Lhomme

vdpau: free the hwaccel_context allocated locally ourself

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

 modules/hw/vdpau/avcodec.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/modules/hw/vdpau/avcodec.c b/modules/hw/vdpau/avcodec.c
index 913e391562..49536e6d60 100644
--- a/modules/hw/vdpau/avcodec.c
+++ b/modules/hw/vdpau/avcodec.c
@@ -44,6 +44,7 @@ struct vlc_va_sys_t
     vdp_t *vdp;
     VdpDevice device;
     VdpChromaType type;
+    void *hwaccel_context;
     uint32_t width;
     uint32_t height;
     vlc_vdp_video_field_t *pool[];
@@ -124,7 +125,8 @@ static void Close(vlc_va_t *va, void **hwctx)
     for (unsigned i = 0; sys->pool[i] != NULL; i++)
         vlc_vdp_video_destroy(sys->pool[i]);
     vdp_release_x11(sys->vdp);
-    av_freep(hwctx);
+    if (sys->hwaccel_context)
+        av_free(sys->hwaccel_context);
     free(sys);
 }
 
@@ -172,6 +174,7 @@ static int Open(vlc_va_t *va, AVCodecContext *avctx, enum 
PixelFormat pix_fmt,
     sys->type = type;
     sys->width = width;
     sys->height = height;
+    sys->hwaccel_context = NULL;
 
     err = vdp_get_x11(NULL, -1, &sys->vdp, &sys->device);
     if (err != VDP_STATUS_OK)
@@ -189,6 +192,7 @@ static int Open(vlc_va_t *va, AVCodecContext *avctx, enum 
PixelFormat pix_fmt,
 
     if (av_vdpau_bind_context(avctx, sys->device, func, flags))
         goto error;
+    sys->hwaccel_context = avctx->hwaccel_context;
     va->sys = sys;
 
     unsigned i = 0;
@@ -221,6 +225,8 @@ static int Open(vlc_va_t *va, AVCodecContext *avctx, enum 
PixelFormat pix_fmt,
     return VLC_SUCCESS;
 
 error:
+    if (sys->hwaccel_context)
+        av_free(sys->hwaccel_context);
     vdp_release_x11(sys->vdp);
     free(sys);
     return VLC_EGENERIC;

_______________________________________________
vlc-commits mailing list
[email protected]
https://mailman.videolan.org/listinfo/vlc-commits

Reply via email to