vdpau: don't assume Picture and H264Picture are the same

The code passed H264Picture* and Picture*, and assumed the
hwaccel_picture_private field was in the same place in both
structs. Somehow this happened to work in Libav, but broke in
FFmpeg (and probably subtly breaks in Libav too).

Signed-off-by: Anton Khirnov <anton@khirnov.net>
vdpau: switch ff_vdpau_get_surface_id from Picture to AVFrame

This gets rid of aliasing completely unrelated structs to Picture.

Fixes the remaining compilation warnings in the vdpau code.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
vaapi: switch ff_vaapi_get_surface_id from Picture to AVFrame

Signed-off-by: Anton Khirnov <anton@khirnov.net>