Video performance problem with VideoOut

Hi,
I am trying to play a video 1024x576 60fps with VVVV9.2 and it doesnt work: It runs jerky with about 10 fps.
If I play the video in Windows Media Player, it runs smooth with 60fps.
My setup is: FileStream->VideoOut
Hardware: P4 3,2 Ghz; Intel OnboardGraphics i 82865

What am I missing ?
Can I start vvvv in hyperthreading mode ? IS there an additional node necessary ?

Please HElp !!

is waitforframe set to 100?

there is no waitforframe on that patch.

Otherwise: How can system performance (threadwise) be tuned ?

And: How are pathnames given correctly for boygrouping ?

WaitForFrame is a pin on the VideoTexture node! setting this to 100 frees system resources for the videothread.

additionally there is a boost node. see its helpfile for details.
also check the MainLoops Filtered mode to calm the nervouse framerate down.

concerning pathnames on boys read the first FAQ entry on Boygrouping

Hi joreg,

what exactly does VideoOut ?

If I play my videos with windows media player ( above mentioned wmv-videos) the process meter of windows goes up to nearly 100%. But if I play the same videos with vvvv, then system performance stays at 50%.

So It seems a hyperthreading problem to me. Am I wrong ?

Where are my 50% performance ?

VideoOut is (in directshow terms) a VMR9 in windowed mode.

i’m not so firm with hyperthreading. in taskmanager rightclicking on vvvv.exe should allow you to check cpus for vvvv. does that do anything. also compare vvvvs cpu settings to mediaplayers.

same problem with videotexture?
also try with VideoTexture(YUVMixingMode). that could gain some more performance. if you don’t see the quad with that node connect a Blend (Renderstate Advanced) to the quad and turn of ‘Alpha Blending’.

Ok. Obviously the videotexture seems to be more efficient. The cpu usage goes up to 90 or 100% for v4 usage. And the video runs smoother.
In fact it seems that version 9.2 is runs faster for my kind of application than the previous used version 8.1.
The initial idea was to use VideoOut, because I only play back plain Videos, not any 3d-stuff. Do you recommend VideoOut or not at all ? (Most of you refer to Videotexture instead of VideoOut for work with video)

Another problem occurs to me:
In the DX9-Renderer I go to FullscreenMode for my Playback-Clients. So if I go to fullscreen the time I load the patch on boygroup-Server, then the clients don’t load the video for the texture.

But if I go to fullscreenmode AFTER the patch is loaded on the clients, then my clients load the video.
Strange thing. Maybe a bug ? How to find textures on clients ?

Thank you for help !

Obviously the videotexture seems to be more efficient. The cpu usage >>goes up to 90 or 100% for v4 usage. And the video runs smoother.
which videotexture seems more efficient?

if you really do nothing else than playing back videos i’d be tempted to suggest using videoout. at least in theory that should be more efficient. maybe it is not yet since videoout is using the vmr9 not in yuvmixingmode (which is supposed to be the most efficient). i will consider updating this.

and i am not sure if videoout locks itself to the screens refreshrate (like the renderer(dx9) can) to avoid tearing.

concerning the loading-of-files-on-clients-when-fullscreening-on-load problem… sounds like a bug which we’ll have to investigate…

Videotexture: I didnt check the yuv-videotexture right now. I only used the (normal) videotexture. Because I didnt know: is wmv stored in YUV-format ?

So the efficiency noticed by me was only the comparison between VideoOut and Videotexture on a quad.

Again: (this applies to vers.9.2)
I noticed for a Pentium4 3,2Ghz with Hyperthreading:
If I use VideoOut then I only get 50% of the system performance (monitored by the process-viewer from windows); my conclusion: only one thread works
If I use videotexture then I get up to 100% system performance (again monitored with the process viewer from windows).

And the result for my video playback is: With VideoOut I get jerky playback with about 10 fps, with Videotexture I get smooth playback with more than 30 fps.

But my aim ist 60 fps…

Another question regarding the renderer(dx9): Is there a description for all the modes and stuff that I can adjust in the Inspector for this node ? Some are a bit confusing…

not sure if wmv is a yuv format. anyway it gets decoded to a yuv format during playback. on the other hand i just did a short test with a .wmv in hd-resolution and videoout and videoout (yuvmixing) made no difference in cpu usage.

oh. just read your initial posting again. are you still using the onboard-graphic chip. that could be a reason…

recent nvidia and ati-cards have onboard decoding support for mpeg2 video. atis catalyst 5.13 will decode h.236 encoded video on your graphiccard and i think even .wmv is decoded on the gpu. for .mpg2 you need a special decoder that makes use of the cpu. not sure how this is with .wmv and h.236…

when videoout gives you only 10fps try setting the mainloop to 60forground fps that should do something similar as setting WaitForFrame=100 on the videotexture.

concerning a description of the renderers pins i wanted to link you to microsofts online dokumentation but their links are broken since days…

joreg:

recent nvidia and ati-cards have onboard decoding support for mpeg2 video. atis catalyst 5.13 will decode h.236 encoded video on your graphiccard and i think even .wmv is decoded on the gpu. for .mpg2 you need a special decoder that makes use of the cpu. not sure how this is with .wmv and h.236…

yes. But what is the difference between windows media player playback and vmr9-playback ? Are there differences ? Or does windows media player also rely on vmr9 ?

when videoout gives you only 10fps try setting the mainloop to 60forground fps that should do something similar as setting WaitForFrame=100 on the videotexture.

I tried both: mainloop settings to 60fps or less → no remarkable effect. boost: different settings for vvvv-thread prio ( including restart of vvvv and relogin) → no remarkable effect.

concerning a description of the renderers pins i wanted to link you to microsofts online dokumentation but their links are broken since days…

oh. so the biggest software-company does not document its own features well ? how can then programs be written at all ?
f*ck m$

Thank you for your help.

tomorrow i will run tests with new computers (pci xpress, ati x700, p4 3ghz…) hopefully it will run better. Did you already look into that fullscreen-bug ? I cannot use the software without this feature.

correct me if i’m wrong, but the intel onboard graphics is a lamer and I believe it is not DirectX-compliant.

Another user tried to run MJPG-video on an i800 chipset and we had the reverse effrect (whioch is more understandable) of bad framerates on a DX renderer and fine ones with VideoOut.

However, this is not a standard problem here. Can you try to insert a graphics card into that machine? What codec are you using? Can you try another?

max

not sure what the windows mediaplayer uses. therefore i’m always only testing with mediaplayer classic (see links site in documentation) where you can set (via options) which renderer to use.

i saw you found the dx-online docu. its finally up again. here is the documentation for all the renderer options:
D3DPRESENT_PARAMETERS
indeed we try to keep most settings/namings close to the dx-spex to make it easy for people who already know directx.

any boost with your other graphiccard?

a quick workaraound-test for the fullscreen problem on the clients:
try to delay going fullscreen on the clients by one frame. don’t set the Renderers Fulscreen pin to a constant 1 but connect it via a framedelay and set that to 1.

even though it should not make a differenece. if the above does not work try a monoflop instead of the framedelay set to ~1 second. to give the clients more time to load. (but actually i am not superstitious)