Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > Hardware & Software > Software players

Reply
 
Thread Tools Search this Thread Display Modes
Old 1st September 2014, 08:05   #1  |  Link
Zachs
Suptitle, MediaPlayer.NET
 
Join Date: Nov 2001
Posts: 1,670
Media Player .NET (MPDN) - D3D HQ GPU Video Renderer [v2.49.0/v1.31.0 27 Sep 2017]

Hi everyone,

MPDN is a modern extensible media player written in .NET (with performance critical parts in ASM/SSE2) featuring a fully integrated high quality Direct3D 9, 10, 11 video renderer that is equally extensible. In fact, its most powerful features come from its open source community contributed extensions called MPDN Extensions hosted on GitHub. Both madVR and MPV use portions of code from MPDN Extensions.

MPDN Extensions
MPDN Extensions consist of Custom Linear Scalers, Render Scripts, Audio Scripts and Player Extensions.
For more information, see MPDN Extensions wiki page.

Custom Linear Scalers
These custom linear scalers extend MPDN by adding Sinc-Blackman, Gaussian etc. scaling options. If there's a new scaler you want to add, give it a kernel function and MPDN will do the rest. The same custom scalers can also be used in the EWA scaler (via Render Script).

Render Scripts
Render Scripts are quite similar to AviSynth scripts and plugins except they run fully on the GPU. You can script Render Scripts in a similar fashion to AviSynth with a C# syntax, or an AviSynth-like syntax with the full power of JavaScript behind it. As opposed to madVR's mostly closed source nature, MPDN's Render Scripts are fully open source and are hosted on GitHub.
  • Can be used to add post processing pixel shader files;
  • or write your own custom multi-staged scaler
  • or anything in between
  • Supports compiled assemblies (.dll) or plain C# text file (.cs)
  • Easily configured to behave like legacy pre-/post-processing filters (chain of legacy pixel shaders)
  • Or write your own chain script - if Downscaling, use X scaler, if Upscaling, use Y scaler, with or without linear light etc.
  • Or stack image doublers based on your own set of criteria
  • Choose from a combination of Shader Model 3.0 (Direct3D 9), Shader Model 4.x/5.0, DirectCompute (Direct3D 11) and OpenCL!

Audio Scripts
Audio Scripts are similar in concept to Render Scripts except they operate on audio samples. Audio Scripts can run purely on the CPU, interface with third party audio libraries or with OpenCL via Cudafy. See this 2x Audio Gain example.
  • Reclock
  • Dynamic Range Compressor (Night Mode)

Player Extensions
Player Extensions allows the player to be extended via C# script. In fact MPDN's playlist is fully implemented via this extension.
See this post for a getting started example.
  • Modify or extend MPDN
  • Supports compiled assemblies (.dll) or plain C# text file (.cs)
  • A huge collection of extensions on GitHub
  • e.g.
    • Online streaming, pipe input, RAR archives, DVD playback
    • OpenSubtitles
    • Audio / subtitle offset
    • Full screen display selector
    • Refresh rate changer
    • Playlist
    • Remote control
    • and many more

Full UI Mode



Minimal UI Mode



Minimal UI Mode with Playlist



Features:
  • Direct3D Custom Renderer via Pixel Shader
  • Option of Direct3D 9Ex / Direct3D 10 / Direct3D 11 renderer (some graphics card drivers work better with one or the other)
  • Fluid Motion
  • Supports 8- or 10- or 16-bit input and 8- or 10- or 16- bit output for maximum image quality
  • Various Pixel Shader scaling algorithms:
    • Nearest Neighbour / Box
    • Bilinear / Triangle
    • Softcubic (w/ softness setting)
    • Bicubic (w/ sharpness setting, anti-ringing option)
    • Lanczos (4, 6, 8, 12 or 16 taps, anti-ringing option)
    • Spline (4, 6 or 8 taps, anti-ringing option)
    • Jinc (4, 6, 8, 12 or 16 taps, anti-ringing option)
    • Custom scalers (from GitHub - e.g. Gaussian, Sinc-Blackman)
    • Linear light scaling via render script
  • Output dithering (None, ordered, random with noise strength adjustments)
  • Deep color (10-bit and 16-bit) output support (read this first)
  • Improved chroma reconstruction [1] [2]
  • 3DLUT via render script
  • Fully integrated renderer (no .ax file to install)
  • Customizable by adding postprocessing filters (e.g. AC3Filter, ffdshow, SVP)
  • MadVR style CTRL+J renderer stats
  • Volume control
  • Playback rate control
  • Audio track selection
  • Video track selection
  • 2 methods of Reclock:
  • OSD
  • Subtitle support
  • Subtitle track selection
  • Chapter selection
  • Full / Minimalist UI mode (or anything in between)
  • Close-source freeware with open source extensions

