[vlc-commits] [Git][videolan/vlc][master] vdpau: fix deinterlacing regression
François Cartegnie (@fcartegnie)
gitlab at videolan.org
Fri Apr 22 14:32:16 UTC 2022
François Cartegnie pushed to branch master at VideoLAN / VLC
Commits:
54a136d9 by Francois Cartegnie at 2022-04-22T14:01:47+00:00
vdpau: fix deinterlacing regression
refs #26832
reverts 0af664b0
- - - - -
1 changed file:
- modules/hw/vdpau/chroma.c
Changes:
=====================================
modules/hw/vdpau/chroma.c
=====================================
@@ -461,14 +461,21 @@ static picture_t *Render(filter_t *filter, picture_t *src, bool import)
return NULL;
}
- /* Update history and take "present" picture field */
+ /* Update history and put "present" picture field as future */
sys->history[MAX_PAST + MAX_FUTURE] = src;
+ /* future position pic slides as current at end of the call (skip:) */
picture_t *pic_f = sys->history[MAX_PAST];
- if (pic_f == NULL)
- { /* If the picture is forced, ignore deinterlacing and fast forward. */
+ if (pic_f == NULL) /* If we just started, there is no future pic */
+ {
+ /* If the picture is not forced (first pic is), we ignore deinterlacing
+ * and fast forward, as there's nothing to output for this call. */
+ if(!src->b_force)
+ goto skip;
/* FIXME: Remove the forced hack pictures in video output core and
- * allow the last field of a video to be rendered properly. */
+ * allow the last field of a video to be rendered properly.
+ * As we're working with a MAX_FUTURE frame delay, we'll need a signal
+ * to solve those single frame and last frame issues. */
while (sys->history[MAX_PAST] == NULL)
{
pic_f = sys->history[0];
View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/54a136d93b5cfedced841dd21a0a16133ed04158
--
View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/54a136d93b5cfedced841dd21a0a16133ed04158
You're receiving this email because of your account on code.videolan.org.
VideoLAN code repository instance
More information about the vlc-commits
mailing list