James,
After the great results with DXVA vsync, have you had a chance to think about the other idea in here:
You will have read, and probably been bored with the vsync discussions in the support thread, but it seems that if you could completely fix the many broken vsync implementations out there, by offering an alternate form of vsync correction, when the player is enforcing vsync, that uses the vsync code you already have to drag the frame arrival time away from the flip time when it is too close at the start of playback or if it drifts too close during playback (the latter probably never a problem if we are using Reclock to improve timing and get it far enough away in the first place). Effectively Reclock is doing the re-seek that people have to do, as theshadowrunner describes here:
This would be huge for people, who do not have an option to use a player/renderer free of vsync correction and Reclock's control of the master clock puts it in a unique position to make minor adjustments to the clock to move things out of the danger zone.
Reclock could then offer 3 options for each player in the approved list:
- vsync "off"
- "traditional" Reclock vsync correction
- vsync fix for players with flawed vsync implementations.
It looks like Reclock has all the tools to do this job already. It just needs an option to use a different target (what MPC-HC calls "VBlank Wait Start").
After the great results with DXVA vsync, have you had a chance to think about the other idea in here:
I've confirmed that in a crude way Reclock can already be used to extend or shorten stutter when playing back Blu-rays using MPC-HC with vsync correction enabled (not alternate vsync) which, with luck, should apply to other players that have built in vsync correction. By moving the Reclock vsync target I can speed up or slow down the movement of "Present Wait "/"VBlank Wait Start" (depends on exactly which options are selected in MPC renderer settings). Every time the relevant target passes through zero a judder occurs - visible on the jitter chart and noticeable on the screen.
By moving the Reclock target away from the fixed vsync position (fixed by MPC) I can drag the target away from 20/0ms were it judders (@50Hz). By moving it then back to near the vsync position I can slow down it's drift to near zero. I'm pretty sure this means if Reclock was doing this itself, with much greater accuracy and responsiveness, it would be able to move "present wait" to a nice safe position at start of playback (of course we need to know how "present wait" is defined in MPC and how to work it out) and adjust the vsync target to hold it there.
You will have read, and probably been bored with the vsync discussions in the support thread, but it seems that if you could completely fix the many broken vsync implementations out there, by offering an alternate form of vsync correction, when the player is enforcing vsync, that uses the vsync code you already have to drag the frame arrival time away from the flip time when it is too close at the start of playback or if it drifts too close during playback (the latter probably never a problem if we are using Reclock to improve timing and get it far enough away in the first place). Effectively Reclock is doing the re-seek that people have to do, as theshadowrunner describes here:
Well, I think I'll keep using ZP's built-in (not like I have a choice anyway ^^), and let ReClock's disabled. I'd rather suffer once at the start at a movie if I'm unlucky, rather than risking drops and correction during the movie.
It's the usual matter of vsync luck (at least on my setup). Either it starts OK and i'm fine for the rest of the movie (provided i don't pause/ff/rw too) or it starts bad (bad vysnc), and i must pause/resume until it catches the vsync.
I was just playing around with ReClock's feature to see if it would eventually correct the thankfully rare "bad vsync on playback start" issue, which it does not.
This would be huge for people, who do not have an option to use a player/renderer free of vsync correction and Reclock's control of the master clock puts it in a unique position to make minor adjustments to the clock to move things out of the danger zone.
Reclock could then offer 3 options for each player in the approved list:
- vsync "off"
- "traditional" Reclock vsync correction
- vsync fix for players with flawed vsync implementations.
It looks like Reclock has all the tools to do this job already. It just needs an option to use a different target (what MPC-HC calls "VBlank Wait Start").