Pre-requisites:
  • Windows 7, Windows 8.1, Windows 10
  • .NET Framework 4.0
  • CPU with SSE2 instruction set
  • OpenCL CPU runtimes - read this
  • If you're not using the installer,
    • LAV Filters must be installed (Media Player .NET is hardcoded to use these filters)
    • DirectVobSub (auto loading version) and/or XySubFilter must be installed for MPDN to load subtitles
    • If you are going to play interlaced materials, make sure you enable deinterlacing via LAV Video Decoder

Feature/Bug Tracker:
Troubleshooting:
  • Failed to render 'filename' error for every file you try to open - read this
  • MPDN won't start on my Optimus laptop (or any issues with your Optimus system) - read this
  • Stuttering playback on GPU with 512MB RAM - reduce render queue to 4
  • Unable to play youtube / vimeo / dailymotion etc. links - make sure you have MPDN Extensions installed and read this

User contributed articles:
Special thanks:
  • Shiandow
    • Co-designing MPDN's render script system
    • Main contributor of MPDN's render scripts and framework
  • Belphemur for hosting MPDN
  • All of MPDN's player extension devs (Gartael, DeadlyEmbrace, Belphemur, Mercy07 etc.)
  • madshi (madVR author) for providing a couple of pointers in the early stages
  • Everyone else who've reported bugs and written articles / guides / posts to help other users

Downloads (Latest version MPDN v2.49.0 / Extensions v1.31.0):
Changelogs

Code:
Extensions
----------

v1.31.0 Changelog:
    Render Scripts
        Revised tag system again
        Deband experimental: Handle Luma and Chroma separately to improve quality
        SSIMDownscaling: Improvements
    Audio Scripts
        [NEW] Crossfeed: Helps reduce listening fatigue caused by the unnatural stereo image provided by headphones
    Player Extensions
        [NEW] OnScreenDisplay
    Framework
        Speedup disposing tremendously (noticeable when changing scripts)

v1.30.0 Changelog:
    Render Scripts
        Revised tag system
        ImageProcessor: Add option to do all processing in YUV
        SSSR improvements
        Fix Conditionals causing scripts to fail to load on some systems
        Bilateral: Krig more fine tuning
        Deband improvements
    Player Scripts
        TextPainter: Allow it to work in windowed mode
Code:
MPDN
----

v2.49.0 Changelog:
    Show more informative error messages
    Fix: Some usage paths may lead to old ditherers being used instead of the new ones

v2.48.0 Changelog:
    Improved fluid motion by timing frames more accurately
    Improved dithering methods (especially ordered dithering)
    Fixed: Pixels were misaligned when there was an unequal number of blank lines on either side of the image.

v2.47.0 Changelog:
    MPDN is now signed with a commercial code-signing certificate
MPDN Full Revision History (changelogs)


Cheers.

Last edited by Zachs; 27th September 2017 at 13:22.
Zachs is offline   Reply With Quote
Old 1st September 2014, 11:00   #2  |  Link
huhn
Registered User
 
Join Date: Oct 2012
Posts: 4,132
first of all it is work totally fine. it is missing a lot of totally basic stuff like subtitle support, audio volume.

why did you start with 4 taps not 3? 4 is usually way to sharp in my eyes.
I haven't done any picture quality comparison but does it use high bit deep and/or dither?

does it really use the GPU? gpu-z doesn't show anything
huhn is offline   Reply With Quote
Old 1st September 2014, 12:29   #3  |  Link
Zachs
Suptitle, MediaPlayer.NET
 
