View Full Version : Experimental player that eliminates judder


ar-jar
30th March 2009, 11:41
I'd appreciate feedback on my experimental DirectShow player for Windows, the GothPlayer, which synchronizes the display refresh rate to the frame rate of the incoming video thereby eliminating what is commonly known as "pan judder". This works both for local stream sources such as DVD and live sources such as TV. The player includes a simple test image generator to adjust and check judder, overscan, contrast and brightness.

The player today only works with certain graphics boards and certain displays:

The graphics boards supported by the player are those which are fully supported by PowerStrip (see http://forums.entechtaiwan.com/index.php?PHPSESSID=b6f62676690df26c25d2ca52eed6ebbf&topic=2036.0). I have tested it with a number of NVidia boards and one ATI board. Unfortunately NVidia 8000-series and up are not currently supported by PowerStrip.

The display must accept HDTV timing and should typically be a flatscreen TV or a projector. It does not work with regular computer displays without HDTV mode. I have tested the player with four different displays (3 LCDs, 1 projector) that have all worked. The only way to find out whether it works for your display is to run a simple test as described on the site referred to below.

With the right components and some initial adjustment, the player produces a very smooth and tear-free video playback on an HTPC. I (and my technology-savvy kids) have been using it for all our movie watching for more than a year.

More info and downloads can be found here (binaries and source): http://www.ostrogothia.com/video/?page_id=5. But remember: it's experimental :-)

totozero
30th March 2009, 22:23
Oh my...
Thx a lot, gonna check it right now !!!

C'ya.

Casshern
31st March 2009, 09:22
Great work! Very promising. Would it be asking to much integrating your renderer into MPC HC. Beliyaal did a great job updating the old renderers (vmr9, evr cp) to be state-of-the art in handling the vsync. But your idea tackles the problem from the root-cause. Please look in the MPC HC dxva beliyaal thread - and just contact him! This would be the ultimate addition to the renderer options in MPC HC. And MPC HC does playback the subtitles from m2ts files - so one thing less for you to worry about!

I'd appreciate feedback on my experimental DirectShow player for Windows, the GothPlayer, which synchronizes the display refresh rate to the frame rate of the incoming video thereby eliminating what is commonly known as "pan judder". This works both for local stream sources such as DVD and live sources such as TV. The player includes a simple test image generator to adjust and check judder, overscan, contrast and brightness.

The player today only works with certain graphics boards and certain displays:

The graphics boards supported by the player are those which are fully supported by PowerStrip (see http://forums.entechtaiwan.com/index.php?PHPSESSID=b6f62676690df26c25d2ca52eed6ebbf&topic=2036.0). I have tested it with a number of NVidia boards and one ATI board. Unfortunately NVidia 8000-series and up are not currently supported by PowerStrip.

The display must accept HDTV timing and should typically be a flatscreen TV or a projector. It does not work with regular computer displays without HDTV mode. I have tested the player with four different displays (3 LCDs, 1 projector) that have all worked. The only way to find out whether it works for your display is to run a simple test as described on the site referred to below.

With the right components and some initial adjustment, the player produces a very smooth and tear-free video playback on an HTPC. I (and my technology-savvy kids) have been using it for all our movie watching for more than a year.

More info and downloads can be found here (binaries and source): http://www.ostrogothia.com/video/?page_id=5. But remember: it's experimental :-)

Peuj
31st March 2009, 09:37
Great work! Very promising. Would it be asking to much integrating your renderer into MPC HC. Beliyaal did a great job updating the old renderers (vmr9, evr cp) to be state-of-the art in handling the vsync. But your idea tackles the problem from the root-cause. Please look in the MPC HC dxva beliyaal thread - and just contact him! This would be the ultimate addition to the renderer options in MPC HC. And MPC HC does playback the subtitles from m2ts files - so one thing less for you to worry about!

Exactly what I think you should work with MPC HC team.

Nice work!!

smok3
31st March 2009, 11:27
cool stuff, shame it is such a pain to setup really :/

ar-jar
31st March 2009, 12:09
Thanks for the encouragement! I'll check into the MPC HC project. I haven't really put much effort into my player as you already figured out. The main component is the renderer. As it is implemented now it indeed requires some integration in the player too. (I have forgotten exactly why now but I remember that I went to great lengths trying to avoid the extra non-standard interface. It has something with exclusive mode and reset of the graphics device to do.) The renderer aggregates VMR9 so it implements DXVA etc.

ar-jar
31st March 2009, 12:22
cool stuff, shame it is such a pain to setup really :/

Yes, I know, it's really a "proof of concept" if anything (but it works for me). I have ideas as to how everything could be made easier and more automatic but that would require support for adjusting the parameters through the graphics driver. Maybe it's implemented in NVidias NVAPI but it's very hard to get in touch with NVidia to get the NDA that seems to be required to access the more advanced functions. Haven't checked with ATI / AMD.

Atak_Snajpera
31st March 2009, 12:30
Luckly Vista and 7 users have no problems with "judder" in EVR Custom mode . I reckon that this will be useful only for XP users .

tetsuo55
31st March 2009, 12:44
Thanks for the encouragement! I'll check into the MPC HC project. I haven't really put much effort into my player as you already figured out. The main component is the renderer. As it is implemented now it indeed requires some integration in the player too. (I have forgotten exactly why now but I remember that I went to great lengths trying to avoid the extra non-standard interface. It has something with exclusive mode and reset of the graphics device to do.) The renderer aggregates VMR9 so it implements DXVA etc.

Hi ar-jar,

As the program manager for MPC-HC i would like to officially invite you to join the team.
The people working on the renderer's and the judder issues are Beliyaal and casimir666.

The work you have done for this program would make MPC-HC almost perfect!
Although we are evolving towards EVR a lot of people are stuck forced to use VMR9, so those functions are very usefull still.

ar-jar
31st March 2009, 12:45
Luckly Vista and 7 users have no problems with "judder" in EVR Custom mode . I reckon that this will be useful only for XP users .

With proper matching of refresh rate and video fps, the backbuffer flip timing in relation to vsync, and skipping or adding a frame at exactly the right time you get very close and may not notice any judder. I guess that's what's improved in EVR. I doubt that they have implemented true framelock though as the graphics drivers don't support the required functions today. As a geek though, I'm twice as happy when I can measure there isn't any judder than I am when I just don't notice it :-)

tetsuo55
31st March 2009, 12:45
Luckly Vista and 7 users have no problems with "judder" in EVR Custom mode . I reckon that this will be useful only for XP users .

You have not seen my pc then :(

ar-jar
31st March 2009, 13:01
Hi ar-jar,

As the program manager for MPC-HC i would like to officially invite you to join the team.
The people working on the renderer's and the judder issues are Beliyaal and casimir666.

The work you have done for this program would make MPC-HC almost perfect!
Although we are evolving towards EVR a lot of people are stuck forced to use VMR9, so those functions are very usefull still.

Thank you for the invitation, I'm honored. I need to make it clear though that I'm not a programmer really so i may need some time to learn the ropes of collaborating on an open source project. But I usually find my way around eventually despite my shortcomings, it just takes some time. I'll see what I can find at SourceForge (?) first, play around with the player a bit, maybe look at the code and then get in touch with the people you mention.

tetsuo55
31st March 2009, 13:06
Thank you for the invitation, I'm honored. I need to make it clear though that I'm not a programmer really so i may need some time to learn the ropes of collaborating on an open source project. But I usually find my way around eventually despite my shortcomings, it just takes some time. I'll see what I can find at SourceForge (?) first, play around with the player a bit, maybe look at the code and then get in touch with the people you mention.

A lot of the people that join these kinds of projects are not experienced programmers.
By the time they lose interest they have usually become quite skilled in the programs field.

flanger216
31st March 2009, 15:59
Great work, especially for someone who "isn't a programmer." A big +1 for getting this implemented into MPC-HC.

You have not seen my pc then :(

Ha! Same here, man.

envagyok
31st March 2009, 16:11
i cannot register the filters under windows vista?
have someone get installed with vista 64 bit?
how can i do that?

leeperry
31st March 2009, 16:14
You have not seen my pc then :(
there's an urban myth that leads ppl to believe that EVR is the start all/end all of smooth playback on PC...

this sounds awesome, too bad I ditched my ATi cards ages ago :o

does it use some custom A/V renderer? how about A/V sync for 23.976fps@48Hz?

Jong
31st March 2009, 16:44
ar-jar,

what are the problems with the latest 4xxx cards from ATI. Are you saying those cannot be used for sure, or you are not certain?

Pstrip release notes are not always the clearest I know.

ar-jar
31st March 2009, 19:36
i cannot register the filters under windows vista?
have someone get installed with vista 64 bit?
how can i do that?

Sorry, I have never tried it on Vista. The .bat-file just contains a couple of regsvr32 calls. I don't know if that's how you register dlls on Vista. There are also trace tools that you can use to see what goes wrong when registering a dll but again, I don't know what to use on Vista.

ar-jar
31st March 2009, 19:45
there's an urban myth that leads ppl to believe that EVR is the start all/end all of smooth playback on PC...

this sounds awesome, too bad I ditched my ATi cards ages ago :o

does it use some custom A/V renderer? how about A/V sync for 23.976fps@48Hz?

It uses a custom renderer that aggregates VMR9 (COM aggregation) and adds a "custom allocator-presenter" that controls the timing. This is what I believe is sometimes called VMR9 "renderless" which is a funny name for a renderer. It's all packed into one dll. Unfortunately I had to add a custom COM interface so it's not 100% plug-in compatible with VMR9.

It should work with whatever your display will digest. I've tried it with 48 (or ~47.95 rather), 50, 60.

ar-jar
31st March 2009, 19:56
ar-jar,

what are the problems with the latest 4xxx cards from ATI. Are you saying those cannot be used for sure, or you are not certain?

Pstrip release notes are not always the clearest I know.

I've seen posts that say that 4000 boards work ok with PS but I haven't tried it. On my development computer I use a very low cost fan-less 3450 which I think is quite sufficient for video and it support DXVA fine too (with the latest driver). I think PS release notes use GPU codes for ATI instead of board families so you have to cross-reference using e.g. Wikipedia. I wouldn't be afraid to try it out but I can give no guarantees... On my HTPC I use a 7000 series NVidia but they are hard to come by these days. Hopefully Entech gets the info they need to support the newest boards too.

Jong
31st March 2009, 19:58
Yeah, I thought that might be where we are at. I'll post on the Pstrip forum to see what Rik says.

leeperry
31st March 2009, 20:18
It uses a custom renderer that aggregates VMR9 (COM aggregation) and adds a "custom allocator-presenter" that controls the timing. This is what I believe is sometimes called VMR9 "renderless" which is a funny name for a renderer. It's all packed into one dll. Unfortunately I had to add a custom COM interface so it's not 100% plug-in compatible with VMR9.

It should work with whatever your display will digest. I've tried it with 48 (or ~47.95 rather), 50, 60.
ok thanks for the detailed reply!
so what happens on 23.976@48Hz? it doesn't resample I guess, so A/V sync will suffer after a little while?

your player is constantly sending a drifting refresh rate, if I got right :confused:

and did you get a chance to look at my PM? would love to hear your feedback on that matter :cool:

ar-jar
31st March 2009, 21:26
ok thanks for the detailed reply!
so what happens on 23.976@48Hz? it doesn't resample I guess, so A/V sync will suffer after a little while?

your player is constantly sending a drifting refresh rate, if I got right :confused:

and did you get a chance to look at my PM? would love to hear your feedback on that matter :cool:

The renderer switches between three different refresh rates: the nominal one that should be as close to the video fps as possible (the "cruise" refresh rate), a high one that *must* be above the video fps ("accelerate") and a low one ("decelerate") that *must* be below the video fps. As long as this is the case, everything should be kept in sync. If either the low or the high refresh rate is very close to the video fps, then it may take some time to get into sync. You get the idea. In my setup for 23.976 fps Blue-ray m2ts files I use 47.95 as nominal, 47.90 as low and 50.00 as high. That works fine. (A too big difference in refresh rates will mess up the display. The ones that I've tested with seem to tolerate 0.05 at least.)

I'll look into your PM...

leeperry
31st March 2009, 21:33
The renderer switches between three different refresh rates
[...]
I'll look into your PM...
don't you think some(most?) displays will get very upset at fluctuating refresh rates?
I know my Mitsubishi projector would constantly resync.....which leads to the PM I sent ya :o

ar-jar
31st March 2009, 21:42
don't you think some(most?) displays will get very upset at fluctuating refresh rates?
I know my Mitsubishi projector would constantly resync.....which leads to the PM I sent ya :o

To be honest, I don't know. But I know that I own 3 LCDs (2 Philips and one Toshiba I think - i keep forgetting) and one old Sony HS10 projector. They all accept a 0.05 Hz adjustment up or down without a glitch (many of them, maybe all, also accept 48 Hz against common wisdom). Some accept an adjustment in the horizontal front porch, some in the vertical. But none of them accept both so one has to test. With PowerStrip you have to adjust the number of lines or columns. Of some reason, adjusting the pixel clock, which would seem most straight-forward, doesn't work.

When I purchased my last LCD i actually took my HTPC to the store and tested it. That's what I'll do when I upgrade my projector too.

leeperry
31st March 2009, 22:16
good point, coz I remember that whatever value I ever so slightly changed in pstrip got my HC3100 to resync :o

anyway, to sum it up:
-regular DS playback will drop video frames once in a while to catch up w/ the audio
-Reclock will change the media speed to match w/ an exact multiple of the refresh rate(23.976@24fps>48Hz), and Haali's Renderer will NEVER drop frames either.
the only drawback is that Reclock is not synced to HR, so jitter occurs :(

if I got it right, your player will keep the audio untouched(so no 25@24 possible? or maybe w/ Reclock on top of it?), and will constantly play around w/ the refresh rate to catch up w/ the audio? ...w/o dropping video frames and no visible "gap", right? :D

ar-jar
31st March 2009, 22:27
the only drawback is that Reclock is not synced to HR, so jitter occurs :(

if I got it right, your player will keep the audio untouched(so no 25@24 possible? or maybe w/ Reclock on top of it?), and will constantly play around w/ the refresh rate to catch up w/ the audio? ...w/o dropping video frames, right? :D

Not sure what you mean with "Reclock is not synced to HR". I'm not an expert on Reclock so I shouldn't really say much about it. It used to work ok for me for DVDs but I wanted something that also worked for a live TV input and that Reclock does not.

Audio and video moves in perfect harmony when everything is in sync with my player. I think that maybe somewhere inside of VMR9, outside of my control, a frame might get dropped if things get critical but that never happens as far as I can tell. So video - audio sync is not an issue.

ar-jar
31st March 2009, 22:38
Does anybody know how e.g. satellite boxes adjust the refresh rate of the TV to match that of the incoming video? Or maybe they don't, i.e. they are as bad as PCs, just that I haven't noticed (heaven forbid).

Does the DVI (or any other applicable) standard have a notion of framelock and how that should be implemented in the box - display combination? Maybe small adjustments of the pixelclock? Maybe a good old fashioned vsync pulse and a PLL but in digital format? I should perhaps try to dig out the standard somewhere and read instead of just tweak things (although tweaking is more fun)...

leeperry
31st March 2009, 22:39
Reclock sends a "perfect clock" but HR is not synced, so jitter occurs...mostly due to the VSYNC fliptime : http://software.intel.com/en-us/articles/video-frame-display-synchronization

and Haali has given up on HR, so it's a lost cause.

AFAIK, Reclock works fine on DVB...many ppl use it to watch 25@24 in Europe, once you've tried PAL correction there's no looking back :D

well, yeah dropping video frames is the last thing you wanna do..

ar-jar
31st March 2009, 22:49
AFAIK, Reclock works fine on DVB...many ppl use it to watch 25@24 in Europe, once you've tried PAL correction there's no looking back :D


I don't think that Reclock can synchronize a live source. It would end up between a rock (the broadcast company's internal clock) and a hard place (the graphics board's internal clock). If none of those will yield, no absolute sync is possible. Reclock tries to adjust the rock (which in case it is locally stored on your harddrive) will actually yield. My solution adjust the hard place which isn't all that hard if you use the PowerStrip API and have a compatible board. (Excuse me for my metaphors - it's getting late over here.)

leeperry
31st March 2009, 23:07
I'm pretty sure that Reclock works for live TV(his coder and several other ppl mentioned it), but I never tried it myself..

and you're from Europe, so you're well aware that all the movies are 4% sped up on our DVD's/TV channels, so keeping the audio untouched is not an ideal solution in those cases ;)

Casshern
1st April 2009, 10:14
don't you think some(most?) displays will get very upset at fluctuating refresh rates?
I know my Mitsubishi projector would constantly resync.....which leads to the PM I sent ya :o
Hi,

as far as i see it the adjustment occurs only for 1 frame. I tested this with my displayes here and had no problems (sony vwl 60, sharp lcd hdtv, lg computer monitor). Most - if not all - displays resync only if the the new signal is far enough from the current one and persists for a couple of vertical syncs (maybe 10 fields/frames). I would also reckon that every hdtv capable displaydevice should work, as they have tolerances for 23.976 to 24.000 hz anyways.

I would estimate a successrate of > 85% across dispkays, brands etc if the corrected frame time does not persist for more than 3 vertical refreshcycles.

So don't listen to the naysayers. Your prototype works well enough for me, as a proof of concept. Even if its not for everybody, it would be a great addition to mpc hc.

leeperry
1st April 2009, 11:02
I would estimate a successrate of > 85% across displays, brands etc if the corrected frame time does not persist for more than 3 vertical refreshcycles.
ah, good point! well you only tried it on 3 displays....so giving a 85% success rate is a bit far stretched I think.
anyway, what matters is whether the A/V remains spot on and if it never drops video frames(even after a 2H play time)

hopefully more ppl will give feedback, I'd hate having you making me buy an ATi again :devil:

Leak
1st April 2009, 12:26
I've seen posts that say that 4000 boards work ok with PS but I haven't tried it.
It works fine with my Radeon 4850.

The only problem I have is that it doesn't seem to be able to address more than 2 monitors, i.e. with 2 monitors enabled the two connectors on my first card are numbered 1 and 2 in PS, whereas activating the first monitor on my second card makes PS give number 1 to the first screen on my first card and 2 to the first screen on my second card and there's no way to get it to adjust the third monitor that was actually the second one seconds ago...

But I can live with that... :)

EDIT: Scratch that, the above is fixed in PowerStrip 3.85. :)

Jong
1st April 2009, 12:50
I've seen posts that say that 4000 boards work ok with PS but I haven't tried it. It works fine with my Radeon 4850.
The reply on the Entech Forum (http://forums.entechtaiwan.com/index.php?topic=6915.new;topicseen)again suggests all is fine with 4xxx, although still not definitive support.

ar-jar
1st April 2009, 16:11
Hi,

as far as i see it the adjustment occurs only for 1 frame. I tested this with my displayes here and had no problems (sony vwl 60, sharp lcd hdtv, lg computer monitor). Most - if not all - displays resync only if the the new signal is far enough from the current one and persists for a couple of vertical syncs (maybe 10 fields/frames). I would also reckon that every hdtv capable displaydevice should work, as they have tolerances for 23.976 to 24.000 hz anyways.

I would estimate a successrate of > 85% across dispkays, brands etc if the corrected frame time does not persist for more than 3 vertical refreshcycles.

Great that it worked for you too. As you say, HDTV resolutions / timings seem fairly tolerant. VGA less so. A typical computer monitor may keep its sync but the image will shift a bit up or down which can be a nuisance so I don't recommend it for computer monitors running a VGA resolution. When the frequencies match like with 25 fps DVDs and 50 Hz displays I get about 80 - 100 adjustments for a whole movie. I think that if the display can handle the first frame with the new timing, then it can handle it indefinitely so how long the adjustment goes on shouldn't be that critical. I haven't measured it but I think that it may take as long as a few seconds to make an adjustment. Anyway, we can add my 4 monitors to the stats which makes it a total of 7 :-)

ar-jar
1st April 2009, 16:25
anyway, what matters is whether the A/V remains spot on and if it never drops video frames(even after a 2H play time)


When I watch a DVD movie I typically don't stray away from the desired presentation time more than 3-4 ms which means that the player never drops a frame. Sound and video also seems to stay in sync.

You can test this with the built in test stream generator that generates a sweeping edge and you can display how accurate the timing is. With a heavy load on the CPU, things do deteriorate though. But it works @ 50% load with (a rather clean) 1 core 3.2 GHz processor, when I play 50 fps AVCHD.

There is still the odd chance that the graphics board misses to display an image from its backbuffer when told to do so, I can not test that, but that would be a bug. I haven't seen anything that indicates that it would.

leeperry
1st April 2009, 18:54
There is still the odd chance that the graphics board misses to display an image from its backbuffer when told to do so
yeah, that's what I hated so much w/ EVR/VMR9 in MPC HC...sometimes the damn thing dropped a frame just because it was a bit late, so irritating to see dropped frames on a 3 meters wide projection screen in 24p..

but considering you run in exclusive D3D mode, this should minimize this problem...if not fixing it altogether :devil:

now how does it work in conjunction w/ Reclock at 23.976@24 & 25@24, that's the subsidiary question I guess :D

ar-jar
1st April 2009, 21:36
but considering you run in exclusive D3D mode, this should minimize this problem...if not fixing it altogether :devil:

now how does it work in conjunction w/ Reclock at 23.976@24 & 25@24, that's the subsidiary question I guess :D

I use exclusive mode mostly to avoid tearing. It also gives a somewhat more exact timing but is not crucial wrt to that. I get a pretty good sync in windowed (non-exclusive) mode too actually.

It should work fine with Reclock if you only use Reclock for changing the framerate. If you use it for synchronization too (don't rememer if you can disable that) then the two algorithms might end up fighting each other regarding the right timing and the result would be unpredictable. I don't have the need for changing the framerate as all my displays seem to accept 48- Hz too for my 24 fps movies.

Mark_A_W
2nd April 2009, 12:05
I'm trying to install it on Vista 32.

But the bat file can't register syncvmr9.ax.

When I try to manually register syncvmr9.ax, I get an error about d3dx9_34.dll not being found.

I believe my system is up to date.


A little help please...:)



EDIT....RTFM. My DirectX wasn't up to date.

ar-jar
2nd April 2009, 12:19
When I try to manually register syncvmr9.ax, I get an error about d3dx9_34.dll not being found.

I believe my system is up to date.

I on the other hand think you may need an update :-) I hope this link will take you to the most recent version download (if Microsoft hasn't managed to move things around in the mean time): http://www.microsoft.com/downloads/details.aspx?FamilyId=2DA43D38-DB71-4C1B-BC6A-9B6652CD92A3&displaylang=en

You can also first go to your C:\WINDOWS\system32 and see if there is a d3dx9_34.dll there.

Mark_A_W
2nd April 2009, 12:34
I on the other hand think you may need an update :-) I hope this link will take you to the most recent version download (if Microsoft hasn't managed to move things around in the mean time): http://www.microsoft.com/downloads/details.aspx?FamilyId=2DA43D38-DB71-4C1B-BC6A-9B6652CD92A3&displaylang=en

You can also first go to your C:\WINDOWS\system32 and see if there is a d3dx9_34.dll there.


I got it - thanks.

My next problem is I was running multi-monitors when I fired it up.

My monitor for Video runs at 95.904hz interlaced....and the other one runs at 85hz progressive, and the 85hz one was primary when ran Gothplayer.

Now it's stuck on 85hz as the monitor frequency - I can't seem to force it to read the other monitor. I disabled the 85hz monitor, but that didn't work. Tried re-registering the bat files, and restarting the player.

Anyway, I think it's a brilliant idea. Very keen to see how it goes compared to Reclock (actually...I'd still need reclock to do PALSpeedDown, so it would be nice if they could work together. Not sure if PALSpeedDown works with Reclock in Slave mode).


EDIT: I just RTFM very carefully, yes, you do say to disable multi monitors. What can I say...it's late and I'm tired. Is there a way to reset the monitor detection?

ar-jar
2nd April 2009, 12:48
I got it - thanks.

Now it's stuck on 85hz as the monitor frequency - I can't seem to force it to read the other monitor. I disabled the 85hz monitor, but that didn't work. Tried re-registering the bat files, and restarting the player.

Anyway, I think it's a brilliant idea. Very keen to see how it goes compared to Reclock (actually...I'd still need reclock to do PALSpeedDown, so it would be nice if they could work together. Not sure if PALSpeedDown works with Reclock in Slave mode).


EDIT: I just RTFM very carefully, yes, you do say to disable multi monitors. What can I say...it's late and I'm tired. Is there a way to reset the monitor detection?

You can go to C:\Program Files\PowerStrip (or similar) and delete the pstrip.ini file (or to be on the safe side, just rename it - deleting it *used to* work...) and restart PS with the right monitor and frequency. Not sure if you can use Reclock just to speed up or down. I wouldn't recommend having both sync algorithms going at it at once.

Casshern
2nd April 2009, 13:40
I did some more testing with my vwl 60 and it only works without "a screen wobble" if you are at 23.976 -24.000. At 47.952 every adjustment doesn't resync but wobbles the screen. Unfortunatly at 23.976 audio is shakey. Maybe you can give us more options to change the other picture parameters back porch.... maybe they work better at some refresh rates

ar-jar
2nd April 2009, 13:52
I did some more testing with my vwl 60 and it only works without "a screen wobble" if you are at 23.976 -24.000. At 47.952 every adjustment doesn't resync but wobbles the screen. Unfortunatly at 23.976 audio is shakey. Maybe you can give us more options to change the other picture parameters back porch.... maybe they work better at some refresh rates

Have you tested with Powerstrip (manually) if any of the other parameters work w/ 48Hz? Did you test adjusting both horizontal and vertical front porch (either or that is, not both at the same time)? Are you using an HDTV resolution (not VGA)?

Edit: Was the 47.952 you tried an interlaced resolution? 1080i? I did some more testing with my displays. They accept 1080i/50 although they are all natively 720 but none of them seem to be tolerant to any changes at all in PowerStrip at that resolution. So maybe interlaced resolutions are off limits for this type of tweaking. What was the resolution of the 24 Hz that you tested?

Mark_A_W
2nd April 2009, 22:04
You can go to C:\Program Files\PowerStrip (or similar) and delete the pstrip.ini file (or to be on the safe side, just rename it - deleting it *used to* work...) and restart PS with the right monitor and frequency. Not sure if you can use Reclock just to speed up or down. I wouldn't recommend having both sync algorithms going at it at once.


Umm...ahh....NO WAY am I deleting my pstrip.ini file.

Getting an interlaced resolution to work in Vista was extraordinarily difficult. And I think with CAT 9.2 the option to add 1080i 30hz as a HDTV res has disappeared from CCC. That is the basis of my 1080i resolution, with the timings tweaked to 47.952hz (the monitor/projector sees it as ~96hz).


I'm not sure how you are driving powerstrip, but you can add a target monitor in the command line:

PStrip.exe" /target:2 /t:1920,112,128,115,1080,46,7,30,126874,542

Which means it may be easy to add monitor selection to your player?



Is there any way your timing tweaking could be added to MPC HC for instance? Otherwise, writing a complete player from scratch is a MONUMENTAL task. (I'd like things like TS and MKV support, filter management, etc, etc, etc....years of work.)

ar-jar
2nd April 2009, 23:00
I'm not sure how you are driving powerstrip, but you can add a target monitor in the command line:

PStrip.exe" /target:2 /t:1920,112,128,115,1080,46,7,30,126874,542

Which means it may be easy to add monitor selection to your player?

Is there any way your timing tweaking could be added to MPC HC for instance? Otherwise, writing a complete player from scratch is a MONUMENTAL task. (I'd like things like TS and MKV support, filter management, etc, etc, etc....years of work.)

Sorry, I was under the impression that you had just installed PS and that it had "got stuck" in the wrong default resolution. It usually asks if your current res is your default resolution and then stores it.

I'm driving PS through its API from my player. Since I myself only use one display I haven't bothered with support for multiple displays but it shouldn't be more than a few lines of code.

I'm looking at adding the functionality as "an advanced option" to MPC but it's a bit tricky to get started.

Writing a *simple* player that plays pretty much anything you throw at it is really not that hard. I've used my player myself for more than a year for playing DVDs, AVCHD files from my camcorder and now Blue-ray m2ts files. Most of what you mention can be handled outside the player: splitting an MKV or m2ts file (Haali Media Splitter), filter management (DirectShow Filter Manager) etc. The beauty of DirectShow is this modularity.

ar-jar
3rd April 2009, 11:32
It seems as if some of you have now tried my prototype player and some probably have got it to work too (hopefully).

I would be very interested in knowing:

(1) What display (brand and model) you have used (including projectors of course).

(2) What resolution you have used. It would be great if you could paste the (nominal) PowerStrip timing parameters with your answer. (Go to Advanced Timing options and copy the timings to the clipboard with the copy tool right next to the Cancel button.)

(3) Whether you have used the horizontal or vertical porch for adjustment.

(4) What graphics board you are using.

I'm specifically keen on knowing what types of 1080 resolutions that work.

It would also be interesting to know what *didn't* work to see if there is a pattern. I have for instance not been able to get 1080i to work on any display that I've tried.

Thanks a lot!

Casshern
3rd April 2009, 15:07
Have you tested with Powerstrip (manually) if any of the other parameters work w/ 48Hz? Did you test adjusting both horizontal and vertical front porch (either or that is, not both at the same time)? Are you using an HDTV resolution (not VGA)?

Edit: Was the 47.952 you tried an interlaced resolution? 1080i? I did some more testing with my displays. They accept 1080i/50 although they are all natively 720 but none of them seem to be tolerant to any changes at all in PowerStrip at that resolution. So maybe interlaced resolutions are off limits for this type of tweaking. What was the resolution of the 24 Hz that you tested?

I always test at 1920x1080p with progressive material, mostly with a frame rate of 23.976 with a screen refresh of 47.952 - but i noticed something which might serve to improve your renderer. When i change the front porch values in powerstrip the screen wobbles only sometimes. I would say from 10 changes it wobbles 4 times. In the player though it wobbles almost always. This leads me to the following conclusion: It matters at which point relative to vertical/horizontal sync the adjustment is made. Maybe you can give us another paramater (maybe the scanline) when the parameter change takes place. Maybe that also helps other displays at sensitive refreshrates....


At a screen refresh of 23.976 it worked better - at first i thought it was perfect, but here also the screen wobbles although much much less often. This could mean that the timing of the change is important here too....

This is all with a SONY VW 60 in pc mode over dvi->hdmi with an ati radeon 2600 pro 512 mb

ar-jar
5th April 2009, 21:13
I let go of the requirement to synchronize the display to live sources and implemented an alternative sync mechanism that supports all graphics boards and displays (as long as the displays can be set to a refresh rate that is very close to a multiple of the video framerate).

So now there are two sync options in GothPlayer:

1) Synchronize display to video. This is the old approach that also synchronizes live video sources but doesn't work with all boards and displays.

2) Synchronize video to display. This is implemented with a simple adjustable reference clock source filter that fine-tunes the playback speed and which I control with the timing info from the renderer (like in approach 1). Initial experiments indicate that it keeps the sync at least as well as the first approach. If you just play DVD and video files, this is probably a more robust solution.

I haven't run a lot of testing so there are bound to be bugs. But do give it a try and see what happens! Downloads and sort of a manual as before from my web site (see the footer).

Cheers!

leeperry
5th April 2009, 21:39
implemented an alternative sync mechanism that supports all graphics boards and displays (as long as the displays can be set to a refresh rate that is very close to a multiple of the video framerate)

oh my, oh my...so I can play w/ you now on my GF9600 :D

what if I wanna do 23.976@24 w/ Reclock in 48.000Hz?

ar-jar
5th April 2009, 22:08
oh my, oh my...so I can play w/ you now on my GF9600 :D

what if I wanna do 23.976@24 w/ Reclock in 48.000Hz?

Well, if you can tune your display resolution to 47.95 and it's not a fake resolution then it should work. (One of my TVs turned out to fake it. PowerStrip was set to 47.95, the TV reported 50 back and was in fact 50 all the time. It stuttered real bad whereas an other LCD happily ran @ a true 47.95 and synced beautifully to a Blue-ray movie).

Theoretically I could wth this approach easily speed up the video to an even 25 fps if the display can't be set to 47.95 but I'm not sure what that would do to the audio. I haven't implemented that. So far I only take care of the fine-tuning. The frequencies must match fairly well.

Edit: Don't try this with Reclock. This new solution would play even worse with Reclock as it implements its own reference clock which also Reclock does.

Is your problem that you can't set the display to 47.95 (or thereabout)?

leeperry
5th April 2009, 22:14
no I can set my GF9600 to 47.952(both my CRT & my DLP pj support anything between 40 and 60)...but I really wanna watch my movies at their true 24.000fps genuine speed :o

and same goes for PAL speedup stuff...we need to lower from 25 to 24

ar-jar
5th April 2009, 22:38
no I can set my GF9600 to 47.952(both my CRT & my DLP pj support anything between 40 and 60)...but I really wanna watch my movies at their true 24.000fps genuine speed :o

and same goes for PAL speedup stuff...we need to lower from 25 to 24

Ok, so Blue-ray would probably work fine with GothPlayer and your set-up.

I have an idea about this automatic speed change that takes the video (and audio) as close to the closest even multiple of the display frequency as it can and then keeps it there by fine-tuning around that frequency. Some players allow changing of the speed of the media but it needs to be really accurate to work well. I'll give it a try but it'll not be ready by tomorrow I'm afraid.

leeperry
5th April 2009, 22:49
oh, no worries ;)

but the idea would be to either do 23.976@24 or 25@24 so some sort of audio resampling would be required, as the last thing you wanna do is dupe/drop video frames..

ideally I think the best solution would be to exactly sync the video frames to the refresh rate, and then resample the audio to match.

the libavcodec resampler sounds slightly better to me than libsamplerate, for what it's worth..

indeed I've got some 24.000 BD's, I'll give a go at your very promising player :thanks:

Casshern
6th April 2009, 01:50
Even though i am much more facinated by the sync display to video idea, i must applaud you for making progress in the sync video to display field too!

Sync display to video: Did you think about my idea to have the change through powerstrip be made at a particular scanline (which can be set in the options) ? I am rather confident this would make it work on my vwl 60

sync video to display: your version of reclock would be extremley nice to implement in MPC HC. I hope that you and beliyaal could work together here. One question though: What happens with the sound clock if you accelerate/slow the ref clock. Do you do some resampling ala reclock? Or dropping/repeating packets with spdif formats? Or could it be that with a freq close enough, spdif sound would work too?

I let go of the requirement to synchronize the display to live sources and implemented an alternative sync mechanism that supports all graphics boards and displays (as long as the displays can be set to a refresh rate that is very close to a multiple of the video framerate).

So now there are two sync options in GothPlayer:

1) Synchronize display to video. This is the old approach that also synchronizes live video sources but doesn't work with all boards and displays.

2) Synchronize video to display. This is implemented with a simple adjustable reference clock source filter that fine-tunes the playback speed and which I control with the timing info from the renderer (like in approach 1). Initial experiments indicate that it keeps the sync at least as well as the first approach. If you just play DVD and video files, this is probably a more robust solution.

I haven't run a lot of testing so there are bound to be bugs. But do give it a try and see what happens! Downloads and sort of a manual as before from my web site (see the footer).

Cheers!

ar-jar
6th April 2009, 07:35
Sync display to video: Did you think about my idea to have the change through powerstrip be made at a particular scanline (which can be set in the options) ? I am rather confident this would make it work on my vwl 60

sync video to display: your version of reclock would be extremley nice to implement in MPC HC. I hope that you and beliyaal could work together here. One question though: What happens with the sound clock if you accelerate/slow the ref clock. Do you do some resampling ala reclock? Or dropping/repeating packets with spdif formats? Or could it be that with a freq close enough, spdif sound would work too?

I haven't looked into the timing issue as I got this other idea to test. One needs to implement some sort of timer I guess and those may not be accurate eough to for instance hit a vertical blank reliably. Needs some experimentation. I'll put it on the todo list.

I have left the audio as is so far. With my development display I have been able to make the nominal frequencies match so close that only a tiny adjustment is needed and that the audio renderer seems to tolerate well. I have also tested to speed up a 23.976 fps m2ts file to 24 fps and synchronize there and that worked well. Slowing down a 25 fps DVD to 24 fps broke the audio but I haven't had the time to test different audio renderers etc.

I'm talking to the MPC folks. Looks like I need to upgrade my development tools first to get started.

leeperry
6th April 2009, 11:12
I have also tested to speed up a 23.976 fps m2ts file to 24 fps and synchronize there and that worked well.
what happened to the 1% diff? w/o duping/dropping frames :confused:

ar-jar
6th April 2009, 11:56
what happened to the 1% diff? w/o duping/dropping frames :confused:

I don't think it dropped anything. It sounded ok. I didn't watch the whole movie so I'm not sure. I'll run some more tests and let you know. The really interesting test will be to see what my AVR thinks of the digital signal it gets from the HTPC if the speed has changed.

This page: http://msdn.microsoft.com/en-us/library/dd390645(VS.85).aspx discusses "rate matching" that the audio renderer is supposed to do in cases like this. It is my understanding that the audio renderer should just take what it gets, at whatever rate, and make sound out of it. The pitch should change a tiny bit to toward the intended pitch in this case. When I slowed down 25 fps DVD to 24 fps i did get some glitches in the audio but it may have been because of the sudden rate change too.

I have just started to look at audio so I'm on a steep learning curve.

Mark_A_W
6th April 2009, 22:06
I'm lost too.

The first way the player worked I understood: Play with video timings, while keeping the audio untouched, to avoid jitter/dropped frames/etc. I am very interested in this as my CRT displays are quite tolerant of small video timing changes - it seems the least intrusive way of fixing the bane of HTPC's: Video glitches.


The second way now mentioned: Sounds like Reclock without the resampling? I don't understand how you could possibly go from 25 to 24fps without resampling or a noticable pitch change, and I don't understand how video glitches are avoided? Can someone explain the concept again please?


And I'm very glad you are talking to the MPC HC guys. I have a feeling that your first method would integrate well with Beliyaal's work - maybe allowing him a method to "force" things right.


Thanks, keep it up.

Mark

ar-jar
6th April 2009, 23:23
I'm lost too.

The first way the player worked I understood: Play with video timings, while keeping the audio untouched, to avoid jitter/dropped frames/etc. I am very interested in this as my CRT displays are quite tolerant of small video timing changes - it seems the least intrusive way of fixing the bane of HTPC's: Video glitches.

The second way now mentioned: Sounds like Reclock without the resampling? I don't understand how you could possibly go from 25 to 24fps without resampling or a noticable pitch change, and I don't understand how video glitches are avoided? Can someone explain the concept again please?
Mark

The first alternative is the "cleanest" one. It lets the graph run as it pleases (both audio and video) and just does what TVs have done for ages, synchronize the the vertical retrace (in your case a physical one) to the vsync of the video signal. It works with all my 720 displays at home but I haven't tried it with any 1080.

I read the docs at MSDN more carefully and did some experimenting and I realize that the audio renderer does *not* synchronize itself to the reference clock per default. This means that any accumulated adjustment in the video speed I do, will result in a small drift between audio and video. It thus seems like my video and my display were in pretty good sync to start with as I didn't get noticeable drift beween audio and video after two hours of video. I'm running another movie now in the background and it looks good at least after 30 minutes.

As I now understand the docs, for the audio renderer to synchronize itself to the source it needs to be a *live* source such as TV. That sounds right. Otherwise no TV graphs would work for very long. The next experiment is therefore to see if I can make my reference clock filter look like a live source to the audio renderer... Or perhaps download Reclock and give it a try again but that's not half the fun :-)

leeperry
7th April 2009, 00:19
that's not half the fun :-)
sorry if I repeat myself :o

the biggest issue right now w/ Reclock is that it sends a "perfect" clock but doesn't know the VSYNC fliptime position....so it can work right off the bat, and start dropping frames like crazy after 30/45 minutes in VMR9/EVR :(

this issue is explained here : http://software.intel.com/en-us/articles/video-frame-display-synchronization

as I understand it, what would be required is that the A/V synchronise so the reference clock starts right on the fliptime :devil:

and quite frankly, I've never seen any VMR9/EVR implementation that outputs a 1:1 picture(like HR does), the ATi/nvidia drivers seem to add EE...or maybe it's actually part of the renderers code, they seem to use some low quality sharpening.

plus these official software renderers don't care for jitter, so the interval between the video frames(±41.67 ms at 24fps) is not linear, and at some point they *will* drop frames to catch up :angry:

my foolproof solution(and several friends from HCFR agree) at this point is to use Reclock w/ HR, and make sure that HR catches the VSYNC fliptime properly by seeking a number of times....and when it does it's pure bliss! butter smooth and no dropped frames for like 3H in a row(HR has a built-in jitter correction by keeping video frames in the graphic card's RAM) :eek:

playing smooth movies on a PC is not quite a science, but more of an art...as Jong would say :D

ar-jar
7th April 2009, 06:32
my foolproof solution(and several friends from HCFR agree) at this point is to use Reclock w/ HR, and make sure that HR catches the VSYNC fliptime properly by seeking a number of times....and when it does it's pure bliss! butter smooth and no dropped frames for like 3H in a row(HR has a built-in jitter correction by keeping video frames in the graphic card's RAM) :eek:

