Commit d94db1b1 authored by Thomas Guillem's avatar Thomas Guillem

vout: also flush vd render filters

This fixes a video freeze after a seek with VDPAU HW rendering. Indeed, the
VLC_CODEC_VDPAU_OUTPUT video converter need to be flushed to clear pictures
history.

Fixes #18423
parent 514951ef
......@@ -80,6 +80,7 @@ vout_display_t *vout_NewDisplay( vout_thread_t *, const video_format_t *,
void vout_DeleteDisplay(vout_display_t *, vout_display_state_t *);
bool vout_IsDisplayFiltered(vout_display_t *);
picture_t * vout_FilterDisplay(vout_display_t *, picture_t *);
void vout_FilterFlush(vout_display_t *);
bool vout_AreDisplayPicturesInvalid(vout_display_t *);
bool vout_ManageDisplay(vout_display_t *, bool allow_reset_pictures);
......
......@@ -993,6 +993,14 @@ picture_t *vout_FilterDisplay(vout_display_t *vd, picture_t *picture)
return filter_chain_VideoFilter(osys->filters, picture);
}
void vout_FilterFlush(vout_display_t *vd)
{
vout_display_owner_sys_t *osys = vd->owner.sys;
if (osys->filters != NULL)
filter_chain_VideoFlush(osys->filters);
}
void vout_UpdateDisplaySourceProperties(vout_display_t *vd, const video_format_t *source)
{
vout_display_owner_sys_t *osys = vd->owner.sys;
......
......@@ -1259,6 +1259,7 @@ static void ThreadFlush(vout_thread_t *vout, bool below, mtime_t date)
}
picture_fifo_Flush(vout->p->decoder_fifo, date, below);
vout_FilterFlush(vout->p->display.vd);
}
static void ThreadStep(vout_thread_t *vout, mtime_t *duration)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment