diff --git a/video/d3d11va.c b/video/d3d11va.c index a9be571e9c..e27d7952cd 100644 --- a/video/d3d11va.c +++ b/video/d3d11va.c @@ -69,8 +69,8 @@ struct mp_image *d3d11va_new_ref(ID3D11VideoDecoderOutputView *view, ID3D11VideoDecoderOutputView_GetResource( surface->surface, (ID3D11Resource **)&surface->texture); - struct mp_image *mpi = mp_image_new_custom_ref( - &(struct mp_image){0}, surface, d3d11va_release_img); + struct mp_image *mpi = + mp_image_new_custom_ref(NULL, surface, d3d11va_release_img); if (!mpi) abort(); diff --git a/video/dxva2.c b/video/dxva2.c index d6635ce0c6..cad3c54f72 100644 --- a/video/dxva2.c +++ b/video/dxva2.c @@ -72,8 +72,8 @@ struct mp_image *dxva2_new_ref(IDirectXVideoDecoder *decoder, surface->decoder = decoder; IDirectXVideoDecoder_AddRef(surface->decoder); - struct mp_image *mpi = mp_image_new_custom_ref(&(struct mp_image){0}, - surface, dxva2_release_img); + struct mp_image *mpi = + mp_image_new_custom_ref(NULL, surface, dxva2_release_img); if (!mpi) abort(); diff --git a/video/mp_image.c b/video/mp_image.c index 0ca59c62c9..5adce213e5 100644 --- a/video/mp_image.c +++ b/video/mp_image.c @@ -230,7 +230,7 @@ struct mp_image *mp_image_new_dummy_ref(struct mp_image *img) { struct mp_image *new = talloc_ptrtype(NULL, new); talloc_set_destructor(new, mp_image_destructor); - *new = *img; + *new = img ? *img : (struct mp_image){0}; for (int p = 0; p < MP_MAX_PLANES; p++) new->bufs[p] = NULL; new->hwctx = NULL; diff --git a/video/out/vo_rpi.c b/video/out/vo_rpi.c index 9d782fc9c5..7ba3e8ba68 100644 --- a/video/out/vo_rpi.c +++ b/video/out/vo_rpi.c @@ -435,8 +435,7 @@ static void draw_frame(struct vo *vo, struct vo_frame *frame) } mmal_buffer_header_reset(buffer); - struct mp_image *new_ref = mp_image_new_custom_ref(&(struct mp_image){0}, - buffer, + struct mp_image *new_ref = mp_image_new_custom_ref(NULL, buffer, free_mmal_buffer); if (!new_ref) { mmal_buffer_header_release(buffer); diff --git a/video/vdpau.c b/video/vdpau.c index 9dfbc2bc6e..6398fa6e58 100644 --- a/video/vdpau.c +++ b/video/vdpau.c @@ -268,8 +268,7 @@ static struct mp_image *create_ref(struct mp_vdpau_ctx *ctx, int index) struct surface_ref *ref = talloc_ptrtype(NULL, ref); *ref = (struct surface_ref){ctx, index}; struct mp_image *res = - mp_image_new_custom_ref(&(struct mp_image){0}, ref, - release_decoder_surface); + mp_image_new_custom_ref(NULL, ref, release_decoder_surface); if (res) { mp_image_setfmt(res, e->rgb ? IMGFMT_VDPAU_OUTPUT : IMGFMT_VDPAU); mp_image_set_size(res, e->w, e->h);