playing smooth movies on a PC is not quite a science, but more of an art...as Jong would say :D

I haven't lost my hope in science, I just have to do *all* my homework :-). One thing that I build on is a reliable estimate of when the display vsync happens (as measured in reference time). This means that the "display to video" sync should be rather "scientific". Now, one can not be a 100% sure about anything but death and taxes as the saying goes but I have not seen a skipped or duplicated frame for at least a year, when I've used that option. And audio has been in sync. And algorithm-wise, it should be pretty close to what my old TV did (I'm not absolutely sure about the new one anymore...).

The second alternative also keeps the vsync right there in between two page "flips" (or wherever you choose but right between seems to be a good place to be). The only drawback is that sound doesn't seem to obey the ref clock so there is a little bit of rubber-band effect there. But as I said, not noticeable in my set-up when the display and the video are in reasonably good sync to start with. This is not ideal though so I'll keep on tweaking this a bit more.

Thank you all for your input! I'm learning fast here, exactly what I was looking for :-)

PS. I have read the Intel article earlier. Another solution that uses a similar algorithm as I do is SoftGenLock that was designed to synchronize two displays for stereo. See http://netjuggler.sourceforge.net/SoftGenLock.php and http://www-id.imag.fr/%7Eraffin/papers/ID/softgenlock-ipt03.pdf.

leeperry
7th April 2009, 16:03
well, I'm not a coder...merely a whiner :D

I'll try your player on a 24fps BD@48.000Hz on my GF9600/XP SP3 and I'll report back http://forum-images.hardware.fr/images/perso/sniperr.gif

ar-jar
7th April 2009, 17:10
well, I'm not a coder...merely a whiner :D

I'll try your player on a 24fps BD@48.000Hz on my GF9600/XP SP3 and I'll report back http://forum-images.hardware.fr/images/perso/sniperr.gif

Hmm, i suddenly realize that you still need Powerstrip to for the application to get the exact image geometry, even if using the new sync mechanism. I think I can get rid of that dependency later but also I think PS might actually work for getting that data also for your NVidia board as long as you don't try to change the data. Give it a try and tell me what happens.

Do turn on the on-screen display too to check so that you have a 24.000 fps movie and not 23.976 fps. If it's the latter, the display must be set to 47.95 Hz.

leeperry
7th April 2009, 17:16
the only things that work in pstrip are the "official" windows refresh rate, and the camera that you can can double-click to measure the actual refresh rate(that I use a lot when I create custom timings in the nvidia drivers, it uses the same code as Reclock)...hopefully that'll do :o

PS: Reclock also manages to get the GDI infos through pstrip, I guess you want to retrieve the same infos.

leeperry
9th April 2009, 10:42
maybe you could drop VMR9 and use this renderer(once it'll be mature) :
http://forum.doom9.org/showthread.php?t=146228

ar-jar
9th April 2009, 11:50
maybe you could drop VMR9 and use this renderer(once it'll be mature) :
http://forum.doom9.org/showthread.php?t=146228

I could probably use any renderer to which I have the source code but for now I'm very happy with the VMR9. The sync mechanism seems to keep it well inside its operational envelope where it works well. I have very exact timing, I have perfect sync as far as I can tell (which is good enough) and no tearing. And I could do any amount of own filtering and stuff as I have access to the graphics pipeline in my code (if I wanted to). What should I be missing? :-)

I have btw done some more experiments and I am now back to square one when it comes to the second sync alternative (adjusting the video fps). It seems to work as I intended from the start! When I don't stray too far away from the orginal fps. It can't be used to go from 25 to 24 for instance. 23.976 to 24 works and the small adjustments that I use to keep everything in sync. The audio renderer syncs up to my external reference clock and keeps the audio within +/-20 ms of the video. It looks that way when I play and i have also now checked (I finally found the right interface) that the audio renderer is actually in slave mode. That's why the experiments that I told about initially worked. My remaining question is whether the audio renderer actually drops samples or adds silence when it does its synchronization. I will need to do some more checks. I can't hear anything indicating any distortion though.

After that, if everything checks, I'll tidy up the code a bit, remove the dependency to PStrip and release a new version with some more OSD stats for everybody's enjoyment.

-Arto

leeperry
9th April 2009, 12:10
ok, sounds great! I was busy w/ my audio config lately, but I'll definitely try your player :)

well VMR9 has many drawbacks :
-graphic drivers messing w/ the PQ(adding sharpening/EE/rescaling when there's no need)
-bad jitter(the interval between the frames is not linear, it slightly comes and goes)
-drops frames when it's late

I've never seen any convincing VMR9/EVR implementation TBH, HR never drops frames and has a built-in jitter correction....madshi's new renderer will prolly do all this, plus top notch colorimetry management and proper VSYNC control(HR fails blatantly on that last point).

ar-jar
9th April 2009, 12:39
well VMR9 has many drawbacks :
-graphic drivers messing w/ the PQ(adding sharpening/EE/rescaling when there's no need)
-bad jitter(the interval between the frames is not linear, it slightly comes and goes)
-drops frames when it's late


The quality I get is, as far as I can tell, the quality that DirectX allows for textures. I don't do any filtering or other stuff, I just throw out the pixels as they come from the decoder. I haven't noticed any problems with that but then again, my projector is 6 years old with rather washed out colors to start with so I may not notice until the upcoming upgrade.

Also I have no dropped frames.

As long as the graphics board is fed new frames at regular intervals (which is exactly the purpose of my sync mechanisms) it flips them out into the frontbuffer (i.e. on the screen) at every vsync which has a very accurate timing (this flip is not determined by the renderer directly).

leeperry
9th April 2009, 12:49
well I just :
-copied your package on my ramdisk
-registered your filters
-opened pstrip
-tried to open a 24fps MKV tearing test pattern(w/ sound) in 48.000Hz, the refresh rate changed to 66Hz and it said "failed to render file"(I've got HMS running)

so I tried the same file w/o sound in a .mp4 container(still in 48Hz), it changed the refresh rate to 66Hz again and the OSD said 23.997 fps(if I press ESC it goes back to 48Hz, and it slightly oscilates between 23.9xx and 24.0xx but it's still pretty jerky :o)

I run a GF9600 w/ the latest drivers/DX9 update/pstrip version on XP SP3

a friend of mine is gonna try on his HD3870 on XP SP3

ar-jar
9th April 2009, 13:09
-tried to open a 24fps MKV tearing test pattern(w/ sound) in 48.000Hz, the refresh rate changed to 66Hz and it said "failed to render file"(I've got HMS running)

Would it be possible to get access to the mkv file? A link? That's the one format I've never tried.

What does the SyncVMR9 preferences look like (the dialog that you get when doubleclicking the green sync pulse icon in your tray when running the graph). Try to uncheck both sync modes to start with. At least make sure that the "Synchronize display" is unchecked!

Did the actual display refresh rate change to 66 Hz or did the app just report that on the OSD?

Casshern
9th April 2009, 13:23
The quality of VMR9 is not very good. It's chroma upsampling is simple point sampling. Basically i find it unwatchable on a 4m wide screen without proper chroma upsampling. At the moments the options for good upsampling are:

1) Use Overlay with/without VMR7 (good chroma upsamling, but no subtitles with m2ts streams in MPC HC)
2) VMR9 with the chroma upsampling shader in MPC-HC. It's good but not perfect
3) Use VMR9 but scale and do the RGB conversion in ffdshow- very good quality but it uses a lot of cpu resources and does not work with DXVA
4)use Haalis or Madshis renderer - again no DXVA, but also very good quality (madshis looks very nice as it does lanczos resizing instead of bicubic). And at least haali tears like hell on ATI cards

The good thing about your renderer is that is works with DXVA - if you incorporate the chroma upsampling shader, like the open source MPC-HC quality is good.

Now to the sync issues. Reclock is not a video renderer. You got much more info, which should enable you to do a perfect reclock. Reclock can only adjust the reference clock to when the vsyncs are occuring and can hold this relationship stable. It does not "see" judder. Therefore the judderless position has to be guessed, and differs with different filterchains. So you basically have to adjust the vsync position slider in reclock until you see that it doesn't judder. As a renderer you have that info and could just calc a judderfree position - at least Beliyaal MPC HC even displays this info in the jitter graph. A perfect solution would consist of two components:
1) a audio renderer - much like reclock adjusting - the reference clock, resampling audio, dropping/repeating spdif packets
2) a video renderer who communicates with the audio renderer and tells them exactly how the reference clock has to be adjusted in regard to vsyncs.

Another way would be to concentrate on display refreshrate that are an approx exact multiple of the playback frame rate. And somehow convice the audio card to pass audio to the receiver with the slight offset in speed and see how the avr handles it. But one might have to use kernelstreaming/exclusive modes to do that, if its possible at all. I think that a dropped ac3/dts packet every 30min in not really a prob (repeats are much more audible).

regards,

Casshen



The quality I get is, as far as I can tell, the quality that DirectX allows for textures. I don't do any filtering or other stuff, I just throw out the pixels as they come from the decoder. I haven't noticed any problems with that but then again, my projector is 6 years old with rather washed out colors to start with so I may not notice until the upcoming upgrade.

Also I have no dropped frames.

As long as the graphics board is fed new frames at regular intervals (which is exactly the purpose of my sync mechanisms) it flips them out into the frontbuffer (i.e. on the screen) at every vsync which has a very accurate timing (this flip is not determined by the renderer directly).

leeperry
9th April 2009, 13:32
Would it be possible to get access to the mkv file? A link? That's the one format I've never tried.

What does the SyncVMR9 preferences look like (the dialog that you get when doubleclicking the green sync pulse icon in your tray when running the graph). Try to uncheck both sync modes to start with. At least make sure that the "Synchronize display" is unchecked!

Did the actual display refresh rate change to 66 Hz or did the app just report that on the OSD?
sure, it's a 24fps 720p tearing test pattern made by Seb.26 :
http://rapidshare.com/files/219261323/Scrolling_24fps_720p.mp4.html

mux it w/ some mp3 in MKVtoolnix and there you go :)

yes, my CRT says 66 Hz in its OSD

well if I enable my custom nvidia w/o pstrip, I get 48Hz...if I do it w/ pstrip I get 66Hz, gonna turn off its custom timings :rolleyes:

"Synchronize display" was unchecked, and "synchronize clock" refuses to check.

whatever I do in pstrip, it keeps sending bogus refresh rates....it's pretty normal considering it's really NOT nvidia GF9 friendly.

I also tried to uncheck "start in fullscreen" in your player, and pstrip got completely nuts....changing the refresh rate every 5" :eek:

leeperry
9th April 2009, 13:38
The quality of VMR9 is not very good. It's chroma upsampling is simple point sampling.
[...]
haali tears like hell on ATI cards
VMR9 in RGB32HQ/native res is OK, identical to HR at least...it's only the ugly post-processing that's done afterwards that ruins the whole thing.

apparently the YV12 conversion in VMR9/EVR is done by the graphic card drivers, from mark0077 tests it looks great on nvidia(progressively upsampled chroma) and very bad on ATi as shown here : http://forum.doom9.org/showpost.php?p=1137196&postcount=1868

I've had several ATi cards in the past, none of them gave any tearing w/ HR....it's usually due to a motherboard BIOS problem/misconfiguration from what I've seen.

I agree that Reclock doesn't know jack about the video renderer's situation, what is required is a full A/V sync to fight the evil VSYNC effectively :)

