summaryrefslogtreecommitdiff
path: root/src/video_out/video_out_vdpau.c
diff options
context:
space:
mode:
authorReinhard Nißl <rnissl@gmx.de>2008-12-30 13:50:01 +0000
committerReinhard Nißl <rnissl@gmx.de>2008-12-30 13:50:01 +0000
commitb2795b0844cfab5f5d73f93f90df417a037f73eb (patch)
tree58934459b7b8b3ac98427b6a057238d31dfef4bd /src/video_out/video_out_vdpau.c
parent2ae69115cf9f38635f4590523b99ffffcbddb950 (diff)
downloadxine-lib-b2795b0844cfab5f5d73f93f90df417a037f73eb.tar.gz
xine-lib-b2795b0844cfab5f5d73f93f90df417a037f73eb.tar.bz2
Memory management cleanup; fix freeze after decoder failure.
Diffstat (limited to 'src/video_out/video_out_vdpau.c')
-rw-r--r--src/video_out/video_out_vdpau.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/video_out/video_out_vdpau.c b/src/video_out/video_out_vdpau.c
index 33dd0f717..4009b08d1 100644
--- a/src/video_out/video_out_vdpau.c
+++ b/src/video_out/video_out_vdpau.c
@@ -1178,6 +1178,7 @@ static void vdpau_dispose (vo_driver_t *this_gen)
vdpau_driver_t *this = (vdpau_driver_t *) this_gen;
int i;
+ this->ovl_yuv2rgb->dispose(this->ovl_yuv2rgb);
this->yuv2rgb_factory->dispose (this->yuv2rgb_factory);
for ( i=0; i<XINE_VORAW_MAX_OVL; ++i ) {
@@ -1185,6 +1186,8 @@ static void vdpau_dispose (vo_driver_t *this_gen)
vdp_bitmap_destroy( this->overlays[i].ovl_bitmap );
}
+ if ( this->video_mixer!=VDP_INVALID_HANDLE )
+ vdp_video_mixer_destroy( this->video_mixer );
if ( this->overlay_unscaled!=VDP_INVALID_HANDLE )
vdp_output_surface_destroy( this->overlay_unscaled );
if ( this->overlay_output!=VDP_INVALID_HANDLE )