Join Date: Nov 2001
Posts: 1,670
Quote:
Originally Posted by huhn View Post
first of all it is work totally fine. it is missing a lot of totally basic stuff like subtitle support, audio volume.

why did you start with 4 taps not 3? 4 is usually way to sharp in my eyes.
I haven't done any picture quality comparison but does it use high bit deep and/or dither?

does it really use the GPU? gpu-z doesn't show anything
Yes it's very basic for now. The player is basically my test app for the renderer. Renderer has text overlay support but I haven't got around to implementing subtitle in the player.

I don't know what madvr's 3 tap really is. But in my renderer 4 taps means it takes 4x4 texels to calculate the resulting scaled pixel.

GPUs calculate in 32 bit floats by default and that's what my renderer uses. What exactly does high bit depth and dithering do? Dithering I assume is to do with conversion from yuv to rgb?

Are u using an amd card? On my amd card Gpu-z seems to show no gpu usage until a certain threshold. But yes it's definitely using gpu for scaling and yuv to grb conversion. I don't think the cpu is near enough for 60fps full screen 1080p jinc
Zachs is offline   Reply With Quote
Old 1st September 2014, 12:41   #4  |  Link
nevcairiel
Registered Developer
 
Join Date: Mar 2010
Location: Hamburg/Germany
Posts: 8,915
4x4 is two taps (ie 2 pixels in each direction), or also called bicubic.
__________________
LAV Filters - open source ffmpeg based media splitter and decoders
nevcairiel is offline   Reply With Quote
Old 1st September 2014, 12:46   #5  |  Link
Zachs
Suptitle, MediaPlayer.NET
 
Join Date: Nov 2001
Posts: 1,670
Quote:
Originally Posted by nevcairiel View Post
4x4 is two taps (ie 2 pixels in each direction), or also called bicubic.
Isn't 4x4 4 pixels in each direction? My bicubic is from 16 texsamples. I've seen implementations calling this 4 taps.
Zachs is offline   Reply With Quote
Old 1st September 2014, 13:02   #6  |  Link
nevcairiel
Registered Developer
 
Join Date: Mar 2010
Location: Hamburg/Germany
Posts: 8,915
If you go from a center point (ie. your target pixel), its 2 pixels to each edge, for a full grid of 4x4

The naming of these things is kinda inconsistent among different tools, but madVRs 3/4-tap filters function like I outlined here, bicubic is basically 2-tap, and the other filters with 3/4 tap configuration use more pixels.
__________________
LAV Filters - open source ffmpeg based media splitter and decoders
nevcairiel is offline   Reply With Quote
Old 1st September 2014, 13:22   #7  |  Link
Zachs
Suptitle, MediaPlayer.NET
 
Join Date: Nov 2001
Posts: 1,670
Quote:
Originally Posted by nevcairiel View Post
If you go from a center point (ie. your target pixel), its 2 pixels to each edge, for a full grid of 4x4

The naming of these things is kinda inconsistent among different tools, but madVRs 3/4-tap filters function like I outlined here, bicubic is basically 2-tap, and the other filters with 3/4 tap configuration use more pixels.
Ah ic. I think of all the implementations I've seen and I've seen a lot while making mine, madvr would've been the only odd one out on this.

EDIT: MPDN's 'tap' counting is based on AviSynth's as documented here: http://avisynth.nl/index.php/Lanczos_lobs/taps

Last edited by Zachs; 13th October 2014 at 08:17.
Zachs is offline   Reply With Quote
Old 1st September 2014, 13:36   #8  |  Link
kostik
Registered User
 
Join Date: Jul 2007
Posts: 96
Works fine, thanks Missing only subtitles loader and nnedi3
kostik is offline   Reply With Quote
Old 2nd September 2014, 06:39   #9  |  Link
Zachs
Suptitle, MediaPlayer.NET
 
Join Date: Nov 2001
Posts: 1,670
Does anyone know where I could find a sample mkv/mp4 with multi-track audio for testing purposes?

*Edit: Nevermind. I found a sample and I've released v1.1.

Last edited by Zachs; 2nd September 2014 at 07:29.
Zachs is offline   Reply With Quote
Old 2nd September 2014, 21:24   #10  |  Link
madshi
Registered Developer
 
Join Date: Sep 2006
Posts: 8,917
You may want to sign your exe file to avoid AV false alarms. Virustotal reports 2/54 for your x86 download. Usually signing your exe helps with this problem.

FWIW, on my development PC (win8.1 x64) playback with your software doesn't seem to work. I'm getting the exception "An unexpected error 'System.Reflection.TargetInvocationException' has occurred". Also, I have to use the "File -> Open" dialog. Drag&Drop is rejected by the media player.

How to count taps? Different people have different opinions on that. What madVR calls 2 taps, and you call 4 taps, some marketing guys even call 16 taps (4x4 = 16). In the end it doesn't matter much, I guess. On a side note, personally I find Lanczos, Spline and Jinc with 2 taps (in your case 4 taps) to be not worth the effort. They don't look better than Bicubic to my eyes. That's why madVR starts at 3 taps with those algorithms (which you count as 6 taps).

If you want to know what dithering is for, try playing the "colors.ytp" test pattern with madVR with dithering turned off vs. on. Then try playing it with your media player. If you don't do dithering, it will probably look quite ugly. Or alternatively try zooming the "smallramp.ytp" pattern up to fullscreen, then turn dithering off vs. on. With dithering off, you should see faint vertical bands in madVR. With dithering on, the gray ramp should be perfectly smooth. The problem is that your final rendering result should be 32bit, while the GPU really only outputs 8bit. If you round to 8bit, you're introducing quantization artifacts. So you *have* to dither, to avoid those artifacts. This is a concept well known from the audio processing world. I've introduced this concept to the HTPC video processing world a couple of years ago, when madVR was introduced. At that time (to my best knowledge) nobody else used dithering in video processing. Dithering is well known when trying to convert gray scale images to black & white. E.g. see here:

http://en.wikipedia.org/wiki/Dither

Basically converting gray scale -> black & white means reducing bitdepth from 8bit to 1bit. When doing that, using dithering produces much better results than simple rounding. The same principle still applies when reducing the bitdepth from 32bit to 8bit, although the benefits of dithering are much smaller there compared to 8bit -> 1bit. Here's the download of the "colors.ytp" test pattern with the DirectShow filter needed for that test pattern:

http://madshi.net/madTestPatternSource.zip

Last edited by madshi; 2nd September 2014 at 21:27.
madshi is offline   Reply With Quote
Old 3rd September 2014, 13:37   #11  |  Link
madshi
Registered Developer
 
Join Date: Sep 2006
Posts: 8,917
Quote:
Originally Posted by Zachs View Post
Did you get hold of a stack trace?
See here:

Code:
===================================

An unexpected error 'System.Reflection.TargetInvocationException' has occurred.

------------------------------
Error Type = System.Reflection.TargetInvocationException
Error Message = Ein Aufrufziel hat einen Ausnahmefehler verursacht.
Error Source = Mpdn.Threading
Error Site = Void InternalInvoke(WorkItem, Boolean)
Error occurred =    bei Mpdn.Threading.TaskThread.InternalInvoke(WorkItem work, Boolean wait)
   bei Mpdn.Threading.TaskThread.Invoke(WaitCallback work, Object state)
   bei Mpdn.VideoPlayer.DirectShowVideo.GetAudioTracks()
   bei MediaPlayerDotNet.MainForm.
()
   bei MediaPlayerDotNet.MainForm.
(String  , Boolean  )
   bei MediaPlayerDotNet.MainForm.
()
   bei MediaPlayerDotNet.MainForm.
(Object  , MouseEventArgs  )
   bei System.Windows.Forms.Control.OnMouseDown(MouseEventArgs e)
   bei System.Windows.Forms.UserControl.OnMouseDown(MouseEventArgs e)
   bei System.Windows.Forms.Control.WmMouseDown(Message& m, MouseButtons button, Int32 clicks)
   bei System.Windows.Forms.Control.WndProc(Message& m)
   bei System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   bei System.Windows.Forms.ContainerControl.WndProc(Message& m)
   bei System.Windows.Forms.UserControl.WndProc(Message& m)
   bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
OS Version = Microsoft Windows NT 6.3.9600.0
Total Physical Memory = 31,9 GB
Available Physical Memory = 28,1 GB
Date Time = 03.09.2014 14:33:55
User Name = Dev-PC\madshi
Application Startup Path = D:\Desktop\MediaPlayerDotNet_x86_1_1_2_438
Application Executable Path = D:\Desktop\MediaPlayerDotNet_x86_1_1_2_438\MediaPlayerDotNet.exe
CurrentDirectory = D:\Desktop\MediaPlayerDotNet_x86_1_1_2_438
SystemDirectory = C:\WINDOWS\system32
Ran As Admin = False
HasShutdownStarted = False
MachineName = DEV-PC
ProcessorCount = 8
LogicalDrives = C:\, D:\, W:\, Y:\
EnvironmentVariables = PROCESSOR_ARCHITEW6432 = AMD64; COMPUTERNAME = DEV-PC; CommonProgramFiles(x86) = C:\Program Files (x86)\Common Files; VS80COMNTOOLS = C:\Program Files (x86)\Microsoft Visual Studio 8\Common7\Tools\; HOMEPATH = \Users\madshi; CG_BOOST_ROOT = C:\Program Files (x86)\Embarcadero\RAD Studio\7.0\include\boost_1_39; PROCESSOR_REVISION = 3a09; VS100COMNTOOLS = C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools\; PATHEXT = .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC; USERDOMAIN_ROAMINGPROFILE = Dev-PC; TEMP = C:\Users\madshi\AppData\Local\Temp; LOCALAPPDATA = C:\Users\madshi\AppData\Local; PUBLIC = C:\Users\Public; IBREDISTDIR = C:\Users\Public\Documents\InterBase\redist\InterBaseXE3; windir = C:\WINDOWS; USERDOMAIN = Dev-PC; ProgramFiles(x86) = C:\Program Files (x86); Path = C:\Program Files (x86)\Embarcadero\Studio\14.0\bin;C:\Users\Public\Documents\Embarcadero\Studio\14.0\Bpl;C:\Program Files (x86)\Embarcadero\Studio\14.0\bin64;C:\Users\Public\Documents\Embarcadero\Studio\14.0\Bpl\Win64;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Users\madshi\AMD APP SDK\2.9\bin\x86_64;C:\Users\madshi\AMD APP SDK\2.9\bin\x86;C:\Program Files (x86)\AMD APP SDK\2.9\bin\x86_64;C:\Program Files (x86)\AMD APP SDK\2.9\bin\x86;C:\Program Files (x86)\Embarcadero\RAD Studio\12.0\bin;C:\Users\Public\Documents\RAD Studio\12.0\Bpl;C:\Program Files (x86)\Embarcadero\RAD Studio\12.0\bin64;C:\Users\Public\Documents\RAD Studio\12.0\Bpl\Win64;C:\Program Files (x86)\Borland\Delphi 7\Bin;C:\Program Files (x86)\Borland\Delphi 7\Projects\Bpl\;C:\Program Files (x86)\Embarcadero\RAD Studio\11.0\bin;C:\Users\Public\Documents\RAD Studio\11.0\Bpl;C:\Program Files (x86)\Embarcadero\RAD Studio\11.0\bin64;C:\Users\Public\Documents\RAD Studio\11.0\Bpl\Win64;C:\Program Files (x86)\CollabNet;C:\Program Files (x86)\Embarcadero\RAD Studio\10.0\bin;C:\Users\Public\Documents\RAD Studio\10.0\Bpl;C:\Program Files (x86)\Embarcadero\RAD Studio\10.0\bin64;C:\Users\Public\Documents\RAD Studio\10.0\Bpl\Win64;C:\Program Files (x86)\Embarcadero\RAD Studio\9.0\bin;C:\Users\Public\Documents\RAD Studio\9.0\Bpl;C:\Program Files (x86)\Embarcadero\RAD Studio\9.0\bin64;C:\Users\Public\Documents\RAD Studio\9.0\Bpl\Win64;C:\Program Files (x86)\Embarcadero\RAD Studio\8.0\bin;C:\Users\Public\Documents\RAD Studio\8.0\Bpl;C:\Program Files (x86)\Embarcadero\RAD Studio\7.0\bin;C:\Users\Public\Documents\RAD Studio\7.0\Bpl;C:\Program Files (x86)\CodeGear\RAD Studio\6.0\bin;C:\Users\Public\Documents\RAD Studio\6.0\Bpl;C:\Program Files (x86)\CodeGear\RAD Studio\5.0\bin;C:\Users\Public\Documents\RAD Studio\5.0\Bpl;C:\Windows\Microsoft.NET\Framework\v1.1.4322\;C:\Program Files (x86)\Borland\BDS\4.0\Bin;C:\Program Files (x86)\Borland\Shared\BDE\;C:\Program Files (x86)\Borland\BDS\3.0\Bin;C:\PROGRA~2\Borland\CBUILD~2\Bin;C:\PROGRA~2\Borland\CBUILD~2\Projects\Bpl;C:\PROGRA~2\Borland\DELPHI~2\Projects\Bpl;C:\PROGRA~2\Borland\DELPHI~2\Bin;C:\PROGRA~2\Borland\Delphi5\Projects\Bpl;C:\PROGRA~2\Borland\Delphi5\Bin;C:\PROGRA~2\Borland\CBUILD~1\Projects\Bpl;C:\PROGRA~2\Borland\CBUILD~1\Bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Common Files\Roxio Shared\DLLShared\;C:\Program Files\EmEditor;C:\PROGRA~2\Borland\DELPHI~4\Bin;C:\PROGRA~2\Borland\DELPHI~4\Projects\Bpl;C:\Sources\eac3to;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files (x86)\Windows Kits\8.0\Windows Performance Toolkit\;C:\Program Files (x86)\CineForm\Tools;C:\Program Files (x86)\Intel\OpenCL SDK\3.0\bin\x86;C:\Program Files (x86)\Intel\OpenCL SDK\3.0\bin\x64;C:\Program Files (x86)\Intel\OpenCL SDK\3.0\bin\x86;C:\Program Files (x86)\Intel\OpenCL SDK\3.0\bin\x64;C:\Program Files (x86)\Intel\OpenCL SDK\3.0\bin\x86;C:\Program Files (x86)\Intel\OpenCL SDK\3.0\bin\x64;C:\Program Files (x86)\Intel\OpenCL SDK\3.0\bin\x86;C:\Program Files (x86)\Intel\OpenCL SDK\3.0\bin\x64;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;C:\Users\madshi\Documents\Borland Studio Projects\Bpl;C:\PROGRA~2\Borland\DELPHI~3\Bin;C:\Program Files (x86)\Python27;C:\Program Files (x86)\Python27\Scripts; MINGW = C:\mingw; PROCESSOR_LEVEL = 6; PROCESSOR_IDENTIFIER = Intel64 Family 6 Model 58 Stepping 9, GenuineIntel; DXROOT = C:\Program Files (x86)\Visual Studio 2005 SDK\2007.02\VisualStudioIntegration\Tools\Sandcastle\; PSModulePath = C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules\; NUMBER_OF_PROCESSORS = 8; CommonProgramFiles = C:\Program Files (x86)\Common Files; JAM_TOOLSET = MINGW; ProgramData = C:\ProgramData; ProgramW6432 = C:\Program Files; ProgramFiles = C:\Program Files (x86); BDSCOMMONDIR = C:\Users\Public\Documents\RAD Studio\5.0; FP_NO_HOST_CHECK = NO; TMP = C:\Users\madshi\AppData\Local\Temp; SESSIONNAME = Console; SystemRoot = C:\WINDOWS; CommonProgramW6432 = C:\Program Files\Common Files; LOGONSERVER = \\DEV-PC; USERPROFILE = C:\Users\madshi; APPDATA = D:\Eigene Dateien\AppData; HOMEDRIVE = C:; VS110COMNTOOLS = C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Tools\; USERNAME = madshi; PROCESSOR_ARCHITECTURE = x86; OS = Windows_NT; ComSpec = C:\WINDOWS\system32\cmd.exe; SystemDrive = C:; AMDAPPSDKROOT = C:\Program Files (x86)\AMD APP SDK\2.9\; INTELOCLSDKROOT = C:\Program Files (x86)\Intel\OpenCL SDK\3.0\; ALLUSERSPROFILE = C:\ProgramData
RuntimeVersion = 4.0.30319.34014
Thread Count = 50
Handle Count = 882
VM Size = 474,1 MB
Peak VM Size = 474,1 MB
Working Set Size = 165,2 MB
Max Working Set Size = 1,3 MB
Min Working Set Size = 200 KB
Modules = MediaPlayerDotNet.exe, ntdll.dll, MSCOREE.DLL, KERNEL32.dll, KERNELBASE.dll, ADVAPI32.dll, msvcrt.dll, sechost.dll, RPCRT4.dll, SspiCli.dll, CRYPTBASE.dll, bcryptPrimitives.dll, mscoreei.dll, SHLWAPI.dll, combase.dll, USER32.dll, GDI32.dll, IMM32.DLL, MSCTF.dll, clr.dll, MSVCR120_CLR0400.dll, mscorlib.ni.dll, ole32.dll, kernel.appcore.dll, uxtheme.dll, ADvdDiscHlp1.dll, clrjit.dll, OLEAUT32.dll, System.ni.dll, System.Drawing.ni.dll, System.Windows.Forms.ni.dll, bcrypt.dll, CRYPTSP.dll, rsaenh.dll, comctl32.dll, dwmapi.dll, gdiplus.dll, DWrite.dll, WindowsCodecs.dll, System.Core.ni.dll, shell32.dll, SHCORE.dll, System.Xml.Linq.ni.dll, System.Xml.ni.dll, VideoFrameServicesNative.dll, d3d9.dll, VERSION.dll, aticfx32.dll, atiu9pag.dll, atiumdag.dll, atiumdva.dll, dcomp.dll, winmm.dll, WINMMBASE.dll, cfgmgr32.dll, DEVOBJ.dll, d3dx9_43.dll, D3D9NativeServices.dll, SETUPAPI.dll, WTSAPI32.dll, powrprof.dll, WINSTA.dll, usp10.dll, clbcatq.dll, quartz.dll, LAVSplitter.ax, avformat-lav-55.dll, avutil-lav-52.dll, avcodec-lav-55.dll, libbluray.dll, WS2_32.dll, NSI.dll, sxs.dll, LAVVideo.ax, swscale-lav-2.dll, avfilter-lav-4.dll, qedit.dll, MSVFW32.dll, COMDLG32.dll, CallbackFilter.ax, Microsoft.VisualBasic.ni.dll, System.Management.ni.dll, diasymreader.dll, psapi.dll


