Mesa (master): st/vdpau: invalidate the handles on destruction

Christian König deathsimple at kemper.freedesktop.org
Mon May 27 16:18:39 UTC 2013


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

Author: Christian König <christian.koenig at amd.com>
Date:   Thu May 23 19:17:19 2013 +0200

st/vdpau: invalidate the handles on destruction

Fixes a problem with xbmc when switching channels.

Signed-off-by: Christian König <christian.koenig at amd.com>

---

 src/gallium/state_trackers/vdpau/decode.c  |    1 +
 src/gallium/state_trackers/vdpau/device.c  |    1 +
 src/gallium/state_trackers/vdpau/surface.c |    2 ++
 3 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/src/gallium/state_trackers/vdpau/decode.c b/src/gallium/state_trackers/vdpau/decode.c
index 61b10e0..2ffd8dd 100644
--- a/src/gallium/state_trackers/vdpau/decode.c
+++ b/src/gallium/state_trackers/vdpau/decode.c
@@ -139,6 +139,7 @@ vlVdpDecoderDestroy(VdpDecoder decoder)
    vldecoder->decoder->destroy(vldecoder->decoder);
    pipe_mutex_unlock(vldecoder->device->mutex);
 
+   vlRemoveDataHTAB(decoder);
    FREE(vldecoder);
 
    return VDP_STATUS_OK;
diff --git a/src/gallium/state_trackers/vdpau/device.c b/src/gallium/state_trackers/vdpau/device.c
index c530f43..a829c27 100644
--- a/src/gallium/state_trackers/vdpau/device.c
+++ b/src/gallium/state_trackers/vdpau/device.c
@@ -166,6 +166,7 @@ vlVdpDeviceDestroy(VdpDevice device)
    dev->context->destroy(dev->context);
    vl_screen_destroy(dev->vscreen);
 
+   vlRemoveDataHTAB(device);
    FREE(dev);
    vlDestroyHTAB();
 
diff --git a/src/gallium/state_trackers/vdpau/surface.c b/src/gallium/state_trackers/vdpau/surface.c
index ad56125..135eb85 100644
--- a/src/gallium/state_trackers/vdpau/surface.c
+++ b/src/gallium/state_trackers/vdpau/surface.c
@@ -132,7 +132,9 @@ vlVdpVideoSurfaceDestroy(VdpVideoSurface surface)
       p_surf->video_buffer->destroy(p_surf->video_buffer);
    pipe_mutex_unlock(p_surf->device->mutex);
 
+   vlRemoveDataHTAB(surface);
    FREE(p_surf);
+
    return VDP_STATUS_OK;
 }
 




More information about the mesa-commit mailing list