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 20th October 2014, 22:50   #201  |  Link
patul
Registered User
 
Join Date: Sep 2005
Posts: 62
I got "Failed to connect filter to graph (Mpdn.VideoPlayer)" exception when tried to use ffdshow raw video decoder as post processing filter. Could you take a look in to it, since I can use this filter in other players? Or I misunderstood the usage of DS filter in your app?

Detailed exception is as per following:

Code:
Unable to cast COM object of type 'System.__ComObject' to interface type 'DirectShowLib.IBaseFilter'. 
This operation failed because the QueryInterface call on the COM component for the interface with IID
 '{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}' failed due to the following error: 
No such interface supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE)).
(Mpdn.VideoPlayer)
If you could add playlist and pixel shader support then it will be great. Thanks
patul is offline   Reply With Quote
Old 20th October 2014, 23:05   #202  |  Link
madshi
Registered Developer
 
Join Date: Sep 2006
Posts: 8,917
Quote:
Originally Posted by BetA13 View Post
finally i can watch movies with madvr but without having teh gpu at 60% all the time...
FWIW, when using MPDN you're not using madVR! MPDN and madVR have nothing to do with each other, except that MPDN is "borrowing" a lot of ideas from madVR.
madshi is offline   Reply With Quote
Old 21st October 2014, 00:02   #203  |  Link
Anime Viewer
Troubleshooter
 
Anime Viewer's Avatar
 
Join Date: Feb 2014
Posts: 327
Quote:
Originally Posted by Zachs View Post
Just a heads up, MPDN v2.7.0 has been released and features 12- and 16-tap Lanczos and Jinc. It's also massively faster. First time I've been able to use Jinc 16-tap (or its equivalent) on my GTX560 without it sounding like a plane taking off!
Render times are definitely lower then reported with the previous version(s) I used, but I don't see any noticeable visual difference between the different tap settings (at least with the content I've tested with). (I was actually afraid it might over sharpen images with 16-taps set, but since it looks like the others that doesn't appear to occur). As a result I'll probably keep it at a 6 or 8 taps setting unless someone can offer a reason I should set it to one of the other tap settings.
__________________
System specs: Sager NP9150 SE with i7-3630QM 2.40GHz, 16 GB RAM, 64-bit Windows 10 Pro, NVidia GTX 680M/Intel 4000 HD optimus dual GPU system. Video viewed on LG notebook screen and LG 3D passive TV.
Anime Viewer is offline   Reply With Quote
Old 21st October 2014, 00:21   #204  |  Link
turbojet
Registered User
 
Join Date: May 2008
Posts: 1,840
+1 on shader support and is there any plans for ivtc and auto hiding caption like how auto hide control bar works?
__________________
PC: FX-8320 GTS250 HTPC: G1610 GTX650
PotPlayer/MPC-BE LAVFilters MadVR-Bicubic75AR/Lanczos4AR/Lanczos4AR LumaSharpen -Strength0.9-Pattern3-Clamp0.1-OffsetBias2.0
turbojet is offline   Reply With Quote
Old 21st October 2014, 00:26   #205  |  Link
Zachs
Suptitle, MediaPlayer.NET
 
Join Date: Nov 2001
Posts: 1,670
Quote:
Originally Posted by patul View Post
I got "Failed to connect filter to graph (Mpdn.VideoPlayer)" exception when tried to use ffdshow raw video decoder as post processing filter. Could you take a look in to it, since I can use this filter in other players? Or I misunderstood the usage of DS filter in your app?

Detailed exception is as per following:

Code:
Unable to cast COM object of type 'System.__ComObject' to interface type 'DirectShowLib.IBaseFilter'. 
This operation failed because the QueryInterface call on the COM component for the interface with IID
 '{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}' failed due to the following error: 
No such interface supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE)).
(Mpdn.VideoPlayer)
If you could add playlist and pixel shader support then it will be great. Thanks
I'll take a look at the error.

