View Full Version : MPC-HC GothSync tryouts
leeperry
25th December 2009, 21:30
I spent years trying to find the perfect player ... and now, i've got it, thanks to your work [..]
bye bye reclock, powerstrip, mad renderer, haali
hey man! care to share more details please?
can it do bit-perfect KS/WASAPI audio, gamut conversion(through PS script in MPC possibly?), 25/23.976fps@24/48Hz, as smoothly as madVR+Reclock and w/o any dropped frame WHATSOEVER? I haven't tried ar-jar's code in a while, and I'm well aware that he's got a lot of tricks up his sleeve...so more details would be most welcome ;)
last time I tried his VMR9 based player, it was more aimed at ATi users..
SundaY82
25th December 2009, 23:06
The download links should work again! -A
Still cant get the download links to work on your download page, http://www.ostrogothia.com/?page_id=1213
ar-jar
26th December 2009, 11:35
Still cant get the download links to work on your download page, http://www.ostrogothia.com/?page_id=1213
I think my ISP is using the Christmas holiday for sysadmin. I have added another link to the 9018 patch version. It's probably slower but it should work if the rest of the site works since it's on the same server.
ar-jar
2nd January 2010, 00:40
I have merged the GothSync code with the regular MPC-HC build. It can be downloaded as usual from my blog. It's also committed to the SVN trunk.
The Sync Renderer is now the last option in the ever longer list of renderers. When it's selected, further sync options can be set through the Options -> Playback -> Synchronization dialog. More documentation can be found on the blog (may be slightly out of date).
Hopefully I didn't break too many things along the way :-)
Keiyakusha
2nd January 2010, 00:58
Just a few things:
Where the "fullscreen monitor" menu located now?
There is a lot of renderers now. Maybe it will be better to make dropdown menu for them just like for audio renderers?
Since original project was named GothSync, IMHO its fine to live that name for the renderer, unless you don't like it anymore...
scharfis_brain
2nd January 2010, 01:29
just a question, even if it is not possible, though.
Would it be possible within the renderer to insert blended frames during playback in realtime to maintain motion fluidity with unsyncable framerates?
example: 24fps on 60Hz display
standard pattern: A A A b b C C C d d (the usual 3:2 pattern arises)
frameblending: A A Ab b b C C Cd d d (every frame is being shown exactly 2.5 times on the screen due to the blending)
I found the blending being barely noticable. It produces very smooth motion.
I am using it all time now with AVISynth in ffdshow during playback.
But it is clumsy to set up and I need to touch the settings everytime I switch the screens.
This also works for arbitrary framerate conversions as long as the framerate of the video is less than half of the screens refresh rate.
ar-jar
2nd January 2010, 08:43
Just a few things:
Where the "fullscreen monitor" menu located now?
There is a lot of renderers now. Maybe it will be better to make dropdown menu for them just like for audio renderers?
Since original project was named GothSync, IMHO its fine to live that name for the renderer, unless you don't like it anymore...
Not quite sure what you mean by "fullscreen monitor menu" but there are some options in the pop-up menu under Renderer Settings -> Presentation. I'll think about the "Goth" part. Thanks :-)
ar-jar
2nd January 2010, 08:48
just a question, even if it is not possible, though.
Would it be possible within the renderer to insert blended frames during playback in realtime to maintain motion fluidity with unsyncable framerates?
This is a very interesting feature and afaik there is OSS code available (?). My first prio is to stabilize the renderer. Then I'll start looking at the feature requests. Have you added it to http://sourceforge.net/apps/trac/mpc-hc/report/9?
scharfis_brain
2nd January 2010, 10:20
uh_oh, do I really need to create a user account on sourceforge to enter a feature request?
fastplayer
2nd January 2010, 10:27
^Yes.
carnage_pl
2nd January 2010, 10:34
When language is preset to another than english when you try to go into settings error appears: Encountered improper argument
ar-jar
2nd January 2010, 10:59
When language is preset to another than english when you try to go into settings error appears: Encountered improper argument
Sorry, I have never compiled anything but an English version. Do you use a decimal point (English style) or a decimal comma (as in Scandinavia) in your culture?
XhmikosR
2nd January 2010, 11:52
@ar-jar: you need to update all the resources like you did for mplayerc.rc otherwise what carnage_pl said happens with other than English languages.
carnage_pl
2nd January 2010, 11:56
Decimal comma. I had to check that because I never thought about it :D
Leak
2nd January 2010, 12:01
Where the "fullscreen monitor" menu located now?
If you mean the drop-down to select the fullscreen monitor - that's on the playback page now together with the setting for fullscreen resolution...
np: Bibio - Dwrcan (Eskmo Remix) (The Apple And The Tooth)
ar-jar
2nd January 2010, 12:08
@ar-jar: you need to update all the resources like you did for mplayerc.rc otherwise what carnage_pl said happens with other than English languages.
Yeah, thanks, I realize that now... Is there a tool for merging my changes? I guess I would need to add the changes in English and then let somebody native take over?
ar-jar
2nd January 2010, 12:58
@ar-jar: you need to update all the resources like you did for mplayerc.rc otherwise what carnage_pl said happens with other than English languages.
Ok, I'm at it, sorry for this omission. It'll take some time though I'm afraid. Thanks for clearing out how the linguistic part of mpc-hc works. -A
ar-jar
2nd January 2010, 13:46
Decimal comma. I had to check that because I never thought about it :D
What's your language btw? I'll see to it that I fix that resource file first. -A
carnage_pl
2nd January 2010, 13:57
What's your language btw? I'll see to it that I fix that resource file first. -A
Polish
ar-jar
2nd January 2010, 14:46
Polish
I committed a new Polish resource file (+ Swedish and German). I did the Swedish translation but leave the Polish to you. -A
STaRGaZeR
2nd January 2010, 17:25
Hey Arto, welcome back :)
Have you considered adding the status of the EVR buffers to the stats just ike EVR Custom? They are very useful.
ar-jar
2nd January 2010, 17:50
Hey Arto, welcome back :)
Have you considered adding the status of the EVR buffers to the stats just ike EVR Custom? They are very useful.
I could do that. What do learn from those stats? -A
STaRGaZeR
2nd January 2010, 18:09
In perfomance limited scenarios you can see how many frames need to be buffered to maintain realtime playback, you can see if you're limited by the decoder speed if the buffers are not always full, for example, when using Avisynth scripts in ffdshow with filters that are single threaded, and you can also see if and how particular settings help in those cases. I consider it a pretty useful feature.
mark0077
2nd January 2010, 18:13
Remove. Wrong thread
ADude
3rd January 2010, 01:49
I think what you are saying is that MPC-HC builds from 1465 will have "Sync Renderer" included ?
If so, no one has mentioned that in the regular MPC-HC thread.
I did not do so, since I think ar-jar should be allowed to do so himself, and say what he wants to say about it.
ar-jar
3rd January 2010, 09:55
Hey Arto, welcome back :)
Have you considered adding the status of the EVR buffers to the stats just ike EVR Custom? They are very useful.
I added the stats. There is a new version under the "Private builds" heading on my download page (http://www.ostrogothia.com/?page_id=1213). Hope they were the right stats. -A
Remicade
3rd January 2010, 10:09
Noob question: right click, renderer settings, display stats: what is the ideal case the red line and the green line appear ? Paralel, zigzag ?
ar-jar
3rd January 2010, 10:21
Noob question: right click, renderer settings, display stats: what is the ideal case the red line and the green line appear ? Paralel, zigzag ?
Parallel. Check out the documentation here (http://www.ostrogothia.com/?page_id=1218). There is some getting-started documentation here (http://www.ostrogothia.com/?page_id=1216). -A
Jong
3rd January 2010, 15:20
ar-jar, any chance of you being able to support DVD Menus with the Cyberlink MPEG-2 decoder, or is this out of your control? I loved using this decoder on XP, but currently must use the MPC decoder on W7 for full menu support with EVR and your renderer.
STaRGaZeR
3rd January 2010, 15:23
I added the stats. There is a new version under the "Private builds" heading on my download page (http://www.ostrogothia.com/?page_id=1213). Hope they were the right stats. -A
Yup, they are. Thanks!
hdboy
3rd January 2010, 16:35
Just a few things:
Where the "fullscreen monitor" menu located now?
options > playback
questions:
1) if gothsync is vmr9 based, why does the guide says EVR needs to be installed?
2) my TV accepts 24hz or 60hz. Is it possible to set MPC to automatically switch the refresh rate to 24hz for 23.976fps material, and 60hz for everything else?
ar-jar
3rd January 2010, 16:48
options > playback
questions:
1) if gothsync is vmr9 based, why does the guide says EVR needs to be installed?
2) my TV accepts 24hz or 60hz. Is it possible to set MPC to automatically switch the refresh rate to 24hz for 23.976fps material, and 60hz for everything else?
1) It's EVR-based. It used to be VMR-based in the old player.
2) It would but it would require a bit of programming. Pls add it to the feature requests. Thanks.
-A
ar-jar
3rd January 2010, 16:49
ar-jar, any chance of you being able to support DVD Menus with the Cyberlink MPEG-2 decoder, or is this out of your control? I loved using this decoder on XP, but currently must use the MPC decoder on W7 for full menu support with EVR and your renderer.
Need to check it out. I just very recently got myself a W7 HTPC and haven't had any time to check what works and what doesn't. I don't know of any way to get EVR and DVD menus to work on XP. I too use the Cyberlink from time to time. -A
ADude
3rd January 2010, 19:15
The Cyberlink MPEG2 with hardware acceleration + MPC-HC + DVD menus problem was reported to the bug tracker months ago, and is reported in threads every few weeks.
The workaround I use is to use the AutoPlay detection to start an older version of MPC-HC only for DVDs (the bug actually was introduced at some point in the last year or two).
Jong
3rd January 2010, 20:29
Need to check it out. I just very recently got myself a W7 HTPC and haven't had any time to check what works and what doesn't. I don't know of any way to get EVR and DVD menus to work on XP. I too use the Cyberlink from time to time. -AYeah, they work with Cyberlink & VMR9, but not EVR on XP, Vista or W7. It would be great if Cyberlink could be supported on W7. The current MPC decoder is not as smart at deinterlacing, does not support DXVA and has some decoding glitches.
Jong
3rd January 2010, 20:34
The Cyberlink MPEG2 with hardware acceleration + MPC-HC + DVD menus problem was reported to the bug tracker months ago, and is reported in threads every few weeks.
The workaround I use is to use the AutoPlay detection to start an older version of MPC-HC only for DVDs (the bug actually was introduced at some point in the last year or two).I'm not that happy with this as DVDs are still a big reason to use MPC-HC and I want some of the smoothness and resizing improvements that have been made recently. But please could you tell me which is the latest version that works?
Ger
3rd January 2010, 22:50
The results seem to change a lot if the (CTRL-I) remaining time OSD is turned on. The only difference between these two screenshots apart from a slightly different position in the same video file is the OSD state.
Using build 1473. The file is a run of the mill xvid/avi on Win7-x64 with Nvidia 8800GT.
http://img690.imageshack.us/img690/2838/screenshot2010010323000.th.png (http://img690.imageshack.us/i/screenshot2010010323000.png/)
http://img24.imageshack.us/img24/2952/screenshot2010010323020.th.png (http://img24.imageshack.us/i/screenshot2010010323020.png/)
CPU usage is only slightly higher with CTRL-I OSD on, barely noticeable.
ar-jar
3rd January 2010, 23:22
The results seem to change a lot if the (CTRL-I) remaining time OSD is turned on. The only difference between these two screenshots apart from a slightly different position in the same video file is the OSD state.
CPU usage is only slightly higher with CTRL-I OSD on, barely noticeable.
Thanks, that's an interesting observation. I don't seem to be able to reproduce it right now either on my 32 bit XP or on my 64 bit w7. Something funny happened with the w7 version though (but not exactly this). Could you pls try the 64 bit build that i just recently uploaded to my site? -A
ADude
3rd January 2010, 23:42
I'm not that happy with this as DVDs are still a big reason to use MPC-HC and I want some of the smoothness and resizing improvements that have been made recently. But please could you tell me which is the latest version that works?
1.0.11.0
which is at:
http://sourceforge.net/projects/mpc-hc/files/MPC%20HomeCinema%20-%20Win32/MPC-HC%20v1.0.11.0%20_%2032%20bits/mplayerc_homecinema_x86_v1.0.11.0.zip/download
If you want to use the current version with DVD, then you need to turn off hardware acceleration on MPEG2 when you want to play DVDs.
Ger
4th January 2010, 00:54
Could you pls try the 64 bit build that i just recently uploaded to my site? -A
The 32 and 64 bit builds behave the same as far as I can tell.
These screenshots have different framerate/decoder/container/res (film/H.264/mkv/720p) compared to the last ones, and are taken with 64-bit build 1480. Other specs are the same as last time: 8800GT/Win7-x64.
http://img228.imageshack.us/img228/7921/screenshot2010010401110.th.png (http://img228.imageshack.us/i/screenshot2010010401110.png/)
http://img46.imageshack.us/img46/7826/screenshot2010010401120.th.png (http://img46.imageshack.us/i/screenshot2010010401120.png/)
The way I understand your guides the first one is normal here as well, with a more difficult/"unsyncable" framerate for my monitor casuing the increased zig-zag. When I enable OSD (second image) the spikes are there again.
Press CTRL-I again to disable OSD, and the lines are back to normal (like the first screenshot in this post) immediately.
I should say that my CPU is not the best, a 3+ year old Core 2 Duo E6300, but the CPU usage monitor on my Logitech G15 stays in the 15-25% range with or without OSD. Perhaps a few percent higher average with OSD enabled.
For the record, this is not a big issue for me. The only smoothness issues I notice (without stats/graphs) are with various deinterlacers and interlaced DVB/PAL sources (not related to your Sync Renderer of course). I rarely, if ever, notice any picture problems with progressive material (perhaps I'm used to judder). I just thought I'd mention the OSD thing in case it helps.
mark0077
4th January 2010, 01:28
Hi ar-jar I am having fun trying out your newly merged code. I have 3 questions for you if you have time to answer.
1) I am curious, if for example I am using a display, and with some content being a perfect divisor of my displays refresh, and some content not being a perfect divisor, must I manually switch synchronization settings.
I guess I am asking, will an option appear in the future to automatically switch from one mode to another, when perfect sync isn't possible. For example could I select to "Sync video to display" by default, and perhaps "Present at nearest vsync" otherwise. I am just not sure if I select the first sync option , what would happen if perfect sync isn't possible. Does it iternally switch to another mode?
2) My second question is, is the functionality that is given by power stript to allow "Sync display to video" feasible to code into a future version of your renderer.
3) It has probably being asked before, but will reclock like options like 25fps to 24fps speeddown (pal speeddown) be feasible in a future version :D
In essence I suppose I am asking how you envision the render progressing in terms of ease of setup / automation to make it work v well for most by default.
ar-jar
4th January 2010, 10:28
Hi ar-jar I am having fun trying out your newly merged code. I have 3 questions for you if you have time to answer.
1) I am curious, if for example I am using a display, and with some content being a perfect divisor of my displays refresh, and some content not being a perfect divisor, must I manually switch synchronization settings.
I guess I am asking, will an option appear in the future to automatically switch from one mode to another, when perfect sync isn't possible. For example could I select to "Sync video to display" by default, and perhaps "Present at nearest vsync" otherwise. I am just not sure if I select the first sync option , what would happen if perfect sync isn't possible. Does it iternally switch to another mode?
2) My second question is, is the functionality that is given by power stript to allow "Sync display to video" feasible to code into a future version of your renderer.
3) It has probably being asked before, but will reclock like options like 25fps to 24fps speeddown (pal speeddown) be feasible in a future version :D
In essence I suppose I am asking how you envision the render progressing in terms of ease of setup / automation to make it work v well for most by default.
It would be rather easy to implement some automation wrt selecting the right sync option and modifying the base refresh rate of the display automatically when feasible. I will probably add some functions in this territory later.
Questions 2 and 3 are tricker. Powerstrip-like functionality would require that NVidia/ATI add similar functionality to their APIs (NVidia actually accepted my change request to that effect a long time ago but I haven't had a chance to follow it up). So good contacts at e.g. NVidia would be useful to make this happen. Any leads?
Audio speed shifts require careful resampling in the general case afaik. Would I get some help with the audio, then I could handle the video part but I'm not an expert in audio. Maybe there are some OSS audio resamplers out there or somebody willing to help. -A
mark0077
4th January 2010, 10:33
Cheers for the replies. Well I think reclock uses an open source audio resampler, http://www.mega-nerd.com/SRC/index.html to achieve this type of audio speed down :D All seems to be open source yay :D I suppose I will add it as a long term feature request, keep up the good work anyways and I look forward to the more automated methods of selecting correct options.
Cheers.
iSeries
4th January 2010, 12:54
Sorry, wrong thread - moved.
hdboy
4th January 2010, 15:50
ar-jar: as I mentioned earlier, I think it'd be great if you could automatically select the refresh rate the display supports that is closest to the input rate. In options > playback, in addition to "Change fullscreen resolution", possibly an option like "auto select refresh rate". So if my display accepts 24p and 60p, and the material is 23.98 or 23.976, then MPC switches the refresh rate to 24p (if it's not already). If video is 29.98fps or 59.97fps or 25fps, then switch to 60p. That in conjunction with the Synchronization option I think would work very well.
Btw, why didn't you stay with the GothSync renderer name? It's rather catchy :) and more distinctive than Sync Renderer.
avivahl
4th January 2010, 16:02
Looking at the latest MPC-HC available from xvidvideo.ru (rev1486), I think you should switch the sync page choices from checkboxes to radio buttons. And yes, I saw that checking one choice actually unchecks the others, but this is exactly what radio buttons are for.
avivahl
4th January 2010, 16:04
oh, almost forgot... could you move the sync options page to be a property page of the renderer? It will make the sync renderer "less integrated" and more generic, i guess.
ar-jar
4th January 2010, 17:00
Looking at the latest MPC-HC available from xvidvideo.ru (rev1486), I think you should switch the sync page choices from checkboxes to radio buttons. And yes, I saw that checking one choice actually unchecks the others, but this is exactly what radio buttons are for.
Yeah, this code has survived it's original requirements. There were in the beginning some combinations that would work too. Now radio buttons are more appropriate as only one option is allowed at the time. For the time being I will focus on making the renderer as stable as possible though. Then I will beautify the GUI part. -A
avivahl
4th January 2010, 18:05
It's wonderful to receive such a quick response. Thank you. :-)
Jong
4th January 2010, 19:08
If you want to use the current version with DVD, then you need to turn off hardware acceleration on MPEG2 when you want to play DVDs.This is very useful thanks. I had not tried/realised that it was DXVA causing the problem. Maybe that will help ar-jar narrow down what needs changing to get it working.
Even in non-DXVA mode the Cyberlink decoder does not drop frames at certain fixed points in some of my DVDs like the MPC MPEG2 Decoder does :)
It has also brought to my attention how much standard resizing has improved on my new 5750 when compared with my 3850. Resizing DVDs to 1080p was as muddy as hell on my 3850. I had to use either ffdshow or just a touch of edge enhancement ("1"). Edge enhancement does not work without DXVA but even so the image with my 5750 in non-DXVA mode is almost indistinguishable from my old, much tweaked, ffdshow settings :).
I haven't tried deinterlacing yet but right now I am back using Cyberlink but in non-DXVA mode. :)
ADude
5th January 2010, 02:21
Using Sync Renderer with the 'Present at nearest vsync' synchronization option with build 1.3.1486:
Ok sorry, I'm definitely not nuts. If I change the renderer to EVR CP, then untick all the vsync options under Renderer settings, and then change the renderer back to Sync Renderer and then look at the vsync options again, 'Vsync' is ticked but all 3 are greyed out ('Vsync', 'Accurate Vsync' and 'Alternative Vsync'). I then proceed to play a movie - terrible tearing and stuttering.
I then change the renderer back to EVR CP, tick 'Accurate Vsync' and 'Alternative Vsync' (along with 'Vsync') and then change the renderer back to Sync Renderer and look at the vsync options again, all 3 remain ticked but greyed out. I play a movie - play back is perfect ( I tested this over and over and the results are the same every time). So even though the vsync options are greyed out they still have an effect on playback.
Could someone please explain if this is to be expected or not - I had assumed that the vsync options were greyed out because they are not meant to be user selectable with Sync Renderer (i.e Sync Renderer had it's own vsync method and the options were greyed out simply because the render does not use them).
I have found something similar.
I found that if I used EVR CP with 1453 (shortly prior to Sync Renderer) and then used 1465 with Sync Renderer and then went back to 1453 with EVR CP, there were different results the second time with 1453 than the first time.
Similar things occurred with different versions and different orders.
When I rebooted the PC in between each version change, then I could tell each version's performance (as would be predicted by the code changes).
So there is either a memory leak, or else some other way in which different versions affect each other, such as options not being cleared properly.
mark0077
5th January 2010, 10:39
When you guys switch back to the standard mpc-hc (without syncrenderer included), you will have to manually select a renderer. mpc-hc will open with no renderer selected in this situation so you need to go in and select your desired renderer again when going to older versions.
ar-jar
5th January 2010, 11:52
When you guys switch back to the standard mpc-hc (without syncrenderer included), you will have to manually select a renderer. mpc-hc will open with no renderer selected in this situation so you need to go in and select your desired renderer again when going to older versions.
Good point. Thanks! -A
ADude
5th January 2010, 20:05
When you guys switch back to the standard mpc-hc (without syncrenderer included), you will have to manually select a renderer. mpc-hc will open with no renderer selected in this situation so you need to go in and select your desired renderer again when going to older versions.
It uses the default renderer, and nothing is checked in the list of renderers.
If you then go to 1465, Sync Renderer is checked again.
This is a different issue from the one mentioned above (although it could be related).
mark0077
5th January 2010, 20:24
Well I'm back again with some questions, and maybe some ideas to improve some of the three different sync options.
I am not trying to annoy, just picking out things I think could be improved as work continues, and some questions that I can't answer from reading your blog. I know the GUI will be improved at a later date, hopefully along with automation of best selection of options, but heres a few comments anyways.
I am using a GTX 295, Windows 7 64bit, with Samsung Series 9 display, and analog Xonar HDAV Deluxe. These Series 9 displays have a 60hz PC mode that doesn't do any funny modification of the image and although I have tried going back to 24hz from time to time, I can't stand the horrible effects that can be seen (another days story). So I decide to stick with 60hz and have used Reclock to get my 23.976 material to 24hz, and mpc-hc to sync this 24hz to my display as best as possible.
-- Sync video to display --
1) Out Of Sync Question.
So with 23.976 material being played on 60hz screen, this would speed the video up to 24fps right like ffdshow would do?
If so excellent!!, but I understand it is noted on your web page that this is with the disadvantage being that audio will get out of sync? If so, without you wasting your time explaining why this happens, could you also do whatever ffdshow does as it doesn't get out of sync in this scenario.
I guess ffdshow uses the open source audio resampler I linked you to, to resample the audio as an alternative to going out of sync over time. This of course would mean tiny pitch changes.
If this can be implemented in a future version, the only disadvantage people might have to be aware of here would be that almost inaudible pitch changes could occur, and that would be only noticible when going into the larger percent speed changes.
2) Frequency adjustment option
Is it in % as I see no percentage sign in the GUI currently? I see 0.00012 represents 0.12% in your documentation. Is this just another way to set a limit of how much things are changed by, just like the "Control limits" option sets a limit of how ms control can be changed?
3) What happens if my display / refresh are off by more than the frequency adjustment, and control limits. Does the renderer revert to some basic mode like mode 3, Present at nearest vsync?
Problem Noticed: Testing a 25fps music DVD that I want to play at 25fps, gives massive audio pops and glitches, and seems to play at a slow deep sounding rate in sync renderer using this option. It must be suffering badly from audio being out of sync and why I hear the audible blip as sound catches up? I didn't think 0.12% would allow this speed change at all, I thought it would revert to another mode.
-- Sync display to video --
I havn't been able to change front porch number in reclock so I guess this isn't support on Samsung Series 9 or my GTX 295. I don't see any newish Nvidia cards listed in supported list.... Maybe some custom resolution might allow changing of this but will need to look into it to see it in action.
1) Only comment is, that ffdshow refers to horizontal front porch in pixels, so I got a bit confused with SyncRender refering to it as columns.
As an improvement, can adjustment of lines / pixels default to 1 for the most fine grained control, and increase number to 2, 3 automatically if previous attempt at finer grain control didn't work? This if it works, could remove the frequency adjustment options from the renderer options?
2) What happens if sync renderer detects that porch control isn't possible on my display / graphics card. Does the renderer revert to some basic mode like mode 3, Present at nearest vsync, or just continue trying adjustments.
-- Present at nearest vsync --
I imagine this will always work for any combination of display / video so no comments here.
Problem Noticed: Playing my Queen 25fps interlaced Video again, as I enabled de-interlacing in ffdshow a few minutes into this clip, making the frame rate change to 50fps, the renderer starts to show frame rate switching from ~41fps to 50fps (In "Actual Frame Cycle" output), as if its going up and down, so the graph goes a bit mad when it starts go back down from 50.000. I can't hear or see this speed change and my machine has no problem with speed in this situation (cpu usage below 3% on 4ghz core i7). I will test some DVD menu's also as a benchmark of the renderer, to see how it can handle speed changes as time goes on. They have caused problems for some renderers in the past.
Other Questions
1) Do all three syncing work better with reclock loaded, ie does it somehow give more accurate details to your renderer in certain scenarios, other than just giving extra control for "Sync display to video".
2) Target Sync Offset: Forgive me on this one. I just imagine the target sync offset for anyone would be 0ms, why is it recommended to have a target of 8 – 14 ms for a 60 Hz display?
Again, I can test any builds you might have that might benefit from testing using the configuration I use. Just let me know.
ar-jar
5th January 2010, 21:20
Thanks for your input!
So with 23.976 material being played on 60hz screen, this would speed the video up to 24fps right like ffdshow would do?
Speeding up 23... to 24 is technically possible as long as you let the computer decode audio. Experiments show that the audio renderer "matches rate" at least up to about 0.5% speed difference. Unfortunately too little for 23... -> 25. What's the advantage of shifting from 23... to 24?
Is it in % as I see no percentage sign in the GUI currently? I see 0.00012 represents 0.12% in your documentation. Is this just another way to set a limit of how much things are changed by, just like the "Control limits" option sets a limit of how ms control can be changed?
0.0012 is means 0.12%. To use the actual number instead of a percentage saves one division op :-) This is how much speed is shifted to either slow down or speed up the video when needed. It's a rather crude control algorithm but it seems to suffice.
What happens if my display / refresh are off by more than the frequency adjustment, and control limits. Does the renderer revert to some basic mode like mode 3, Present at nearest vsync?
Today it just bangs its head against the wall, i.e. it tries to adjust but fails and then it tries again. There is today no fallback. It could be more intelligent admittedly.
Problem Noticed: Testing a 25fps music DVD that I want to play at 25fps, gives massive audio pops and glitches, and seems to play at a slow deep sounding rate in sync renderer using this option. It must be suffering badly from audio being out of sync and why I hear the audible blip as sound catches up? I didn't think 0.12% would allow this speed change at all, I thought it would revert to another mode.
Is there a typo above? 25 fps @ 25 fps should work just fine. It would do very few adjustments. Are you using analog audio out? SPDIF will give funny results.
I havn't been able to change front porch number in reclock so I guess this isn't support on Samsung Series 9 or my GTX 295. I don't see any newish Nvidia cards listed in supported list.... Maybe some custom resolution might allow changing of this but will need to look into it to see it in action.
I unfortunately doubt that the 9-series will be supported. ATI seems to be more leaky wrt docs (Rik at Entech once wrote that they depend on leaked docs from NVidia and AMD).
1) Only comment is, that ffdshow refers to horizontal front porch in pixels, so I got a bit confused with SyncRender refering to it as columns.
The columns are one pixel wide :-) When programming we think in rows and columns, that's why.
As an improvement, can adjustment of lines / pixels default to 1 for the most fine grained control, and increase number to 2, 3 automatically if previous attempt at finer grain control didn't work? This if it works, could remove the frequency adjustment options.
Yeah, one could do all kinds of magic with Powerstrip. Too bad it seems to be going out of fashion. It's such an amazing piece of s/w.
2) What happens if sync renderer detects that porch control isn't possible on my display / graphics card. Does the renderer revert to some basic mode like mode 3, Present at nearest vsync, or just continue trying adjustments.
No, it's stupid as of now.
Problem Noticed: Playing my Queen 25fps interlaced Video again, as I enabled de-interlacing in ffdshow a few minutes into this clip, making the frame rate change to 50fps, the renderer starts to show frame rate switching from ~41fps to 50fps (In "Actual Frame Cycle" output), as if its going up and down, so the graph goes a bit mad when it starts go back down from 50.000. I can't hear or see this speed change and my machine has no problem with speed in this situation (cpu usage below 3% on 4ghz core i7). I will test some DVD menu's also as a benchmark of the renderer, to see how it can handle speed changes as time goes on. They have caused problems for some renderers in the past.
I need to look into the code to see what happens at a rate shift. I might only get the rate at start of streaming which should explain your problem.
1) Do all three syncing work better with reclock loaded, ie does it somehow give more accurate details to your renderer in certain scenarios, other than just giving extra control for "Sync display to video".
You mean Powerstrip I presume? It gives a better estimate of the pixel clock but it's not a big deal.
2) Target Sync Offset: Forgive me on this one. I just imagine the target sync offset for anyone would be 0ms, why is it recommended to have a target of 8 – 14 ms for a 60 Hz display?
See this post (http://www.ostrogothia.com/?p=866). Sync offset is the same as "present margin" in the post.
Again, I can test any builds you might have that might benefit from testing using the configuration I use. Just let me know.
I will hold you to that promise :-)
-Arto
mark0077
5th January 2010, 21:33
Thanks for your replies. The advantage of speeding 23.976 upto 24 is that 24 fits into 60 exactly 2.5 times giving less jerkyness than 23.976 hz. ReClock does this when its rate is set to "Auto", and like yours, does it with configurable limits. I assumed option 1 was going to sync the 23.976 to my display better by making my video run at 24hz but I know gather it only changes the rate to get the playback rate to an almost exact multiple of the display, not to make a bad situation like mine a little better. Possible improvement! :D
I guess this ability of reclock's would be a mix of option 1, and then option 3 in your sync settings. Maybe if you can perfect your individual renderer modes, maybe get around to including the open source audio resampler, then advanced combinations like this can be suggested or maybe an algorithm can be thought of to make it naturally be used when a scenario could benefit from it (anyone using 60hz display's with 23.976 content).
Regarding the Queen DVD at 25fps, it wasn't a typo. These music DVD's are the only 25fps content that I don't ever want to slow down from 25 to 24hz as the audio was obviously remastered to sound at the correct pitch at 25fps. Obviously at the moment this drives the old option 1 crazy. :D
In any case a toolkit / improvement of two things should make this renderer perfect for myself at least would be
1) Ability to resample audio from one rate to another, along with options and an algorithm to control it.
This would allow
a) 25 -> 24fps speed down which I think alot of users can't go without (although reclock can be used for the time being).
b) Rate changes of say 23.976 to 24 fps without loss of audio sync, even well beyond 0.5% which I assume is the limit when audio isn't resampled to match video rate changes.
2) Options based around these abilities to enable / disable features like PAL SpeedDown.
3) Options to favour certain algorithms in certain situations perhaps, and more importantly the smart algorithm to choose the best of the three synchronization options so every scenario is catered for automatically.
Any input I can give or testing of particular things, as I say, let me know. More than happy to help.
ar-jar
5th January 2010, 21:48
Regarding the Queen DVD at 25fps, it wasn't a typo. These music DVD's are the only 25fps content that I don't ever want to slow down from 25 to 24hz as the audio was obviously remastered to sound at the correct pitch at 25fps. Obviously at the moment this drives the old option 1 crazy. :D
Ok, now I see past my prejudices. Your display is running @ 25 fps huh? I haven't tested exactly that scenario to be honest. What happens if you run your the display @ 50 Hz? That's a scenario I test over and over again.
-A
mark0077
5th January 2010, 21:53
No, my display is at 60hz, I mean playing 25fps video content at 25fps speed (ie its original speed, no pal speed down as its not required for most music content). So this was 25fps at 60hz. I'm trying to come up with the basics of a smart algorithm, Ill stick it in here and see if you agree with any of my thinkings on it.
ar-jar
5th January 2010, 22:21
No, my display is at 60hz, I mean playing 25fps video content at 25fps speed (ie its original speed, no pal speed down as its not required for most music content). So this was 25fps at 60hz. I'm trying to come up with the basics of a smart algorithm, Ill stick it in here and see if you agree with any of my thinkings on it.
Ok. That's unexpected then. I don't have any sound problems with that combination except that the sync adjustment stays at "-1" all the time trying but failing. Are you using analog audio out? And no Reclock? -A
mark0077
5th January 2010, 22:34
I had reclock enabled, apologies!!
So here is what I imagine being a high levelish algorithm and options list. This is what I personally would start working with, hope some of it might be of use to yourself when you get around to thinking about it. To test the logic of a possible algorithm I think you could have a simple gui, that would also let the user input a display resolution - refresh rate, and video rate, and click "calculate" to see what the renderer would decide to do. This could be refined before / while it was actually put into actual action in the final renderer. At least the "calculate" option would allow myself and others to go and say, hey in this scenario, with refresh rate x, and video rate y, with option z enabled and option w disabled, the renderer would have decided to do "abc", but the algorithm should be refined so that it does def in this case because "def" would give a better result.
A textual output of the renderers decisions would be great to see what its "thinking" when the algorithm is put in place.
Anyways..
----
--- Options Screen ---
List of resolutions / refresh rates available, with ability to choose which ones can be switched to or not, and possibly which ones to allow frequency adjustment with, with a lines and columns setting for each.
Enabled /Disabled | Resolution | Display Frequency Adjustments
[enabled] 1920 x 1080 @ 60hz | 0 lines | 2 columns
[enabled] 1920 x 1080 @ 24hz | 0 lines | 0 columns
[disabled] 1920 x 1080 @ 1hz | 0 lines | 0 columns
[add] [edit] [remove] [enable][disable][etc]
[enabled] Resolution Switching
[enabled] Display Frequency Adjustments
[enabled] Pal Speed Down
[enabled] Playback Rate Change Allowed
[0.12%] Max Frequency Adjustment
[enabled] Audio Frequency Adjustment Allowed (Would need secret rabbit resampler to be integrated) (Note that when disabled can cause audio going out of sync, but causes pitch change)
[very high] Audio Resampling Quality
[10ms] Target Sync Offset
[2ms] Control Limits +-
----------------------------------------
When Renderer detects rate change
do
# Record the current video rate.
# Generate some basic variables based around high level speed changes requested in options, like pal speed down.
1) If frame rate is 25fps, and if PAL SpeedDown is enabled
Mark video rate as being possibly 23.976 or 24.
# Generate list of possible frequencies, from resolutions and lines / columns figures given in options.
2) If "Resolution Switching" or "Display Frequency Adjustments"
Calculate "Display Frequencies Possible", from various combinations of resolutions, and from what X lines and Y columns changes will mean in terms of display frequency changes.
# Basically figure out what our strategy will be in terms of a one off display resolution / frequency change
3) For each of the possible display frequencies calculated, calculate which "Display Frequency Possible" (from step 2) + "Playback rates possible" (calculated from "Playback Rate Change Allowed" and "Max Frequency Adjustment" options) would give best results, or basically give "Sync video to display" the least to do ;) (how do we define best, making display refresh changes as less of an impact over video rate changes, and then prioritizing whatever combination gives the least skips / glitches).
Make that resolution change (if any).
Wait until resolution change is done?
Make display frequency change using powerstrip (if any).
Wait until frequency change is done?
Make that video rate change to the video and audio (if any).
If "Audio Frequency Adjustment Allowed" then resample audio.
# Now loop using "Sync video to display" knowing the strategy we are using to get in sync from work done above. We perform audio resampling in loop if needed.
4) Perform "Sync video to display" given current playback rate, and display frequency until another rate change occurs where we start again, and possibly pick a new strategy.
----------------------------------------
Oh and one more possible improvement. The graph still seems to refresh / calculate frame rate etc, when video is paused. Maybe this can be disabled when in pause mode.
BatKnight
5th January 2010, 23:03
I've been following mark00777 and ar-jar discussion and I would like to add that playing 23.976fps content on a 60Hz has always been a nightmare for me, no matter what render I use.
Ar-jar's render seem to help, and this is what I get: 23.976fps played at 60Hz (http://image-shed.com/show.php/1658_23.976fpsplayedat60hz-1.jpg.html). Notice the change in pattern in the red graph. This happens once in a while and it translates to a glitch or jerkiness in the motion of the Tearing Test Bar. in the quest of getting that CTRL-T test bar to travel across the screen fluidly and smoothly I would like to ask what am I missing? Is there really a way of doing it?
Messing around with the Target Sync Offset should help? If so, how? What differences should I look for when changing the values?
My LCD allows 24Hz and when at it the video is very smooth and the Tearing bar test travels quite smoothly too. But it glitches every once in a while. 2 Examples here: 23.976fps played at 24Hz - example 1 (http://image-shed.com/show.php/1659_23.976fpsplayedat24hz-1.jpg.html) and 23.976fps at 60Hz - example 2 (http://image-shed.com/show.php/1660_23.976fpsplayedat24hz-2.jpg.html)
Can this be minimized or eliminated?
INFO: Specs below, and during video play CPU never got higher than 40% and no other softwares loaded interfere because I've tested without them and get same results.
Bat
mark0077
5th January 2010, 23:10
BatKnight, from reading on the reclock forums, the reason 24fps is so desirable over 23.976 in this scenario, is that the final product will be a known number of glitches per second. With 23.976, as there is no number that divides into both it, and 60 evenly, there will be occasions where you have a certain number of glitches per second, and then suddenly you will have an unexpected one in the middle of all of that.
Have you ever tried reclock (without its sync option turned on), and its speed setting set to "Auto (best)". This type of auto mode is what I am hoping ar-jar can build into his code, maybe in step 3 of my attempt at an algorithm above, where its selecting the best combination of display refresh rate and video refresh rate.
In my case, for 60hz, with 23.976 fps video, that turns out to be 60hz display (no change), with 24fps video. 23.976 will give more glitches over time than 24 will. You can minimize this with sync offset, but as I say it will never be as "good" as 24fps on 60hz.
BatKnight
5th January 2010, 23:51
Have you ever tried reclock (without its sync option turned on), and its speed setting set to "Auto (best)". This type of auto mode is what I am hoping ar-jar can build into his code, maybe in step 3 of my attempt at an algorithm above, where its selecting the best combination of display refresh rate and video refresh rate.
I haven't used Reclock for a long time, not since version 1.6. Looks like it is very different now.
I've tried it using 60Hz and with 11ms of Target Sync Offset I get no changes in the pattern of the red lines in the stats but It's noticeable (specially in moving pans from down to up [vertically]) that it is not fluid and smooth, it doesn't stutter although it's not fluid.
But when I changed to 24Hz I was in awe! Perfect, smooth, fluid playback of a 23.976fps video. No glitches, no hiccups, nothing!
I left all Reclock settings at default. In your opinion should I had changed anything to help 60Hz playback?
I won't give up from 60Hz because it's somewhat annoying to have to change from 60Hz to 24Hz all the time because of two things. First I use the same computer for games and browsing and the mouse moves slow at 24Hz and I also notice some kind of flicker like in the old CRTs.
Any more suggestions?
Bat
mark0077
5th January 2010, 23:57
Well of course if some sort of gui like I suggest was put in place, a renderer could decide to switch to your 24hz display mode to get the best results, and then maybe speed up your 23.976 content slightly, or of course if your display was setup in the gui to allow slight rate adjustments, it could be possible to configure that, and leave speed at original 23.976. It will be great when an algorithm is put in place that people can agree gives best intelligence for a whole range of scenarios, and allows enough flexibility for peoples preferences during the calculations.
I think reclock can even do automatic resolution changing depending on input as is, I am sure you can find out how on the forums. I imagine this would be your best option, followed by 23.976 speed change to 24fps with reclock, followed by 23.976 with some playing with target sync offset to minimize extra judder.
I just hope I'm not going overboard with all of these thoughts on what I think the renderer could become, I suppose I am imagining what I would get if I had the perfect player / renderer for me :D
ADude
7th January 2010, 01:44
Restructured and encapsulated everything in the SyncRenderer files.
Is that any actual change in the video processing code, or is it just changes in the structure of the source code without any change in the video processing ?
ar-jar
7th January 2010, 06:50
Is that any actual change in the video processing code, or is it just changes in the structure of the source code without any change in the video processing ?
No change in functionality (hopefully) but a better basis for future changes with less risk for unintended side-effects. -A
Jong
7th January 2010, 09:22
I haven't used Reclock for a long time, not since version 1.6. Looks like it is very different now.
I've tried it using 60Hz and with 11ms of Target Sync Offset I get no changes in the pattern of the red lines in the stats but It's noticeable (specially in moving pans from down to up [vertically]) that it is not fluid and smooth, it doesn't stutter although it's not fluid.
But when I changed to 24Hz I was in awe! Perfect, smooth, fluid playback of a 23.976fps video. No glitches, no hiccups, nothing!
I left all Reclock settings at default. In your opinion should I had changed anything to help 60Hz playback?23.976fps @60Hz will never be as fluid as @24Hz. You will always have 3:2 Pulldown judder. What Reclock can do is eliminate the additional periodic "jerk" that you get playing 23.976 @60hz.
Jong
7th January 2010, 09:28
I think reclock can even do automatic resolution changing depending on input as is, I am sure you can find out how on the forums. I imagine this would be your best option, followed by 23.976 speed change to 24fps with reclock, followed by 23.976 with some playing with target sync offset to minimize extra judder.I used this with XP and Pstrip, but I have not managed to get it working reliably with W7 and my 5xxx series ATI card. PStrip advanced timing is not supported on the latest GPUs and Entech seem to be withdrawing support (claim the product does not sell much any more). Other ways of changing refresh rates in the middle of playback tend to cause problems for many players.
Pr3d
7th January 2010, 21:17
Its nice to see GothSync merged into MPCHC.
I'm already using it because it uses less CPU than EVR with DXVA enabled.
Keep up the good work ar-jar, hope to see it merged in the existing renderer asap.
hdboy
7th January 2010, 22:05
I have it working pretty well for 23.976fps material on my 24hz/60hz TV. Now the stumbling block is 25fps video (usually UK shows). I get stutters. ctrl+j shows a red sawtooth line with big spikes at regular intervals. Any tip on how to deal with this? thanks.
Jong
7th January 2010, 23:19
The only real answer is to change the display to 50Hz. If it is 25p material it might be worth trying slowing down to 24fps, but then it comes down to which is the lesser evil.
mark0077
7th January 2010, 23:25
Chances are the 25fps material was recorded at, and should be played at 24fps anyways. 99% of my 25fps PAL content, I choose to play at 24fps, to get the correct audio pitch and frame rate. The only 25fps that should be left at 25fps is mostly music DVD's that have had their pitch corrected to sound correct at 25fps.
BatKnight
7th January 2010, 23:43
Chances are the 25fps material was recorded at, and should be played at 24fps anyways. 99% of my 25fps PAL content, I choose to play at 24fps, to get the correct audio pitch and frame rate. The only 25fps that should be left at 25fps is mostly music DVD's that have had their pitch corrected to sound correct at 25fps.
When watching PAL content that was original filmed at 24fps, like US movies, and to get the correct pitch, which PAL Speedown should I tick at Reclock? Media Adaptation, Sound Adaptation or both?
Bat
mark0077
8th January 2010, 00:40
Yeah I think the GUI surround this isn't very intuitive. You only select PAL Speed down in media adaptation. If also selected in sound adaption, you get a double whammy and the audio sounds extremely deep.
In reclocks config properties screen, I always set Resampling quality to be "Excellent".
Make sure timestretching "When slowing down media" is disabled in the config properties screen also. Otherwise, you won't get the PAL Speed Down pitch change, as timestretching tries to keep the pitch the same, which is not whats intended during pal speed down. You actually want the pitch change, as you usually get closer to the original content that way.
iSeries
8th January 2010, 00:58
After reading this thread I had thought that the Target Sync Offset should be set to around 3/4 of a display refresh cycle - so for a 24hz screen this should be set to around 31? For some reason setting this to 31 gives me tearing. So instead would it be a good idea to change this to the highest value that does not give me tearing? 28 seems to be the highest I can go for tear-free playback.
Or should I just keep it at the default 12?
Remicade
8th January 2010, 06:51
In yours opinion what is the best way to play 23,796 content on a 60 Hz LCD 1360x768 ?
BatKnight
8th January 2010, 10:13
In yours opinion what is the best way to play 23,796 content on a 60 Hz LCD 1360x768 ?
In my experience I got to know that if your display can't do 24Hz then use Reclock to speedup to 24fps. This way won't give you smooth playback as when on 24Hz, just the classic 3:2 pulldown judder without further stuttering.
If your LCD does 24Hz, then use it. It's quite a difference in smoothness.
Bat
Leak
8th January 2010, 11:58
PStrip advanced timing is not supported on the latest GPUs and Entech seem to be withdrawing support (claim the product does not sell much any more).
Reading their forums it sounds more like they don't have the hardware documentation they'd need to support ATI's Evergreen (5xxx) line - yet.
Seeing as ATI released the full shader hardware documentation for it just before christmas, and one of their coders (John Bridgeman) said on the Phoronix forums that they were working on scrubbing the docs and code for modesetting (which is what PowerStrip does) so they can also released that in the near future...
Of course, with those docs it should also be possible to write a stand-alone driver for ATI cards to tweak the timings, taking PowerStrip out of the picture completely as far as twiddling the front and back porch values through the GothSync renderer is concerned...
(NB: that doesn't mean someone is going to do it, of course - it just means it should be possible...)
madshi
8th January 2010, 13:37
Of course, with those docs it should also be possible to write a stand-alone driver for ATI cards to tweak the timings, taking PowerStrip out of the picture completely as far as twiddling the front and back porch values through the GothSync renderer is concerned...
(NB: that doesn't mean someone is going to do it, of course - it just means it should be possible...)
Having an open source HTPC optimized Windows driver is one of my wet dreams.
(NB: I definitely have no plans to work on such a thing)
Leak
8th January 2010, 14:09
Having an open source HTPC optimized Windows driver is one of my wet dreams.
(NB: I definitely have no plans to work on such a thing)
I guess I should clarify - by "driver" I meant some small piece of kernel-level code that twiddles the card's timing values, not a full blown graphics driver; AFAIK that's what PowerStrip does.
Jong
8th January 2010, 14:42
Reading their forums it sounds more like they don't have the hardware documentation they'd need to support ATI's Evergreen (5xxx) line - yet.
Seeing as ATI released the full shader hardware documentation for it just before christmas, and one of their coders (John Bridgeman) said on the Phoronix forums that they were working on scrubbing the docs and code for modesetting (which is what PowerStrip does) so they can also released that in the near future...Let's hope! For sure they currently lack documentation, but they have also said in the last few months that the market and revenue stream for pstrip is drying up so they are not putting much time into it.
It's true that the infinite flexibility of pstrip is less and less useful now with LCDs, fixed refresh rates and synced HDMI audio. But a simplified tool targetted at HTPCs would I think be very popular.
madshi
8th January 2010, 15:35
I guess I should clarify - by "driver" I meant some small piece of kernel-level code that twiddles the card's timing values, not a full blown graphics driver; AFAIK that's what PowerStrip does.
Well, I meant a full blown graphics driver. Let me dream... :)
ar-jar
8th January 2010, 22:04
Having an open source HTPC optimized Windows driver is one of my wet dreams.
(NB: I definitely have no plans to work on such a thing)
I'd like to subscribe to that wet dream! I once tried to get some open source driver folks interested but I don't think I got any answer actually. One could forget about all the 3D-stuff and just focus on shuffling pixels and doing some 2D-filtering. And adjusting the timings of course in a delicate manner. A question that I still haven't found any answer to is how the digital set-top boxes do this. With dirt-cheap hardware and Linux. Do they have sync or aren't we just noticing the occasional judder because we are not looking for it? -A
ADude
8th January 2010, 22:17
I have it working pretty well for 23.976fps material on my 24hz/60hz TV. Now the stumbling block is 25fps video (usually UK shows). I get stutters. ctrl+j shows a red sawtooth line with big spikes at regular intervals. Any tip on how to deal with this? thanks.
The two answers you received were wrong.
(Sorry, nothing personal.)
I have a 60hz TV, and since it is not purchased from Europe, then it does not have a 50hz refresh setting, and probably neither does yours.
And, the UK shows we are watching are not based on films, so slowing them down to 24fps is also wrong. When we say "UK shows" that means "UK TV shows" that were captured from 25fps or 50fps broadcasts.
In my experience, what you need to do is to:
- Choose "Sync Renderer" and EVR Buffers = 10
- Check the "Present at Nearest sync" setting
- Set Target Sync Offset to 10
Jong
8th January 2010, 23:45
What is your definition of "wrong"?
The only way to smoothly play 25p content is @50Hz. Even slowing to 24fps still leads to 3:2 pulldown judder. Your answer leads to, even worse, one repeated frame for every five. You are trading smoothness for accurate pitch. Which, as I said, comes down to the lesser of two evils.
I fully respect your preference for judder over inaccurate pitch, but neither is right or wrong and it is a fact (like it or not) that all PAL DVDs of US films preferred 4% inaccurate pitch over judder.
madshi
9th January 2010, 07:50
I'd like to subscribe to that wet dream! I once tried to get some open source driver folks interested but I don't think I got any answer actually. One could forget about all the 3D-stuff and just focus on shuffling pixels and doing some 2D-filtering. And adjusting the timings of course in a delicate manner.
Well, my renderer makes a lot of use of pixel shaders, so I'd need access to 3D hardware, too... :(
A question that I still haven't found any answer to is how the digital set-top boxes do this. With dirt-cheap hardware and Linux. Do they have sync or aren't we just noticing the occasional judder because we are not looking for it?
I don't know about dirt cheap hardware. But I have feedback from higher quality companies. One answer from a set-top box designer (ReelBox), one answer from a receiver designer (Arcam), one answer from a Blu-Ray player designer (Ayre):
ReelBox: http://reelbox-forum.com/showthread.php?t=6839
Arcam: http://www.avsforum.com/avs-vb/showthread.php?p=11079529#post11079529
Ayre: http://www.avsforum.com/avs-vb/showthread.php?p=17402589#post17402589
Very interesting posts, I think.
ar-jar
10th January 2010, 09:43
Well, my renderer makes a lot of use of pixel shaders, so I'd need access to 3D hardware, too... :(
Yes, we would need to rewrite code but using a full-blown 3D engine to create a texture on two triangles (or something along those lines) is really overkill. I could do with a fast blt function, support for fast convolutions, some LUT functions and some simple arithmetics on color vectors.
I didn't quite understand how the posts that you referred to relate to judder (e.g. pan judder). They seemed to be more about jitter which sounds like something else. What I would like to know is whether simple satellite boxes actually synchronize their video output circuitry to the incoming video and how they in that case tweak the HDMI output to the display to reflect this sync. My take after reading about the standard is that there is actually a "digital sync pulse" in the DVI signal from which the display can extract a clock. I would be great to understand exactly how and how much and when this sync pulse can be tweaked. Or maybe I have misunderstood the standard? -A
buzzqw
10th January 2010, 10:07
@ar-jar
i am experimenting with your render, and it's very good so far !
but i have a problem, powerstrip don't support my card (gt240) so i am using reclock with displaychanger (http://www.12noon.com/displaychanger.htm)
will be possibile to implement displaychanger support in mpc-hc GothSync ?
thanks
BHH
madshi
10th January 2010, 11:50
using a full-blown 3D engine to create a texture on two triangles (or something along those lines) is really overkill.
The point is that I'm not happy with any of the GPU's built in video processing algorithms. So I'm doing everything myself, and for that I can use all the computational power I can get. The more, the better.
I didn't quite understand how the posts that you referred to relate to judder (e.g. pan judder). They seemed to be more about jitter which sounds like something else. What I would like to know is whether simple satellite boxes actually synchronize their video output circuitry to the incoming video and how they in that case tweak the HDMI output to the display to reflect this sync.
The posts I linked to are talking about adjusting audio / video clocks by using a VCXO. Which you can think of as a clock generator which can be adjusted very accurately. So if video is too fast, they simply lower the clock ever so slightly in real time.
Really cheap devices don't seem to do this. Instead they probably drop video/audio frames every once in a while...
My take after reading about the standard is that there is actually a "digital sync pulse" in the DVI signal from which the display can extract a clock. I would be great to understand exactly how and how much and when this sync pulse can be tweaked. Or maybe I have misunderstood the standard?
My understanding is that this "sync pulse" is simply the speed in which frames are sent by the source device. So it's controlled by the source device's clock generator. I don't think we can really tweak the HTPC audio/video clocks in a useful way. You can use PowerStrip to change the (pixel) clock, but the minimum pixel clock changes you can do are so big that changing them during playback would probably too much of a change and might confuse the display. What we'd really need is a way to change the pixel clock in *MUCH* smaller steps. I don't think the GPU hardware can do this. The GPU's clock generator is probably not flexible enough for such small pixel clock changes...
ar-jar
14th January 2010, 21:17
The point is that I'm not happy with any of the GPU's built in video processing algorithms. So I'm doing everything myself, and for that I can use all the computational power I can get. The more, the better.
I understand. But today I guess you are using that raw processing power through DirectX interfaces, the methods of which aren't necessarily optimal for 2D video processing. Or are you using Cuda or OpenCL or something like that for your algorithms?
My understanding is that this "sync pulse" is simply the speed in which frames are sent by the source device. So it's controlled by the source device's clock generator. I don't think we can really tweak the HTPC audio/video clocks in a useful way. You can use PowerStrip to change the (pixel) clock, but the minimum pixel clock changes you can do are so big that changing them during playback would probably too much of a change and might confuse the display. What we'd really need is a way to change the pixel clock in *MUCH* smaller steps. I don't think the GPU hardware can do this. The GPU's clock generator is probably not flexible enough for such small pixel clock changes...
The DVI specs define requirements on the clock and how the receiver must lock to the clock. But is also defines a horizontal and vertical sync. The question is to what extent and how these sync signals are used by the display unit. My Powerstrip-based "genlock" in fact shifts these sync signals one line or one column (or so) when needed and it seems that at least 720 displays immediately adapt to the new sync interval. I do not change the pixel clock. I also read somewhere that LCDs display one line at the time and I would guess that the timing for this is determined by the h-sync pulse, not the pixel clock. But I would be interested to read any articles or specs thay you may have and that explain how for instance an LCD displays the incoming digital signal, i.e what in the signal triggers what actions in the display unit. -A
madshi
14th January 2010, 23:42
I understand. But today I guess you are using that raw processing power through DirectX interfaces, the methods of which aren't necessarily optimal for 2D video processing. Or are you using Cuda or OpenCL or something like that for your algorithms?
The whole 3D pipeline is rather complicated and not optimized for video processing, of course. However, you set that up once and then forget it. I'm doing the real work by using Pixel Shaders and they work great for 2D video processing IMHO.
The DVI specs define requirements on the clock and how the receiver must lock to the clock. But is also defines a horizontal and vertical sync. The question is to what extent and how these sync signals are used by the display unit. My Powerstrip-based "genlock" in fact shifts these sync signals one line or one column (or so) when needed and it seems that at least 720 displays immediately adapt to the new sync interval. I do not change the pixel clock. I also read somewhere that LCDs display one line at the time and I would guess that the timing for this is determined by the h-sync pulse, not the pixel clock. But I would be interested to read any articles or specs thay you may have and that explain how for instance an LCD displays the incoming digital signal, i.e what in the signal triggers what actions in the display unit. -A
I know that you are modifying the sync signals, but that's not what high-end Blu-Ray players and satellite boxes do. They're changing the clock, not the sync signals. I can't say that your method is better or worse, I don't know that, but I do know that when I played with the sync settings on my old plasma, it sometimes "resynced" (image went black, then came back after a second or so). I think doing extremely small adjustments to the pixel clock would be a safer way to solve the problem, but the PC hardware doesn't allow us to do that.
somy
25th January 2010, 08:59
Hi ar-jar, thanks for your great work, now I can see it's integrated to MPC-HC with auto display refresh rate changing feature, amazing.
I have a question, what is the advised value of target sync offset and control for 24P playback on 23.976HZ display? The default value is 12ms, and I assume it only works for 25P playback on 50HZ device right?
Thanks!
DigitalLF
27th January 2010, 00:15
i have a question for Ar-Jar i think... (Leak later told me this is a question for Aleksoid)
are you the maker of the "autochange fullscreen monitor mode"? if so would it be possible to add a option for a delay before opening the file? it would help me to use this feature with MadVR.
its my just my very own personal way of thinking how it could be used with MadVR i don't know if its the solution ...
but I'm just guessing now but to find out the framerate you use mediainfo?
somy
27th January 2010, 08:39
i have a question for Ar-Jar i think...
are you the maker of the "autochange fullscreen monitor mode"? if so would it be possible to add a option for a delay before opening the file? it would help me to use this feature with MadVR.
its my just my very own personal way of thinking how it could be used with MadVR i don't know if its the solution ...
but I'm just guessing now but to find out the framerate you use mediainfo?
This could be nice. MadVR need some seconds to warm up, otherwise it will use the wrong refresh rate. I now use CCC to change refresh rate before I start to play movie ::devil::devil::devil:
DigitalLF
27th January 2010, 09:39
somy i for now use a hotkeys on my keyboard to run a .bat file to change the refreshrate. but that delay would be perfect =)
Leak
27th January 2010, 10:03
i have a question for Ar-Jar i think...
are you the maker of the "autochange fullscreen monitor mode"?
If you read the change log (http://mpc-hc.svn.sourceforge.net/viewvc/mpc-hc?view=rev&revision=1517) you'll find it actually was added by Aleksoid, so you might have more success asking in the "regular" MPC HC thread...
THX-UltraII
27th January 2010, 11:39
Hi Ar-Jar,
I just bought a new ATI 5670 card and have some tearing issues when selecting sync output as renderer. The problem is at the bottom of the screen. So no problems with 2:35:1 movies but you can see tearing at very bottom of the screen with 1:85 (full 16:9) content. It can also be seen when doing a tearing test (ctrl+t) because the two red bars are broken at the bottom of the screen. I also have this problem with EVR custom but found out that I can solve it by CHECKING 'alternative v-sync' (that s NOT the 'accurate v-sync option which is ENABLED by default in EVR custom).
I hope you can do something with this information because I m not using your output now because of this rendering issue. If you need more info let me know!
somy
27th January 2010, 11:54
Hi Ar-Jar,
I just bought a new ATI 5670 card and have some tearing issues when selecting sync output as renderer. The problem is at the bottom of the screen. So no problems with 2:35:1 movies but you can see tearing at very bottom of the screen with 1:85 (full 16:9) content. It can also be seen when doing a tearing test (ctrl+t) because the two red bars are broken at the bottom of the screen. I also have this problem with EVR custom but found out that I can solve it by CHECKING 'alternative v-sync' (that s NOT the 'accurate v-sync option which is ENABLED by default in EVR custom).
I hope you can do something with this information because I m not using your output now because of this rendering issue. If you need more info let me know!
The same result I had yesterday when I tried Sync renderer, I thought it was my projector problem:mad::mad::mad:
DigitalLF
27th January 2010, 12:07
Leak thank you i did not know where to find the changelog. =)
THX-UltraII
27th January 2010, 12:23
The same result I had yesterday when I tried Sync renderer, I thought it was my projector problem:mad::mad::mad:
Try EVR Custom with 'alternative v-sync' enabled and see if that solves your problem.
maybe Ar-Jar know more about this....
pirlouy
27th January 2010, 19:45
If you read the change log (http://mpc-hc.svn.sourceforge.net/viewvc/mpc-hc?view=rev&revision=1517) you'll find it actually was added by Aleksoid, so you might have more success asking in the "regular" MPC HC thread...
In fact, Aleksoid just added patches from X-Dron (who is posting in MPC-HC regular thread indeed).
aymeric106
27th January 2010, 21:06
Now that you have merged with the offical build, is there some way to enable your sync method with VMR9 ? (just like your old custom build)
For some reason, Fullscreen D3D with EVR never worked on my secondary display ...
Thanks
aymeric106
ar-jar
29th January 2010, 22:09
Hi ar-jar, thanks for your great work, now I can see it's integrated to MPC-HC with auto display refresh rate changing feature, amazing.
I have a question, what is the advised value of target sync offset and control for 24P playback on 23.976HZ display? The default value is 12ms, and I assume it only works for 25P playback on 50HZ device right?
Thanks!
If you're output is really 24p you can use anything up to the cycle time minus a few ms which should be like 35 ms or so. That would give you ample time for using complex shaders and still get tearing-free playback. -A
ar-jar
29th January 2010, 22:23
Hi Ar-Jar,
I just bought a new ATI 5670 card and have some tearing issues when selecting sync output as renderer. The problem is at the bottom of the screen. So no problems with 2:35:1 movies but you can see tearing at very bottom of the screen with 1:85 (full 16:9) content. It can also be seen when doing a tearing test (ctrl+t) because the two red bars are broken at the bottom of the screen. I also have this problem with EVR custom but found out that I can solve it by CHECKING 'alternative v-sync' (that s NOT the 'accurate v-sync option which is ENABLED by default in EVR custom).
I hope you can do something with this information because I m not using your output now because of this rendering issue. If you need more info let me know!
I assume you refer to fullscreen playback(?) Try this:
- Use bilinear resizer (it's light-weight)
- Set target sync output to your display cycle time minus say 3 ms (e.g. 17 ms for a 50 Hz display refresh rate)
- Use "present at nearest vsync"
Try both regular fullscreen and D3D fullscreen. If both work, then you can try more complex resizers and shaders with the regular fullscreen. Depending on the processing power of your GPU, you may or may not get tearing when adding more processing to the rendering cycle.
Generally D3D fullscreen should be tearing-free with almost any parameters. The drawback is that if you use the fullscreen gui-support you lose all benefits of D3D fullscreen wrt tearing so I have disabled fullscreen gui support for the time being.
Hope this helps!
Arto
ar-jar
29th January 2010, 22:26
Now that you have merged with the offical build, is there some way to enable your sync method with VMR9 ? (just like your old custom build)
For some reason, Fullscreen D3D with EVR never worked on my secondary display ...
Thanks
aymeric106
I'm sorry but I don't have any plans for this as of now. I will focus on the EVR for some time. Hopefully your problems will be solved along the way too. What's your gfx board? -A
THX-UltraII
1st February 2010, 08:19
I assume you refer to fullscreen playback(?) Try this:
- Use bilinear resizer (it's light-weight)
- Set target sync output to your display cycle time minus say 3 ms (e.g. 17 ms for a 50 Hz display refresh rate)
- Use "present at nearest vsync"
Try both regular fullscreen and D3D fullscreen. If both work, then you can try more complex resizers and shaders with the regular fullscreen. Depending on the processing power of your GPU, you may or may not get tearing when adding more processing to the rendering cycle.
Generally D3D fullscreen should be tearing-free with almost any parameters. The drawback is that if you use the fullscreen gui-support you lose all benefits of D3D fullscreen wrt tearing so I have disabled fullscreen gui support for the time being.
Hope this helps!
Arto
thxz for your reply Ar-Jar.
I will try some suggestions tonight and report back to you.
I still don t understand the calculation to set the 'Taget Sync offset'. Can you help me with this? => I have a JVC RS20 projector that supports 24p playback and have set my ATI5670 to 1920x1080@23,976Hz.
ps. When you want to give me the correct value for this setting you have to keep in mind that I live in PAL-land and that I also play 25fps material. My JVC projector DOES NOT support 25Hz so I use the 'autochange' options in fullscreen options of MPC-HC as follow:
* 23.50 - 24.00Hz => 1920x1080 32bpp 23Hz (that is 23,976 for ATI)
* 24.50 - 25.00Hz => 1920x1080 32bpp 50Hz
* 29.50 - 30.00Hz => 1920x1080 32bpp 60Hz
And now that you know what hardware and settings I use, can you also give me the best values to use for the frequency of 'sync video to display' which standard is 0.0012 and the setting 'Control Limits' which standard is set to 2ms.
thanks again Ar-Jar
ar-jar
1st February 2010, 21:59
ps. When you want to give me the correct value for this setting you have to keep in mind that I live in PAL-land and that I also play 25fps material. My JVC projector DOES NOT support 25Hz so I use the 'autochange' options in fullscreen options of MPC-HC as follow:
* 23.50 - 24.00Hz => 1920x1080 32bpp 23Hz (that is 23,976 for ATI)
* 24.50 - 25.00Hz => 1920x1080 32bpp 50Hz
* 29.50 - 30.00Hz => 1920x1080 32bpp 60Hz
And now that you know what hardware and settings I use, can you also give me the best values to use for the frequency of 'sync video to display' which standard is 0.0012 and the setting 'Control Limits' which standard is set to 2ms.
thanks again Ar-Jar
If you aren't using any advanced shaders or complex resizers (or if you have a potent gfx board) you could choose about 12 ms for the target sync offset for all resolutions and refresh rates).
To really optimize things I would recommend sync offset = display refresh cycle - 3 ms. For 25 Hz (40 ms) this would mean 37 ms. For 50 Hz (20 ms) 17 ms and so on.
The default values should be ok for the other parameters.
This reminds me that I should calculate the default value based on current refresh rate. I'll add that to my to-do list.
Tell me if it works!
-Arto
PS. See my blog for more details about this.
mark0077
1st February 2010, 22:23
Hi arjar. Can settings like this be set to an auto setting. Ie use the formula you give above.
Just or kore question. Does evr sync detect media speed changes during playback yet. It seemed to be an issue for me with early versions so I must use evr-cp.
Thank you.
pirlouy
1st February 2010, 23:43
If it can help people...
50 Hz: 1/50 = 0,020 s = 20 ms ; -3ms = 17 ms
25 Hz: 1/25 = 0.040 s = 40 ms ; -3ms = 37 ms
23,976 Hz: 1 / 23.976 ~ 41 ms ; -3ms = 38 ms
60 Hz: 1/60 ~ 16 ms ; -3ms = 13 ms
Peuj
1st February 2010, 23:52
Hi arjar. Can settings like this be set to an auto setting. Ie use the formula you give above.
Thank you.
Or at least as an option like "Auto sync offset". So users can have the choice.
mark0077
1st February 2010, 23:58
Yeah sounds good. Anything that can be automated within reason should be as much as possible.
THX-UltraII
2nd February 2010, 07:40
If it can help people...
50 Hz: 1/50 = 0,020 s = 20 ms ; -3ms = 17 ms
25 Hz: 1/25 = 0.040 s = 40 ms ; -3ms = 37 ms
23,976 Hz: 1 / 23.976 ~ 41 ms ; -3ms = 38 ms
60 Hz: 1/60 ~ 16 ms ; -3ms = 13 ms
but that's the 'problem' I have. My projector can handle 23,976Hz but I also play 25fps (PAL) material. My projector cannot display at 25Hz so I play the 25fps material @50Hz.
So this means that everytime I switch between NTSC and PAL material I have to manually change the sync offset value from 38 to 17ms and so on.....
pirlouy
2nd February 2010, 11:25
That's why mark0077 asks for something automatic. :D
Jong
2nd February 2010, 12:10
Personally I would go with -4ms, not -3ms. I have not seen sync glitches @-3ms but it is close enough that I do sometimes see the red line wavering in sync with the green line. @-4ms the red line is flat. A sign we are cutting things a bit fine @-3ms I think (at least here).
Automatic is definitely good, but things are not as bad as they seem. The most important thing is to have a reasonable margin from vsync. For most peoples systems I would imagine that the -12ms or -13ms you would get setting for 60Hz would be perfectly fine. If you use this same setting for 50Hz, 24Hz etc. you are not taking advantage of the extra margin available to you at those refresh rates, but if -12ms works then it works(!) and the extra margin is really not needed or particularly useful.
When automatic really is needed is if people what to use 96Hz or 120Hz. Then -12ms (or, even worse, -13ms) really would not work.
pirlouy
2nd February 2010, 20:10
@ar-jar:
When I use EVR Sync, I have some little tearing at bottom (5% of screen) (Aero disabled, and when I don't use D3D fullscreen).
This strip is always present, I mean it's not due to CPU, GPU, RAM limitations; for example, if I use another way to resize (bicubic instead of bilinear), there's the same strip.
This tearing is present with madVR too (a lot more for that matter), but I've noticed that with Beliyaal EVR custom, if I choose V-Sync + Alternative Sync (only these two), there's is no tearing anymore.
Do you know what these options do, or you haven't studied it ?
ar-jar
2nd February 2010, 21:12
@ar-jar:
When I use EVR Sync, I have some little tearing at bottom (5% of screen) (Aero disabled, and when I don't use D3D fullscreen).
This strip is always present, I mean it's not due to CPU, GPU, RAM limitations; for example, if I use another way to resize (bicubic instead of bilinear), there's the same strip.
This tearing is present with madVR too (a lot more for that matter), but I've noticed that with Beliyaal EVR custom, if I choose V-Sync + Alternative Sync (only these two), there's is no tearing anymore.
Do you know what these options do, or you haven't studied it ?
What happens when you gradually change target sync offset (use CTRL+ALT+up or down arrow)? Test both increasing it and decreasing it. In my experience the tearing should disappear when you have a large enough target sync offset. I don't think the tearing issue can be explained with anything in the DirectX library. It's probably depends on the driver and / or the hardware. My desktop ATI card causes tearing while my laptop ATI card is impossible to force to tear. Go figure.
I'll try to understand the complex algorithms of EVR custom eventually but not quite yet. -Arto
pirlouy
2nd February 2010, 22:43
No, changing "target sync offset" does not prevent this little strip of tearing (less than 5% of screen in fact).
I didn't remember, but after some tries, I've noticed Tearing is present in VMR9, EVR, madVR but not in VMR7 or Overlay Mixer. This Overlay Mixer may look old, but in fact, it works well regarding tearing or audio lag.
canuckerfan
5th February 2010, 10:01
forgive me if I've missed something but I get this error when I try to watch a video:
http://i50.tinypic.com/dgjko2.png
any thoughts?
pirlouy
5th February 2010, 17:40
I think it could help if you give information on MPC-HC Build, GPU, OS for example.
mark0077
5th February 2010, 19:05
Hi, just wondering how high up the todo list, is getting audio and video in sync.
As said before I always get 20-40ms out of sync with evr-cp and synch renderer. With vsync disabled, and reclock vsync enabled instead, this drops immediately to 0-2ms, and I get noticible back into sync.
ar-jar
5th February 2010, 20:48
forgive me if I've missed something but I get this error when I try to watch a video:
http://i50.tinypic.com/dgjko2.png
any thoughts?
This means that you probably have a rather basic gfx board that doesn't have any information about what scan line of the video frame it is currently showing. It should really only be an issue if you use the "synchronize display to video" option. I'll look into the code to see if I issue this warning for other modes as well. That would be a bug. -A
canuckerfan
5th February 2010, 20:50
I think it could help if you give information on MPC-HC Build, GPU, OS for example.
build 1.3.1588.0
radeon 9250 pro
windows xp sp3
FDisk80
5th February 2010, 23:45
Sorry, double post. ignore this :)
FDisk80
5th February 2010, 23:48
What happens when you gradually change target sync offset (use CTRL+ALT+up or down arrow)? Test both increasing it and decreasing it. In my experience the tearing should disappear when you have a large enough target sync offset. I don't think the tearing issue can be explained with anything in the DirectX library. It's probably depends on the driver and / or the hardware. My desktop ATI card causes tearing while my laptop ATI card is impossible to force to tear. Go figure.
I'll try to understand the complex algorithms of EVR custom eventually but not quite yet. -Arto
This is a bug.
I have the same problem when in sync with 24Hz while playing 1080p content.
The solution is very strange. Turn ON Aero and the tearing at the bottom goes away.
But this starts another strange problem
With Aero ON the video starts with insane frame skip. (When starting playback directly in fullscreen)
And the solution for this bug is to open any menu.
Click "O" for example for options then close the options window and the frame skipping stops.
Very strange.
Some Details of the system:
i5 750, HD5770 (DXVA), Win 7 64bit, MPC-HC 64bit v1.3.1594.0
pirlouy
6th February 2010, 00:29
@canuckerfan: I don't know if you missed ar-jar post (just before your last post), but the answer is here: you have an old GPU card (6 year old) and it was not an advanced GPU at that time so it may be linked. What options are you using in EVR Sync settings ?
canuckerfan
6th February 2010, 17:29
^I was following the guide here: http://www.ostrogothia.com/?page_id=1216
beginning with alternative 1: "using sync video to display"
pirlouy
6th February 2010, 18:17
What about if you use option "Present at nearest" ? Have you this error ?
canuckerfan
6th February 2010, 19:00
What about if you use option "Present at nearest" ? Have you this error ?
I still get the error. it's weird because in both cases (with or w/o the option ticked) the file plays in the background fullscreen while mpc stays in the foreground. but I can't seem to control anything and I have to close mpc-hc just to get out of the fullscreen mode. is my video card just too old for this?
ar-jar
6th February 2010, 20:09
I still get the error. it's weird because in both cases (with or w/o the option ticked) the file plays in the background fullscreen while mpc stays in the foreground. but I can't seem to control anything and I have to close mpc-hc just to get out of the fullscreen mode. is my video card just too old for this?
Sorry, I checked the code and realized that the checking of the graphics board capabilities is a little too conservative, i.e. it will rule out your card whatever sync option you use. I'll fix that in a future build. -A
ADude
7th February 2010, 22:16
pirlouy -
The sync option for EVR CP are not sufficiently documented, either in the code or elsewhere. The developer of that specific part of the code, left the project right after finishing the options, and right before some questions were asked to clarify - in a technical way - what the options do. So, all you can do is experiment.
ADude
7th February 2010, 22:22
ar-jar -
I recently was playing a video - which turned out to have some encoding problems. But, in an effort to see if the visual problems were due to EVR Sync, I tried going back to EVR CP (and, as implied, there was no difference).
Later, I was playing other videos, and encountered the sort of tearing that is usually fixed by "Present At Nearest" with my setup. I remembered that I had changed to EVR CP, and so, I went into options, selected "EVR Sync" again, and exited.
When I played the video again, the EVR CP options were grayed out and in Options, "EVR Sync" was indeed selected. BUT, the tearing was still there AND Filters said "EVR CP" was in use.
I then rebooted my PC (vista 32bit, no Aero, as stated in my sig), and played the video again immediately after reboot, and this time, there was no tearing and Filters said "EVR Sync".
This seems to be the same bug that I reported a few weeks ago, where changing from EVR CP to EVR Sync does not take effect without rebooting.
pirlouy
7th February 2010, 23:59
pirlouy -
The developer of that specific part of the code, left the project right after finishing the options,
Maybe there is not a lot of documentation, but Beliyaal's algorithms are (I think) very interesting to study.
It's one of the first here to have modified EVR in order to avoid judder. And a lot of people use its renderer and it works well.
Options are documented, and Beliyaal has not left; he's less active, but he has committed some changes not so long ago.
ADude
8th February 2010, 00:48
Options are documented, and Beliyaal has not left; he's less active, but he has committed some changes not so long ago.
There is very sketchy documentation. The technical questions about the options have never been answered and no other developer has been able to answer them.
edigee
9th February 2010, 10:56
I post here , because your sync renderer options was implemented in the main MPC-HC project ,but I guess I can find out more here.
Here's my set up:
HD3650 ,Cat 10.1 ,Vista 32 bit, HD Audio (ALC662 Audio Codec) built in device, MPC_HC build 1623 with: EVR sync ,Sync video to display, audio renderer-system default, display at 60Hz, no reclock, aero enable.
Here's my broblem:
When I play H264 files(mkv or mp4) with 23.976 with DXVA (don't know if it matters) the video is pretty much OK in terms of smooth movement but the audio gives some strange hisses or more like small scratches from time to time as if it was an old vinyl disk.
No matter I switch between AC3 filter or ffdshow audio ,the issue is still on. When I check the sound device tab there are some erors (i guess sync ones) displayed there. When I choose a different audio renderer the problem is still on or the audio goes out of sync.
With EVR Custom those problems dissapear ,but I have small isues in terms of smooth movement of the video.
pirlouy
9th February 2010, 12:00
S/PDIF or analog ?
Which option do you use for synchronization (EVR Sync options) ?
edigee
9th February 2010, 14:20
S/PDIF or analog ?
Which option do you use for synchronization (EVR Sync options) ?
I'm on analog( stereo output to a stereo amplifier).
EVR Sync -sync video to display-freq. adjust.:0.0012
swp
17th February 2010, 22:58
No, changing "target sync offset" does not prevent this little strip of tearing (less than 5% of screen in fact).
I didn't remember, but after some tries, I've noticed Tearing is present in VMR9, EVR, madVR but not in VMR7 or Overlay Mixer. This Overlay Mixer may look old, but in fact, it works well regarding tearing or audio lag.
I can also confirm this. I have constant tearing at the bottom as well with an ati 5850.
- Aero removes tearing but screws up frame rate.
- d3d also removes it but then I get frequent freezes especially if using autochange of fullscreen freq.
ikarad
21st February 2010, 17:25
http://forum.doom9.org/showpost.php?p=1376500&postcount=12003
ADude
23rd February 2010, 06:02
ar-jar -
I recently was playing a video - which turned out to have some encoding problems. But, in an effort to see if the visual problems were due to EVR Sync, I tried going back to EVR CP (and, as implied, there was no difference).
Later, I was playing other videos, and encountered the sort of tearing that is usually fixed by "Present At Nearest" with my setup. I remembered that I had changed to EVR CP, and so, I went into options, selected "EVR Sync" again, and exited.
When I played the video again, the EVR CP options were grayed out and in Options, "EVR Sync" was indeed selected. BUT, the tearing was still there AND Filters said "EVR CP" was in use.
I then rebooted my PC (vista 32bit, no Aero, as stated in my sig), and played the video again immediately after reboot, and this time, there was no tearing and Filters said "EVR Sync".
This seems to be the same bug that I reported a few weeks ago, where changing from EVR CP to EVR Sync does not take effect without rebooting.
ar-jar
23rd February 2010, 19:15
ar-jar -
I recently was playing a video - which turned out to have some encoding problems. But, in an effort to see if the visual problems were due to EVR Sync, I tried going back to EVR CP (and, as implied, there was no difference).
Later, I was playing other videos, and encountered the sort of tearing that is usually fixed by "Present At Nearest" with my setup. I remembered that I had changed to EVR CP, and so, I went into options, selected "EVR Sync" again, and exited.
When I played the video again, the EVR CP options were grayed out and in Options, "EVR Sync" was indeed selected. BUT, the tearing was still there AND Filters said "EVR CP" was in use.
I then rebooted my PC (vista 32bit, no Aero, as stated in my sig), and played the video again immediately after reboot, and this time, there was no tearing and Filters said "EVR Sync".
This seems to be the same bug that I reported a few weeks ago, where changing from EVR CP to EVR Sync does not take effect without rebooting.
I have added a bookmark to this report in my private "mpc-hc bugs" folder. I'm in the middle of some major restructuring right now so it will be some time before i can look at it. -A
THX-UltraII
25th February 2010, 08:48
I can also confirm this. I have constant tearing at the bottom as well with an ati 5850.
- Aero removes tearing but screws up frame rate.
- d3d also removes it but then I get frequent freezes especially if using autochange of fullscreen freq.
+1 for this problem. Still having tearing at the bottom of the screen with Ar-Jar renderer as output. Using EVR Custom for the time-beeing now :(
ADude
9th March 2010, 06:15
Ar-jar:
Since you are currently working on full-screen and monitor issues, perhaps you know the answer to this MPC-HC question:
Back when I was using Build 1043 (the last MPC-HC build prior to he-who-I-am-not-allowed-to-mention), I used to use RealVNC to connect to my HT-PC (which otherwise only has my HD TV as its display) from my laptop. That was convenient when someone was using another source to watch that HD TV, and so I could use RealVNC to do various maintenance on the HT-PC at the same time.
Sometimes I would just use RealVNC from the laptop to start a file playing in MPC-HC on the HD TV. This worked fine, although the RealVNC display on the laptop only showed occasional frames and in a lower color depth, but that was irrelevant, since we were watching the video on the HD TV.
Nowadays, using recent MPC-HC versions with EVR Sync, I find that if RealVNC is running at the same time on the laptop from the HT-PC, I get terrible jerky playback on the HT-PC until such time as I stop the RealVNC viewer altogether. Doing that causes the HD TV to go blank for a fraction of a second, and then playback resumes and is entirely smooth from then on.
So, out of curiosity, do you have any idea what changed in MPC-HC (that caused this) ?
THX-UltraII
11th March 2010, 07:26
Ar-Jar, any progress in solving the 'bottom-tearing' issue with EVR SYNC?
ar-jar
11th March 2010, 10:34
Ar-jar:
Since you are currently working on full-screen and monitor issues, perhaps you know the answer to this MPC-HC question:
Back when I was using Build 1043 (the last MPC-HC build prior to he-who-I-am-not-allowed-to-mention), I used to use RealVNC to connect to my HT-PC (which otherwise only has my HD TV as its display) from my laptop. That was convenient when someone was using another source to watch that HD TV, and so I could use RealVNC to do various maintenance on the HT-PC at the same time.
Sometimes I would just use RealVNC from the laptop to start a file playing in MPC-HC on the HD TV. This worked fine, although the RealVNC display on the laptop only showed occasional frames and in a lower color depth, but that was irrelevant, since we were watching the video on the HD TV.
Nowadays, using recent MPC-HC versions with EVR Sync, I find that if RealVNC is running at the same time on the laptop from the HT-PC, I get terrible jerky playback on the HT-PC until such time as I stop the RealVNC viewer altogether. Doing that causes the HD TV to go blank for a fraction of a second, and then playback resumes and is entirely smooth from then on.
So, out of curiosity, do you have any idea what changed in MPC-HC (that caused this) ?
The short answer is no, sorry. Does this also happen with the other DirectX-based renderers? Have you experimented with Disabling Desktop Composition (just guessing a bit here)? -A
ar-jar
11th March 2010, 10:37
Ar-Jar, any progress in solving the 'bottom-tearing' issue with EVR SYNC?
No, sorry. I'm not really able to repeat it. I am instead focusing on making exclusive mode (D3D mode) full-screen more convenient to use. It is my gut feeling (backed up with some facts) that it will always be the most robust mode tearing-wise and timing-wise as it doesn't share the graphics device with any other processes (except perhaps DXVA). -A
tetsuo55
11th March 2010, 10:51
You guys should consider EVR-Sync a work in progress, thus highly unstable in some cases.
You should consider it a complete rewrite, and things are likely to break in that process
THX-UltraII
11th March 2010, 11:02
So you recommend to stick with ECR Custom for now?
tetsuo55
11th March 2010, 12:01
I suggest try EVR-Sync and if it works for you then keep using it.
If however you have problems right now, i suggest comming back later.
Do report the issue you found here, that way we can contact you and check if the final code still has the bug
Work is still being done on the core basics, and that means that bugs could be fixed, reintroduced or added by accident continually
Jong
11th March 2010, 12:29
Ar-Jar, any progress in solving the 'bottom-tearing' issue with EVR SYNC?I assume you have tried moving the sync target?
What synchronisation settings are you using? What refresh rate? can you post a screenshot with the OSD displayed when you have the tearing (so we can see what is ahppening to the red and green lines)?
In my experience this can happen if you have the sync target too close to either the start or end of the frame, eg. @50Hz too close to 0ms or -20ms
Or, as ar-jar says, try D3D mode. Even with its current restrictions that is what I use all the time other than when testing.
THX-UltraII
11th March 2010, 13:03
I assume you have tried moving the sync target?
What is moving the sync target? Do you mean 'Renderer Settings>VSync>Decrease/Increase vsync offset', or do you mean changing 'MPC-HC Options-EVR Sync Settings-Target sync offset ...ms value'?
What synchronisation settings are you using? What refresh rate? can you post a screenshot with the OSD displayed when you have the tearing (so we can see what is ahppening to the red and green lines)?
I use sync video to display because I use exact matching ATI profiles.
I use 1920x1080@23,976(23ati profile) for NTSC (HD) movies,1920x1080@50Hz(50ati profile) for PAL (HD) and 1920x1080@59,970(59ati profile) for TV based material.
Can post a screenshot tonight.
try D3D mode. Even with its current restrictions that is what I use all the time other than when testing
can t use MPC-HC menu and used to have major lip-sync issues in the past with this option.
Jong
11th March 2010, 15:06
What is moving the sync target? Do you mean 'Renderer Settings>VSync>Decrease/Increase vsync offset', or do you mean changing 'MPC-HC Options-EVR Sync Settings-Target sync offset ...ms value'?The latter.
Can post a screenshot tonight.
That will help, I hope.
can t use MPC-HC menu and used to have major lip-sync issues in the past with this option.Yep. Not being able to use right click menu is a downside. Or rather you can enable it under renderer settings, but that basically throws away all the benefits so there is no point (option should be removed IMO). That is why, as I understand it, ar-jar is working on better support for D3D mode that will allow us to switch in and out of it when we need to. But I find in "normal mode", i.e. when not debugging issues or otherwise testing, I never need the right-click menu anyway. All the changes I need to do during playback are mapped to keys on my remote.
D3D mode should not cause lip sync issues might be worth trying it again. If the tearing is fixed this may go away too.
THX-UltraII
11th March 2010, 16:03
The latter.
That will help, I hope.
Yep. Not being able to use right click menu is a downside. Or rather you can enable it under renderer settings, but that basically throws away all the benefits so there is no point (option should be removed IMO). That is why, as I understand it, ar-jar is working on better support for D3D mode that will allow us to switch in and out of it when we need to. But I find in "normal mode", i.e. when not debugging issues or otherwise testing, I never need the right-click menu anyway. All the changes I need to do during playback are mapped to keys on my remote.
D3D mode should not cause lip sync issues might be worth trying it again. If the tearing is fixed this may go away too.
thxz for the replies again.
I ll post a screen tonight
What about the value in ms? I have a 23,976Hz profiles, a 50Hz profile and a 59,970Hz profile. I can remember that Ar-Jar told that you need to pick specific values when using 23,976Hz and 50-60Hz. So this would mean I constantly have to change this value when I wsitch between PAL and NTSC material. Or is there some kind of average ms that I can use that s ok for all my profiles? (hope you understand what I mean:))
Jong
11th March 2010, 16:23
thxz for the replies again. I ll post a screen tonight What about the value in ms? I have a 23,976Hz profiles, a 50Hz profile and a 59,970Hz profile. I can remember that Ar-Jar told that you need to pick specific values when using 23,976Hz and 50-60Hz. So this would mean I constantly have to change this value when I wsitch between PAL and NTSC material. Or is there some kind of average ms that I can use that s ok for all my profiles? (hope you understand what I mean:)) Tell us what it is currently set at, what refresh rates you get tearing at and let's have a look at that screenshot, before we start changing things.
Leak
11th March 2010, 19:08
Yep. Not being able to use right click menu is a downside. Or rather you can enable it under renderer settings, but that basically throws away all the benefits so there is no point (option should be removed IMO).
Works fine for me - I get no tearing/stuttering with Aero disabled and this option enabled.
Granted, I get tearing when the context menu is up, but as soon as I close it the video is smooth again.
So exactly what is your problem with the D3D GUI option, if I may ask?
np: The Seasons - Trois (Undone)
Jong
11th March 2010, 19:47
By necessity it disables the extra buffering that gives D3D mode its main advantage.
Generally D3D fullscreen should be tearing-free with almost any parameters. The drawback is that if you use the fullscreen gui-support you lose all benefits of D3D fullscreen wrt tearing so I have disabled fullscreen gui support for the time being.
Are you saying you get tearing without D3D mode, but you do not with it, even with the GUi option on? Because I do not get tearing with EVR sync with or without D3D mode. I use it solely so I can use Reclock to control vsync, which only works with overlay or VMR9/EVR in D3D mode. If you get tearing without D3D mode, but you don't with it, even with GUI on, it may just be a subtle change in timing that is fixing it rather than the extra buffering.
ar-jar
11th March 2010, 20:43
By necessity it disables the extra buffering that gives D3D mode its main advantage.
Are you saying you get tearing without D3D mode, but you do not with it, even with the GUi option on? Because I do not get tearing with EVR sync with or without D3D mode. I use it solely so I can use Reclock to control vsync, which only works with overlay or VMR9/EVR in D3D mode. If you get tearing without D3D mode, but you don't with it, even with GUI on, it may just be a subtle change in timing that is fixing it rather than the extra buffering.
With the right timing parameters and no heavy shaders or resizers, i don't get tearing in any mode with my cheap ATI gfx board. D3D with GUI support on the other had is no better than windowed mode full-screen. I have never had tearing with plain vanilla D3D / exclusive mode full-screen. And engineering-wise i prefer it because it doesn't get messed up by the window manager or anything else like that. -A
Peuj
11th March 2010, 22:55
Hi ar-jar,
When I active the option in MPC: "Subtitles -> Allow animation when buffering" it creates some "lags" when playing files with external subtitles (including mvk).
It's worst with EVR-CP.
It is known or a normal issue ?
Thanks
STaRGaZeR
12th March 2010, 00:47
Hi ar-jar,
When I active the option in MPC: "Subtitles -> Allow animation when buffering" it creates some "lags" when playing files with external subtitles (including mvk).
It's worst with EVR-CP.
It is known or a normal issue ?
Thanks
Here too, the higher the subtitle resolution the worse the lags and stuttering get. I think there's a ticket for this, but I'm not sure.
Peuj
12th March 2010, 06:56
ok thanks for the info.
Jong
12th March 2010, 12:28
With the right timing parameters and no heavy shaders or resizers, i don't get tearing in any mode with my cheap ATI gfx board. D3D with GUI support on the other had is no better than windowed mode full-screen.Ditto, I suspect THX-Ultra's problem is fixable either by changing sync timing or, if he is using some funky shaders, backing off on those.
@THX,
If you need more help can you:
- tell us the EVR sync renderer settings you have set
- at which refresh rates you get tearing?
- what shaders you are using and overall what filters you are using? if using ffdshow what post-processing are you doing?
- post that screenshot showing the EVR Sync renderer OSD when tearing is occuring, or if the OSD gets rid of tearing (as it might) at least a screenshot at the same refresh rate and with all other settings the same (filters/shaders/sync offset etc.)
pirlouy
12th March 2010, 18:54
I also have bottom tearing with EVR-sync, and it's not a problem with sync timing, sure.
We are several concerned by this bottom tearing. I really think any EVR Sync option can't change that (except enabling Aero).
But it's not a big problem, since we can use other renderer meanwhile ar-jar implements Direct 3D in Fullscreen.
Jong
13th March 2010, 15:28
I'd ask the same questions I asked of THX, and, of course, full system specs, even if it just helps understand why/when this problem is occuring.
ADude
14th March 2010, 02:16
The short answer is no, sorry. Does this also happen with the other DirectX-based renderers? Have you experimented with Disabling Desktop Composition (just guessing a bit here)? -A
There is no Desktop Composition in Vista Home Basic.
And I tried with EVR Custom Presenter and the problem does not exist with that renderer.
So, it is a bug introduced by EVR Sync.
(Again, just for reference, it is stuttering introduced when using VNC to display the HT PC's desktop on another PC, and the stuttering goes away if the VNC viewer is disconnected.)
PS EVR Sync continues to be perfect in displaying 25fps on a 60hz display, while EVR Custom Presenter still has tearing and other issues when trying to do that, so I still prefer EVR Sync due to "Present at Nearest...".
tetsuo55
14th March 2010, 11:07
There is no Desktop Composition in Vista Home Basic.
And I tried with EVR Custom Presenter and the problem does not exist with that renderer.
So, it is a bug introduced by EVR Sync.
(Again, just for reference, it is stuttering introduced when using VNC to display the HT PC's desktop on another PC, and the stuttering goes away if the VNC viewer is disconnected.)
PS EVR Sync continues to be perfect in displaying 25fps on a 60hz display, while EVR Custom Presenter still has tearing and other issues when trying to do that, so I still prefer EVR Sync due to "Present at Nearest...".A lot of testing has been done, and the "lack" of AERO is highly likely to be the cause of the tearing without EVR-Sync.
EVR-Sync is being re-designed to to be independent from AERO in fullscreen mode.
THX-UltraII
15th March 2010, 10:08
@Jong: haven t found the time yet to post screenshots. I ll post them beginning of this week.
However, I know that the 'bottom-tearing issue' isn t a config problem on my specific setup but a bug that needs (and will) to be fixed be the MPC dev. team.
There is also another reason why I HAVE to use EVR CP:
When using EVR CP there becomes an option available in the renderer settings called 'Enable Frame Time Correction'. I need this option for my 1080p VC1 material to make it run smooth when not using DXVA. This option is not available when running EVR sync.
Jong
15th March 2010, 11:13
@Jong: haven t found the time yet to post screenshots. I ll post them beginning of this week.
However, I know that the 'bottom-tearing issue' isn t a config problem on my specific setup but a bug that needs (and will) to be fixed be the MPC dev. team.Don't forget to say in which refresh rates you get tearing and what the frame rate of the media you are using is at the time. And what shaders you are using and the filter chain.
littleD
15th March 2010, 18:37
There is no Desktop Composition in Vista Home Basic.
@ADude
Are you aware that Vista Home Basic does have aero theme and microsoft screwed its users?? What is more, i wrote for you, how to enable that many weeks ago, because of your complains about Beliyal work...
Heres my original post http://forum.doom9.org/showthread.php?p=1323109#post1323109
Grasso
15th March 2010, 20:19
Hi,
why is synchronization so hard to archieve when one only needs to a) write a video frame to the buffer for every such vsync (given that refresh approximates a multiple of frame rate) and b) re-sample audio? Why is this not possible with Windows 98?
Another problem is speed respectively efficiency. I ran MPC plus Reclock (also for PAL-to-film slowdown), but using a Pentium III 650 and a Nvidia TNT2, DVD playback jerks. We were once told that a Pentium II 233 and a good grafics card were sufficient.
Greetings,
Grasso
STaRGaZeR
16th March 2010, 01:08
Arto, do you have any recommendations for this kind of graph? This stuff happens randomly, the renderer starts dropping frames like crazy. Then after a while, it resumes normally. I've already tried everything.
http://thumbnails24.imagebam.com/7217/0588d972163551.gif (http://www.imagebam.com/image/0588d972163551)
ADude
17th March 2010, 18:43
A lot of testing has been done, and the "lack" of AERO is highly likely to be the cause of the tearing without EVR-Sync.
EVR-Sync is being re-designed to to be independent from AERO in fullscreen mode.
The problem being reported here:
- has nothing to do with tearing
- is unlikely to have anything to do with Aero
You need to read the whole thread before replying.
(The problem being reported is that EVR Sync stutters when the Desktop is connected by VNC to another PC, while EVR CP has never stuttered in that situation. The tearing was cited to answer the automatic reply "Then why not just use EVR CP". I.E. That EVR Sync fixes the tearing problem without Aero and without using any Vsync method other than "Present at Nearest".)
ADude
17th March 2010, 18:46
There is also another reason why I HAVE to use EVR CP:
When using EVR CP there becomes an option available in the renderer settings called 'Enable Frame Time Correction'. I need this option for my 1080p VC1 material to make it run smooth when not using DXVA. This option is not available when running EVR sync.
And what exactly does 'Enable Frame Time Correction' do ?
For example, it could be the same technical change as some EVR Sync option.
This is why it is so important to document what these options actually do.
THX-UltraII
19th March 2010, 10:39
I also have bottom tearing with EVR-sync, and it's not a problem with sync timing, sure.
We are several concerned by this bottom tearing. I really think any EVR Sync option can't change that (except enabling Aero).
But it's not a big problem, since we can use other renderer meanwhile ar-jar implements Direct 3D in Fullscreen.
noob question:
How do I enable/disable Aero in W7 Ultimate x64? :stupid::stupid:
Jong
19th March 2010, 11:22
are you not going to bother answering the earlier questions or post your screenshot?
THX-UltraII
19th March 2010, 12:34
I promised you to do this last week, but didn t find the time for it. I ll really do it this weekend.
tetsuo55
19th March 2010, 21:50
The problem being reported here:
- has nothing to do with tearing
- is unlikely to have anything to do with Aero
You need to read the whole thread before replying.
(The problem being reported is that EVR Sync stutters when the Desktop is connected by VNC to another PC, while EVR CP has never stuttered in that situation. The tearing was cited to answer the automatic reply "Then why not just use EVR CP". I.E. That EVR Sync fixes the tearing problem without Aero and without using any Vsync method other than "Present at Nearest".)Sorry used the wrong wording, AERO takes away any stuttering and tearing by controlling the timing of frames being rendered, that said, i do agree that this is highly unlikely to be related to the vnc problem you mention.And what exactly does 'Enable Frame Time Correction' do ?
For example, it could be the same technical change as some EVR Sync option.
This is why it is so important to document what these options actually do."Frame time correction" is a hack for a problem in VC1 decoders. [Basically VC1 uses a different way to represent the timing of a frame than all other formats)
kramcd
23rd March 2010, 03:59
Hi Guys,
I have posted this question before, but didn't get a reply...
1). With regards to Fast Forwarding a video file; I have noticed that sometimes I can get MPC-HC to Ffwd at up to 128x normal speed, but most of the time it's only 4x. I'm not sure what setting has changed to enable or disable this...I do like the 128x speed though!
2). Is it possible to have MPC-HC Rewind properly, rather than the current 'slow down speed' that happens?
3). I guess if I had a 'wish list' it would include the above things, and perhaps individual settings for each movie, i.e. the ability to set subtitles on or off, make volume adjustments, adjust audio sync etc for each movie. In the same way the option to resume a movie happens, it could hold these individual settings.
ATI HD 5670, 10.2 Drivers, Q6600, P5B-E, Win 7 64 Bit, 4GB Ram,
Cheers.
namaiki
23rd March 2010, 04:53
2). Is it possible to have MPC-HC Rewind properly, rather than the current 'slow down speed' that happens?
I would doubt it as a lot of files can't really be read backwards.
kramcd
23rd March 2010, 05:04
I would doubt it as a lot of files can't really be read backwards.
It's curious as (for example) XBMC can do this with the same files.
namaiki
23rd March 2010, 05:08
http://forum.xbmc.org/showpost.php?p=373761&postcount=7
I didn't say that it's impossible.
If you want, you can still use ctrl + left arrow to skip back 5 seconds or something like that.
1). With regards to Fast Forwarding a video file; I have noticed that sometimes I can get MPC-HC to Ffwd at up to 128x normal speed, but most of the time it's only 4x. I'm not sure what setting has changed to enable or disable this...I do like the 128x speed though!
Also, what do you mean by this?
Do you mean that a 128x speed is not accessible, or that the picture just freezes while it appears to be fast-forwarding, or other?
kramcd
23rd March 2010, 05:20
http://forum.xbmc.org/showpost.php?p=373761&postcount=7
I didn't say that it's impossible.
If you want, you can still use ctrl + left arrow to skip back 5 seconds or something like that.
Also, what do you mean by this?
Do you mean that a 128x speed is not accessible, or that the picture just freezes while it appears to be fast-forwarding, or other?
OSD reports that it is only advancing at 4x (will not go any faster) and visually that appears to be the case, yet sometimes, for some reason, I've been able to speed fwd at up to 128x and you can certainly see how fast it is going!
Leak
27th March 2010, 23:43
OSD reports that it is only advancing at 4x (will not go any faster) and visually that appears to be the case, yet sometimes, for some reason, I've been able to speed fwd at up to 128x and you can certainly see how fast it is going!
I've found that the soundtrack's sample rate(!) can sometimes be a limiting factor - try resampling the audio to something lower (like 22kHz) and see if you can speed it up more then...
nightrhyme
28th March 2010, 00:20
Was looking to try this MPC HC edition but none of the provided links work.
Perhaps site is down.
Any alternative links to download ?
edigee
28th March 2010, 08:23
http://www.ostrogothia.com/video
You can get it from here. But most of ar-jar developments were already included in the main MPC-HC. It's all about the new EVR-Sync renderer (based on EVR-CP) and all the settings regarding a better sincronization of the video with the display and vice versa.
Anyway , all ar-jar work is highly apreciated in MPC-HC development.
nightrhyme
28th March 2010, 09:36
http://www.ostrogothia.com/video
You can get it from here. But most of ar-jar developments were already included in the main MPC-HC. It's all about the new EVR-Sync renderer (based on EVR-CP) and all the settings regarding a better sincronization of the video with the display and vice versa.
Anyway , all ar-jar work is highly apreciated in MPC-HC development.
Ahh ok however site is still inacessible: http://downforeveryoneorjustme.com/www.ostrogothia.com/video
ar-jar
29th March 2010, 18:02
Ahh ok however site is still inacessible: http://downforeveryoneorjustme.com/www.ostrogothia.com/video
I seem to have an issue with my ISP. They've probably changed my IP address. I'll look into it. Thanks for pointing out. -A
EDIT: Fixed. But as pointed out, most of the stuff is already in the trunk build. I've been working on some improvements but progress has been slow.
ar-jar
2nd April 2010, 12:59
There is a new test version of MPC-HC with EVR Sync available on my blog (including source code). It attempts to enable toggling between windowed mode and exclusive mode full-screen (D3D mode) without having to restart the player. The idea is to make tear-free exclusive mode more accessible. Take it for a spin if you are adventurous. It's likely to have several bugs. I'm not sure if I'm moving in the right direction here so I haven't committed anything to svn yet.
I could also use some help hunting down some outstanding COM references that I haven't been able to find. Please let me know if you have plenty of time on your hands and some skills in DirectX and COM.
Arto
Peuj
2nd April 2010, 13:16
Hi Arto,
Is there a way to activate a debug mode with this test version to give you useful information in case of crash or issues?
Edit: I mean using DebugView.
Thanks
ar-jar
2nd April 2010, 13:25
Hi Arto,
Is there a way to activate a debug mode with this test version to give you useful information in case of crash or issues?
Edit: I mean using DebugView.
Thanks
No, this is a release build so it doesn't have debug info in it. Please let me know if you get a crash etc and I can provide a debug version. -A
Peuj
2nd April 2010, 22:37
Ok thanks. Under testing.
For the moment no crash or issues.
Don't see any difference during playback.
Official EVR Sync:
http://img714.imageshack.us/img714/9946/oldj.jpg (http://img714.imageshack.us/i/oldj.jpg/)
New EVR Sync
http://img218.imageshack.us/img218/4345/newve.jpg (http://img218.imageshack.us/i/newve.jpg/)
ar-jar
2nd April 2010, 23:22
Ok thanks. Under testing.
For the moment no crash or issues.
Don't see any difference during playback.
Good to hear and thanks for testing. I see you're not using D3D full-screen though. Could you test too if you can toggle between D3D full-screen and windowed mode. Also across two displays if you have such a set-up. -A
Peuj
3rd April 2010, 01:08
I've set the D3D option and put MPC on my second display (like done with the previous tests).
When I open a file everything is normal then I switch to fullscreen, Aero is deactivated (I'm on Vista) and MPC is on D3D mode (No context menu,...)
Everything looks ok, excepted it looks like the green line is less "stable" or less "linear" than in the previous tests (maybe because of Aero off?).
http://img18.imageshack.us/img18/8801/d3dg.jpg (http://img18.imageshack.us/i/d3dg.jpg/)
I can switch back to windowed mode without issue.
Note that MPC crashes if I activate the "Launch file in fullscreen" option with D3D activated.
nlnl
6th April 2010, 08:36
ar-jar
Thanks for the renderer!
And could you port FTC (Frame time correction) option from EVR CP to your renderer for VC1 playback.
I (Vista, Nvidia 9400) have some issues with Cyberlink decoder: very slow frame rate (1/2 of original).
Matching_Mole
6th April 2010, 21:40
As nlnl I'm facing to the same issue with VC1 codec. But the Frame time correction option is just a workaround, the real issue is into the m2ts splitter and it will be great if this can be fixed one day!
maxxximilian
20th April 2010, 16:49
I also have bottom tearing with EVR-sync, and it's not a problem with sync timing, sure.
We are several concerned by this bottom tearing. I really think any EVR Sync option can't change that (except enabling Aero).
But it's not a big problem, since we can use other renderer meanwhile ar-jar implements Direct 3D in Fullscreen.
I have also the same tearing on bottom and I I can't use Fullscreen D3D either because then I will get stuttering.
I think this is somehow related to newer ATI graphics cards, I have currently Radeon 5850 but same tearing was with previous Radeon 4890 card, too. Rest of the computer: i7-920, 6GB RAM, Creative XFi Titanium sound card, Win 7 x64, 20" LCD and 42" Plasma TV (via HDMI, Extended desktop). Tearing is on both screens and even if I disable one screen.
ar-jar test build is acting the same way.
pirlouy
21st April 2010, 21:35
I have a nVidia 8800GT, so I don't think it's driver related.
maxxximilian
22nd April 2010, 12:01
I have a nVidia 8800GT, so I don't think it's driver related.
Oh, what renderer/settings do you use then to avoid tearing?
pirlouy
22nd April 2010, 12:15
- Overlay Mixer
- ffdshow does the decoding, post-processing, subtitles
- MPC-HC changes refresh rate according to video
- Reclock deals with Sync.
maxxximilian
23rd April 2010, 07:07
- Overlay Mixer
- ffdshow does the decoding, post-processing, subtitles
- MPC-HC changes refresh rate according to video
- Reclock deals with Sync.
I prefer MPC internal subtitling because then subtitles are all the time in same place and size, unfortunately they don't work under Overlay Mixer. It seems I have to live with tearing or change player then.
pirlouy
23rd April 2010, 07:52
Yet, I've seen players which are able to add subtitles to Overlay Mixer, so it should be possible for MPC-HC.
Indeed, internal subtitles of MPC-HC with EVR are very nice. But nobody works on subtitles renderer right now, and I don't want to be captive because of a feature which is not in development.
But, with ffdshow, since I let it do the upscaling, then add subtitles, subtitles are all at the same size whatever the size of video is.
maxxximilian
23rd April 2010, 10:56
Yet, I've seen players which are able to add subtitles to Overlay Mixer, so it should be possible for MPC-HC.
Indeed, internal subtitles of MPC-HC with EVR are very nice. But nobody works on subtitles renderer right now, and I don't want to be captive because of a feature which is not in development.
But, with ffdshow, since I let it do the upscaling, then add subtitles, subtitles are all at the same size whatever the size of
video is.
Upscaling? So there isn't black borders up and down? This is exactly what I need, how do you do that?
Jong
23rd April 2010, 12:45
@ar-jar,
I have been working with the MediaPortal guys, who seem to be using some of your code to enhance their EVR Presenter. Both of us have found that if we repeatedly pause/play uisng "Present at Nearest" (Reclock not used) we can get absolutely horrible judder that never stops. Basically, only about 2/3rds- 1/2 of the frames are big displayed.
It seems to happen when the "Sample Paint Time Correction" is almost exactly the frame time. In fact, specifically, with 25p material (PAL DVD) @50Hz the "Sample Paint Time Correction" oscillates between 20ms and 21ms when this is happening, which is interesting in itself of course as the frame time is only 20ms.
It looks like there is a small danger zone when EVR Sync itself cannot decide which vsync to target.
I don't normally see this because, as you may remember, I normally use EVR Sync with all sync option OFF, instead using Reclcok vsync correction.
lych_necross
24th April 2010, 07:45
I have been working with the MediaPortal guys, who seem to be using some of your code to enhance their EVR Presenter. Both of us have found that if we repeatedly pause/play uisng "Present at Nearest" (Reclock not used) we can get absolutely horrible judder that never stops. Basically, only about 2/3rds- 1/2 of the frames are big displayed.
Well, don't do that ;)
Jong
24th April 2010, 09:34
No I think you are missing my point. :rolleyes: probably I did not describe it accurately enough. :o
I meant there is a small chance on any seek or resume that it will get in this state, but the easiest way to make it happen is to keep pressing play/pause until it does.
me7
24th April 2010, 10:46
- Overlay Mixer
- ffdshow does the decoding, post-processing, subtitles
- MPC-HC changes refresh rate according to video
- Reclock deals with Sync.
Does ffdshow support BluRay subtitles by now?
pirlouy
24th April 2010, 14:49
Upscaling? So there isn't black borders up and down? This is exactly what I need, how do you do that?
ffdshow adds black border up and down in order to respect Aspect Ratio, else it does not add useless border.
@me7: I don't know for Blu-Ray as I don't have Blu-Ray equipment.
lych_necross
25th April 2010, 07:27
I was kidding Jong. I've noticed that bug as well. It seems to happen pretty randomly whether the renderer is EVR Sync, EVR CP, or standard EVR (I haven't tested others yet).
Jong
25th April 2010, 10:40
I was kidding Jong.No worries. :)
THX-UltraII
25th April 2010, 18:13
Any news on when the 'bottom tearing issue' will be fixed?
maxxximilian
8th May 2010, 12:52
Any news on when the 'bottom tearing issue' will be fixed?
I don't know if it will helping you but I got rid of it doing this:
View, Renderer Settings, Reset and reset to optimal renderer settings.
I'm using EVR Custom and under Renderer Settings, VSync are all options ticked - VSync, Accurate VSync and Alternative VSync.
pirlouy
8th May 2010, 14:13
But it's not the same renderer.
EVR Custom is not EVR Sync.
I have no tearing either with EVR Custom and one of its specific options.
THX-UltraII
11th May 2010, 09:37
Also using EVR Custom here with all three sync settings enabled to prevent bottom tearing.
Hope EVR Sync will be updated in the near future so we can use that one instead.
THX-UltraII
19th June 2010, 19:09
Is this project dead?
I was still hoping for a 'bottom tearing issue' solution......:(:(
ianken
27th June 2010, 23:22
Is there a way to get D3D exclusive mode AND refresh rate change on full-screen? It seems to be one or the other and D3D is the only way I get no tearing with this build.
Well: got refresh switching and vsync in line and on my Panasonic plasma (which does ecertying between 23 and 60hz, it looks great.
Oddly I have an MKV with VC1 content that is 24p, but the res mose change is to 60Hz as if it is "other." It could be the decoder, I vaguely recall VC1 defualting to 60Hz on the output pin, even though the player seems to know it is 23.976.
but man, H.264 24Hz and 25Hz stuff is AWESOME. I hope these changes make it into the mainline MPC-HC builds soon.
THX-UltraII
29th June 2010, 07:18
I think (but dont hope!) that this is a dead project........
Jong
29th June 2010, 07:23
Read ar-jars blog:
http://www.ostrogothia.com/video/
ar-jar
1st July 2010, 07:45
I think (but dont hope!) that this is a dead project........
Hi guys; This is the deal: I got stuck way back trying to get the D3D full-screen toggle to work with the built-in DXVA decoder and finally I gave up, at least for the time being. D3D is the only really fool-proof way of avoiding tearing on XP that I know of. (W7 uses a new graphics interface that avoids many of the problems.) The thing is that I can't get the DXVA decoder to "release" the graphics device properly and therefore I cannot design a stable toggle function. This issue is also present in EVR Custom. (Check the "Reinitialize when changing display", option, play something that throws in the DXVA decoder and then drag the window to a second display.)
The alternative would be to run in D3D mode all the time but that would require a whole menu manager that works in D3D (I still want to use the menus for subs etc.). In the mean time more people are moving to W7 and the problem of tearing is slowly going away. -A
pirlouy
1st July 2010, 10:46
In the mean time more people are moving to W7 and the problem of tearing is slowly going away. -A
As explained in another dedicaced thread, Aero causes several problems, and personnally, I don't use Aero for videos despite I use W7.
ikarad
17th February 2011, 17:33
Hi guys; This is the deal: I got stuck way back trying to get the D3D full-screen toggle to work with the built-in DXVA decoder and finally I gave up, at least for the time being. D3D is the only really fool-proof way of avoiding tearing on XP that I know of. (W7 uses a new graphics interface that avoids many of the problems.) The thing is that I can't get the DXVA decoder to "release" the graphics device properly and therefore I cannot design a stable toggle function. This issue is also present in EVR Custom. (Check the "Reinitialize when changing display", option, play something that throws in the DXVA decoder and then drag the window to a second display.)
The alternative would be to run in D3D mode all the time but that would require a whole menu manager that works in D3D (I still want to use the menus for subs etc.). In the mean time more people are moving to W7 and the problem of tearing is slowly going away. -A
I have one question about your evr sync.
When I use evr custom + ctrl+j function, red curve is a line but green curve is a line that up lightly during 40 seconds before go down on the red curve.
example:
http://img508.imageshack.us/img508/7184/debut.jpg (http://img508.imageshack.us/i/debut.jpg/)
http://img408.imageshack.us/img408/2992/suiteh.jpg (http://img408.imageshack.us/i/suiteh.jpg/)
What means because I don't understand?
vBulletin® v3.8.5, Copyright ©2000-2012, Jelsoft Enterprises Ltd.