vlc | branch: master | Steve Lhomme <[email protected]> | Tue Oct 13 09:30:47 2020 +0200| [cb342c8172816a1d4b921506747ebc485f54425b] | committer: Steve Lhomme
fps: implement Flush callback A Flush is normally done before seeking. We should not keep the date of the previous pictures in this case and restart from scratch. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=cb342c8172816a1d4b921506747ebc485f54425b --- modules/video_filter/fps.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/modules/video_filter/fps.c b/modules/video_filter/fps.c index d244d65bb1..369a020df3 100644 --- a/modules/video_filter/fps.c +++ b/modules/video_filter/fps.c @@ -130,11 +130,21 @@ static picture_t *Filter( filter_t *p_filter, picture_t *p_picture) return last_pic; } -static void Close( filter_t *p_filter ) +static void Flush( filter_t *p_filter ) { filter_sys_t *p_sys = p_filter->p_sys; + date_Init( &p_sys->next_output_pts, + p_filter->fmt_out.video.i_frame_rate, p_filter->fmt_out.video.i_frame_rate_base ); if( p_sys->p_previous_pic ) + { picture_Release( p_sys->p_previous_pic ); + p_sys->p_previous_pic = NULL; + } +} + +static void Close( filter_t *p_filter ) +{ + Flush( p_filter ); if( p_filter->vctx_out ) vlc_video_context_Release( p_filter->vctx_out ); } @@ -142,6 +152,7 @@ static void Close( filter_t *p_filter ) static const struct vlc_filter_operations filter_ops = { .filter_video = Filter, .close = Close, + .flush = Flush, }; static int Open( filter_t *p_filter ) _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
