View Full Version : VirtualDub2
poisondeathray
10th January 2018, 16:34
Ah crap, so what is broken on my system..
With input delivery I mean the same setting as you, intermediate bitdepth.
Do you have / use an alpha channel in all of this ? I'm feeding it 'dry' non-alpha rgb48 which vapoursynth wraps in b64a for VfW. Maybe I should try with a dummy alpha channel.
Another (very minor) thing. Opening a .vpy file now requires me to explicitly select the avisource reader. Just opening the .vpy gives an ffmpeg error, so I guess the ffmpeg input driver tries to open vapoursynth scripts now. This wasn't always the case.
edit might it even that there is an avx(2) codepath or something enabled in the cineform RGB mode that my old i7 doesn't support?
Everything else was exactly the same as your test setup , RGB48 . I tested 1280x720 (maybe you have some weird dimensions causing crash?)
I just dragged the vpy to vdfm , and it automatically chose AVI, with "internal DIB decoder (b64a)" as reported in file=>file information
The CPU I tested on has avx2 . Win8
Was that on XP ? Some ffmpeg changes made XP support more difficult, maybe it has something to do with that ?
WorBry
11th January 2018, 03:12
For me, it just crashes, regardless of export codec. Both x86, x64 versions
But works ok (without highlight issue) when fed through vapoursynth or avisynth
I think it has to do with the caching input driver
No crash here with that sample clip. And like I said, the odd thing is that:
... it (the aberration) doesn't occur with 4K/HD-AVC (8bit) clips recorded with full luma range i.e. decode format YUV420-709-FS.
....and that includes clips recorded on the same camera - a Pana GH5 in this case, which gives the option to select the 'luminance level' (i.e. luma range) - 16-235, 16-255 or 0-255 in 8-bit. As can be seen from the YUV Histogram, the above sample clip was shot in 16-255 range, which is how most camcorders record 8-bit 4K/HD-AVC also - i.e. Rec709 allowing for excursion/overshoot of data values into the super-whites.
Evidently, with these 16-255 range clips something is going on YUV420-709 > YUV420 or YUYV (YUY2) 'conversion' that is preventing transfer of the full data range. Come to that, why does YUV420-709 need to be 'converted' to YUV420 anyway if the decompression format 'interpretation' is set for 'no change' in the component range ? Surely it's just pass-through ?
Anyhow, hopefully Shekh will get to the bottom of it.
shekh
11th January 2018, 08:29
Ah crap, so what is broken on my system..
With input delivery I mean the same setting as you, intermediate bitdepth.
Do you have / use an alpha channel in all of this ? I'm feeding it 'dry' non-alpha rgb48 which vapoursynth wraps in b64a for VfW. Maybe I should try with a dummy alpha channel.
Another (very minor) thing. Opening a .vpy file now requires me to explicitly select the avisource reader. Just opening the .vpy gives an ffmpeg error, so I guess the ffmpeg input driver tries to open vapoursynth scripts now. This wasn't always the case.
edit might it even that there is an avx(2) codepath or something enabled in the cineform RGB mode that my old i7 doesn't support?
I'm returning from vacation tomorrow and will take close look after.
Opening vpy issue: maybe you used driver override feature in error, try to see Open dialog, select vpy file, and then change preferred driver to default one (in dropdown there should be AVIfile, then caching..)
avx in cineform: no I don't think there is such code. And I run some tests on core2.
dipje
11th January 2018, 09:30
Ok.. I am on (Semi-)recent Win10 x64, so no XP related stuff.
If you want me to report more, give more info or make / send dumps let me know (and let me know how :P).
shekh
12th January 2018, 14:12
Something else I've observed with VDFM (40716 32bit & 40717 64bit) ; when transcoding native 4K and HD AVC (8-bit YV12, Rec709) clips to any YUV format, specular highlights get encoded black.
...
Sample (2sec) of above clip to test:
http://www21.zippyshare.com/v/77EZFJQ6/file.html
There is error in color space conversion (it is also in the original VD).
The conversion 709->601 with out-of-range luma values requires clipping which is not applied.
I will replace the procedure.
WorBry
12th January 2018, 15:44
There is error in color space conversion (it is also in the original VD).
The conversion 709->601 with out-of-range luma values requires clipping which is not applied.
I'm not converting 709 > 601 though. Both the Color Space and Component Range interpretations are set as 'No Change' (the default).
shekh
12th January 2018, 16:05
I'm not converting 709 > 601 though. Both the Color Space and Component Range interpretations are set as 'No Change' (the default).
This part of UI is confusing, I want to change it somehow.
Actually "no change" in compression pixel format means nothing.
Currently more informative is the line "Using conversion: YUV420-709 -> YUV420"
To really have no colorspace change, either select "pixel format-> same as decoding" or set colorspace explicitly the same as source (709).
poisondeathray
12th January 2018, 18:01
I did some more testing, and the crash for me was from using video=>fast recompress
(You used to be able to bypass all the other extraneous conversions by using it in classic vdub)
I agree that current part of the UI with color space / component range is confusing
shekh
12th January 2018, 19:10
I have a Vapoursynth script outputting RGB48. If I open it in 40716 (x64) it seems to open fine as B64a (as it should IIRC).
Now, I want to try the Cineform encoder, so I set compression to Cineform RGB 12bit (also tried with RGBA 12bit), with the 'input delivery' set to 16bit. The output format selection seems to be RGB64, which is fine.
When I try to save (either to .avi or to .mov) VDFD crashes directly at the start.
Am I doing something wrong or is this a known problem?
Here is what I need:
- crash report: when you see "Oops - VirtualDub has crashed..." press "Save" button
- also VirtualDub_AutoSave_xxx.vdproject file (created automatically before crash)
- source video. Please save Vapoursynth output as uncompressed avi (1 frame should be enough)
I did some more testing, and the crash for me was from using video=>fast recompress
(You used to be able to bypass all the other extraneous conversions by using it in classic vdub)
Repeated, will be fixed.
WorBry
12th January 2018, 20:44
To really have no colorspace change, either select "pixel format-> same as decoding" or set colorspace explicitly the same as source (709).
OK, I've got it sorted. What confuses matters is the "(?) Format Not Accepted by Codec, YMMV" comment when transcoding to the 'non-native' vfw codec formats, like MagicYUV and the GoPro Cineform codec. I'll post some shots of the config panels to illustrate what I mean, when I have a moment. But yes, when transcoding these 8-bit YUV420-709 sources to Cineform, setting the YUY2 output colorspace explicitly to 'Rec709' resolves the issue with the black-coded specular highlights - the GoPro vfw Cineform codec complains that "(?) Format Not Accepted by Codec, YMMV" but it still works. I guess that's the reason for the 'YMMV' ;>)
shekh
12th January 2018, 21:45
OK, I've got it sorted. What confuses matters is the "(?) Format Not Accepted by Codec, YMMV" comment when transcoding to the 'non-native' vfw codec formats, like MagicYUV and the GoPro Cineform codec. I'll post some shots of the config panels to illustrate what I mean, when I have a moment. But yes, when transcoding these 8-bit YUV420-709 sources to Cineform, setting the YUY2 output colorspace explicitly to 'Rec709' resolves the issue with the black-coded specular highlights - the GoPro vfw Cineform codec complains that "(?) Format Not Accepted by Codec, YMMV" but it still works. I guess that's the reason for the 'YMMV' ;>)
Yes, it is difficult to calculate the actual format applied with vfw codec, there is too much code involved. I chose between showing "YMMV" or nothing.
WorBry
12th January 2018, 22:01
I was editing my last post just as you replied. I was going to add that when using the native Cineform encoder, setting the YUY2 output explicitly for Rec709 is accurately reflected in the comment 'Using conversion YUV420-709 ->YUYV-709'.
On the other hand, transcoding (these YUV420-709 inputs) to MagicYUV-YUV420 (configured for Rec709 YUV420 input) does not require specifying 'Rec709' in the output pixel format. Leaving at default 'Same as Decoding' (YUV420-709) works fine (pass-through with no black-coded highlights) provided you ignore the "(?) Format Not Accepted by Codec, YMMV" comment. Same with UTVideo YUV420. Well that's 'my mileage' at least ;)
I won't bother posting any screen shots.
Cheers.
shekh
13th January 2018, 18:19
New version with many fixes.
I encountered a bug, when I loaded in a 32 bit png, adjust the color using colormill, and then export it as single image out as png, the resulting image became all white.
If you do this again, it is now possible to disable alpha channel with "alias format" filter:
https://sourceforge.net/p/vdfiltermod/wiki/format_changes/attachment/alias_format.png
Also same way to enable alpha when it is not detected (e.g. from AviSynth)
lansing
22nd January 2018, 17:58
I'm requesting an option to chose audio driver on capture mode. I have the ASIO driver installed and I wanted to use that instead of the Windows default.
shekh
22nd January 2018, 18:04
I'm requesting an option to chose audio driver on capture mode. I have the ASIO driver installed and I wanted to use that instead of the Windows default.
Which audio driver, is it source or output?
lansing
22nd January 2018, 18:58
Which audio driver, is it source or output?
Source, the latency of audio recording with the Windows default driver is too long. With ASIO, the latency can be as low as 1 millisecond.
StainlessS
23rd January 2018, 04:23
Hi Shekh,
Build 40898, and my prev 40879, Problem when switch to Free Adjust, image still scrolls around in box (via mouse), you have to screw around with
sizing it to get it to show full image. Ta very much :)
shekh
23rd January 2018, 09:28
Hi Shekh,
Build 40898, and my prev 40879, Problem when switch to Free Adjust, image still scrolls around in box (via mouse), you have to screw around with
sizing it to get it to show full image. Ta very much :)
Do you mean scrolling 1px or something bigger?
StainlessS
23rd January 2018, 11:16
Definitely somewhat bigger (I would not bother too much about 1 pixel, maybe 10, 16 something like that, perhaps bigger).
AVI. EDIT: No, I mean AVS.
Starts out ok, but resize via mouse, then switch to Free Adjust, significant scrolling, even when view area is only a quarter occupied.
Can be way more than 16 pixels.
shekh
23rd January 2018, 11:20
Definitely somewhat bigger (I would not bother too much about 1 pixel, maybe 10, 16 something like that, perhaps bigger).
AVI.
Weird. Pls show your source dimensions and some screenshots
Edit: ok :)
StainlessS
23rd January 2018, 11:31
Well so far, it happens with anything, anysize, AVS, AVI, MP4 (1280x720), and image BMP.
Dont forget to switch to Free Adjust (which, always has resized to whatever size you chose).
I think version from a month or two ago did not do that.
EDIT: BMP that I just tried was scrolling ~40% of the image (horizontal), every thing I've tried does it.
I updated to this version (current) because of the problem, but it obviously still exists.
Free Adjust then resize, or other way around, both same.
EDIT: Dont know if pertinent (probably not) but only scrolls on one axis, up/down or left/right.
shekh
3rd February 2018, 14:20
This is one of three annoying things that led me to alter and recompile VirtualDub myself (my instructions are still a sticky thread although it's out of date now).
Somewhere there is a condition that causes VirtualDub to give up on displaying a frame if it takes over 100ms, and you have scrolled onward in the meantime.
On the subject of AVI vs. MKV, doesn't MKV lack a frame index?
Now if decoder made 100% progress (always the case with *synth) the 100ms limit is ignored.
Happy scrolling )
Hi Shekh,
Build 40898, and my prev 40879, Problem when switch to Free Adjust, image still scrolls around in box (via mouse), you have to screw around with
sizing it to get it to show full image.
Now clicking "free adjust" will immediately stretch image to fit in window.
StainlessS
3rd February 2018, 17:02
Lovely, thanx. :thanks:
Yanak
5th February 2018, 11:36
Hello and thank you for this,
I have a little suggestion please:
When using both versions x86 x64 ( for filters available in one version and not on the other ) or even when we still have the old virtualdub versions on pc, we end up with a bunch of virtualdub in the "Open With" menu.
What i do is that i use ResourceHacker to recompile the .exe with the names changed in the info :
https://s14.postimg.org/8p2ixd6hd/2018-02-05_111901_cr.png
I do this for all new versions of this deep color mod, and have this done for old virtualdub versions on my pc too, when i make a right click into a media file and "Open with" i then see this :
https://s14.postimg.org/436eotibl/2018-02-05_112328.png
Without doing those modifications I end up with 4 " VirtualDub" entries there and have to guess which one is what as it often don't stay in order from one media file extension to another, depends the order you manually selected the "open with program xxx".
I saw you already cleaned up this info part in the last versions released by removing file versions and such, but if you could add a more specific name + plateform for the exes too it will be nice.
Thank you .
StainlessS
5th February 2018, 12:39
I just add this on XP
Install_Vdub_ShellNoRoam.reg
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam\MUICache]
"C:\\NON-INSTALL\\VDUB\\VDUB_MOD\\VirtualDubMod.exe"="www.virtualdub-fr.org"
"C:\\NON-INSTALL\\VDUB\\VDUB_PLAIN\\VirtualDub.exe"="VirtualDub"
"C:\\NON-INSTALL\\VDUB\\VDUB_DEEP\\VirtualDubDEEP.exe"="VirtualDubDEEP"
Yanak
5th February 2018, 13:31
Hi,
I done something similar some years ago when using only the regular virtualdub x86 & x64, not sure if it was exactly this reg edit but it was a registry modification, later started to use the exe re-compile method ( as i also sometimes can change the icons used by the exe's at the same time ), using this last method for various little tools customization since a few years now.
This said i noted it and will keep your method in memory for the next time i will need it :)
Thank you.
wonkey_monkey
5th February 2018, 20:09
Now if decoder made 100% progress (always the case with *synth) the 100ms limit is ignored.
Happy scrolling )
I'm not sure what you mean by "made 100% progress," but thanks!
I have a couple of other suggestions, if I may:
The fact that I can drag around the window contents is awesome, but what would be even awesomer would be a "frameless" mode where the raised border around the display is removed, and the video takes up the whole width/height of the window. This would be especially useful when viewing a 1920 pixel video on a 1920 pixel wide screen.
Some kind of indicator that the video is scrolled and/or not fully displayed would also be great (by the way I see odd/confusing behaviour when clicking Free adjust which I haven't figured out yet).
One thing that I would really love to see is to finally eliminate one very poor GUI choice in VirtualDub. Progress windows will display "Time elapsed" and "Total time (estimated)", but the only really important piece of information would be "Time remaining" - yet the user is left to calculate this for themselves!
Edit: oh and also a playback volume control from 0%-400% :)
shekh
5th February 2018, 22:58
Changing ProductName/InternalName: no problem, I wanted to rename it anyway.
I'm not sure what you mean by "made 100% progress," but thanks!
The simplified process looks like:
1) decode
2) copy to internal buffer
3) apply filters
4) display
After "decoder made 100% progress" means the remaining things are 2 (neglectible) 3 (often empty) and 4 (also quite fast).
There is no reason to terminate right after 1 is done.
The fact that I can drag around the window contents is awesome, but what would be even awesomer would be a "frameless" mode where the raised border around the display is removed, and the video takes up the whole width/height of the window. This would be especially useful when viewing a 1920 pixel video on a 1920 pixel wide screen.
Do you mean like fullscreen mode in video player? I also thought about it. What is stopping me, this would require some on-screen controls to make it actually useful. Don't imagine yet what it should look like.
Some kind of indicator that the video is scrolled and/or not fully displayed would also be great (by the way I see odd/confusing behaviour when clicking Free adjust which I haven't figured out yet).
I also had the idea of indicators.
For odd behavior it is maybe good idea to capture screen.
I didn't think free adjust is so useful.
One thing that I would really love to see is to finally eliminate one very poor GUI choice in VirtualDub. Progress windows will display "Time elapsed" and "Total time (estimated)", but the only really important piece of information would be "Time remaining" - yet the user is left to calculate this for themselves!
Maybe it was interesting as benchmark. If you want to know when same thing runs faster/slower than before...
Btw a question: which buttons on timeline waste the space? I think there are too many, some I never touched once.
wonkey_monkey
5th February 2018, 23:14
So if decoding takes more than 100ms it still might abort and drop the frame? Or is that what "Drop frames when seeking" controls?
Fullscreen is another idea, but I just meant to get rid of the icon border and put the image right against the edge of the window, so when maximised it fills the whole screen width. Great for widescreen video on a 1920x1080 screen - no more missing out a few columns on the right.
I started work on an Avisynth viewer once, a long time ago, so some of my ideas come from there... like a control to select the matrix for the internal conversion to display RGB, and also view-space deinterlacing (so framecounts remain the same, but playback could do a simple deinterlace for viewing purposes - or the option to step like this "10t, 10b, 11t, 11b...").
Maybe it was interesting as benchmark. If you want to know when same thing runs faster/slower than before...
Perhaps... I still think time remaining is far more useful (and FPS is best for benchmarking).
Btw a question: which buttons on timeline waste the space? I think there are too many, some I never touched once.
I only ever use Stop, for when I've pressed Ctrl-Shift-Arrow and Space alone won't stop it and I get confused :D Any reason Escape shouldn't be a shortcut for Stop?
A tool/shortcut I would use is to place markers on the timeline (Shift+M), along with a tool/shortcut to jump between markers (Ctrl-Left, Ctrl-Right) - maybe even with thumbnails recorded. But then you would have to start considering a project-save option...
shekh
5th February 2018, 23:51
So if decoding takes more than 100ms it still might abort and drop the frame?
It might drop in case of progressive decoding. Example: AVI with long-gop and using VFW decoder, because it works by repeatedly decoding intermediate frames.
AviSynth always returns whole final frame.
100ms may still terminate frame if there is long & slow list of VD filters but this can be also disabled by turning off "Drop frames when seeking".
I only ever use Stop, for when I've pressed Ctrl-Shift-Arrow and Space alone won't stop it and I get confused :D
A tool/shortcut I would use is to place markers on the timeline (Shift+M), along with a tool/shortcut to jump between markers (Ctrl-Left, Ctrl-Right) - maybe even with thumbnails recorded. But then you would have to start considering a project-save option...
I think I fixed all confusing key combinations.
Note that you can set hotkeys for commands from Options->Keyboard..
Edit.ToggleMarker (my key: M)
Edit.SeekStop (my key: K) - this is same as "stop" button on timeline
Edit.GoToPrevRange, Edit.GoToNextRange - they also jump between markers not just ranges
What is "with thumbnails recorded"? To save current picture somewhere, why? What is "project-save"?
wonkey_monkey
6th February 2018, 00:55
What is "with thumbnails recorded"? To save current picture somewhere, why?
To give a preview, on the timeline, of what is at each marker. Perhaps on hover.
What is "project-save"?
To save the current state of the project - source script, markers, selection start/end, filters and their parameters, processing settings, etc.
raffriff42
6th February 2018, 01:36
Full screen playback, even with no navigation controls, only Escape, would be fabulously useful for quickly evaluating a scene, an edit or whatever. Any added controls would be great too.
It is possible (but klunky) to view VirtualDub's output full screen in a media player using the built-in Frameserver. Maybe a hotkey macro to quickly set up frameserving and launch a media player..?
shekh
6th February 2018, 13:20
To save the current state of the project - source script, markers, selection start/end, filters and their parameters, processing settings, etc.
This already works through File->Save project.
Also there is add-on data, an example where it is used is DrawText filter. If you put a lot of text in it (does not fit in string parameter) it will be saved as separate file attached to the filter.
wonkey_monkey
14th February 2018, 22:47
Another suggestion for the list: is there a way to work around the fact that using arrow keys to step through frames is limited by the Windows keyboard repeat rate? It would be nice if it could, instead, max out to the display refresh rate, so holding down right arrow would step through frames at 60fps (or whatever it can manage). I have the delay set to "short" which maxes out at only about 40 per second, and also includes the annoying delay on the first keypress.
shekh
14th February 2018, 23:01
I'm using "scan scene forward/backward" commands for something similar. I set it to keys J,L and disable detection thresholds. However, its speed is not controlled at all, with simple videos it becomes too fast.
AKBabel
28th February 2018, 10:29
I have tried to convert linear 64RGBA to sRGB (logarithmic) by “gamma correct” filter.
It works fine, but the result is somehow RGBA32 and not 64RGBA anymore.
Why is it that?
shekh
28th February 2018, 11:29
Most filters are not updated to support high bit depth. GammaCorrect is very simple, I can update it.
shekh
10th March 2018, 17:19
Changing to easy name: VirtualDub2
Full list of changes: https://sourceforge.net/p/vdfiltermod/wiki/changes/
Answering requests made here:
if you could add a more specific name + plateform for the exes too it will be nice.
Done, VersionInfo updated.
even awesomer would be a "frameless" mode where the raised border around the display is removed, and the video takes up the whole width/height of the window. This would be especially useful when viewing a 1920 pixel video on a 1920 pixel wide screen.
If you stretch one pane to its maximum size it becomes borderless. When main window is maximized the pane takes exactly screen width (Unless there is some toolbar).
Full screen playback, even with no navigation controls, only Escape, would be fabulously useful for quickly evaluating a scene, an edit or whatever. Any added controls would be great too.
There is new full screen feature. It is quite nice, I like it :) The "full screen" is a separate window which can be moved to different monitor (using win-shift-arrow keys). All keyboard shortcuts work and most pop-up dialogs are usable. I'm only missing the timeline control and main menu access.
It would be nice if it could, instead, max out to the display refresh rate, so holding down right arrow would step through frames at 60fps (or whatever it can manage).
Added several new commands for fast forward/backward (available in keyboard shortcuts)
What is different compared to old "next/prev scene change" way: no need to mess with scene detection. Also it moves as long as I hold the key (there is also "sticky" version to move continuously). The rate is still unlimited.
I have tried to convert linear 64RGBA to sRGB (logarithmic) by “gamma correct” filter.
Now it should work in RGB64 mode too.
StainlessS
10th March 2018, 18:21
Currently downloading, you are a star shekh, thanx very much :)
SeeMoreDigital
10th March 2018, 19:06
Many thanks shekh. It's getting better and better :D
raffriff42
11th March 2018, 05:18
Beautiful! Thank you!
StainlessS
11th March 2018, 20:17
Thiis is a tremendously important project, methinks that Phaeron (AKA Avery Lee) uses nothing else now (daft if he dont) :)
Avery & Shekh, both terrific work guys, cheers. :thanks:
EDIT: Giants, on the shoulders of other, well Giants.
wonkey_monkey
13th March 2018, 00:41
Fullscreen and borderless mode are absolutely brilliant. Thanks Shekh!
Edit: although there seems to be a slight problem with borderless mode after coming out of fullscreen. The raised border reappears at the left, but after mini- and remaxi-mising it's gone from the left, but can be seen on the right.
shekh
13th March 2018, 01:15
Thanks everyone for your words!
there seems to be a slight problem with borderless mode after coming out of fullscreen
Damn, why I missed this.
SeeMoreDigital
13th March 2018, 10:09
Changing to easy name: VirtualDub2...Is it worth altering this topics title now as well?
shekh
13th March 2018, 11:28
Is it worth altering this topics title now as well?
Why not, done.
wonkey_monkey
13th March 2018, 12:26
I have another suggestion you may or may not enjoy, something (again) which I planned to put in an AviSynth viewer:
A mode where the position of the mouse determines whether input or output is shown - so the image is cut, with input showing to the left of the mouse, output to the right. I'm sure there's a proper term for this, I just can't think what it is...
I personally wouldn't find this too useful, since I do everything in AviSynth, but if you're using VirtualDub filters it might be nice (a hack could be to stackvertical your Avisynth output and use a VD crop filter to put one on top of the other). Just need some consideration on how to handle differently sized input/output.
Another idea: centered mode. Disable the output frame, just show the input frame (or vice versa), centered in the window with no border, and maybe the possibility to change background colour.
Also please could I have the Moon on a stick :)
LigH
13th March 2018, 12:34
A sliding split screen ... possibly not as easy for videos as for still pictures. There may be modulo constraints for supported widths of the split panes.
BTW, the 32b version of VirtualDub2 has a nice modern new application icon. The 64b version should get that as well.
shekh
13th March 2018, 12:50
BTW, the 32b version of VirtualDub2 has a nice modern new application icon. The 64b version should get that as well.
thx, the icon cost me lots of pulled out hair :)
It must be same icon. Did you mix the archive with old version?
The new executable also has different name:
VirtualDub64.exe
vs the old one (weird and confusing)
Veedub64.exe
shekh
13th March 2018, 13:08
A sliding split screen ... possibly not as easy for videos as for still pictures. There may be modulo constraints for supported widths of the split panes.
Something like this already works through filter "Blending..." dialog.
It is possible to restrict filter to rectangle, and there is "fflayer" filter to replace entire video contents. So you may feed .avs as normal source then cover it with original video and finally manipulate Blending rectangle to reveal different parts.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.