[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