[MPlayer-cvslog] r28673 - trunk/libvo/vo_vdpau.c
Carl Eugen Hoyos
cehoyos at ag.or.at
Sat Feb 21 23:43:09 CET 2009
Reimar Döffinger <Reimar.Doeffinger <at> stud.uni-karlsruhe.de> writes:
> > You have to pass VDP_VIDEO_MIXER_PICTURE_STRUCTURE_TOP_FIELD or
> > VDP_VIDEO_MIXER_PICTURE_STRUCTURE_BOTTOM_FIELD to vdp_video_mixer_render()
> > to actually use (bob-) deinterlacing. I only found out tonight.
>
> Hard to see, but I don't think that does any deinterlacing, that just
> discards one field. You can use that to build your own deinterlacer I
> guess, but it's not anything simple or "automatic".
Unfortunately, you are definitely right: Output is identical to -vf field.
It tried the following (something similar was needed for xvmc deinterlacing),
but it didn't change anything for me:
Index: libvo/vo_vdpau.c
===================================================================
--- libvo/vo_vdpau.c (revision 28697)
+++ libvo/vo_vdpau.c (working copy)
@@ -182,11 +182,23 @@
// which is not really possible currently. Deinterlacing is supposed to fall
// back to bob deinterlacing, but that seems not to work either.
vdp_st = vdp_video_mixer_render(video_mixer, VDP_INVALID_HANDLE, 0,
- VDP_VIDEO_MIXER_PICTURE_STRUCTURE_FRAME,
+ VDP_VIDEO_MIXER_PICTURE_STRUCTURE_BOTTOM_FIELD,
0, NULL,
surface_render[vid_surface_num].surface, 0, NULL, &src_rect_vid,
output_surface,
NULL, &out_rect_vid, 0, NULL);
CHECK_ST_WARNING("Error when calling vdp_video_mixer_render")
+ vdp_st = vdp_presentation_queue_block_until_surface_idle(vdp_flip_queue,
+ output_surface,
+ &dummy);
+ CHECK_ST_WARNING("vdp_presentation_queue_block_until_surface_idle")
+
+ vdp_st = vdp_video_mixer_render(video_mixer, VDP_INVALID_HANDLE, 0,
+ VDP_VIDEO_MIXER_PICTURE_STRUCTURE_TOP_FIELD,
+ 0, NULL, surface_render[vid_surface_num].surface, 0, NULL, &src_rect_vid,
+ output_surface,
+ NULL, &out_rect_vid, 0, NULL);
+ CHECK_ST_WARNING("Error when calling vdp_video_mixer_render")
+
}
static void resize(void)
Carl Eugen
More information about the MPlayer-cvslog
mailing list