ar-jar
9th April 2009, 14:00
sure, it's a 24fps 720p tearing test pattern made by Seb.26 :
http://rapidshare.com/files/219261323/Scrolling_24fps_720p.mp4.html

mux it w/ some mp3 in MKVtoolnix and there you go :)

yes, my CRT says 66 Hz in its OSD

well if I enable my custom nvidia w/o pstrip, I get 48Hz...if I do it w/ pstrip I get 66Hz, gonna turn off its custom timings :rolleyes:

"Synchronize display" was unchecked, and "synchronize clock" refuses to check.

Ok, let me get rid of the PStrip dependency during the weekend and I'll give you a new executable. It may be that just reading out data from PS through its API messes with the gfx card.

The mp4 file plays ok here. There's a bit of aliasing going on, i.e. the bar is not properly low-pass filtered for its speed across the screen so it flickers. But it looks as bad or worse in ZoomPlayer. I get sync @48Hz and no tearing.

ar-jar
9th April 2009, 14:58
VMR9 in RGB32HQ/native res is OK, identical to HR at least...it's only the ugly post-processing that's done afterwards that ruins the whole thing.


Just to agree on a definition of "VMR9" here: I provide my own "allocator-presenter" to the VMR9-derived renderer which means that my code is in control of a large part of the display process. I'm not sure exactly what happens before i get the frame, i.e. in the mixer and compositor parts of the renderer. There is nothing in the docs about any filtering except for deinterlacing. I should therefore get pretty clean frames into the presenter that I've written myself. Now it may not be optimal but anything that happens there is at least not VMR9's fault but mine :-)