Custom pixel shader support is definitely pretty high on my todo list. I am looking to do a prescale and postscale shader. I'm still toying with the idea of whether to incorporate scripting straight into it too - so you could do things like, scale to a much larger image size than display with sharpest scaler, call an external pixel shader to sharpen it further, then scale it back down for display. I'd imagine this to take quite a bit of time to implement so for the first stage I might just do prescale / postscale custom shader. Does madVR do that at the moment?

Quote:
Originally Posted by Anime Viewer View Post
Render times are definitely lower then reported with the previous version(s) I used, but I don't see any noticeable visual difference between the different tap settings (at least with the content I've tested with). (I was actually afraid it might over sharpen images with 16-taps set, but since it looks like the others that doesn't appear to occur). As a result I'll probably keep it at a 6 or 8 taps setting unless someone can offer a reason I should set it to one of the other tap settings.
16-tap causes a lot of ringing (especially noticeable for >200% upscale). Jinc is by nature a much softer scaler than Lanczos so ringing is not as noticeable on the higher order scalers. You can definitely tell the difference for low res (say 320x240) image with high contrast edges that has been blown up to a 1920x1080 screen. If you are happy with 8 taps, by all means use that. The lower it is, the cheaper it is to run (quieter too).

Quote:
Originally Posted by turbojet View Post
+1 on shader support and is there any plans for ivtc and auto hiding caption like how auto hide control bar works?
DXVA Deinterlacing - If there's a small example of how it is done, I'd love to incorporate that into MPDN. I know the API calls I need but I haven't looked into it much yet as all my systems have QuickSync and LAV video decoder does deinterlacing already. Auto hide caption is a great idea. I'll see what I could do.

Last edited by Zachs; 21st October 2014 at 00:33.
Zachs is offline   Reply With Quote
Old 21st October 2014, 01:37   #206  |  Link
Anime Viewer
Troubleshooter
 
Anime Viewer's Avatar
 
Join Date: Feb 2014
Posts: 327
Jinc taps and 64-bit vs 32-bit versions

Quote:
Originally Posted by Zachs View Post
16-tap causes a lot of ringing (especially noticeable for >200% upscale). Jinc is by nature a much softer scaler than Lanczos so ringing is not as noticeable on the higher order scalers. You can definitely tell the difference for low res (say 320x240) image with high contrast edges that has been blown up to a 1920x1080 screen. If you are happy with 8 taps, by all means use that. The lower it is, the cheaper it is to run (quieter too).
I was already aware of the ringing at higher taps settings which madVR did a good job of displaying with its visual effects bar when people change scalers in madVR, but checking the anti-ringing boxes always seem to cancel out that problem (at a hit to render speed), but in MPDN that hit is what I consider insignificant. I'll have to test some 320x240 videos that you mentioned to see if I can see the difference there (usually the lowest resolution video I tend to view are 400p).

Something interesting/strange I noticed in my testing is that 64-bit MPDN seems to render twice as fast as the 32-bit version. (See linked screen shots below). The left image is from the 64-bit MPDN, and the right image is from the 32-bit version (both with all the same settings in MPDN).

http://postimg.org/image/se2558l1r/full/
__________________
System specs: Sager NP9150 SE with i7-3630QM 2.40GHz, 16 GB RAM, 64-bit Windows 10 Pro, NVidia GTX 680M/Intel 4000 HD optimus dual GPU system. Video viewed on LG notebook screen and LG 3D passive TV.
Anime Viewer is offline   Reply With Quote
Old 21st October 2014, 01:46   #207  |  Link
BetA13
Guru3D
 
BetA13's Avatar
 
Join Date: May 2011
Location: Germany
Posts: 121
Quote:
Originally Posted by madshi View Post
FWIW, when using MPDN you're not using madVR! MPDN and madVR have nothing to do with each other, except that MPDN is "borrowing" a lot of ideas from madVR.
ooops...yeah i see now.. my bad, im sorry poor choice of words from my site..
also, i just found out that MPDN is not using 60fps@60hz but 23/29/etc fps@60hz

that also might explain why my gpu usage with MPCHC+madvr is so damn high, haha...its not allways easy to perform 60fps on very High HQ content..

Greetz

Last edited by BetA13; 21st October 2014 at 02:00.
BetA13 is offline   Reply With Quote
Old 21st October 2014, 01:53   #208  |  Link
Zachs
Suptitle, MediaPlayer.NET
 
Join Date: Nov 2001
Posts: 1,670
Quote:
Originally Posted by Anime Viewer View Post
Something interesting/strange I noticed in my testing is that 64-bit MPDN seems to render twice as fast as the 32-bit version. (See linked screen shots below). The left image is from the 64-bit MPDN, and the right image is from the 32-bit version (both with all the same settings in MPDN).

http://postimg.org/image/se2558l1r/full/
Are you sure they are exactly the same settings? 32- and 64-bit have separate config files. I have not noticed this on my machines and it shouldn't make a difference as it's the exact same code for 32- and 64-bit paths. Could be the drivers if both have exactly the same settings.
Zachs is offline   Reply With Quote
Old 21st October 2014, 02:34   #209  |  Link
Anime Viewer
Troubleshooter
 
Anime Viewer's Avatar
 
Join Date: Feb 2014
Posts: 327
Quote:
Originally Posted by Zachs View Post
Are you sure they are exactly the same settings? 32- and 64-bit have separate config files. I have not noticed this on my machines and it shouldn't make a difference as it's the exact same code for 32- and 64-bit paths. Could be the drivers if both have exactly the same settings.
Yes, they are the same settings. I've set them both to Direct3D 10.1 render, unchecked full screen exclusive, set both to the same video bit depth, set both to ordered dithering, and set all scalers to Jinc 6 taps with anti-ringing checked in all.

I was very surprised by it too expecting the same performance from 32 and 64 bit versions, and like you mentioned the only thing I can think of to explain it is the 32-bit vs 64-bit drivers with the 64-bit drivers working better for some reason.
__________________
System specs: Sager NP9150 SE with i7-3630QM 2.40GHz, 16 GB RAM, 64-bit Windows 10 Pro, NVidia GTX 680M/Intel 4000 HD optimus dual GPU system. Video viewed on LG notebook screen and LG 3D passive TV.
Anime Viewer is offline   Reply With Quote
Old 21st October 2014, 02:50   #210  |  Link
Zachs
Suptitle, MediaPlayer.NET
 
Join Date: Nov 2001
Posts: 1,670
Quote:
Originally Posted by Anime Viewer View Post
Yes, they are the same settings. I've set them both to Direct3D 10.1 render, unchecked full screen exclusive, set both to the same video bit depth, set both to ordered dithering, and set all scalers to Jinc 6 taps with anti-ringing checked in all.

I was very surprised by it too expecting the same performance from 32 and 64 bit versions, and like you mentioned the only thing I can think of to explain it is the 32-bit vs 64-bit drivers with the 64-bit drivers working better for some reason.
I see your machine is Optimus equipped. Could be the drivers being optimized a lot more for 64-bit since newer games are mostly 64-bit now. I don't know for sure though, just a guess.
Zachs is offline   Reply With Quote
Old 21st October 2014, 03:33   #211  |  Link
jkauff
Registered User
 
Join Date: Oct 2012
Location: Doylestown, PA in the U.S.A.
Posts: 349
Quote:
Originally Posted by madshi View Post
FWIW, when using MPDN you're not using madVR! MPDN and madVR have nothing to do with each other, except that MPDN is "borrowing" a lot of ideas from madVR.
madshi, maybe you could "borrow" the MPDN feature of allowing the user to choose which version of Direct3D to use. That would allow XP users to continue to use madVR, while others could take advantage of newer technology.
jkauff is offline   Reply With Quote
Old 21st October 2014, 03:55   #212  |  Link
patul
Registered User
 
Join Date: Sep 2005
Posts: 62
Quote:
Originally Posted by Zachs View Post
I'll take a look at the error.

I'd imagine this to take quite a bit of time to implement so for the first stage I might just do prescale / postscale custom shader. Does madVR do that at the moment?
Thank you. Pre-scale/post scale would be enough. madVR has been supporting custom pixel shader since v0.85.0 if I'm not mistaken.

Quote:
Originally Posted by Zachs View Post
DXVA Deinterlacing - If there's a small example of how it is done, I'd love to incorporate that into MPDN.
http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx

+DXVA Deinterlacing, MPDN will help users with sh*tty CPU and GPU (like me) a lot. I even tested it on my 5 years old laptop (Dual core Athlon Neo X2 L335 + ATi Mobility Radeon HD 3400), DirectX 10.1, 16 bit output!!!!!
patul is offline   Reply With Quote
Old 21st October 2014, 04:52   #213  |  Link
Zachs
Suptitle, MediaPlayer.NET
 
Join Date: Nov 2001
Posts: 1,670
Quote:
Originally Posted by patul View Post
Thank you. Pre-scale/post scale would be enough. madVR has been supporting custom pixel shader since v0.85.0 if I'm not mistaken.



http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx

+DXVA Deinterlacing, MPDN will help users with sh*tty CPU and GPU (like me) a lot. I even tested it on my 5 years old laptop (Dual core Athlon Neo X2 L335 + ATi Mobility Radeon HD 3400), DirectX 10.1, 16 bit output!!!!!
How important is pre-scale custom ps? The reason I'm asking is MPDN scales YUV individually to its target size instead of combining them into RGB first (lots of performance benefits). While I could definitely make pre-scale custom ps for MPDN, it would not be compatible with the ps files that expect RGB textures for pre-scale. It would have to be rewritten to work with YUV individually. Postscale is RGB, so there's no problem.

For post-scaled custom PS, I am need some clarifications on the following:

Code:
Existing custom pixel shader parameters:

s0 = scaled texture (RGB)

p0, p1:
#define width   (p0[0])
#define height  (p0[1])
#define counter (p0[2]) // what is this? Increment by 1.0f per frame?
#define clock   (p0[3]) // what is this? Performance counter clock, or video clock in float?
#define px      (p1[0]) //one_over_width (of s0 I presume?)
#define py      (p1[1]) //one_over_height (of s0 I presume?)


MPDN specifics:

y0, u0, v0 = unscaled y, u, v textures
p2: // unscaled luma and chroma sizes (reciprocal, i.e. 1/width, 1/height)
#define rcp_luma_width    (p2[0])
#define rcp_luma_height   (p2[1])
#define rcp_chroma_width  (p2[2])
#define rcp_chroma_height (p2[3])
#define COLORIMETRIC
#define CM_FULL 0
#define CM_601  1
#define CM_709  2
Specifically, I'd like to know what counter and clock params should contain (I assume these are used for PRNGs but some expect their input values to be in certain ranges).

I would also like to add some MPDN specific params. With those parameters, you could basically write your own scalers.
COLORIMETRIC will be assigned CM_FULL/CM_601/CM_709 when the custom PS is compiled, so you could do your own YUV to RGB conversion too!

Last edited by Zachs; 21st October 2014 at 05:26.
Zachs is offline   Reply With Quote
Old 22nd October 2014, 08:38   #214  |  Link
patul
Registered User
 
Join Date: Sep 2005
Posts: 62
Quote:
Originally Posted by Zachs View Post
How important is pre-scale custom ps?
Personally, I only use pre-scale custom ps for color manipulation/effect because it is faster to work with smaller size of pixels on contrary to if do it post-scale. I put sharpening/convolution shaders post-scale.

For the shader parameters, I can't confirm since I don't know either. Sorry. Probably JanWillem32, madshi, or nevcairiel can confirm on these parameters.
patul is offline   Reply With Quote
Old 22nd October 2014, 12:36   #215  |  Link
edison
Registered User
 
Join Date: Dec 2005
Posts: 95
When playing a x264 rgb lossless avi file(http://www.mediafire.com/download/i8...ble_x264.avi):
edison is offline   Reply With Quote
Old 22nd October 2014, 12:40   #216  |  Link
Zachs
Suptitle, MediaPlayer.NET
 
Join Date: Nov 2001
Posts: 1,670
MPDN doesn't support RGB inputs (yet), so it relies on upstream filters (LAV Video Decoder) to convert to one of the 4 supported input formats. In other words, this is expected for RGB encoded videos.

EDIT: Just tested the file myself. Upstream (LAV? Media?) is reporting incorrect YUV colorimetrics. Manually set it to either bt709 or bt601 and you will get correct colors.

Last edited by Zachs; 22nd October 2014 at 13:35.
Zachs is offline   Reply With Quote
Old 22nd October 2014, 13:27   #217  |  Link
Zachs
Suptitle, MediaPlayer.NET
 
Join Date: Nov 2001
Posts: 1,670
Quote:
Originally Posted by patul View Post
I got "Failed to connect filter to graph (Mpdn.VideoPlayer)" exception when tried to use ffdshow raw video decoder as post processing filter. Could you take a look in to it, since I can use this filter in other players? Or I misunderstood the usage of DS filter in your app?

Detailed exception is as per following:

Code:
Unable to cast COM object of type 'System.__ComObject' to interface type 'DirectShowLib.IBaseFilter'. 
This operation failed because the QueryInterface call on the COM component for the interface with IID
 '{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}' failed due to the following error: 
No such interface supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE)).
(Mpdn.VideoPlayer)
If you could add playlist and pixel shader support then it will be great. Thanks
I've just looked into this. I'm not seeing this error here. I could even see ffdshow raw video filter as one of the entries in the filter list.

