vo_vdpau: fix loop initializing output surfaces as invalid
commit2e8ef70d4fe1dab503e2112512383a6fec7b9499
authorUoti Urpala <uau@glyph.nonexistent.invalid>
Wed, 26 May 2010 05:54:09 +0000 (26 08:54 +0300)
committerUoti Urpala <uau@glyph.nonexistent.invalid>
Wed, 26 May 2010 06:14:12 +0000 (26 09:14 +0300)
tree07e574af5e829aeffa97af7cf04c20231c0eb7f3
parentaa07b6d578847a1dcbb6b95f7837919fe430ee30
vo_vdpau: fix loop initializing output surfaces as invalid

The loop initializing handles in the output surface table to
VDP_INVALID_HANDLE ran over indices from 0 to vc->num_output_surfaces.
However it is first called before that variable is initialized. As a
result later code could try to destroy the handles which still had the
"non-invalid" value 0. Most likely this caused no visible effects; at
least on my machine no valid surface gets handle 0, and libvdpau just
returns an error for the resulting invalid calls. Change the code to
loop over the whole table. Also add code to print visible warnings if
libvdpau rejects a surface destroy call (some other places already had
checks but not all).
libvo/vo_vdpau.c