Casshern
9th April 2009, 15:10
leeperry didn't quite get my post. He is talking about FFDSHOW doing the chroma upscaling RGBHQ - yeah that's gives good quality IF and only IF you do not want to use DXVA and have enough CPU horsepower to do software decoding.

While leeperry is happy with his fast machine, others are not that lucky. A better solution would be to have an option to activate the chroma upsampling shaders from MPC HC. This has the advantage of:
1) You do not have to worry about decompositing anything. Just do it like now and add the shader code from MPC HC
2) DXVA for everybody if needed

regards,

Cassherm

Just to agree on a definition of "VMR9" here: I provide my own "allocator-presenter" to the VMR9-derived renderer which means that my code is in control of a large part of the display process. I'm not sure exactly what happens before i get the frame, i.e. in the mixer and compositor parts of the renderer. There is nothing in the docs about any filtering except for deinterlacing. I should therefore get pretty clean frames into the presenter that I've written myself. Now it may not be optimal but anything that happens there is at least not VMR9's fault but mine :-)

leeperry
9th April 2009, 16:27
Just to agree on a definition of "VMR9" here: I provide my own "allocator-presenter" to the VMR9-derived renderer which means that my code is in control of a large part of the display process. I'm not sure exactly what happens before i get the frame, i.e. in the mixer and compositor parts of the renderer. There is nothing in the docs about any filtering except for deinterlacing. I should therefore get pretty clean frames into the presenter that I've written myself. Now it may not be optimal but anything that happens there is at least not VMR9's fault but mine :-)
well, cool! looking forward to trying it....but this EE/sharpening is prolly done by the graphic card drivers :o

