Mesa (master): st/vdpau: clear Cb&Cr with 0.5f

Christian König deathsimple at kemper.freedesktop.org
Wed Jun 20 08:13:57 UTC 2012


Module: Mesa
Branch: master
Commit: d37c3c6ebecfe404d2341b897ac9b81adce5f4d7
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d37c3c6ebecfe404d2341b897ac9b81adce5f4d7

Author: Christian König <deathsimple at vodafone.de>
Date:   Sat Jun  9 15:33:28 2012 +0200

st/vdpau: clear Cb&Cr with 0.5f

That makes the output black in case of decoding errors.

Signed-off-by: Christian König <deathsimple at vodafone.de>

---

 src/gallium/state_trackers/vdpau/surface.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/gallium/state_trackers/vdpau/surface.c b/src/gallium/state_trackers/vdpau/surface.c
index fde2336..cc866a6 100644
--- a/src/gallium/state_trackers/vdpau/surface.c
+++ b/src/gallium/state_trackers/vdpau/surface.c
@@ -355,12 +355,15 @@ vlVdpVideoSurfaceClear(vlVdpSurface *vlsurf)
 
    surfaces = vlsurf->video_buffer->get_surfaces(vlsurf->video_buffer);
    for (i = 0; i < VL_MAX_SURFACES; ++i) {
-      union pipe_color_union black = {};
+      union pipe_color_union c = {};
 
       if (!surfaces[i])
          continue;
 
-      pipe->clear_render_target(pipe, surfaces[i], &black, 0, 0,
+      if (i > !!vlsurf->templat.interlaced)
+         c.f[0] = c.f[1] = c.f[2] = c.f[3] = 0.5f;
+
+      pipe->clear_render_target(pipe, surfaces[i], &c, 0, 0,
                                 surfaces[i]->width, surfaces[i]->height);
    }
    pipe->flush(pipe, NULL);




More information about the mesa-commit mailing list