frontends/va/postproc: Un-break field flag
authorThong Thai <thong.thai@amd.com>
Thu, 15 Oct 2020 19:32:47 +0000 (15:32 -0400)
committerMarge Bot <eric+marge@anholt.net>
Wed, 21 Oct 2020 10:13:52 +0000 (10:13 +0000)
Fixes an issue where deinterlaced videos would play at half the
framerate, since only one field was repeated, instead of using both
fields. Reverts a change I made previously which broke this.

Fixes: 78786a219ea ("frontends/va: Fix deinterlace bottom field first flag")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3621
Signed-off-by: Thong Thai <thong.thai@amd.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7194>

src/gallium/frontends/va/postproc.c

index bd1228b..1845883 100644 (file)
@@ -321,7 +321,7 @@ vlVaHandleVAProcPipelineParameterBufferType(vlVaDriver *drv, vlVaContext *contex
          VAProcFilterParameterBufferDeinterlacing *deint = buf->data;
          switch (deint->algorithm) {
          case VAProcDeinterlacingBob:
-            if (deint->flags & VA_DEINTERLACING_BOTTOM_FIELD_FIRST)
+            if (deint->flags & VA_DEINTERLACING_BOTTOM_FIELD)
                deinterlace = VL_COMPOSITOR_BOB_BOTTOM;
             else
                deinterlace = VL_COMPOSITOR_BOB_TOP;
@@ -333,7 +333,7 @@ vlVaHandleVAProcPipelineParameterBufferType(vlVaDriver *drv, vlVaContext *contex
 
          case VAProcDeinterlacingMotionAdaptive:
             src = vlVaApplyDeint(drv, context, param, src,
-                                !!(deint->flags & VA_DEINTERLACING_BOTTOM_FIELD_FIRST));
+                                !!(deint->flags & VA_DEINTERLACING_BOTTOM_FIELD));
             break;
 
          default: