Log in

View Full Version : Media Player .NET (MPDN) - D3D HQ GPU Video Renderer [v2.49.0/v1.31.0 27 Dec 2018]


Pages : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 [43] 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96

Belphemur
11th May 2015, 13:58
Argh, that's bad. Is there a known email address? I don't remember...

Yup there is on his website (footer of it) : http://bengal.missouri.edu/~kes25c

I also found he published couple of conference paper in 2012 all linked (unsurprisingly) to image analysis :D

Zachs
11th May 2015, 13:58
Yeah, just sent him an email. Belphemur found his email address. Let's see if he replies.

madshi
11th May 2015, 19:05
FYI, the latest madVR build should now fix the LGPL issues. See "legal stuff\Shiandow\readme.txt" for details. If there's still something to do, please let me know.

Anima123
11th May 2015, 21:18
.NET Framework Repair Tool (https://www.microsoft.com/en-us/download/details.aspx?id=30135)

Which version should I re-install to be used with MPDN?

Zachs
11th May 2015, 22:10
Version 4.0.

Belphemur
12th May 2015, 08:10
Good news, in the last PlayerExtension you have an UpdateChecker (activated by default). It'll notify you when opening the player if there is a new version and redirect you on the website to download it.

You can easily disable it in the configuration of the player extension and also choose to forget this particular update.

ryrynz
12th May 2015, 08:53
Is that just with new versions of just the player or does it include extensions as well?

Belphemur
12th May 2015, 09:24
Is that just with new versions of just the player or does it include extensions as well?

Only the player, but everyday the extensions' zip get pulled from Github and is available along the latest version as you can see here : http://mpdn.zachsaw.com/Latest/

Zachs
13th May 2015, 00:17
Good news!

tritical has given MPDN the rights to use NNEDI3 with an LGPL license, so MPDN extensions can remain exactly the way it is.

Shiandow
13th May 2015, 00:19
The debanding algorithm has been improved again, with the new version you can achieve better debanding with lower values of the "threshold" parameter. It's recommended to revert to defaults, or lower the "threshold" parameter manually.

Also fixed this (http://forum.doom9.org/showthread.php?p=1721690#post1721690)issue.

mrcorbo
13th May 2015, 03:45
.NET Framework Repair Tool (https://www.microsoft.com/en-us/download/details.aspx?id=30135)

I finally got to try this (thanks for posting the direct link) and this may have fixed both my crash issues. Aside from the crash on right-click menu exit option selection during fullscreen playback I was also having an eventual crash during playback when crossfire was enabled (I have twin 4GB 270x's). I also just had some Windows Updates install, though, so I can't be sure which fixed the issues. I'll report back if the issues pop back up during more extended testing (pretty sure the "exit" crash at least is fixed), but for now things are looking good.

ryrynz
13th May 2015, 04:14
I finally got to try this (thanks for posting the direct link) and this may have fixed both my crash issues. things are looking good.

Awesome sauce.

Good news!

tritical has given MPDN the rights to use NNEDI3 with an LGPL license, so MPDN extensions can remain exactly the way it is.

Was he actually required to give the rights though? I thought it would've been better for him to clear up his licensing arrangements.

Zachs
13th May 2015, 07:08
Hi everyone,

I've added a new render script called "Scripted Render Chain" which allows you to write Avisynth-like scripts. It's based on JavaScript, so you can use any of JavaScript's built-in features (e.g. string processing).

The default script goes like this (it's does exactly everything Custom.MyRenderScript.cs does and it's a good starting point to write your own script).

// Example render script

// Scale chroma first (this bypasses MPDN's chroma scaler)
BicubicChroma( Preset = Presets.MitchellNetravali )

// Apply some filtering pixel shaders
ImageProcessor( ShaderFileNames = ["SweetFX\\Bloom.hlsl", "SweetFX\\LiftGammaGain.hlsl"] )

// Use NEDI once only.
// Note: To use NEDI as many times as required to get the image past target size,
// change the following *if* to *while*
if (input.NeedsUpscaling)
{
Nedi( AlwaysDoubleImage = true )
}

if (input.NeedsDownscaling)
{
// Use linear light for downscaling
ImageProcessor( ShaderFileNames = ["ConvertToLinearLight.hlsl"] )
Resizer( ResizerOption = ResizerOption.TargetSize100Percent )
ImageProcessor( ShaderFileNames = ["ConvertToGammaLight.hlsl"] )
}

if (input.SourceSize.Width < 1920)
{
// Sharpen only if video isn't full HD
// Or if you have FineSharp installed, replace the following line with it
ImageProcessor( ShaderFileNames = ["SweetFX\\LumaSharpen.hlsl"] )
}


This script is currently saved in %localappdata%\MediaPlayerDotNet\DefaultScript.rs (there's no need to know this - you can simply change the script in the config screen).

As you can see, it uses a very simple syntax to add filters to the chain. More importantly though, you can change the script and have MPDN use it on the fly without having to restart MPDN!

Note that if you edit the file externally, you'll need to manually resize the MPDN window for it to take effect. If you an error with your script, MPDN will display the error on the screen in place of the video.

All functions that the 'rs' script can access are available in the Clip and Host classes (see Mpdn.ScriptedRenderChain.ScriptHelpers.cs (https://github.com/zachsaw/MPDN_Extensions/blob/master/Extensions/RenderScripts/Mpdn.ScriptedRenderChain.ScriptHelpers.cs)). 'Clip' is available via the 'input' object while 'Host' is 'host'. There's also a "Debug.Output" function that allows you to dump debug messages to the DbgView app.

For example,


input.FileName // returns the full path and file name of the video file
input.FrameRateHz // returns the fps of your video
input.SourceSize.Width // returns video source width
host.ExePath // returns the folder name of which MPDN's executable file resides


The render scripts you can use in the 'rs' script currently are,

Lut3DColorCorrection
ImageProcessor
Preset
Resizer
BicubicChroma
Deband
Nedi
NNedi3
OclNNedi3 // OpenCL version of NNEDI3
SuperChromaRes
SuperRes


Have fun! :)

Zachs
13th May 2015, 07:10
Was he actually required to give the rights though? I thought it would've been better for him to clear up his licensing arrangements.

Yes, because it was GPL. He's given MPDN the approval to relicense it as LGPL.

pirlouy
13th May 2015, 15:40
I took time to do tests I wanted to do a long time.
For now, I use MPC-HC + LAV + madVR, a well known configuration which works. But I wanted to compare with MPDN.
So for now, I wanted to test how both perform in windowed D3D9 mode. The window is maximized, and process hacker allows me to see CPU, and GPU-Z sensors allows me to follow GPU states.

And I can see MPDN uses a lot more CPU+GPU.
I tried to use the same config as madVR, then bilinear everywhere, but it's the same, MPDN uses more CPU and GPU. I tried to disable fluid motion, dithering, I don't use any render script. I've tried with D3D10.1 et D3D11 but no changes.

Have you any idea on what can causes this ? Can it be linked to .Net ? For now, it makes no sense comparing glitches/dropped frames if CPU/GPU is way more used.

Zachs
13th May 2015, 22:09
Not that I've seen. The last time I tested it, it was faster than madvr on both CPU and GPU.

EDIT: You're right. It would seem madVR has indeed gained some performance with the recent versions - it has a lower base GPU load over all even with HW bilinear.

EDIT2: It turns out it's not entirely true - it depends on what material you're testing them with... were you testing it with 1080p materials btw?

EDIT3: LOL. Testing it with another different machine, madVR's GPU load is higher on most materials except 1080p which it is just 1% lower than MPDN. This is why I hate comparing performance between different renderers - they are so reliant on the drivers / system you have. CPU usage wise, both are within a difference of +/-1% with the different materials I've tested.

EDIT4: With more testing, I found with older GPUs, you can find sources with certain resolutions that would cause higher GPU usage with MPDN. I'm not sure what the cause of that is but it's not something I'm keen to put my time on seeing as those GPUs are really old (> 5 years old) and typically only run legacy drivers.

foxyshadis
14th May 2015, 09:09
Coming back to MPDN after a while, I have some questions which have probably been answered at some point, but... 100+ pages. Maybe the answers would be a good fit for the wiki.

Is there a comprehensive list of everything in PlayerControl? That's the only way to set custom keybindings right now, AFAIK.
Is there a way to display statistics on the screen? A lot of people seem to be doing this, but I can't find how.
When should I check or leave unchecked the boxes on the Presentation config panel? (New windowed mode & DWM VSync.) Are they better, worse, legacy compatibility?
Do you use a frame-adaptive ordered dither, like madvr?

pirlouy
14th May 2015, 11:00
@Zachs: If I look at CPU only (even if GPU is higher as I said). The processor I use is a Intel Core i3-2100.
With MPC-HC / LAV / madVR, I am at 30-35% with/without stats displayed
With MPDN, I am at 50-55% with stats displayed, 45-50% without stats displayed.

I've tried with all MPDN version (64, 32, anyCPU). I've also used the repair tool mentioned earlier, just in case (but he found nothing).
PS: I don't use DXVA at all.

Zachs
14th May 2015, 11:54
Coming back to MPDN after a while, I have some questions which have probably been answered at some point, but... 100+ pages. Maybe the answers would be a good fit for the wiki.

Is there a comprehensive list of everything in PlayerControl? That's the only way to set custom keybindings right now, AFAIK.
Is there a way to display statistics on the screen? A lot of people seem to be doing this, but I can't find how.
When should I check or leave unchecked the boxes on the Presentation config panel? (New windowed mode & DWM VSync.) Are they better, worse, legacy compatibility?
Do you use a frame-adaptive ordered dither, like madvr?

MPDN lacks documentation at the moment but there are quite a few devs who frequent the forum who started not knowing how to program in C# but managed to cook up a new extension in a couple of days, so I'm sure they're happy to help if you need something. That said, the best way to get that list would be via the IDE's intellisense.

Statistics on the screen? Ctrl+J should bring it up or you can do it via the menu: show player statistics.

If you don't find any problems with high presentation durations, you should just leave those in their default states. They're mainly for those systems (e.g. Optimus) that need specific settings.

MPDN's ordered dithering does not randomize across frames, it uses a different algorithm to madVR's ordered dithering. The very definition of ordered means its not random, so there's no such option for ordered dithering.

@Zachs: If I look at CPU only (even if GPU is higher as I said). The processor I use is a Intel Core i3-2100.
With MPC-HC / LAV / madVR, I am at 30-35% with/without stats displayed
With MPDN, I am at 50-55% with stats displayed, 45-50% without stats displayed.

I've tried with all MPDN version (64, 32, anyCPU). I've also used the repair tool mentioned earlier, just in case (but he found nothing).
PS: I don't use DXVA at all.

I've tried it on 5 different machines from Core2Duo through to 4th gen i7 and they all consistently get slightly lower CPU usage vs MPC-HC/madVR both 32/64 bit editions. You're not by any chance using ffdshow in your filter chain are you? It was established that it's a CPU hogger when used with .NET host a long time ago (my rough guess is it's silently trapping its own exceptions). It's a dead project, so there's nothing we could do.

pirlouy
14th May 2015, 12:06
I don't use ffdshow or any post-processing filter. You were on Windows 8.1 ?
I really don't know what could cause this then. :/

Zachs
14th May 2015, 12:55
Both windows 7 and 8.1.

Belphemur
14th May 2015, 14:20
Coming back to MPDN after a while, I have some questions which have probably been answered at some point, but... 100+ pages. Maybe the answers would be a good fit for the wiki.

Is there a comprehensive list of everything in PlayerControl? That's the only way to set custom keybindings right now, AFAIK.
Is there a way to display statistics on the screen? A lot of people seem to be doing this, but I can't find how.
When should I check or leave unchecked the boxes on the Presentation config panel? (New windowed mode & DWM VSync.) Are they better, worse, legacy compatibility?
Do you use a frame-adaptive ordered dither, like madvr?

As Zachs said, with IntelliSense on Visual Studio it's piece of cake to get all the different method the PlayerControl gives you. But I took the time to extract them :

public static class PlayerControl
{
public static void SetPlayerControl(IPlayerControl playerControl);
public static bool OnKeyDown(ref KeyEventArgs args);
public static bool OnMouseWheel(ref MouseEventArgs args);
public static bool OnMouseMove(ref MouseEventArgs args);
public static bool OnMouseClick(ref MouseEventArgs args);
public static bool OnMouseDoubleClick(ref MouseEventArgs args);
public static bool OnDragDrop(ref DragEventArgs args);
public static bool OnDragEnter(ref DragEventArgs args);
public static void OnPlaybackCompleted();
public static void OnFormClosed();
public static void OnPlayerStateChanged(PlayerState playerState, PlayerState oldState);
public static void OnVolumeChanged();
public static void OnAudioTrackChanged();
public static void OnSubtitleTrackChanged();
public static void OnFrameDecoded(FrameEventArgs e);
public static void OnFrameRendered(FrameEventArgs e);
public static void OnFramePresented(FrameEventArgs e);
public static void OnPaintText();
public static void OnExitedFullScreenMode();
public static void OnExitingFullScreenMode();
public static bool OnCommandLineFileOpen(CommandLineFileOpenEventArgs e);
public static void OnEnteredFullScreenMode();
public static void OnEnteringFullScreenMode();
public static void OnMediaLoading(MediaLoadingEventArgs e);
public static void OnPlayerLoaded();
public static void OpenMedia(string filename, bool play = true, bool showOsd = true);
public static void PlayMedia(bool showOsd = true);
public static void PauseMedia(bool showOsd = true);
public static void SeekMedia(long usec);
public static void StepMedia();
public static void StopMedia();
public static void CloseMedia();
public static void SelectSubtitleTrack(MediaTrack track, bool showOsd = true);
public static void SelectAudioTrack(MediaTrack track, bool showOsd = true);
public static void ShowStats(bool show);
public static void ResetStats();
public static void GoFullScreen();
public static void GoWindowed();
public static void HandleException(Exception exception);
public static void ShowOsdText(string text, int durationMs = 1000);
public static void HideOsdText();
public static IText CreateText(string font, int size, TextFontStyle style);
public static void ShowOptionsDialog();
public static void FitAspectRatio();
public static void FitPercentage(int percent);
public static void RefreshSettings();
public static void SetRenderScript(Guid renderScriptGuid);
public static Form Form { get; }
public static Control VideoPanel { get; }
public static Icon ApplicationIcon { get; }
public static PlayerState PlayerState { get; }
public static bool InFullScreenMode { get; }
public static long MediaPosition { get; }
public static long MediaDuration { get; }
public static IList<MediaTrack> SubtitleTracks { get; }
public static IList<MediaTrack> AudioTracks { get; }
public static IList<Chapter> Chapters { get; }
public static MediaTrack ActiveSubtitleTrack { get; }
public static MediaTrack ActiveAudioTrack { get; }
public static int Volume { get; set; }
public static bool Mute { get; set; }
public static string MediaFilePath { get; }
public static VideoInfo VideoInfo { get; }
public static AMMediaType VideoMediaType { get; }
public static string ConfigRootPath { get; }
public static int FullScreenSeekBarHeight { get; }
public static IRenderScript ActiveRenderScript { get; }
public static Guid ActiveRenderScriptGuid { get; }
public static IList<Assembly> ExtensionAssemblies { get; }
public static IList<IRenderScriptUi> RenderScripts { get; }
public static IList<IPlayerExtension> PlayerExtensions { get; }
public static Configuration PlayerSettings { get; }
public static event EventHandler<PlayerStateEventArgs> PlayerStateChanged;
public static event EventHandler<MediaLoadingEventArgs> MediaLoading;
public static event EventHandler PlayerLoaded;
public static event EventHandler PlaybackCompleted;
public static event EventHandler FormClosed;
public static event EventHandler EnteringFullScreenMode;
public static event EventHandler EnteredFullScreenMode;
public static event EventHandler ExitingFullScreenMode;
public static event EventHandler ExitedFullScreenMode;
public static event EventHandler PaintOverlay;
public static event EventHandler<PlayerControlEventArgs<KeyEventArgs>> KeyDown;
public static event EventHandler<PlayerControlEventArgs<MouseEventArgs>> MouseWheel;
public static event EventHandler<PlayerControlEventArgs<MouseEventArgs>> MouseMove;
public static event EventHandler<PlayerControlEventArgs<MouseEventArgs>> MouseClick;
public static event EventHandler<PlayerControlEventArgs<MouseEventArgs>> MouseDoubleClick;
public static event EventHandler<PlayerControlEventArgs<DragEventArgs>> DragDrop;
public static event EventHandler<PlayerControlEventArgs<DragEventArgs>> DragEnter;
public static event EventHandler<CommandLineFileOpenEventArgs> CommandLineFileOpen;
public static event EventHandler<FrameEventArgs> FrameDecoded;
public static event EventHandler<FrameEventArgs> FrameRendered;
public static event EventHandler<FrameEventArgs> FramePresented;
public static event EventHandler VolumeChanged;
public static event EventHandler SubtitleTrackChanged;
public static event EventHandler AudioTrackChanged;
}

I added a wiki page about it : https://github.com/zachsaw/MPDN_Extensions/wiki/PlayerControl

foxyshadis
14th May 2015, 23:15
Statistics on the screen? Ctrl+J should bring it up or you can do it via the menu: show player statistics.

OK, Ctrl-J works. I don't have that option anywhere in the menu though, after a clean install (with all basic extensions).

Last question. I made a renderscript of chromascaler->deband->resize (100% of target size)->image processor (shader noise), but the shader effect is still being applied to the original video size, not the full screen size. Am I misunderstanding the target size?

As Zachs said, with IntelliSense on Visual Studio it's piece of cake to get all the different method the PlayerControl gives you. But I took the time to extract them :

I added a wiki page about it : https://github.com/zachsaw/MPDN_Extensions/wiki/PlayerControl

Thanks! That helps a lot.

Zachs
15th May 2015, 02:26
OK, Ctrl-J works. I don't have that option anywhere in the menu though, after a clean install (with all basic extensions).

Last question. I made a renderscript of chromascaler->deband->resize (100% of target size)->image processor (shader noise), but the shader effect is still being applied to the original video size, not the full screen size. Am I misunderstanding the target size?


"Show Player Statistics" option is in General -> Options page.

Yeah it does look like Resize (100% of target size) isn't working any more.

@Shiandow, do you know what could've caused it?

EDIT: Yeah Shiandow's aware of it and he'll fix it tomorrow. It's bug caused by the recently changed Filter.cs.

public static void SetSize(this IFilter filter, TextureSize size)
{
var resizeable = (filter as IResizeableFilter) ?? new ResizeFilter(filter); // Bug: new ResizeFilter(filter) never gets assigned to anything
resizeable.SetSize(size);
}

Shiandow
15th May 2015, 14:54
Hi all,

This announcement is a bit late, but the renderscripts have been updated. Including a revised debanding algorithm, based on feedback on the MadVR thread. The parameters have now been replaced by two others, called "power" and "margin" respectively.

The first one "power" is the most useful and controls how aggressively the debanding script removes banding, when set to 0 it only removes banding if it's 100% sure that it's on a gradient, if you set it to something like 10% it will remove banding when it's at least 90% sure that it is on a gradient etc. (at the moment setting it to 1 doesn't remove the maximal amount of banding, but I might change that).

The second one "margin" allows the algorithm to change values beyond what is theoretically necessary. If set to 0 you should recover the original image if you convert the result back to 8 bits (this doesn't work too well because of a lack of precision, but that's a different problem). If set higher it will start removing information in order to remove more banding. This should only be necessary when the source has been "broken" by incorrect processing. One example, which I suspect to occur occasionally, is when a TV level source has been converted to PC levels using only 8 bit, this can cause excessive banding which can't be removed with a "conservative" algorithm.

Anime Viewer
15th May 2015, 15:36
Hi all,

This announcement is a bit late, but the renderscripts have been updated. Including a revised debanding algorithm, based on feedback on the MadVR thread. The parameters have now been replaced by two others, called "power" and "margin" respectively.


Nice job. With the default settings (power=.50,margin=0) I believe I see a noticeable improvement over the previous deband effects in MPDN.

Shiandow
15th May 2015, 20:44
Last question. I made a renderscript of chromascaler->deband->resize (100% of target size)->image processor (shader noise), but the shader effect is still being applied to the original video size, not the full screen size. Am I misunderstanding the target size?

This issue is now fixed.

Anime Viewer
16th May 2015, 01:16
When running with CTRL+J displaying the OSD I see a DWM presentation glitches category even though I have "Let DWM handle vertical sync in windowed mode*" unchecked. Is DWM used for some other part of video rendering in MPDN, is the DWM line present regardless of if it is active or not, or is there some other DWM render setting I'm not noticing?

Zachs
16th May 2015, 03:45
When running with CTRL+J displaying the OSD I see a DWM presentation glitches category even though I have "Let DWM handle vertical sync in windowed mode*" unchecked. Is DWM used for some other part of video rendering in MPDN, is the DWM line present regardless of if it is active or not, or is there some other DWM render setting I'm not noticing?

I guess the wording of the option is a bit confusing. When you have it unchecked, DWM still handles VSync, except Direct3D is also doing it. When it's checked, DWM is the only one doing VSync (and when DWM is disabled, you'll get tearing). Not sure how else I could word it that will make it less confusing though - any suggestions?

Oh yes and DWM is active regardless - esp on Win8 and above (no way to disable DWM).

Anime Viewer
16th May 2015, 05:57
I guess the wording of the option is a bit confusing. When you have it unchecked, DWM still handles VSync, except Direct3D is also doing it. When it's checked, DWM is the only one doing VSync (and when DWM is disabled, you'll get tearing). Not sure how else I could word it that will make it less confusing though - any suggestions?

Oh yes and DWM is active regardless - esp on Win8 and above (no way to disable DWM).

I had based the thought that DWM was not a good thing from your previous post that advised someone to only check it (to enable it) as a last resort. Given your explanation now of what it does I'm no longer concerned about disabling it (not that I could if I wanted to in Windows 8), but I'll continue running with it unchecked since it seems that is what you'd advise.

As far as the check box goes perhaps wording it: DWM exclusive VSync (or VSync using only DWM) would be less of a confusing term. For the OST perhaps instead of DWM presentation glitches it could read VSync presentation glitches.

huhn
16th May 2015, 13:03
Oh yes and DWM is active regardless - esp on Win8 and above (no way to disable DWM).

there are way to still disable DWM but...

Belphemur
16th May 2015, 13:37
there are way to still disable DWM but...

Well there is this : http://www.overclock.net/t/1441921/windows-8-1-no-dwm-aka-aero-aka-desktop-composition

But as said in the beginning :

You understand that the Start screen will break, and other parts of
windows will be inaccessible. You lose the login screen as a result, so
you need to either remove your password or set up windows to
automatically login (google it). If you need to lock your computer, a good
replacement is ClearLock. Set it up, and launch to lock. Add a shortcut to it in your startup folder to lock on startup.
Make sure windows is set to login to the desktop (google it, classicshell also
has an option for this)

C. Make sure you use something like classicshell to have a way to use
Windows. Wireless connections will also be unchangeable, use something like PE Network Manager as a replacement,
it's also a lot better anyway.

Braum
16th May 2015, 14:06
Hi !

I've just tried your player and I'm very pleased with it. I like the fact that it has a lot of advance user features.

I'm trying to find the right settings for my cpu and gpu and I have some questions.


Image quality/performance trade off : on which parameters it affects ?
From all the algorithm listed in the image below (1), which one is the most powerfull ? I know Lanczos is a good comprise between quality and the introduction of aliasing/artifacts (2).
Is there a shortcut to capture current frame ?


(1)
http://reho.st/self/291ced17d16901b6fdf2d2a27dcb9dbfe8c1fdec.png

(2)
The Lanczos filter has been compared with other interpolation methods for discrete signals, particularly other windowed versions of the sinc filter. Turkowski and Gabriel claimed that the Lanczos filter (with a = 2) the "best compromise in terms of reduction of aliasing, sharpness, and minimal ringing", compared with truncated sinc and the Bartlett, cosine-, and Hann-windowed sinc, for decimation and interpolation of 2-dimensional image data.[1] According to Jim Blinn, the Lanczos kernel (with a = 3) "keeps low frequencies and rejects high frequencies better than any (achievable) filter we've seen so far."

From what I've tested for the moment I love MPDN :thanks:

My setup : i5 3570K @ 4.5ghz | AMD 7870XT

Anime Viewer
16th May 2015, 14:45
Hi !

Image quality/performance trade off : on which parameters it affects ?
How can I activate multiple Render Script and how do I know it's working ?
From all the algorithm listed in the image below (1), which one is the most powerfull ? I know Lanczos is a good comprise between quality and the introduction of aliasing/artifacts (2).



Zachs will probably be able to answer your first question.

As for multiple render scripts you'd click on Render Script under Video Render, and then from within that you'd pick Script Chain. Within Script Chain you'd then pick all of the scripts you'd want active. For the most part you should keep them in the order of what they are listed from top to bottom. For example if you planned to use SuperChromaRes, Deband, and SuperRes you'd want to keep SuperChromaRes on the top of your chain, deband in the middle, and SuperRes on the bottom. If you have CTRL+J active to show the OSD before changing you should see a difference in Render and/or Present times after the change which would signify that they are working. You may also simply notice a change of visual quality in the video as soon as you click the apply button.

What works best for you for scaling may depend on what type of content you are watching. For line drawn (aka: animated content) Mitchell (aka: Bicubic 66) is often believed to be the best upscaler (see link) while for real life content (people) Jinc is often preferred by many for upscaling. For downscaling some people like Jinc or Lagrange, and some like Catrom (aka: Bicubic 100).

http://www.imagemagick.org/Usage/filter/#mitchell

If you're going to be using SuperRes and/or NEDI3/NNEDI3 you can throw many of the upscale/downscale choices out the window because they will override those choices. With the SuperRes options in your scripts you can throw pretty much anything (except perhaps Nearest Neighbor) as a scaler and not notice a difference in visual looks during video playback.

http://www.imagemagick.org/Usage/img_diagrams/cubic_survey.gif

Braum
16th May 2015, 15:11
Thank you a lot for theses explanations :thanks:
It makes the whole thing much more clear ! :D

Zachs
17th May 2015, 06:18
The image quality / performance tradeoff option should be left in its default setting which is prefer image quality. If you're running on a system with very tight power budget such as a tablet, you'd probably want to use max performance with everything set to bilinear. Max quality is kinda equivalent to x264's placebo settings while prefer performance shaves a bit of time off rendering duration only on some systems but loses quality.

So, I'd leave it in its default state.

Braum
17th May 2015, 10:10
Duly noted ! Thank you !

Magik Mark
18th May 2015, 21:49
Hey Zach!

Excellent work here! I just need some assistance on the ff:

I'm considering this as the replacement for my MPC BE with Madvr because of its faster rendering running as an external player for KODI.

MPC BE in full screen has an auto hide icons on the top right. You can easily close, minimize among others the window in one click. Can this be implemented in MPDN? My Programming skills really sucks

Thanks

BRM
18th May 2015, 22:46
Crashes are back (they never went away to begin with, using the latest version now).
This time, instead of just these 2 errors https://i.imgur.com/Odv9Wl8.png , I also got:

Fault bucket , type 0
Event Name: AppHangB1
Response: Not available
Cab Id: 0

Problem signature:
P1: mmc.exe
P2: 6.3.9600.17415
P3: 54504e26
P4: 0000
P5: 67246336
P6:
P7:
P8:
P9:
P10:

The program mmc.exe version 6.3.9600.17415 stopped interacting with Windows and was closed. To see if more information about the problem is available, check the problem history in the Action Center control panel.
Process ID: 1c74
Start Time: 01d091b13747935e
Termination Time: 4294967295
Application Path: C:\Windows\system32\mmc.exe
Report Id: 62513a9c-fda6-11e4-826f-60a44ccfa7c5
Faulting package full name:
Faulting package-relative application ID:

The program MediaPlayerDotNet.exe version 2.25.16.3084 stopped interacting with Windows and was closed. To see if more information about the problem is available, check the problem history in the Action Center control panel.
Process ID: 1d70
Start Time: 01d091b130780dff
Termination Time: 4294967295
Application Path: C:\Program Files\Media Player Dot Net\MediaPlayerDotNet.exe
Report Id: 68cde63f-fda6-11e4-826f-60a44ccfa7c5
Faulting package full name:
Faulting package-relative application ID:

Garteal
18th May 2015, 22:55
Hey Zach!
MPC BE in full screen has an auto hide icons on the top right. You can easily close, minimize among others the window in one click. Can this be implemented in MPDN?
Yep, quite easily. Could be added to the FullscreenTextPainer PlayerExtension. Might do it if I get some time tomorrow.

@BRM have you tried repairing your .NET install? Get it from the link below and give that a try.
.NET Framework Repair Tool (https://www.microsoft.com/en-us/download/details.aspx?id=30135)

BRM
18th May 2015, 23:23
Yep, quite easily. Could be added to the FullscreenTextPainer PlayerExtension. Might do it if I get some time tomorrow.

@BRM have you tried repairing your .NET install? Get it from the link below and give that a try.

It keeps crashing, and generally, the mmc.exe process is never in the event viewer log. However, I have just done what you said. I'll report back soon.

Zachs
19th May 2015, 00:21
Yep, quite easily. Could be added to the FullscreenTextPainer PlayerExtension. Might do it if I get some time tomorrow.

@BRM have you tried repairing your .NET install? Get it from the link below and give that a try.

Hey Garteal, any chance you could merge your playlist changes to the main repo?

Magik Mark
19th May 2015, 00:27
While playing video and opening reclock preference:

I'm getting "No video streams detected". Why is this? Does it have something to do with fluid motion? I think altering the video clock would help in achieving smoother video

Zachs
19th May 2015, 00:31
Reclock doesn't quite work with MPDN. I've put in a request to get SlySoft to fix their reclock filter but have not heard back at all since more than half a year ago... It also doesn't have a 64-bit version, so most people wouldn't recommend using it.

EDIT: Well it works with MPDN but as you've found out it doesn't know how to get the video stream because MPDN uses a separate graph for video and audio. But more importantly even if it does, Reclock's missing the ability to get the actual refresh rate from the renderer.

nevcairiel
19th May 2015, 00:33
Reclock doesn't quite work with MPDN. I've put in a request to get SlySoft to fix their reclock filter but have not heard back at all since more than half a year ago... It also doesn't have a 64-bit version, so most people wouldn't recommend using it.

ReClock has been dead for years now, don't hold your breath.

Anime Viewer
19th May 2015, 00:36
Hey Garteal, any chance you could merge your playlist changes to the main repo?

That would be good. That would also fix the problem where second files in the playlist would be fixed (talked about here: http://forum.doom9.org/showthread.php?p=1710705#post1710705) which has been bugged in the main extension patch for a while now.

The image quality / performance tradeoff option should be left in its default setting which is prefer image quality. If you're running on a system with very tight power budget such as a tablet, you'd probably want to use max performance with everything set to bilinear. Max quality is kinda equivalent to x264's placebo settings while prefer performance shaves a bit of time off rendering duration only on some systems but loses quality.

So, I'd leave it in its default state.

Good to know. I'd also been wondering about the Max Quality option and if it would provide any significant benefit over the default image quality option. Now that I know I will not bother with the max setting.

Zachs
19th May 2015, 00:36
ReClock has been dead for years now, don't hold your breath.

Yup I know.
It's a shame they don't want to release the source.

Magik Mark
19th May 2015, 00:36
Reclock doesn't quite work with MPDN. I've put in a request to get SlySoft to fix their reclock filter but have not heard back at all since more than half a year ago... It also doesn't have a 64-bit version, so most people wouldn't recommend using it.


What do you think is a good alternative? SVP? Do you have a step by step guide in running this along with MPDN?

Thanks

Zachs
19th May 2015, 00:39
If you can't get your monitor to run at your video rate, I'd say run it at its max frequency (even 60Hz is good enough) and enable Fluid Motion.
That will give you very similar fluidity to what Reclock does.

tobindac
19th May 2015, 02:04
This player gives "failed to render file" out of the box. That gives a very bad impression to new users. Make it standalone in some way if you want it to ever take off.