[WiP] madVR support in MP1 (3 Viewers)

Sebastiii

Development Group
  • Team MediaPortal
  • November 12, 2007
    16,433
    10,254
    France
    France France
    Country flag
    • Thread starter
    • Moderator
    • #1
    Description of Change

    This branch will permit to have madVR renderer to MP1, thanks to Tourettes for this and Madshi.
    This branch when using EVR should be working as actual MP1 1.15 Final.

    upload_2016-10-1_9-19-28.png


    This is a big FEAT / REWORK so get attention about testing, with enough good result and without regression, it surely can go in next MP release.

    Jira Link : [MP1-4781] Adding madVR support - MediaPortal JIRA
    Branch Link: https://github.com/MediaPortal/MediaPortal-1/tree/MP1-4781-FEAT-Adding_madVR_support
    Review: MP1CR-783 Initial support for using madVR as video renderer - Closed
    Wiki docs: To do.

    Steps to install and test
    Installation (latest version on the bottom on the below list)

    Added V399 link :) -> http://tinyurl.com/ybz4sco6 Based on 1.18 Final (this version has more fix than 1.18 official Final release (madVR build 0.92.4 or higher)
    - madVR V399 (Fix threadproc not released for mpc-HC subtitle engine when set device was called)
    - madVR V398 (Rework the sequence of release to avoid exception RCW filter already released)
    - madVR V397 (Comment out AutoLock to avoid deadlock because lock are already set)
    - madVR V396 (WIP fix exception when madVR is released for frame grabber)
    - madVR V395 (Finally found FSE mouse issue, it was related to IMadVRSubclassReplacement)
    - madVR V394 (Add a check against value already released)
    - madVR V393 (Adding back owner on the C# side to avoid strange D3D device reset when clicking with the mouse for MVC 3D mode)
    - madVR V392 (Reverted DeviceState to fix a madVR crash when resolution change or when moving MP window between screen)

    Added V400 link :) -> http://tinyurl.com/y8ps8kug Based on 1.18 Final (this version has more fix than 1.18 official Final release (madVR build 0.92.4 or higher)
    - madVR V400 (Added back IMediaControl stop in C# because on fast playlist change, stop are not always handled and fix typo)

    Added V403 link :) -> http://tinyurl.com/ycltztm4 Based on 1.18 Final (this version has more fix than 1.18 official Final release (madVR build 0.92.4 or higher)
    - madVR V403 (Set the video before running without breaking DXVA FSE)
    - madVR V402 (Seek in a thread to avoid deadlock)
    - madVR V401 (WIP fix DXVA with FSE and adding check if value are enable)

    Added V407 link :) -> Based on 1.18 Final (this version has more fix than 1.18 official Final release (madVR build 0.92.4 or higher)
    - madVR V407 (Enable _commandNotify before release madVR)
    - madVR V406 (Added subtitle detected in list)
    - madVR V405 (Added back code for "pause" issue not always handled when video stutter)
    - madVR V404 (Start grab screenshot in a thread from C++ side)
    Added V407 but upgraded with latest Master changes : (Attached build)

    Added V416 link :) -> http://tinyurl.com/yc4lsfov :p
    - madVR V416 (use _dvdInfo in sync with MP main thread to avoid exception)
    - madVR V415 (don't release graphbuilder too soon to have all codec fully released)
    - madVR V414 (Added another seek call to start in a thread)
    - madVR V413 (Replace previous window by current one)
    - madVR V412 (restore previous windows when releasing texture to avoid null reference exception in GUI)
    - madVR V411 (Another fix when releasing to avoid exception)
    - madVR V409 (possible fix on stop on LiveTV and if dialog are running)
    - madVR V410 (Fix _graphBuilder second release)
    - madVR V408 (Fix exception if stop are send more than one)

    Added V422 installer attached "MediaPortalSetup_1.18.100_madVR_V422.zip" :) (based on the future 1.19 Final)
    * MP1-4781V10 : madVR V422 (Handle audio wave device to match master volume)
    * MP1-4781V10 : madVR V421 (Rework handling of audio device 'Intel Audio' when device is removed/added and added workaround for blackscreen on resume related to FCU '1709')
    * MP1-4781V10 : madVR V420 (rework pause / run code)
    * MP1-4781V10 : madVR V419 (don't resize madVR window for DVD to avoid freeze)
    * MP1-4781V10 : madVR V418 (Another rework for DVD to avoid freeze on resume state and avoid wrong start GUI when start to play DVD)
    * MP1-4781V10 : madVR V417 (DVDPlayer fix seek needed to be trigger in MP Main thread)

    In this V422 edition, we have a fix when audio device is removed from windows and then from MP, to handle the new detection from windows without stopping the plaback; you have/need to uncheck the following option 'stop playback ....' like describe here : [WiP] - madVR support in MP1

    Added V424/V425 installer attached "MediaPortalSetup_1.18.100_madVR_V424.zip / MediaPortalSetup_1.18.100_madVR_V425.zip" :) (based on the future 1.19 Final)
    * MP1-4781V11 : madVR V424 (Blackscreen rework when using DRR)
    * MP1-4781V11 : madVR V423 (Handle null reference exception)
    V425 has a correction for blackscreen on resume (wrong typo from V424)

    Added V427 installer attached "MediaPortalSetup_1.18.100_madVR_V427.zip" :) (based on the future 1.19 Final)
    * MP1-4781V11 : madVR V427 (Removed check that break audio bitstream)
    * MP1-4781V11 : madVR V426 (another tweak for blackscreen issue and check against null reference)

    Added V428 installer attached "MediaPortalSetup_1.18.100_madVR_V428.zip" :) (based on the future 1.19 Final)
    * MP1-4781V11 : madVR V428 (Corrected code for bitstream issue)

    Added V430 installer attached "MediaPortalSetup_1.18.100_madVR_V430.zip" :) (based on the future 1.19 Final)
    * MP1-4781V11 : madVR V430 (disable CreateStateBlock not needed anymore for FCU blackscreen fix)
    * MP1-4781V11 : madVR V429 (Added an option to enable the FCU blackscreen fix)

    Added V433 installer attached "MediaPortalSetup_1.18.100_madVR_V433.zip" :) (based on the future 1.19 Final)
    * MP1-4781V11 : madVR V433 (Trying to fix possible deadlock for pause code)
    * MP1-4781V11 : madVR V432 (Put in back the code to try to avoid blackscreen on stop)
    * MP1-4781V11 : madVR V431 (Trying to resolve null reference on D3D)

    Added V443 installer attached "MediaPortalSetup_1.18.100_madVR_V443.zip" :) (based on the future 1.19 Final)
    * MP1-4781V11 : madVR V443 (Added code to detect E_FAIL)
    * MP1-4781V11 : madVR V442 (log typo)
    * MP1-4781V11 : madVR V441 (another tweak for testing D3D "E_FAIL")
    * MP1-4781V11 : madVR V440 (Trying to handle E_FAILED when display is changed 'WM_DISPLAYCHANGE')
    * MP1-4781V11 : madVR V439 (rework how OnDeviceLost is triggered)
    * MP1-4781V11 : madVR V438 (another test against if madVR filter is already released)
    * MP1-4781V11 : madVR V437 (Fix restore GUI/OSD when using TAB and SBS with the new code when recreated swap chain and correct max calcul area when taskbar is used)
    * MP1-4781V11 : madVR V436 (Added log line)
    * MP1-4781V11 : madVR V435 (Catch access violation exception when filter already released)
    * MP1-4781V11 : madVR V434 (Adding release for code that doesn't attach basicvideo2 to madVR filter)

    Added V445 installer attached "MediaPortalSetup_1.18.100_madVR_V445.zip" :) (based on the future 1.19 Final)
    * MP1-4781V11 : madVR V445 (Trying to handle FontEngineDrawText3D exception)
    * MP1-4781V11 : madVR V444 (Trying to handle blackscreen with VolumeOSD code but not fully working)

    Added V447 installer attached "MediaPortalSetup_1.18.100_madVR_V445.zip" :) (based on the future 1.19 Final)
    * MP1-4781V11 : madVR V447 (Handle audio volume fix in IsMuted)
    * MP1-4781V11 : madVR V446 (Comment out lock because deadlock can happen)

    Added V448 installer attached "MediaPortalSetup_1.18.100_madVR_V448.zip" :) (based on the future 1.19 Final)
    * MP1-4781V11 : madVR V448 (trying FCU fix by suicide form and add exception log)

    Added V450 installer attached "MediaPortalSetup_1.18.100_madVR_V450.zip" :) (based on the future 1.19 Final)
    * MP1-4781V11 : madVR V450 (Rework FCU blackscreen by using an hidden focused windows form and avoid dialog menu on resume)
    * MP1-4781V11 : madVR V449 (another FCU update)

    Added V451 installer attached "MediaPortalSetup_1.18.100_madVR_V451.zip" :) (based on the future 1.19 Final)
    * MP1-4781V11 : madVR V451 (Another FCU update to fix when refresh rate kick in)

    Added V454 installer attached "MediaPortalSetup_1.18.100_madVR_V454.zip" :) (based on the future 1.19 Final)
    * MP1-4781V11 : madVR V454 (Fix CalcMaxClientArea for fullscreen)
    * MP1-4781V11 : madVR V453 (don't destroy current window if it's the same ID on stop)
    * MP1-4781V11 : madVR V452 (Not needed to make MP focused and only trigger some code for madVR and not for EVR)

    Added V457 installer attached "MediaPortalSetup_1.18.100_madVR_V457.zip" :) (based on the future 1.19 Final)
    * MP1-4781V12 : madVR V457 :
    - Added debug log
    - GUIFadeLabel (fix infinite loop that can happen related to V288 code wrongly reverted from MP1-4715)
    - Correctly restore skin in g_player.cs (for example TVGuide broken after toggle fullscreen to windowed)
    - GUIWindow and GUIWindowManager code change related to try to sync in MP main thread call from LoadSkin
    - D3D code change to save backbuffer and location only when closing MP in windowed mode.
    * MP1-4781V12 : madVR V456 (Only use working area for D3D issue for example on AMD user and only while playing a video)
    * MP1-4781V12 : madVR V455 (Fix togglefullscreen because backbuffer was not set correctly, on AMD user we need to use working area)

    Added V458 installer attached "MediaPortalSetup_1.18.100_madVR_V458.zip" :) (based on the future 1.19 Final)
    * MP1-4781V12 : madVR V458 (Disable pause code and trying to catch exception in fontengine)

    Added V460 installer attached "MediaPortalSetup_1.18.100_madVR_V460.zip" :) (based on the future 1.19 Final)
    * MP1-4781V12 : madVR V460 (Restored older code to handle volume OS slider)
    * MP1-4781V12 : madVR V459 (catch rare exception in font engine related to FontEngineAddTexture)

    Added V461 installer attached "MediaPortalSetup_1.18.100_madVR_V461.zip" :) (based on the future 1.19 Final)
    * MP1-4781V12 : madVR V461 (Rework volume handler for Win10 to fix the step by step issue)

    Added V463 installer attached "MediaPortalSetup_1.18.100_madVR_V463.zip" :) (based on the future 1.19 Final)
    * MP1-4781V12 : madVR V463 (workaround for madVR version V.0.92.12 AR aspect ratio not init on RenderOsd)
    * MP1-4781V12 : madVR V462 (Trying to fix long FileExistsCacheThread on MP exit)

    Added V464 installer attached "MediaPortalSetup_1.18.100_madVR_V464.zip" :) (based on the future 1.19 Final)
    * MP1-4781V12 : madVR V464 (Added swapchain on start to avoid old GUI displayed on stop)

    Added V465 installer attached "MediaPortalSetup_1.18.100_madVR_V465.zip" :) (based on the future 1.19 Final)
    * MP1-4781V12 : madVR V465 (another fix AMD user when recreate swap chain (use working area for D3D issue))

    Added Build based on Master installer attached "MediaPortalSetup_1.19.000_2018-03-14-madVR.zip" :)

    Added V468 installer attached "MediaPortalSetup_1.19.000_madVR_V468.zip" :) (based on 1.19 Final)
    * MP1-4781V13 : madVR V468 don't do display change on suspend and send stop only in action for madVR to avoid deadlock on suspend/resume
    * MP1-4781V13 : madVR V467 Catch Exception: System.ArgumentException
    * MP1-4781V13 : madVR V466 (Added paused code back and trying to fix seek issue for TS file)

    Added V471 installer attached "MediaPortalSetup_1.19.000_madVR_V471.zip" :) (based on 1.19 Final)
    * MP1-4781V13 : madVR V471 (trying to fix issue when loading skin and fix issue video to music no GUI)
    * MP1-4781V13 : madVR V470 (comment out hack to fix GUIVolumeOverlay issue when starting video)

    Added V476 installer attached "MediaPortalSetup_1.19.000_madVR_V476.zip" :) (based on 1.19 Final)
    * MP1-4781V13 : madVR V476 (alert that we are stopping to avoid loop, fix for ex TVGuide window on stop)
    * MP1-4781V13 : madVR V475 (catch some exceptions and playback start)
    * MP1-4781V13 : madVR V475 (Rework how to restore GUI to avoid to reset D3D Engine/Device)
    * MP1-4781V13 : madVR V474 (another catch exception on fontEngine and rework how GUI is reset on start.)
    * MP1-4781V13 : madVR V473 (trying to catch an error in FontEngineDrawText3D)

    Added V477 installer attached "MediaPortalSetup_1.19.000_madVR_V477.zip" :) (based on 1.19 Final)
    * MP1-4781V13 : madVR V477 (don't call FontEngine texture when madVR is in bypass way like going to fullscreen / windowed or when resolution change is triggered)

    Added V478 installer attached "MediaPortalSetup_1.19.000_madVR_V478.zip" :) (based on 1.19 Final)
    * MP1-4781V13 : madVR V478 (Added forceRefresh video when toggle fullscreen <> windowed MP GUI)

    Added V479 installer attached "MediaPortalSetup_1.19.000_madVR_V479.zip" :) (based on 1.19 Final)
    * MP1-4781V13 : madVR V479 (rework sequence to avoid to reload GUIWindow on start/stop and use the BlankScreen code to avoid displaying old GUI on stop)

    Added V480 installer attached "MediaPortalSetup_1.19.000_madVR_V480.zip" :) (based on 1.19 Final)
    * MP1-4781V13 : madVR V480 (trying to fix seek and pixel video act like black screen with sound)

    Added V483 installer attached "MediaPortalSetup_1.20.0_madVR_V483.zip" :) (based on 1.20 Final)
    * MP1-4781V14 : madVR V483 : Trying to fix "align left top" on playback start by init fixed value to madVR and comment out previous commit.
    * MP1-4781V14 : madVR V482 : Trying to delay a video window change when a stream has an aspect ratio change.
    * MP1-4781V13 : madVR V481 : (trying to fix deadlock on MediaInfo analyse and trying to avoid when seek in video)

    Added V484 installer attached "MediaPortalSetup_1.20.0_madVR_V484.zip" :) (based on 1.20 Final)
    * MP1-4781V14 : madVR V484 : Avoid black screen when going from madVR to EVR liveTV

    Added V484 installer attached "MediaPortalSetup_1.20.0_madVR_V484_Latest_Master.zip" :) (based on 1.120 Final)
    * MP1-4781V14 : madVR V484 Update against latest master fix.

    Added V485 installer attached "MediaPortalSetup_1.20.0_madVR_V485.zip" :) (based on 1.20 Final)
    * MP1-4781V14 : madVR V485 (Trying back to stop playback on suspend to avoid crash on the resume when media is playing)

    Added V487 installer attached "MediaPortalSetup_1.20.0_madVR_V487.zip" :) (based on 1.20 Final)
    * MP1-4781V14 : madVR V487 (Add DRR change when player goes/leaves fullscreen in later stage to be able to validate settings for profiles)
    * MP1-4781V14 : madVR V486 (Disable the restore refresh rate from C#)

    Added V488 installer attached "MediaPortalSetup_1.20.0_madVR_V488.zip" :) (based on 1.20 Final)
    * MP1-4781V14 : madVR V488 : Reset correct video renderer on stop (when using EVR for LiveTV, when going to a video renderer was kept on EVR and it should be madVR)

    Added V489 installer attached "MediaPortalSetup_1.20.0_madVR_V489.zip" :) (based on 1.20 Final + Master)


    FALL CREATOR UPDATE (1709) WORKAROUND : (Black screen issue)
    So this new option 'Use workaround FCU...' permit to enable/disable the fix for the black screen issue on Fall Creator Update 1709 (FCU), it is not a perfect fix, I mean it works but the screen flicker because to give back MP GUI, the only way found for now is to minimize and restore MP.

    upload_2018-1-9_19-27-38.png


    Updated Auto3D plugin 1.16.0.4 (Added 3D MVC option and fix) :)
    Updated Auto3D plugin 1.16.0.6 (Needed V407 build) :)
    Updated Auto3D plugin 1.16.0.7 (Needed V407 build or higher) :)

    Upgrade doesn't go? (no prob :p)


    1- Start the full installer
    2- Close it
    3- Start Win key + R and type the following :

    Code:
    %temp%\MediaPortal Installation\deploy
    and execute files, the 'package-tvengine.exe' is if you are using the TV part (server or client) and when exe is started, you will have to do next -> next -> next until the end :p



    With this, the upgrade will works :)

    This method works for all FULL installer, this means that if you want to go back to the official release, you can do the same as above.

    Testing
    Upgrade your current 1.15 installation and try :
    Please do not forget to give some feedback with log (also if there is no bug). Thank you!
    That's all

    Sebastiii

    Changelog
    V305: Reworked stop handler to avoid the issue when a dialog start to be displayed on shutdown (for ex Trakt rating).
    V328/329 :
    - The 800% didn't work (under MPC-HC it works for ex), it's related to GPU memory, MP used more GPU memory.
    - Screenshot with OSD/GUI is not scaled when using other value than 100% (need to ask madshi if he can be fixed on the madVR side).
    (Because selecting a value higher than 100%, madVR create the second image to resize it based on the percentage selected value but missing the resize of the OSD/GUI).
    V371/378 :
    - Trying to handle the device reset send by madVR when a resolution change is triggered or when 3D / HDR from windows is activated
    - It should solve the 3D issue for exclusive mode
    - It attempts also to solve a random issue on stop (in fact when madVR is releasing, somehow sometimes and after a while MP get stuck because madVR need to have something displayed on TOP of MP window to fully continue the release, it can be a task manager window/start menu or whatever) so added a thread that will process window manager process to trying to avoid such, right now I have a good result for this :p

    Known issues :
    • 'enable windowed overlay (windows 7 and newer' (rendering / general settings option) should be avoided because it can create the dark screen issue.
    • Flickering can happen on some screen (TVGuide with EPG full filled) (there is a hack to slow down rendering in Viedo Renderer MP config)
    • Some OSD is not refreshed (information from TVSeries, for example, happen with exclusive mode but not always)
    • AtmoLight and screenshot will not work if D3D11 (DX11)/Use another presenter is in use, current code gets only D3D9 (DX9) device interface provided from madVR.
    • Some plugins need to be updated (like OnlineVideos attached in this post)
    • Depend on the madVR setting, the 'disable low latency setting' can avoid displaying GUI (when dithering - Error diffusion option1 or 2 is enabled)
    Settings based on different Win10 version :
     

    Attachments

    Last edited:

    CypherMK

    Test Group
  • Team MediaPortal
  • March 11, 2009
    1,735
    617
    Netherlands Netherlands
    Country flag
    I did hear about this codec, but never used it before. What can I expect quality wise? I mostly use 10 gig 1080p mkv movies and hdtv and web dl for series.
     

    Sebastiii

    Development Group
  • Team MediaPortal
  • November 12, 2007
    16,433
    10,254
    France
    France France
    Country flag
    • Thread starter
    • Moderator
    • #3
    It's a video renderer that recently should support 3D for example but much more :)
    We can find more information on official website : http://madvr.com/ :p
     

    ravenrocks

    Portal Pro
    October 11, 2007
    351
    96
    Country flag
    Thanks, this is great news.
    I have a problem though. The compiled version-number won't allow Argus TV to work. It somehow can't set the correct version the way you have named it so it complains the versions differ. Could this be fixed somehow?
    Works fine with 1.14pre.
     

    kenwonders

    MP Donator
  • Premium Supporter
  • January 19, 2007
    791
    741
    England England
    Country flag
    Can't wait to try this out. Thanks for the efforts as always MP team. Do you think I should remove the ffdshow upscale when using this? I would have thought it would negate it.
     

    Sebastiii

    Development Group
  • Team MediaPortal
  • November 12, 2007
    16,433
    10,254
    France
    France France
    Country flag
    • Thread starter
    • Moderator
    • #6
    Thanks, this is great news.
    I have a problem though. The compiled version-number won't allow Argus TV to work. It somehow can't set the correct version the way you have named it so it complains the versions differ. Could this be fixed somehow?
    Works fine with 1.14pre.
    It's a build for MP (release with number) so for now seems not compatible with argus sorry :(
     

    Sebastiii

    Development Group
  • Team MediaPortal
  • November 12, 2007
    16,433
    10,254
    France
    France France
    Country flag
    • Thread starter
    • Moderator
    • #7
    Can't wait to try this out. Thanks for the efforts as always MP team. Do you think I should remove the ffdshow upscale when using this? I would have thought it would negate it.
    I don't know but surely, the build is for testing and i'm not the one who dev it, but surely some new dev can help with the project :)
     

    azzuro

    Test Group
  • Team MediaPortal
  • May 10, 2007
    9,360
    4,987
    France - IDF
    France France
    Country flag
    Yes, as Sebastiii says, this feature / enhancement, is based on an retired team members, (maybe back one day ... )
    So, Please if you're a develloper, and want contribute to MP, Help us to improve MP, by adding feature and bugfix.

    Thanks to All, and thanks to @tourettes for his work.
     

    kenwonders

    MP Donator
  • Premium Supporter
  • January 19, 2007
    791
    741
    England England
    Country flag
    Have just tested, it works except doesn't return to MP after the video or TV. The Shift1 menu doesn't seem to be populated either. I'll grab some logs..actual playback seemed fine, once I set a reasonable madVR config.
     

    Users Who Are Viewing This Thread (Users: 0, Guests: 2)

    OP Similar threads Forum Replies Date
    T MadVR + LAV Filters, Perfect in MPC-BE, Bad in MP1 MediaPortal 1 Talk 12
    A 1.24.0 1.24 Kills 3D MVC playback on MadVr 1.24 Pre Release 66
    X MadVR Settings Video & DVD 2
    G MadVR, black TV Picture 1.20 Pre Release 1
    S Pause button no longer works with MadVR in 1.19 General Support 4
    C Is there an ideot save how-to implement madVR incl. HDR? Codecs, External Players 1
    Palm_Maniac madVR Frage Allgemeines Supportforum 19
    CyberSimian Support for control.isvisible() in expressions MediaPortal 1 8
    morpheus_xx [WiP] OnlineVideos: New browser based playback support using WebDriver, new Amazon siteutil MediaPortal 2 6
    M 2nd (Touch-)Display Support on MediaPortal 2 such MPDisplay++? General 2
    J Support waipu TV TV-Server 0
    doskabouter WebDAV support OnlineVideos 0
    K Multichannel audio and subtitles for TV not properly supported General Support 4
    CyberSimian Support pack for Ortek VRC-1100 and Hama 00052451 Remotes 6
    cbr954rr [Finished] [MP2-801] Support for tag image extraction Archive 7
    catavolt [solved] FanartHandler - Skin - Holiday and Spotlight support Fanart Handler 5
    C Drive Type is not supported by system Allgemeines Support- und Diskussionsforum 3
    raffe [solved] Export tool and import support from MP-TVSeries & Moving Pictures to MP2 General 22
    morpheus_xx General Testing TVE 3.5 Sat>IP support (MP2 only) TV Engine 47
    E M3U Playlist and EPG Support/Configuration Installation, configuration support 1
    G Mediaportal2 supported formats General 1
    M [solved] Stub Support General 11
    morpheus_xx [WiP] Adding 64 bit support to MP2 MediaPortal 2 15
    A Mediaportal 1.20 support MediaPortal 1 Talk 3
    Lehmden FTP and WebDAV support. MediaPortal 2 0
    Top Bottom