NOTE: This is NOT a intended to be comprehensive "I've never played digital media before" guide for newbies, it assumes you have a working dsplayer setup, AND a working knowledge of how to of how to enable both ffdshow's software/directshow filter the dxva filter properly configured to handle the codecs you want it to handle. Infact, if you have ffdshow properly configured, then this resize will benefit any video player, not just xbmc/dsplayer.
Note also that software upscaling is somewhat processor intensive, so if you have an old crappy machine, this might not work too well for you.
1) configure the standard ffdshow directshow decoder to handle xvid and h264 on the codecs tab (using libavcodec), as well as any others you want it to (only exception is MPEG2, use libmpeg2 for that instead of libavcodec). On the H.264/AVC item in the right pane, do NOT enable either of the "skip deblocking" tickboxes at the bottom, otherwise you'll negatively impact image quality in a big way! On the MPEG2 item, enable the "DVD decoding" tickbox at the bottom of the right pane if you want to use ffdshow to view standard DVD's.
I personally use virtually all of the common formats, ffdshow is the only video decoder on most of my machines, if you are using it there generally is *no* need for any other codecs and definitely no need for codec packs. Codec packs of any kind are evil, avoid them like the plague unless you want to fubar your system beyond repair.
2) configure the ffdshow dxva filter to enable DXVA for H264 and VC1. Also enable "Surface Overlay" in post processing if you want subs in DXVA decoded material with ffdshow, otherwise subs won't work.
3) back to the standard directshow filter: select the "Profiles / Preset settings" item from the left pane, go to the right pane and create a "New" profile, and name it something unique (I used "resize_for_w<1280").
4) Still on the new "resize_for_w<1280" profile, enable the "Automatic preset loading" tick box at the bottom, then click the "Preset autload conditions..." button to bring up the autoloading window. Set it exactly as shown in the image above. This will cause this profile to load for all material where the image width is less than 1280 pixels. The default profile (where you hopefully didn't change anything before, but left everything at defaults) will load for all other material. You can tweak the settings if you're comfortable to make loading of this profile more restrictive using filenames, decoder matches, etc. but you really don't need to.
5) Now still with that new "resize_for_w<1280", profile selected (make sure it's hilighted and *not* the default one), on the left pane, enable the tickbox for "Resize & aspect" partway down the page and then click the "Resize & aspect" item to select it. On the right pane, enable exactly as shown in the image (horizontal size set to 1920; "resize always" enabled; "keep original aspect ratio" enabled)
6) Now on the left pane, select the "Settings" sub-item from the "Resize & aspect item", and set as shown (Luma and Chroma methods both set to Lanczos; Number of taps for each slider set to 4.00, Accurate rounding enabled). You can also experiment with Luma sharpen and Chroma sharpen, but I don't use those. Also, you can go higher than 4.00 for the Number of taps for more sharpening, but this also increases processing requirements a lot, and might cause 100% CPU useage and therefore jumpy playback, so use caution. Too much sharpening will negatvely impact image quality anyway. Lanzcos 4 tap is a generally accepted good standard resizer.
**ADDED BY EVILSATAN: the below step tells you to create a rule for DSPlayer. To do this go into the XBMC Program folder, System, Players, DSPlayer, rightclick 'dsfilterconfig.xml' then click edit. Add the rule towards the bottom of this txt file one line under the wmv rules '[/rule]'. More info on the dsfilterconfig.xml here. Save to desktop then copy into the folder to overwrite the original.**
7) Finally, to bring it all together, you need a rule in DSPlayer to make it load the DXVA filter for 1080p material, and the normal software directshow filter for other material. Since I use a filenaming convention like "Movie.Name.2010.1080p.BluRay.DTS.x264.mkv", I can use 1080p and 720p in the filename as triggers for rules. If you don't use such a naming convention, you'll have to find another way to trigger the correct rule in DSPlayer:
Code:
<rule filetype="mkv">
<source filter="mkvsource" />
<splitter filter="mkvsplitter" />
<video>
<video dxva="true" filename=".*1080.*" filter="ffdvideodxvadec" />
<video filter="ffdvideodec" />
</video>
<audio filter="ffdaudiodec" />
</rule>
That's it. Once you get this done, then the DXVA filter should load for 1080p material, and do nothing else to it. And the ffdshow software directshow filter should load for everything else, and resize it to 1920 pixels wide, with a subtle sharpening, but major noticeable improvement in quality.
Added by Evilsatan:
The final part of the above guide is the rule which tells DSPlayer when to use DXVA codecs to process the video. I suggest altering the below line from:
<video dxva="true" filename=".*1080.*" filter="ffdvideodxvadec" />
To:
<video dxva="true" filename=".*720.*|.*1080.*" filter="ffdvideodxvadec" />
This ensures DXVA processes all 720p and 1080p content
WHEN 720p OR 1080p APPEAR IN THE FILENAME OF THE VIDEO! Alternatively to have DXVA process all MKVs remove the filename tag so the line reads:
<video dxva="true” filter="ffdvideodxvadec" />
Once you have ffdshow DXVA and Video Decoders setup as above, and you have added the rule to dsfilterconfig.xml you should be ready to launch XBMC.
Social Networking Bookmarks