EDIT: ffdshow version tested: ffdshow_rev4532_20140717_clsid.exe

Last edited by Zachs; 22nd October 2014 at 13:31. Reason: added ffdshow version
Zachs is offline   Reply With Quote
Old 22nd October 2014, 13:34   #218  |  Link
patul
Registered User
 
Join Date: Sep 2005
Posts: 62
Quote:
Originally Posted by Zachs View Post
I've just looked into this. I'm not seeing this error here. I could even see ffdshow raw video filter as one of the entries in the filter list.
Ouch.. that's unfortunate. What is your OS? I've tested on two different hardware and OSes (Win7 and Vista), both gave me the same exception. Thanks anyway for looking into it.
patul is offline   Reply With Quote
Old 22nd October 2014, 13:40   #219  |  Link
Zachs
Suptitle, MediaPlayer.NET
 
Join Date: Nov 2001
Posts: 1,670
Quote:
Originally Posted by patul View Post
Ouch.. that's unfortunate. What is your OS? I've tested on two different hardware and OSes (Win7 and Vista), both gave me the same exception. Thanks anyway for looking into it.
Win7 x64. Not that it matters I don't think.

Try the ffdshow version in my edited reply.
The error message sounds like the coders of that version you are using have forgotten to report one of its interface (IBaseFilter) when queried. The same thing happened with XySubFilter.

The Old New Thing: The ways people mess up IUnknown::QueryInterface
Zachs is offline   Reply With Quote
Old 22nd October 2014, 13:45   #220  |  Link
patul
Registered User
 
Join Date: Sep 2005
Posts: 62
Quote:
Originally Posted by Zachs View Post
Win7 x64. Not that it matters I don't think.

Try the ffdshow version in my edited reply.
The error message sounds like the coders of that version you are using have forgotten to report one of its interface (IBaseFilter) when queried. The same thing happened with XySubFilter.

The Old New Thing: The ways people mess up IUnknown::QueryInterface
Tested with ffdshow_rev4533_20140929_clsid (latest revision) and ffdshow_rev4530_20140209_clsid (previous revision to ffdshow_rev4532_20140717_clsid), both versions threw the exception. I'll try to revert to ffdshow_rev4532_20140717_clsid and report back. Thanks
patul 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 10:02.


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