frontends/vdpau: Fix creating deinterlace filter for interleaved buffers

Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12755
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33927>
This commit is contained in:
David Rosca 2025-03-06 17:04:44 +01:00 committed by Marge Bot
parent 6b91f13d5d
commit e56b906df9

View file

@ -475,12 +475,17 @@ vlVdpVideoMixerUpdateDeinterlaceFilter(vlVdpVideoMixer *vmixer)
/* create a new filter if requested */
if (vmixer->deint.enabled && vmixer->chroma_format == PIPE_VIDEO_CHROMA_FORMAT_420) {
bool interlaced = pipe->screen->get_video_param(pipe->screen,
PIPE_VIDEO_PROFILE_UNKNOWN,
PIPE_VIDEO_ENTRYPOINT_BITSTREAM,
PIPE_VIDEO_CAP_PREFERS_INTERLACED);
vmixer->deint.filter = MALLOC(sizeof(struct vl_deint_filter));
vmixer->deint.enabled = vl_deint_filter_init(vmixer->deint.filter, pipe,
vmixer->video_width, vmixer->video_height,
vmixer->skip_chroma_deint, vmixer->deint.spatial, false);
vmixer->skip_chroma_deint, vmixer->deint.spatial, !interlaced);
if (!vmixer->deint.enabled) {
FREE(vmixer->deint.filter);
vmixer->deint.filter = NULL;
}
}
}