YV12 chroma conversion is perfectly fine w/ an nvidia card, prolly Casshern has an ATi...that indeed does bad upscaling(I was complaining about it nearly 1 year ago)

mark0077 chroma upsampling tests give better results w/ the nvidia drivers doing the job than RGB32HQ: http://forum.doom9.org/showpost.php?p=1230037&postcount=25

Casshern
9th April 2009, 19:59
Leeperry: A couple of years back we compared video boards, and for htpc playback ati was much better then the nvidea boards. But lately, i am not so sure anymore - but also haven't had time to catch up on the status quo. What's your take on the situation? Is it time to change? I am interested in:
1) Video level expansion (HD/SD)
2) resizing (that's where nvidia sucked most, a couple of years back)
3) exact frequencies: 23.976 (or even better 24/1.001), 47,952, 59.940, 50.000
4) chroma upsampling (HD/SD). YUY2 NV12 etc.
5) Hardware H.264 and VC-1 decoding
6) Judderfree playback with reclock

How are things today?

leeperry
9th April 2009, 21:47
I only output native res in RGB32HQ, so I can't really comment on all the drivers stuff....the further they stay away from my video, the better I feel :D

exact freqs is no problem, 48.000/50.000/59.940 etc etc

well CoreAVC works like a champ on h264 BD, I can resize to 720p in spline, throw in LSF/GrainF3, double frame rate....cool stuff I tell you that little CUDA thing :)

jitter in HR is better on the nvidia, around 4ms/hour at 23.976fps@48.000Hz....it was more than double on my ATi's(2600XT/3850), I suspect pstrip isn't too accurate considering it's not officially backed up by ATi :o

and the ATi drivers are so darn annoying...MOM.exe/CCC.exe/the 2 services, sluggish .net code, mandatory pstrip that's not too accurate and makes Reclock goof up sometimes when you reboot..

all the things that annoyed the hell outta me on the ATi's are history, like HR and its ghost lines, I've also made a shortcut that switches between my displays(CRT/pj) w/o any keyboard action/resident app....it's like waking up from a very bad dream :D

ar-jar
9th April 2009, 23:07
well, cool! looking forward to trying it....but this EE/sharpening is prolly done by the graphic card drivers :o


You may not have stumbled upon it but there is a test image generator in GothPlayer that can be useful (File -> Play Test Image). Right now there are three types of test images: a moving edge to test judder and tearing, a grey scale ramp to calibrate black and white, and a raster for calibrating overscanning. All these images would hint about sharpening etc going on in the renderer / driver - I haven't seen any so far.

Are there any specific types of test images that you would find useful to check the quality of the renderer (or any other renderer - I could plug in any other renderer into the player of course). It would be fairly easy to create. (Although I'm not too familiar with YUV formats as of now. I've created all test images in RGB32 so far.)

leeperry
10th April 2009, 00:23
actually, there's a scene in the movie "A Knight's Tale" with a woman that has a see-through hat w/ very tiny holes...any sharpening looks ugly on it, I'll see if I can find that picture again.

I used it to find the neutral sharpness setting of my DLP pj.

honestly, I ran some benchmarks w/ all the VMR/EVR flavors on the ZP forum and some VMR9 forms seemed 1:1(windowless I think?) but it wasn't as smooth as HR so I quickly gave up...and the EVR/VMR9 processing is done after the RGB32 mixer(it doesn't show on screenshots) so it's a tough call..I'll get back to you on these 2 matters.

ar-jar
13th April 2009, 00:14
There is a new version of the player available at http://www.ostrogothia.com/video/?page_id=405. I haven't had the time to fix the manual pages yet.

This version should work without Powerstrip so see to it that PS is turned off (especially if you have a gfx board that is not supported by PS). Start the player and play a file or a DVD. See to it that the display refresh rate is a fairly accurate multiple of the video fps. Go to the renderer preferences (the green "sync pulse" in the tray). Check "Synchronize clock". Slide "Present margin" to your display cycle time / 2 (e.g. 10 ms for a 50 Hz display). Enter about 1.5 ms into the "+/-" field and 0.1% into the "Video cycle time delta" field. Check "OSD". Click "Done".

Now the player should start to synchronize i.e. the "Video render time diff" should move towards 0 (= the value you indicated with the slider). Max and min are shown in the brackets and can be reset with CTRL+R. Audio sync is shown too.

Switching between the sync modes is not entirely reliable as of yet so you may need to restart the player or even reset your display resolution after that. So use this version just to test the clock-based sync w/o Powerstrip.

As always, I appreciate any feedback! Cheers!

leeperry
13th April 2009, 00:51
"to your display cycle time / 2 (e.g. 10 ms for a 50 Hz display)."...you lost me here :)

anyway it looks smooth! but whenever I enable FullScreen, my 24fps tearing test .mp4 goes nuts, blinking and all...actually I wanted to go into non-exclusive FS :o

http://www.image-load.eu/out.php/t157517_goth.png (http://www.image-load.eu/out.php/i157517_goth.png)

now if you could support MKV and fix the FS, I'd be happy to try it on some 2H 24fps@48.000Hz movie :thanks:

ar-jar
13th April 2009, 08:09
"to your display cycle time / 2 (e.g. 10 ms for a 50 Hz display)."...you lost me here :)

anyway it looks smooth! but whenever I enable FullScreen, my 24fps tearing test .mp4 goes nuts, blinking and all...actually I wanted to go into non-exclusive FS :o

http://www.image-load.eu/out.php/t157517_goth.png (http://www.image-load.eu/out.php/i157517_goth.png)

now if you could support MKV and fix the FS, I'd be happy to try it on some 2H 24fps@48.000Hz movie :thanks:

If you have a true 24 Hz resolution, then the slider could be anywhere between 10 and 20 ms (the full cycle is 1/24 seconds ~41 ms). If you have a 48 Hz resolution, then try about 10 ms. As long as it is above say 8 ms you should be fine with any resolution really.

If you are referring to the clip "Scrolling_24fps_720p.mp4" then it looks awful on my computer too. It flickers seriously (which is not all that uncommon in 24 fps movies created by less than competent cinematographers). But it looks as awful w/ any player / renderer combination I try (including ZP and MPC/Haali renderer when I discount for the added judder with those players :-)). Does the clip that you're trying out look good on any other player? Could you check exactly what filters that other player uses in that case?

If you have some different clip, could you pls send me a link so that I could try? Thanks.

What does playback of a DVD look like? AVI-files? The built in test generator @ 24 fps? m2ts files @ 23.976 fps? All these look good over here.

Non-exclusive will not do much of a difference I'm afraid except that the timing will be less accurate and the risk for tearing will be larger. i could give you that option though. Why exactly would you want non-exclusive?

I'll be going on a training for 2 weeks from tomorrow so there won't be ay progress on the player for a while. I appreciate any feedback in the mean time though. Thanks! -Arto

ar-jar
13th April 2009, 09:38
There is a new version of the player on my site. Now you can choose between windowed or exclusive mode fullscreen. It doesn't do much of a difference actually. The gfx boards seem to be better at handling windowed mode than way back when I started. No tearing in any of the modes. Timing is perhaps a bit better in exclusive mode. The benefit of the windowed mode is that you can do something else on your second screen while keeping the movie running in fullscreen (on the primary screen only still though). leeperry's 24 fps bar test clip looks as awful as ever :-( but anything else looks good :-) Cheers! -Arto

leeperry
13th April 2009, 11:38
that looks better, indeed :)

non excl. FS works fine, but the picture is too clear...is it outputting 16-235? I had to force 0-255 in the nvidia drivers, but apparently they're buggy and refuse to remember this setting when you reboot :rolleyes:

excl. FS switches to 60Hz, w/ green flashes and my tearing test video is looping on the right quarter of the screen...moving back to windowed still exhibits this problem, I have to close the player.

the moving bar is indeed very smooth(I had to disable ffdshow to make it work)...I'll try w/ real 24fps movies now :)

ar-jar
13th April 2009, 11:47
anyway it looks smooth! but whenever I enable FullScreen, my 24fps tearing test .mp4 goes nuts, blinking and all...actually I wanted to go into non-exclusive FS :o


Again if you refer to that 24 fps scrolling bar file that you sent me a link to, having run some more tests I doubt that it will look good on any equipment. If it indeed does, I'd be very interested in seeing the specs - it may be that there are more frames there than the decoders I have installed can decode. I use the CyberLink H.264/AVC Decoder (PDVD8). Try single-stepping it (ALT+SPACE in my player). The bar has sharp edges; it is not low-pass filtered (smoothed) and it moves quite a lot between frames. This produces aliasing which is the same phenomenon as the classic cart-wheel effect in old westerns. (A good cinematographer always sees to it that fast moving objects are out of focus (i.e. low-pass filtered) so as to avoid aliasing.)

ar-jar
13th April 2009, 11:54
that looks better, indeed :)

