changeset 29017:c9a2d95c580a

New vdpau deinterlacing code needs one reference surface less.
author cehoyos
date Tue, 24 Mar 2009 21:47:56 +0000
parents 8e95cca7c58d
children b04ff8b244bb
files libvo/vo_vdpau.c
diffstat 1 files changed, 5 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- 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;