===================================

Ein Aufrufziel hat einen Ausnahmefehler verursacht. (Mpdn.Threading)

------------------------------
Program Location:

   bei Mpdn.Threading.TaskThread.InternalInvoke(WorkItem work, Boolean wait)
   bei Mpdn.Threading.TaskThread.Invoke(WaitCallback work, Object state)
   bei Mpdn.VideoPlayer.DirectShowVideo.GetAudioTracks()
   bei MediaPlayerDotNet.MainForm.
()
   bei MediaPlayerDotNet.MainForm.
(String  , Boolean  )
   bei MediaPlayerDotNet.MainForm.
()
   bei MediaPlayerDotNet.MainForm.
(Object  , MouseEventArgs  )
   bei System.Windows.Forms.Control.OnMouseDown(MouseEventArgs e)
   bei System.Windows.Forms.UserControl.OnMouseDown(MouseEventArgs e)
   bei System.Windows.Forms.Control.WmMouseDown(Message& m, MouseButtons button, Int32 clicks)
Quote:
Originally Posted by Zachs View Post
Anyway just to be clear, I'm not trying to make MPDN to be as good as MadVR. Like I said in the OP, it's meant for other things but since my test app was so close to being a standalone media player, I thought I should share it.
That's just fine with me. If I may ask: What purpose are you writing a video renderer for? If you can't say, for whatever reason, that's ok. Just curious...
madshi is offline   Reply With Quote
Old 3rd September 2014, 15:16   #12  |  Link
Zachs
Suptitle, MediaPlayer.NET
 
