[MPlayer-dev-eng] [PATCH] Better double frame rate output and frame limit option.
Vicente Sendra
visenri at yahoo.es
Sat Jan 5 02:24:40 CET 2013
> Testing HD ts and m2ts with this and just -framedrop I can't
> find any
> regressions.
Ok, i'm really happy to hear that.
> Being able to field step is nice, is it possible to
> implement the same
> for vdpau:deint=2 ?
I thought that the only way of adding frames were the filters tfields and yadiff, but as you say, vdpau adds them too.
I'm taking a look at vo_vdpau.c and it seems it has the same problem that was present in tfields and yadiff, it calls flip_page with no timing in function video_to_output_surface().
New option fpslimit is not going to work as expected with this VO, it will detect a frame limit equal to real frame limit/2, and it will drop frames in pairs, because main loop will process full frames, not fields (as it's done now in tfields and yadiff).
I need to study it deeper, but i think it can be done.
Call stack for one frame (2 fields) is something like this (deinterlace mode):
filter_video
-draw_image
--video_to_output_surface
---flip_page
flip_page
We have to avoid ---flip_page and queue a frame like in tfields and yadiff, then modify video_to_output_surface to output just one field on each call.
New call stack should be something like this:
(field 1)
filter_video
-draw_image
--video_to_output_surface
---vf_queue_frame
flip_page
(field 2)
vf_output_queued_frame
-video_to_output_surface
flip_page
vf_queue_frame should handle both frames queued from vo (vo_vdpau) and vf (tfields, yadif)
same applies to vf_output_queued_frame.
Any Ideas?, suggestions are welcome.
More information about the MPlayer-dev-eng
mailing list