# HG changeset patch # User cehoyos # Date 1237931276 0 # Node ID c9a2d95c580a6ca3b039c339e13a3b4092a56686 # Parent 8e95cca7c58df5dbfcbf80207b9f36b1ef378525 New vdpau deinterlacing code needs one reference surface less. diff -r 8e95cca7c58d -r c9a2d95c580a libvo/vo_vdpau.c --- a/libvo/vo_vdpau.c Tue Mar 24 21:45:39 2009 +0000 +++ b/libvo/vo_vdpau.c Tue Mar 24 21:47:56 2009 +0000 @@ -148,7 +148,7 @@ #define osd_surface output_surfaces[NUM_OUTPUT_SURFACES] static VdpOutputSurface output_surfaces[NUM_OUTPUT_SURFACES + 1]; static VdpVideoSurface deint_surfaces[3]; -static mp_image_t *deint_mpi[3]; +static mp_image_t *deint_mpi[2]; static int output_surface_width, output_surface_height; static VdpVideoMixer video_mixer; @@ -466,7 +466,7 @@ for (i = 0; i < 3; i++) deint_surfaces[i] = VDP_INVALID_HANDLE; - for (i = 0; i < 3; i++) + for (i = 0; i < 2; i++) if (deint_mpi[i]) { deint_mpi[i]->usage_count--; deint_mpi[i] = NULL; @@ -872,9 +872,8 @@ vid_surface_num = rndr - surface_render; if (deint_buffer_past_frames) { mpi->usage_count++; - if (deint_mpi[2]) - deint_mpi[2]->usage_count--; - deint_mpi[2] = deint_mpi[1]; + if (deint_mpi[1]) + deint_mpi[1]->usage_count--; deint_mpi[1] = deint_mpi[0]; deint_mpi[0] = mpi; } @@ -1035,7 +1034,7 @@ deint_type = 3; deint_counter = 0; deint_buffer_past_frames = 0; - deint_mpi[0] = deint_mpi[1] = deint_mpi[2] = NULL; + deint_mpi[0] = deint_mpi[1] = NULL; chroma_deint = 1; pullup = 0; denoise = 0;