summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gallium/state_trackers/vdpau/mixer.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/gallium/state_trackers/vdpau/mixer.c b/src/gallium/state_trackers/vdpau/mixer.c
index bafd84f4c51..b02d591eb05 100644
--- a/src/gallium/state_trackers/vdpau/mixer.c
+++ b/src/gallium/state_trackers/vdpau/mixer.c
@@ -89,7 +89,19 @@ no_handle:
VdpStatus
vlVdpVideoMixerDestroy(VdpVideoMixer mixer)
{
- return VDP_STATUS_NO_IMPLEMENTATION;
+ vlVdpVideoMixer *vmixer;
+
+ debug_printf("[VDPAU] Destroying VideoMixer\n");
+
+ vmixer = vlGetDataHTAB(mixer);
+ if (!vmixer)
+ return VDP_STATUS_INVALID_HANDLE;
+
+ vmixer->compositor->destroy(vmixer->compositor);
+
+ FREE(vmixer);
+
+ return VDP_STATUS_OK;
}
VdpStatus