vlc | branch: master | Steve Lhomme <[email protected]> | 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; _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