non excl. FS works fine, but the picture is too clear...is it outputting 16-235? I had to force 0-255 in the nvidia drivers, but apparently they're buggy and refuse to remember this setting when you reboot :rolleyes:

excl. FS switches to 60Hz, w/ green flashes and my tearing test video is looping on the right quarter of the screen...moving back to windowed still exhibits this problem, I have to close the player.


It should be outputting 16 to 235. There is a greyscale ramp test image in the test generator that you can use to calibrate a bit.

How do any other exclusive mode players / games behave in fs? Have you turned off Powerstrip? Any setting in the driver control panel that forces a certain fs frequency. There is such a flag in Direct3D I believe but I've let it alone. I've never seen the player change refresh rate. Everything in the control panel should be "let the application decide" with my player.

leeperry
13th April 2009, 12:07
well could you give an option to output 0-255 please? coz I don't have any TV levels display myself.

good point! exclusive VMR9 in MPC-HC also forces 60Hz, I'll look into it...that wasn't the case on the ATi's :o

from what I read on your site, I could play 23.976fps@48.000Hz w/o dupping/dropping?

if you could add MKV support, that'd be pretty awesome :D

ar-jar
13th April 2009, 12:27
well could you give an option to output 0-255 please? coz I don't have any TV levels display myself.

good point! exclusive VMR9 in MPC-HC also forces 60Hz, I'll look into it...that wasn't the case on the ATi's :o

from what I read on your site, I could play 23.976fps@48.000Hz w/o dupping/dropping?

if you could add MKV support, that'd be pretty awesome :D

I'll fix the 0-255 but that'll take 2 weeks. In the mean time, you could always try to tweak brightness and contrast according the the instructions on my site (no guarantees though).

My site is not entirely up to date wrt the player right now but there is an undocumented feature. Go to the player Tools -> Preferences and enter 0.1% in the "Playback rate adjust" field. That accelerates the stream from 23.976 to 24.000.

Not sure what "mkv support" means. Afaik its a matter of what filters (splitter, decoder) you have registered. I'll try to get my hands on a mkv file and see if there are any probs. Any good links to mkv files? Thanks! -A

leeperry
13th April 2009, 12:34
how can it accelerate the stream w/o resampling? it's dropping frames huh? :D

I can force 0-255 in the nvidia drivers for now, no worries.

well, I've got HMS installed(http://haali.cs.msu.ru/mkv/ ) yet it throws a "failed to open file" error msg when I try to open a MKV file :o

you can use MKVtoolnix and mux my 720p tearing test w/ an mp3 and it will output a MKV file, or you can remux any Apple Trailer as well : http://www.davestrailerpage.co.uk/

ar-jar
13th April 2009, 12:45
how can it accelerate the stream w/o resampling? it's dropping frames huh? :D

I can force 0-255 in the nvidia drivers for now, no worries.

well, I've got HMS installed(http://haali.cs.msu.ru/mkv/ ) yet it throws a "failed to open file" error msg when I try to open a MKV file :o

you can use MKVtoolnix and mux my 720p tearing test w/ an mp3 and it will output a MKV file, or you can remux any Apple Trailer as well : http://www.davestrailerpage.co.uk/

It just increases the clock speed a tiny bit. The frames appear to the renderer with 0.1% shorter intervals. The audio renderer synchronizes (i.e. hikes the pitch a tiny bit I believe) as long as the shift is below some 1%. You can see the audio sync performance on the OSD too. It says how much audio is out of sync from video. It should stay within +/- 100 ms or less. No resampling required afaik. And no dropped frames. (As long as the video time diff on the OSD stays within +/- a few ms there are no dropped / duplicated frames.) Your display needs to run @24 or 48 Hz sharp of course for the video - display sync to work.

I'll look into the mkv file issue and get back to you.

leeperry
13th April 2009, 12:51
OK, but in WDM only? can we choose the audio renderer in your player? because I've got bitperfect MME drivers and very much want to avoid WDM and KMixer if any possible :o

ar-jar
13th April 2009, 13:20
well, I've got HMS installed(http://haali.cs.msu.ru/mkv/ ) yet it throws a "failed to open file" error msg when I try to open a MKV file :o

I converted the mp4 into an mkv-container. No problems playing it. If I disable h.264 in ffdshow, it plays with the Haali MS + Cyberlink h.264/AVC decoder. If I enable h.264 in ffdshow, it plays with Haali MS + ffdshow. I uploaded a new version of the player that recognizes mkv-files as valid media files so that you see them in you file open dialog (in the previous version you just have to select "all files" to see them but you figured that out already).

Do your mkv files play with some other player and what filters do they use? (I recommend graphstudio.exe to show the current filter graph in my player or in MPC.) -A

ar-jar
13th April 2009, 13:28
OK, but in WDM only? can we choose the audio renderer in your player? because I've got bitperfect MME drivers and very much want to avoid WDM and KMixer if any possible :o

The sync only works (afaik) with the DirectSound audio renderer (which I think is the default; called "Default DirectSound Device" in the filter graph) but I think the renderer is just a wrapper around whatever device you have chosen in your control panel -> sound and audio device properties. I'm not that familiar with audio though so I'm out on a limb here. I'll look into that later. -A

leeperry
13th April 2009, 14:15
Do your mkv files play with some other player and what filters do they use? (I recommend graphstudio.exe to show the current filter graph in my player or in MPC.) -A
MKV plays fine in all my other players(MPC/MPC HC/KMPlayer), that's my mp4 video-only file :

http://thumbnails19.imagebam.com/3258/8c8fbe32570933.gif (http://www.imagebam.com/image/8c8fbe32570933)

now that's the same video file muxed w/ an mp3 into MKV :

http://thumbnails16.imagebam.com/3258/11f2ab32570935.gif (http://www.imagebam.com/image/11f2ab32570935)

it won't open in your player, I instantly get an error msg "can't open file".

ar-jar
13th April 2009, 14:20
OK, but in WDM only? can we choose the audio renderer in your player? because I've got bitperfect MME drivers and very much want to avoid WDM and KMixer if any possible :o

Here's a bit more on the audio renderer issue:(http://msdn.microsoft.com/en-us/library/dd375473(VS.85).aspx. As I understand it, the DirectSound renderer is the default and it will wrap itself around whatever device you choose in your control panel. So if you have a favourite device (with its associated driver), then select it in the control panel and you will be fine.

I try to avoid selecting filters inside the player. I had a lot of that type of code before and it gets really messy as you have to check so that all filters are there and their types are really compatible etc. Intelligent connect and merits handle that beautifully if you set your filter merits right once and for all. Use for instance DirectShow filter manager to set the merits. (You have to restart I think for the new merits to take effect.) -A

leeperry
13th April 2009, 14:30
well yeah, DS uses WDM drivers...I prefer to use Waveout that uses MME drivers, because they are bitperfect on my soundcard...but prolly that 1% margin you're mentioning is done through KMixer anyhow :confused:

I've tried to set HMS to +255 merit, mux my .mp4 file to MKV w/o audio...and I still get the same error msg :o

ar-jar
13th April 2009, 17:26
well yeah, DS uses WDM drivers...I prefer to use Waveout that uses MME drivers, because they are bitperfect on my soundcard...but prolly that 1% margin you're mentioning is done through KMixer anyhow :confused:


I might have been wrong about the DirectSound requirement. It looks like also the WaveOut renderer exposes the interfaces required to sync to video rate. This means that you should be able to change the relative merits of the two audio renderers and get WaveOut to kick in and work just as well. I haven't verified this yet though (and probably won't have time to do for about 2 weeks). -A

leeperry
13th April 2009, 19:34
ok my bad, I've reinstalled HMS and it works now :)

I've tried a few test pattern video files, scaling is 1:1 and it looks hell smooth :eek:

gonna try watching movies w/ it :thanks:

leeperry
13th April 2009, 19:37
any chance you could make it go FS by a left click on the window, and left click to go windowed again?
but I'll program my mouse drivers to put ESC on one of its buttons in the mean time :)

and you can associate it w/ video files, but then you have to click on "play file", if it could be automatic...that'd pretty cool too.

23.976@48 looks very smooth, but I'm still worried about where that 1% goes :o

PS: if I enable CoreAVC CUDA for h264, ffdshow video is not loaded...even though I check "raw : all supported" ?! I have to disable CoreAVC CUDA if I want ffdshow video to be used.

leeperry
13th April 2009, 19:56
2 last things, if you could :
-set a hotkey for the OSD
-make the mouse pointer disappear after a few seconds of inactivity in FS

:thanks:

ar-jar
13th April 2009, 19:57
any chance you could make it go FS by a left click on the window, and left click to go windowed again?
but I'll program my mouse drivers to put ESC on one of its buttons in the mean time :)

and right now you have to click on "open file", if it could be associated so a right click/"open with" in explorer works...that'd be pretty cool too!

23.976@48 looks very smooth, but I'm still worried about where that 1% goes :o

Great!!! I can tweak the menus and commands .... but later. The right-click on a file can be done I think. If you right-click on a media file and then select GothPlayer as application, it should end up on your short-list. If I don't remember it all wrong. I have associated all video file types with GothPlayer so that I can just double-click on them but you may not want to do that just yet.

The 1% goes to the bit-stream ghoul :)

Seriously, watch the OSD to see if the numbers within the bracket stay within limits. About +/- 3 ms for video and +/- 20 ms for audio. Reset the numbers once you are in sync with CTRL+R.

I'm off to California for 2 weeks :) Good luck in the mean time. I'll be checking back here every now and then but I won't bring my code with me. Cheers! -Arto

leeperry
13th April 2009, 20:03
yes, I've edited my previous post....you can associate, but still need to click on "play file"

it feels weird to watch movies w/o Reclock, I can tell you that :D

plus if you could allow WaveOut, I would be able to watch 23.976@48Hz w/o ANY resampling :eek:

so 23.976@48 keeps slowly oscillating between 23.997 and 24.006 :

http://www.image-load.eu/out.php/i157633_plop.png

now, the question : will it drop either frames after 1 or 2H :confused:

and I kinda liked getting 24fps pitched audio :o

bon voyage! http://forum-images.hardware.fr/images/perso/pato%20el%20canardo.gif

leeperry
13th April 2009, 20:22
10 minutes of 23.976@48 and I've had a pretty loud audio glitch...it gave -4.5 for video and 15 for audio.

right now, your player should be able to handle 24fps@48Hz w/o a glitch, but if the frame rate is not an exact multiple of the refresh rate...I don't think DS is very forgiving :(

ar-jar
13th April 2009, 21:42
10 minutes of 23.976@48 and I've had a pretty loud audio glitch...it gave -4.5 for video and 15 for audio.

right now, your player should be able to handle 24fps@48Hz w/o a glitch, but if the frame rate is not an exact multiple of the refresh rate...I don't think DS is very forgiving :(

-4.5 for video is a bit much I think. Your screenshots show video numbers way out of line. Did you reset the stats after you got close to 0? I almost never stray away more than +/- 3 ms. What is your CPU load?

Did you speed up the movie w/ 0.1% everytime you started in the player prefs? (The value won't stick between starts of the player; it will be reset to 0 each time.)

In the last version of the player I actually tested another way of adjusting the rate which is not the same that I use for syncing. Maybe it was the wrong approach and I should go back to do it through the reference clock as I did before. I'll run some more tests in due time. Ideally one shouldn't have to adjust the rate at all, i.e. the nominal display refresh should match that of the video as you hint above. Can't you have your display refresh @47.95?

CTRL+O toggles the OSD btw. I'll work on the mouse pointer - once we've got reliable sync, both audio and video :-) ttyl -A

leeperry
13th April 2009, 21:53
hehe, ok thanks for the advices. I'll look into them!

well, I really wanna watch ALL my movies at their genuine 24fps speed(both audio and video)...that's the thing :o

neoufo51
15th April 2009, 17:19
The output on this player is amazing! If only I could get this output on MPC-HC.

Jong
15th April 2009, 17:34
The output on this player is amazing! If only I could get this output on MPC-HC.If you don't mind, in what way amazing?

- smoother? If so how is MPC-HC worse for you? And are you using the "original" method of smoothing or the new "Reclock-lite" method?
- better picture quality? If so, again, how?

'cause I've just about got smooth playback nailed here with MPC-HC and Reclock doing clock sync and vsync and so haven't jumped in to trying this, although it does sound an interesting new take on things.

neoufo51
17th April 2009, 01:57
MPC-HC with Beliyaal's fixes looks incredible but is not without some glitches here and there. It's the closest to perfect playback I've seen on a full featured player. I've made it my default player for sure. However, the playback on this new player is just remarkably perfect. I can't explain it. It just has no discernible glitches whatsoever. I can't use it as my default player but if the dev for this project added his code to MPC-HC the same way Beliyaal is going to do, MPC will be unstoppable in terms of PQ.

ar-jar
17th April 2009, 06:25
if the dev for this project added his code to MPC-HC the same way Beliyaal is going to do, MPC will be unstoppable in terms of PQ.

