vdpau: hold video context when creating a field

This commit is contained in:
Rémi Denis-Courmont 2022-01-11 20:46:16 +02:00 committed by Hugo Beauzée-Luyssen
parent 724a978ba8
commit cd341e3c4f
2 changed files with 2 additions and 2 deletions

View File

@ -73,6 +73,7 @@ static vlc_vdp_video_field_t *CreateSurface(vlc_va_t *va, vdpau_decoder_device_t
vlc_vdp_video_field_t *field = vlc_vdp_video_create(sys->vctx, surface);
if (unlikely(field == NULL))
vdp_video_surface_destroy(vdpau_decoder->vdp, surface);
vlc_video_context_Release(sys->vctx);
return field;
}

View File

@ -98,7 +98,7 @@ vlc_vdp_video_field_t *vlc_vdp_video_create(struct vlc_video_context *vctx,
}
field->context = (picture_context_t) {
VideoSurfaceDestroy, VideoSurfaceCopy, vctx,
VideoSurfaceDestroy, VideoSurfaceCopy, vlc_video_context_Hold(vctx),
};
field->frame = frame;
field->structure = VDP_VIDEO_MIXER_PICTURE_STRUCTURE_FRAME;
@ -129,7 +129,6 @@ VdpStatus vlc_vdp_video_attach(struct vlc_video_context *vctx,
field->context.destroy = VideoSurfaceDestroy;
field->context.copy = VideoSurfaceCloneWithContext;
field->context.vctx = vlc_video_context_Hold(vctx);
assert(pic->format.i_chroma == VLC_CODEC_VDPAU_VIDEO_420
|| pic->format.i_chroma == VLC_CODEC_VDPAU_VIDEO_422