Join Date: Nov 2001
Posts: 1,670
Ah thanks for the stack trace!

I wasn't checking for media files without audio in one of my methods. Will be fixed in next release.

As for the actual use, I needed a relatively high quality 64-bit (because the host app which I can't say what it is deals with a huge amount of data) video player with support for custom text/bitmap overlays (event driven).
Zachs is offline   Reply With Quote
Old 3rd September 2014, 17:41   #13  |  Link
madshi
Registered Developer
 
Join Date: Sep 2006
Posts: 8,917
Yeah, I was mostly testing with video-only files!

Ah, I see. Kinda painful, though, that you had to sort of reinvent the wheel, just because madVR has no 64bit version yet...
madshi is offline   Reply With Quote
Old 4th September 2014, 01:37   #14  |  Link
Zachs
Suptitle, MediaPlayer.NET
 
Join Date: Nov 2001
Posts: 1,670
Quote:
Originally Posted by madshi View Post
Yeah, I was mostly testing with video-only files!

Ah, I see. Kinda painful, though, that you had to sort of reinvent the wheel, just because madVR has no 64bit version yet...
Yeah you can say that again! I wasn't keen at all on writing my own renderer knowing madVR is exactly what I needed if only it had a 64-bit version.

Anyway it turned out to be a good learning experience. This way I could fix any bugs that we encounter in the field too. There was another concern with regards to madVR -- what is its licensing terms in regards to using it in a commercial product? (not that it matters now but I'm just curious...)
Zachs is offline   Reply With Quote
Old 4th September 2014, 06:36   #15  |  Link
madshi
Registered Developer
 
Join Date: Sep 2006
Posts: 8,917
My plan is to maybe create a "pro" version at some point with some cool extra features. The normal madVR version would still contain all important features and stay freeware, but to get the extra features, users would have to license the pro version. This means that I would benefit from commercial software using/distributing the freeware madVR version (without even paying me anything), because it would improve my chances to get more pro licenses sold to end users.

That's just an idea at this point, though, and not something I plan to do before I reach v1.0.
madshi is offline   Reply With Quote
Old 4th September 2014, 13:51   #16  |  Link
QBhd
QB the Slayer
 
QBhd's Avatar
 
Join Date: Feb 2011
Location: Toronto
Posts: 408
madshi, I think he was asking what are the terms for him to use it in a commercial product...

QB
__________________
QBhd is offline   Reply With Quote
Old 4th September 2014, 14:10   #17  |  Link
madshi
Registered Developer
 
Join Date: Sep 2006
Posts: 8,917
Well, basically what I was saying is that I'm generally open to commercial software using madVR, under certain circumstances even without payment. Of course the details would have to be discussed privately and agreed upon.
madshi is offline   Reply With Quote
Old 4th September 2014, 14:21   #18  |  Link
Milardo
Registered User
 
Join Date: Nov 2008
Posts: 79
Hi, where can i ask for feature requests for this player? Also, is this program portable(no installer)? Does it have capture card support? Can you use 3rd party directshow filters?
Milardo is offline   Reply With Quote
Old 4th September 2014, 15:10   #19  |  Link
Zachs
Suptitle, MediaPlayer.NET
 
Join Date: Nov 2001
Posts: 1,670
You can request features here.

Yes it's portable.

No it doesn't support capture card.

It supports additional directshow filters for audio only. E.g. ac3filter for postprocessing. You can opt for reclock audio renderer too if you have it installed.
Zachs is offline   Reply With Quote
Old 4th September 2014, 16:27   #20  |  Link
Milardo
Registered User
 
Join Date: Nov 2008
Posts: 79
Thanks for replying. I guess, may i request for using 3rd party video directshow filters, and capture card support, specifically a card i have which is not supported by any known media player, it's the roxio game capture hd pro.
Milardo is offline   Reply With Quote
Reply

Tags
direct3d, mpdn, nnedi3, opencl, reclock

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 06:17.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2017, vBulletin Solutions Inc.