Thanks for the feedback! My goals is definitely zero skips and zero overlaps, i.e. as judderfree as the original fps allows (24 fps film-based stuff is definitely not "judder-free" in it self). And it does seem to work. I'm now running some more tests with the audio to see so that it really stays in sync also with the "reclock lite" method. I'm also checking some COM objects that may or may not be released. I have also tested a new method for small speed shifts (< 1%) which may come handy and that also seems to work (but more tests are needed wrt audio there too).

When I feel pretty confident with the above, I'll check out a local copy of MPC and see if I can build it and see what it would take to integrate the renderer...

-Arto

leeperry
17th April 2009, 11:05
would that be possible at some point that you do that stuff w/ madVR instead of VMR9? it has a lot of colorimetry features that VMR9 lacks...and it shows :o

cheetah111
17th April 2009, 17:03
I'm now running some more tests with the audio to see so that it really stays in sync also with the "reclock lite" method.
Could someone point out the thread about "reclock lite" method?
Very good effort ar-jar! Keep going!

ar-jar
18th April 2009, 06:13
Could someone point out the thread about "reclock lite" method?
Very good effort ar-jar! Keep going!

Thanks! The term "reclock lite" was coined by somebody on this thread to denote the synchronization method in my SyncVMR9 renderer that by adjusting the reference clock keeps the video in sync with the display. The "lite" is motivated perhaps by the fact that I don't do any resampling of the sound but rely on the audio renderer's ability to "match rate" with incoming sources if it believes they are live sources. This *seems* to work but I still need to run some more tests to fully convince myself that sound samples are not lost or duplicated in the rate matching process. -Arto

leeperry
18th April 2009, 19:23
-4.5 for video is a bit much I think. Your screenshots show video numbers way out of line. Did you reset the stats after you got close to 0? I almost never stray away more than +/- 3 ms. What is your CPU load?

Did you speed up the movie w/ 0.1% everytime you started in the player prefs? (The value won't stick between starts of the player; it will be reset to 0 each time.)

In the last version of the player I actually tested another way of adjusting the rate which is not the same that I use for syncing. Maybe it was the wrong approach and I should go back to do it through the reference clock as I did before. I'll run some more tests in due time. Ideally one shouldn't have to adjust the rate at all, i.e. the nominal display refresh should match that of the video as you hint above. Can't you have your display refresh @47.95?

CTRL+O toggles the OSD btw. I'll work on the mouse pointer - once we've got reliable sync, both audio and video :-) ttyl -A
OK, let's try again :D

the 0.1% seems to stick :)

CPU load is like 10%(I have an o/c Q6600 and use CoreAVC CUDA)

I let it play for like 20 minutes, and when I came back it was like this :

http://www.image-load.eu/out.php/t158276_goth.png (http://www.image-load.eu/out.php/i158276_goth.png)

any idea how I could improve things :confused:

also, we might need to check whether the audio is actually being accelerated? like 23.976@30fps, so it'd be clearly audible :)

the ability to choose the process priority would be a nice addition too, so we could set it to high.

PS: so I've tried w/ a 24fps file in 48Hz, it also slowly oscillated between 23.998/24.006...but depending on how many times I went windowed>FS it reached -3.7 at max or -16...bad case of VSYNCitis on XP :confused:

http://www.image-load.eu/out.php/t158326_24.png (http://www.image-load.eu/out.php/i158326_24.png)

I also tried to change the resync values to 5ms/1.0 or 16ms/0.5, but it seemed to only make things worse.

ar-jar
19th April 2009, 15:19
any idea how I could improve things :confused:


To eliminate one source of error at a time, try with zero permanent speed adjustment. For this the display refresh rate must match the video fps exactly. For me for instance 23.976 fps / 47.95 Hz works fine. Your 24 / 48 should work too.

Keep the default values for everything: Present margin = 10 ms, Video cycle time delta = 0.1 ms (you could try 0.2 ms too).

Now, let that run for few seconds until you clearly see that the Video render time diff converges towards 0 (+/- a few ms). Then reset the statistics with CTRL+R and let it run. Check so that the Video render time diff values within the brackets stay within a few ms of 0.

Does that work?

Everytime you toggle between fullscreen and windowed mode, the sync is upset for a short while as the streaming is interrupted while I allocate new backbuffers so it is no surprise that you get values all over the place when you toggle back and forth. (I can actually eliminate this behaviour for the non-exclusive mode fs but I have't had that as a priority).


also, we might need to check whether the audio is actually being accelerated? like 23.976@30fps, so it'd be clearly audible :)


It seems that the (permanent) speed adjustment function that I used does not force the audio renderer to synchronize. You probably get small glitches in audio from time to time if you use anything but zero permanent speed adjustment. I replaced that method with one that seems to work, i.e. there are no glitches in audio and thus a true shift in pitch. I need to test this more though before I'm entirely convinced and before I publish the new version. I'm hopeful though...


the ability to choose the process priority would be a nice addition too, so we could set it to high.


I played around with that way back and didn't notice much difference to be honest. The player works fine here without any process prio changes so I don't think that is the root cause of your problems.


PS: so I've tried w/ a 24fps file in 48Hz, it also slowly oscillated between 23.998/24.006...but depending on how many times I went windowed>FS it reached -3.7 at max or -16...bad case of VSYNCitis on XP :confused:


See above. Everytime you toggle, you lose sync for a short while. Thus your statistics. Let it run in one mode (preferably fs) for a short while, reset stats, and see if it stays in sync. The oscillating output fps is caused by a rounding error and is as expected. It measures the moving average of the output cycle time in relation to your computer's system clock.


I also tried to change the resync values to 5ms/1.0 or 16ms/0.5, but it seemed to only make things worse.

Yeah, you should keep the present margin around half the display refresh cycle, i.e. around 10 ms for a 20 ms (50 Hz) refresh cycle or 10.4 fms for 48 Hz but that should not be critical. Also don't go beyond 0.2 ms for the cycle time delta.

So let's see if it works according to the above and then see what to do about the speed adjustment. It does not always work reliably for me when I shift screen refresh rates back and forth. Sometimes I need to restart the player to get it to sychronize with the new refresh rate. You might experience similar problems.

Thanks for trying things out :thanks:

leeperry
21st April 2009, 18:03
ah good point, thanks for the info! I thought the 0.1% was related to 23.976@48.

it all appears to work fine w/ 24@48(audio stays a 0.0 and video reaches -2.5 at max but mostly oscillates around -1)...a lot better than when I set it to 0%(I left the margin to 1.5ms) :o

well ppl always have background processes, so it's good to force high priority for the media player IMHO...made a world of a difference w/ WavPack 5.1 lossless audio files in MPC for me.

but 24fps@48Hz is the easy part, the idea would be that the audio is 0.1% accelerated for 23.976@48 and 4% slown down for 25@48 :)

so I might very well watch a bunch of 24fps movies like this, what's supposed to happen if things go wrong? audio glitches like I had w/ 23.976@48? dropped video frames?

PS: sometimes I can see dropped video frames and one more adjustment increments..

that's a lot of adjustments for 2 mins of playback :

http://www.image-load.eu/out.php/i158732_goth.png

ar-jar
4th May 2009, 23:37
There is now a new version of GothPlayer here (http://www.ostrogothia.com/video/?page_id=405). For getting started and initial settings, see Getting started (http://www.ostrogothia.com/video/?page_id=6).

Some issues taken care of include more reliable toggle between fullscreen and windowed mode, a better speed shift function (still only for small speed shifts of less than 1% or so), and better tracing functions to really assure that the player is synchronized and that no frames are added or lost.

It also seems as if non-exclusive mode fullscreen works better now than when I started this project (with newer graphics boards / drivers). As long as everything is kept in sync, I don't see any tearing in any fullscreen mode. There is now an option in the renderer preferences to select the fullscreen mode.

For sort-of release notes, see this blog post. (http://www.ostrogothia.com/video/?p=807)

I have so far not worked with Cassherns idea for a more accurate timing of the display refresh rate adjustments. I don't own a display on which this seems to matter so that will probably have to wait until I get that 1080 projector.

I've tested it on a couple of configurations and many types of sources including live TV, 1080i AVCHD, 1080p24 Blue-ray, DVD, AVI-files, etc. and so far so good. No guarantees though...

Take it for a spin and say what you think!

leeperry
6th May 2009, 16:54
aahhh this player is so smooth :devil:

http://www.image-load.eu/out.php/t160769_rock.png (http://www.image-load.eu/out.php/i160769_rock.png)

adding support for Reclock(to get 23.976@24 audio, and 25@24) and maybe support for mVR/HR and we'd be all set for foolproof movie playback! just some slight GUI improvement(hide mouse after a few secs of inactivity, left click to go FS, a seek bar maybe?, and a way to force high priority)...and that's it :cool:

triple buffering seems to have worked wonders, it never seems to miss the darn VSYNC.

PS: still no audio glitch...maybe it's actually playing the audio 0.1% faster now w/ 23.976@48.Hz ?! and I'd say it sounds resampled(brighter) but it might be a bad case of KMixeritis :D

neoufo51
6th May 2009, 17:18
I get this error when I try to register the ax files on a brand new install of Windows 7. I don't expect Ar-Jar to know exactly what the issue is since most people don't have Win7 but I'm just putting it out there in case he knows. Yes, I've never installed this before on this OS and I am trying to install version 1.4 of syncplayer.

http://img17.imageshack.us/img17/5342/18159290.th.jpg (http://img17.imageshack.us/my.php?image=18159290.jpg)

ar-jar
6th May 2009, 20:45
I get this error when I try to register the ax files on a brand new install of Windows 7. I don't expect Ar-Jar to know exactly what the issue is since most people don't have Win7 but I'm just putting it out there in case he knows. Yes, I've never installed this before on this OS and I am trying to install version 1.4 of syncplayer.


Sorry, you are right. I've never done anything newer than XP. I got a bad case of Vista aversion from trying to get all drivers on my son's new Vista computer to play a couple of years ago. So I'm a bit hesitant toward W7 too.

The ax-files are just regular DLLs so you basically need to find out how to register DLLs in W7. Must be something out there on Google...

Does W7 come with a VMR9 renderer? That's an absolute dependency. -A

pirlouy
6th May 2009, 21:08
@neoufo51: you have to edit registergp.bat file in order to put path to .ax file; for example:
regsvr32 G:\Logiciels\gothplayer\syncvmr9.ax
etc.

And you have to run it in admin mode (right click > Run as administrator).

ar-jar
6th May 2009, 21:11
aahhh this player is so smooth :devil:

http://www.image-load.eu/out.php/t160769_rock.png (http://www.image-load.eu/out.php/i160769_rock.png)

adding support for Reclock(to get 23.976@24 audio, and 25@24) and maybe support for mVR/HR and we'd be all set for foolproof movie playback! just some slight GUI improvement(hide mouse after a few secs of inactivity, left click to go FS, a seek bar maybe?, and a way to force high priority)...and that's it :cool:

triple buffering seems to have worked wonders, it never seems to miss the darn VSYNC.

PS: still no audio glitch...maybe it's actually playing the audio 0.1% faster now w/ 23.976@48.Hz ?! and I'd say it sounds resampled(brighter) but it might be a bad case of KMixeritis :D

Hmm, it should not be so smooth, judging from the values shown in the OSD :-) The video render time diff should be around 0 and the values in the brackets shouldn't be more than +/- a few ms. It looks like you haven't reset the stats with CTRL+R after you've started so some values don't make any sense. But the current value of the video render time diff shouldn't be -9.5 ms, reset or not, after it has been playing for a while.

Are you sure you actually sped up the movie by 0.1% using the Player preferences? What happens when you play the moving bar test image @ exactly your display refresh rate?

I haven't heard any sound glitches either with small speed shifts. It seems to work fine over here.

-Arto

leeperry
6th May 2009, 21:16
yep sorry, I forgot to reset the stats.

BTW, you spoke several times about tricking windows into believing that you fed live streams...any chance going KS? http://en.wikipedia.org/wiki/Kernel_streaming

yes, I did set it at 0.1%....but honestly the audio sounds resampled in a pretty ugly way, going KS might make the audio a lot less distorted ?!

ar-jar
6th May 2009, 22:06
yep sorry, I forgot to reset the stats.

BTW, you spoke several times about tricking windows into believing that you fed live streams...any chance going KS? http://en.wikipedia.org/wiki/Kernel_streaming

yes, I did set it at 0.1%....but honestly the audio sounds resampled in a pretty ugly way, going KS might make the audio a lot less distorted ?!

Eeek, if you change the playback rate to something <> 0 while playing, you will get back the old ugly speed shift method. A bug. Sorry about that. I will post a new version shortly. In the mean time, adjust the speed before you start the stream!

I've been listening to the 2-channel version of the Eric Clapton Unplugged DVD for a while @ -1% speed shift and it sounds great to me. I may not have your golden ears or else you tweaked the preferences in the middle of a fiddle and got that ugly resampling. Exactly when you shift speed, you may get some sort of slight wah-wah while the audio renderer adapts to the new speed. I haven't even been bothered by that to be honest. I'll keep listening. It's a great concert! -A

Edit: I have now posted a new version. You don't need re-register any DLLs, just replace the player.

leeperry
6th May 2009, 22:42
ok, so I should set the "video cycle time delta" to 0.00%? this looks jerky :o

the built-in tearing test is smooth! even though I get -6 ms for video.

sound seems better indeed! maybe you could still get it through KS to bypass KMixer? or maybe it's KMixer that does the audio pitchshift?

are you sure the audio is 0.1% accelerated for 23.976@48Hz? ah well it's almost midnight here, can't really trust my ears :D

ar-jar
6th May 2009, 22:58
ok, so I should set the "video cycle time delta" to 0.00%?

the built-in tearing test is smooth! even though I get 6 ms for video.

sound seems better indeed! maybe you could still get it through KS to bypass KMixer? or maybe it's KMixer that does the audio pitchshift?

No, video cycle time delta should be around 0.1%. Adding this value should make your video run slightly faster than the display. Subtracting it should make the video go slightly slower. By adding and subtracting from the nominal video speed when needed, it is kept in sync with the display.

Not sure what makes the audio pitch shift. My guess is that the whole audio renderer simply accepts a variable sample rate. If that is the case, there should be absolutely no distortion when the sample frequency is changed with a modest degree (I tried 5% but that doesn't work. The limit seems to be somewhere between 1 and 2%.) But I'm speculating here...

Are you on Skype or MSN or anything like that? I could talk you down (or write rather) to a perfect sync. You really need to get down to around zero Video render time diff and keep it there (+/- a few ms). -A

neoufo51
7th May 2009, 03:20
@neoufo51: you have to edit registergp.bat file in order to put path to .ax file; for example:
regsvr32 G:\Logiciels\gothplayer\syncvmr9.ax
etc.

And you have to run it in admin mode (right click > Run as administrator).
Here's the issue: the other 2 files, testgen and syncclock, register just fine, and syncvmr9 is in the same folder as them as you can see from the screenshot. Syncvmr9 just fails to load somehow and I don't understand why. I tried running as admin and the same thing happens.

ar-jar
7th May 2009, 07:02
Here's the issue: the other 2 files, testgen and syncclock, register just fine, and syncvmr9 is in the same folder as them as you can see from the screenshot. Syncvmr9 just fails to load somehow and I don't understand why. I tried running as admin and the same thing happens.

There is perhaps some dependency that is not satisfied. Not sure if the program "Dependency Walker" works on Windows 7 but it's useful on XP. (Perhaps there is something similar for W7 if it doesn't work.)

It shows any missing DLLs that a certain DLL requires. (It actually shows problems also where there are none so one can not trust it fully.) If you can get it to run, do run it on the file syncvmr9.ax and check so that you have D3D9.DLL and D3DX9_40.DLL installed (it shows in the output). What else does it report? -A

ar-jar
9th May 2009, 22:56
I added two more functions to GothPlayer:

- Process priority can now be set in the player preferences (normal, high, real-time).
- The cursor is hidden in fullscreen mode (there are no menus available there anyway so it was a nuisance really).

-A

neoufo51
10th May 2009, 07:39
There is perhaps some dependency that is not satisfied. Not sure if the program "Dependency Walker" works on Windows 7 but it's useful on XP. (Perhaps there is something similar for W7 if it doesn't work.)

It shows any missing DLLs that a certain DLL requires. (It actually shows problems also where there are none so one can not trust it fully.) If you can get it to run, do run it on the file syncvmr9.ax and check so that you have D3D9.DLL and D3DX9_40.DLL installed (it shows in the output). What else does it report? -A
You were right. One of the dlls wasn't there. It works fine now. Thanks.

travolter
12th May 2009, 19:10
I cannt install the .ax files in xp

I have reinstalled directx..

The registergp.bat says: "this application have failed to start because the application configuration is incorrect"

ar-jar
12th May 2009, 21:42
I cannt install the .ax files in xp

I have reinstalled directx..

The registergp.bat says: "this application have failed to start because the application configuration is incorrect"

I haven't seen this one before but if you Google regsvr32 + your error message you get plenty of hits. I found for instance this one: http://social.msdn.microsoft.com/forums/en-US/windowsdirectshowdevelopment/thread/9919242b-c40d-4504-ab91-005f7f079902/. Dependency Walker (http://www.dependencywalker.com/) might also give you some clues as to missing DLLs. I might be able build the app with fewer dependencies but that'll have to wait. -A

patul
13th May 2009, 03:10
I ran dependency walker and here are the DLLs needed by SYNCVMR9.AX (common DLLs stripped )


D3D8THK.DLL
D3D9.DLL
D3DX9_40.DLL
ATL80.DLL
MSVCP80.DLL
MSVCR80.DLL


D3DX9_40.DLL is from DirectX Runtime Redistributable (March 2009), ATL80.DLL, MSVCP80.DLL, MSVCR80.DLL are from Microsoft Visual C++ 2005 Runtime.

@ar-jar: Sorry for n00b question, I don't have Powerstrip installed, and the OSD tells me that my display has too low refresh rate. What should I do?

ar-jar
13th May 2009, 06:30
I ran dependency walker and here are the DLLs needed by SYNCVMR9.AX (common DLLs stripped )


D3D8THK.DLL
D3D9.DLL
D3DX9_40.DLL
ATL80.DLL
MSVCP80.DLL
MSVCR80.DLL


D3DX9_40.DLL is from DirectX Runtime Redistributable (March 2009), ATL80.DLL, MSVCP80.DLL, MSVCR80.DLL are from Microsoft Visual C++ 2005 Runtime.

@ar-jar: Sorry for n00b question, I don't have Powerstrip installed, and the OSD tells me that my display has too low refresh rate. What should I do?

Thanks for your "dependency walk"! When you get that message, you don't have any sync option turned on. You should set your display refresh rate as close to your video fps as possible (or an even multiple) and check the Synchronize clock option in the SyncVMR9 preferences (double click icon in the system tray). For more, see http://www.ostrogothia.com/video/?page_id=6 under "Alternative 1" for synchronization and my latest blog post on the same site. -A

neoufo51
13th May 2009, 11:46
Ar-Jar, any update on your plans for this player? Will you continue to independently code this player to eventually make it a full featured player or will you incorporate your wonderful technology into MPC-HC?

travolter
13th May 2009, 15:34
I ran dependency walker and here are the DLLs needed by SYNCVMR9.AX (common DLLs stripped )


D3D8THK.DLL
D3D9.DLL
D3DX9_40.DLL
ATL80.DLL
MSVCP80.DLL
MSVCR80.DLL


D3DX9_40.DLL is from DirectX Runtime Redistributable (March 2009), ATL80.DLL, MSVCP80.DLL, MSVCR80.DLL are from Microsoft Visual C++ 2005 Runtime.

@ar-jar: Sorry for n00b question, I don't have Powerstrip installed, and the OSD tells me that my display has too low refresh rate. What should I do?

Microsoft Visual C++ 2005 Runtime was missing in my system.. I reisntalled it and gothplayer is working fine now!! ;)

Mark_A_W
15th May 2009, 06:29
Any chance of a multi-monitor capable version Ar-Jar?

It is extremely difficult to get 1080i working on ATi on Vista...I'm not messing with the display settings to try the player again. I may end up having to restore the system... :eek:


And has it got MKV support for Bluray rips? (With Flac).


I really want to try this player.

Thanks

Mark

ar-jar
15th May 2009, 12:50
Any chance of a multi-monitor capable version Ar-Jar?

It is extremely difficult to get 1080i working on ATi on Vista...I'm not messing with the display settings to try the player again. I may end up having to restore the system... :eek:

And has it got MKV support for Bluray rips? (With Flac).

Mark

I will probably look at the multi-monitor scenario in the future, if for nothing else, for making it easier to have multiple windows open while developing. I myself would like to have subtitles for Blue-ray so that's what I've spent some time on lately. One option that I'm still considering is to integrate my stuff into MPC (that already has subtitles) but there are some development tool related issues there to clear out first. There are already a rather extensive set of renderer options in MPC so there is I think an architectural challenge there as well.

For playing stored media (not TV), you can use the newish "Synchronize clock" option in GP. It doesn't touch your resolution and it doesn't require Powerstrip. Instead it works a bit like Reclock. It relies on the audio renderers ability to synchronize with (in this case fake) live sources and therefore doesn't require resampling of the audio. I have been using that method for some time and it seems to works well on the two systems on which I have it installed. You can read more about it on my blog.

Any media type for which you can find a Directshow splitter and decoders should be playable. The only embedded filters I enforce are my own SyncVMR9 video renderer and a controllable reference clock generator (SyncClock).

-A

Mark_A_W
15th May 2009, 13:25
Ok, I'm having a go.

It won't play on a secondary monitor - when you go fullscreen it plays on the primary (wrong) monitor.

I have a refresh rate of 95.904hz, and typically play bluray with a fps of 23.976.

I'm a bit lost as to whether I should set the FPS to 24 or 96? For 96hz I should set the present margin to 20ms?

Mark_A_W
15th May 2009, 13:27
Edit: got it to read the right refresh rate.

A selection for Fullscreen on monitor 1 or 2 would be very much appreciated.

Thanks

Mark


Edit2: it got confused on the monitors again. The issue comes and goes - restarting Gothplayer usually finds the right monitor...for a while.


And I can't actually play any video. I get a error "Can not find filter by CLSID". My system has all the filters necessary to play a MKV converted Bluray.

ar-jar
15th May 2009, 14:37
Edit: got it to read the right refresh rate.

A selection for Fullscreen on monitor 1 or 2 would be very much appreciated.

Edit2: it got confused on the monitors again. The issue comes and goes - restarting Gothplayer usually finds the right monitor...for a while.


And I can't actually play any video. I get a error "Can not find filter by CLSID". My system has all the filters necessary to play a MKV converted Bluray.

The player has not been tested for multiple monitors so I wouldn't rely on it as of now.

As for the other issue, I would have to get back to you. I need to make the error message more intelligent to check what filter it is that it doesn't find (or if the error message is perhaps misplaced). Can you play any type of media with this player? Do you have your default Directsound audio renderer registered? It should be per default. And is actually the third filter that is currently enforced, I forgot about that.

For the Present margin (when you get that far) I would suggest more like 5 ms w/ 96 Hz. It's going to be a bit tight in the loop but it should work with a good CPU and the default +/- 1.5 ms control limit. I have not tested it with anything higher than 60 Hz.

-A

neoufo51
15th May 2009, 14:40
This is exciting! Great job, Ar-Jar!

Mark_A_W
15th May 2009, 14:59
The player has not been tested for multiple monitors so I wouldn't rely on it as of now.

As for the other issue, I would have to get back to you. I need to make the error message more intelligent to check what filter it is that it doesn't find (or if the error message is perhaps misplaced). Can you play any type of media with this player? Do you have your default Directsound audio renderer registered? It should be per default. And is actually the third filter that is currently enforced, I forgot about that.

For the Present margin (when you get that far) I would suggest more like 5 ms w/ 96 Hz. It's going to be a bit tight in the loop but it should work with a good CPU and the default +/- 1.5 ms control limit. I have not tested it with anything higher than 60 Hz.

-A

Thanks Ar Jar, hopefully multi-monitors soon :)

It actually detects the monitor (when it works) as 47.9xx hz, as it's interlaced, so I think I should stick to 10mz.

I've figured the filter issue out - I had Reclock set to replace the default directsound renderer, hence the error. Actually, I'd still like to run reclock, but disabled, for the WASAPI output mode.

Can you add TS files as a media type?

And filter control is needed :o I'm not sure what decoder it's using for MPEG2, but it's not the Dscaler decoder, which does 1080i IVTC. My 24fps MPEG files are being detected as 30fps..

ar-jar
15th May 2009, 23:40
Thanks Ar Jar, hopefully multi-monitors soon :)

It actually detects the monitor (when it works) as 47.9xx hz, as it's interlaced, so I think I should stick to 10mz.

I've figured the filter issue out - I had Reclock set to replace the default directsound renderer, hence the error. Actually, I'd still like to run reclock, but disabled, for the WASAPI output mode.

Can you add TS files as a media type?

And filter control is needed :o I'm not sure what decoder it's using for MPEG2, but it's not the Dscaler decoder, which does 1080i IVTC. My 24fps MPEG files are being detected as 30fps..

I'll see when I get around to the multi-monitor thing. Please don't hold your breath in the mean time :-)

I can fix the TS file type. I'll post a message.

I've been down the filter control path and it gets kind of messy after a while. There are many filters... I'd really like to rely on Directshow Intelligent Connect. Once set up, and with a reasonable number of filters registered, the merit system works fine imho (others around here may disagree). Use e.g. Directshow Filter Manager to increase the merit of your DScaler decoder. (Use GraphEdit or GraphStudio to check what decoder that is actually used by Intelligent Connect.)

-A

ar-jar
16th May 2009, 09:42
This is exciting! Great job, Ar-Jar!

Thanks! I take it that it works then. Could you pls say a few words about your set-up, how you have configured the player, and what type of media you are playing? It's always good to know what works so that one can focus on what doesn't. -A