CrendKing / avisynth_filter

DirectShow filters that put AviSynth and VapourSynth into video playing
MIT License
107 stars 8 forks source link

Can't use VapourSynth or open the properties page without crashing #78

Closed nitting closed 1 year ago

nitting commented 1 year ago

Environment

Describe the bug

VapourSynth crashes when attempting to open properties page or when attempting to play anything.

To Reproduce

  1. See above

Extra Info:

Have tried the following players

MPC-HC - experience is as above MPC-BE - when attempting to play a video or open properties, mpc-be crashes quietly

No issues with AviSynth but I'm attempting to use RIFE with SVP hence the reason i'm trying to use vapoursynth (i don't think avisynth supports it?) SVP RIFE

Can provide more information as needed, have read through a lot trying to figure this out but couldn't really find anything, #52 sounds familiar but i'm not using a custom script or anything

CrendKing commented 1 year ago

Since AviSynth works, it's likely caused by your VapourSynth installation. Make sure VS dir is in your PATH, and it has access to the Python installation.

nitting commented 1 year ago

I installed vapoursynth through the installer on their site and then also registered all of the .ax files in the releases of this, my python 3.8(.10) is installed under a troublesome directory - C:/Program Files but i've ran the following to try and fix any permission issues

C:\Program Files>takeown /f Python38 /r
C:\Program Files>icacls Python38 /reset /T

Have also double checked my user path and can confirm that vapoursynth/core is in my user path (have also added just vapoursynth and also copy pasted it to desktop and added that to path to confirm it's not a permissions error with C:/Program Files)

my system path has the following as well

C:\Program Files\Python38\Scripts\
C:\Program Files\Python38\
C:\Program Files\VapourSynth\core
C:\Program Files\VapourSynth\vsrepo

does it matter where i register the .ax files from? i've just extracted onto a desktop folder and ran install.cmd as admin

nitting commented 1 year ago

FWIW i can use SVP with RIFE via MPV, not sure if this goes via vapoursynth or other though

CrendKing commented 1 year ago

Since you can't generate log, could you please follow How to debug to see what happens? You could use the binary from https://github.com/CrendKing/avisynth_filter/actions/runs/3036150392 and the latest source code. Since you mention you can register the ax files, you will need to change the .vscode\launch.json file with something like

"program": "<path_to_mpc_hc>",
"args": ["<path_to_video_file"],

When the program breaks, if you don't know what to do, feel free to just post screenshot and I'll guide you.

nitting commented 1 year ago

i'll have a look in the jetbrains equivalent (probably clion?) sometime tomorrow, appreciate the assistance and will keep you updated

nitting commented 1 year ago

hi @CrendKing

the bottom is the debug log when attempting to run mpc-hc via vscode debugging

other info that may or may not help: image image

-------------------------------------------------------------------
You may only use the C/C++ Extension for Visual Studio Code
with Visual Studio Code, Visual Studio or Visual Studio for Mac
software to help you develop and test your applications.
-------------------------------------------------------------------
Loaded 'C:\Program Files\MPC-HC\mpc-hc64.exe'.
Loaded 'C:\Windows\System32\ntdll.dll'.
Loaded 'C:\Windows\System32\kernel32.dll'.
Loaded 'C:\Windows\System32\KernelBase.dll'.
Loaded 'C:\Windows\System32\apphelp.dll'.
Loaded 'C:\Windows\System32\crypt32.dll'.
Loaded 'C:\Windows\System32\ucrtbase.dll'.
Loaded 'C:\Windows\System32\bcrypt.dll'.
Loaded 'C:\Windows\WinSxS\amd64_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.19041.1706_none_919e8e54cc8d4ca1\GdiPlus.dll'.
Loaded 'C:\Windows\System32\winmm.dll'.
Loaded 'C:\Windows\System32\uxtheme.dll'.
Loaded 'C:\Windows\System32\user32.dll'.
Loaded 'C:\Windows\System32\msvcrt.dll'. 
Loaded 'C:\Windows\System32\msvcrt.dll'. 
Loaded 'C:\Windows\System32\msvcrt.dll'.
Unloaded 'C:\Windows\System32\msvcrt.dll'.
Unloaded 'C:\Windows\System32\msvcrt.dll'.
Loaded 'C:\Windows\System32\win32u.dll'.
Loaded 'C:\Windows\System32\combase.dll'. 
Loaded 'C:\Windows\System32\combase.dll'.
Unloaded 'C:\Windows\System32\combase.dll'.
Loaded 'C:\Windows\System32\dwmapi.dll'.
Loaded 'C:\Windows\System32\gdi32.dll'.
Loaded 'C:\Windows\System32\rpcrt4.dll'.
Loaded 'C:\Windows\System32\gdi32.dll'.
Unloaded 'C:\Windows\System32\gdi32.dll'.
Loaded 'C:\Windows\System32\gdi32full.dll'.
Loaded 'C:\Windows\System32\advapi32.dll'.
Loaded 'C:\Windows\System32\msvcp_win.dll'.
Loaded 'C:\Windows\System32\winspool.drv'.
Loaded 'C:\Windows\System32\msimg32.dll'.
Loaded 'C:\Windows\System32\sechost.dll'.
Loaded 'C:\Windows\System32\shell32.dll'.
Loaded 'C:\Windows\System32\shlwapi.dll'.
Loaded 'C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.19041.1110_none_60b5254171f9507e\comctl32.dll'.
Loaded 'C:\Windows\System32\ole32.dll'.
Loaded 'C:\Windows\System32\oleaut32.dll'.
Loaded 'C:\Windows\System32\ws2_32.dll'.
Loaded 'C:\Windows\System32\oledlg.dll'.
Loaded 'C:\Windows\System32\imm32.dll'.
Loaded 'C:\Windows\System32\oleacc.dll'.
Loaded 'C:\Windows\System32\wininet.dll'.
Loaded 'C:\Windows\System32\d3d9.dll'.
Loaded 'C:\Windows\System32\version.dll'.
Loaded 'C:\Windows\System32\windows.storage.dll'.
Loaded 'C:\Windows\System32\kernel.appcore.dll'.
Loaded 'C:\Windows\System32\wldp.dll'.
Loaded 'C:\Program Files\MPC-HC\CrashReporter\crashrpt.dll'.
Loaded 'C:\Windows\System32\avrt.dll'.
Loaded 'C:\Windows\System32\bcryptprimitives.dll'.
Loaded 'C:\Program Files (x86)\RivaTuner Statistics Server\RTSSHooks64.dll'. Module was built without symbols.
Loaded 'C:\Windows\System32\setupapi.dll'.
Loaded 'C:\Windows\System32\cfgmgr32.dll'.
Loaded 'C:\Windows\System32\clbcatq.dll'.
Loaded 'C:\Windows\System32\SHCore.dll'.
Loaded 'C:\Windows\System32\WindowsCodecs.dll'.
Loaded 'C:\Windows\System32\profapi.dll'.
Loaded 'C:\Windows\System32\msctf.dll'.
Loaded 'C:\Windows\System32\TextShaping.dll'.
Loaded 'C:\Windows\System32\DataExchange.dll'.
Loaded 'C:\Windows\System32\d3d11.dll'.
Loaded 'C:\Windows\System32\dcomp.dll'.
Loaded 'C:\Windows\System32\dxgi.dll'.
Loaded 'C:\Windows\System32\twinapi.appcore.dll'.
Loaded 'C:\Windows\System32\iertutil.dll'.
Loaded 'C:\Windows\System32\sspicli.dll'.
Loaded 'C:\Windows\System32\OnDemandConnRouteHelper.dll'.
Loaded 'C:\Windows\System32\winhttp.dll'.
Loaded 'C:\Windows\System32\mswsock.dll'.
Loaded 'C:\Windows\System32\IPHLPAPI.DLL'.
Loaded 'C:\Windows\System32\winnsi.dll'.
Loaded 'C:\Windows\System32\nsi.dll'.
Loaded 'C:\Windows\System32\TextInputFramework.dll'.
Loaded 'C:\Windows\System32\CoreUIComponents.dll'.
Loaded 'C:\Windows\System32\CoreMessaging.dll'.
Loaded 'C:\Windows\System32\ntmarta.dll'.
Loaded 'C:\Windows\System32\WinTypes.dll'. 
Loaded 'C:\Windows\System32\WinTypes.dll'.
Unloaded 'C:\Windows\System32\WinTypes.dll'.
Loaded 'C:\Windows\System32\wtsapi32.dll'.
Loaded 'C:\Windows\System32\winsta.dll'.
Unloaded 'C:\Windows\System32\wtsapi32.dll'.
Loaded 'C:\Program Files (x86)\DisplayFusion\Hooks\AppHook64_074BFBEC-CEA4-4FFD-A87C-9F5C1D1A9B24.dll'. Module was built without symbols.
Unloaded 'C:\Program Files (x86)\DisplayFusion\Hooks\AppHook64_074BFBEC-CEA4-4FFD-A87C-9F5C1D1A9B24.dll'.
Loaded 'C:\Program Files (x86)\DisplayFusion\Hooks\AppHook64_074BFBEC-CEA4-4FFD-A87C-9F5C1D1A9B24.dll'. Module was built without symbols.
Loaded 'C:\Program Files\MPC-HC\mpciconlib.dll'.
Loaded 'C:\Windows\System32\quartz.dll'.
Loaded 'C:\Windows\System32\ExplorerFrame.dll'.
Unloaded 'C:\Program Files\MPC-HC\mpciconlib.dll'.
clientcore\windows\dwm\dwmapi\attribute.cpp(109)\dwmapi.dll!00007FFCEDE54BEC: (caller: 00000237CA15E29B) LogHr(1) tid(5ca8) 80070006 The handle is invalid.
Loaded 'C:\Windows\System32\devenum.dll'.
Loaded 'C:\Program Files\MPC-HC\LAVFilters64\LAVSplitter.ax'.
Loaded 'C:\Program Files\MPC-HC\LAVFilters64\libbluray.dll'.
Loaded 'C:\Program Files\MPC-HC\LAVFilters64\avutil-lav-57.dll'.
Loaded 'C:\Program Files\MPC-HC\LAVFilters64\avcodec-lav-59.dll'.
Loaded 'C:\Program Files\MPC-HC\LAVFilters64\avformat-lav-59.dll'.
Loaded 'C:\Program Files\MPC-HC\LAVFilters64\swresample-lav-4.dll'.
Loaded 'C:\Windows\System32\ncrypt.dll'.
Loaded 'C:\Windows\System32\ntasn1.dll'.
onecore\com\combase\dcomrem\resolver.cxx(2299)\combase.dll!00007FFCF23CE3AD: (caller: 00007FFCF23CB29E) ReturnHr(1) tid(5c0) 80040154 Class not registered
onecore\com\combase\dcomrem\resolver.cxx(2507)\combase.dll!00007FFCF23CB2C6: (caller: 00007FFCF23CDC15) ReturnHr(2) tid(5c0) 80040154 Class not registered
Loaded 'C:\Program Files\MPC-HC\LAVFilters64\LAVVideo.ax'.
Loaded 'C:\Program Files\MPC-HC\LAVFilters64\avfilter-lav-8.dll'.
Loaded 'C:\Program Files\MPC-HC\LAVFilters64\swscale-lav-6.dll'.
Loaded 'C:\Windows\System32\dxva2.dll'.
Loaded 'C:\Windows\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_246e95e4066041ad\nvldumdx.dll'.
Loaded 'C:\Windows\System32\msasn1.dll'.
Loaded 'C:\Windows\System32\cryptnet.dll'.
Loaded 'C:\Windows\System32\drvstore.dll'.
Loaded 'C:\Windows\System32\devobj.dll'.
Loaded 'C:\Windows\System32\cryptbase.dll'.
Loaded 'C:\Windows\System32\wintrust.dll'.
Loaded 'C:\Windows\System32\imagehlp.dll'.
Loaded 'C:\Windows\System32\cryptsp.dll'.
Loaded 'C:\Windows\System32\rsaenh.dll'.
Loaded 'C:\Windows\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_246e95e4066041ad\nvd3dumx.dll'.
Loaded 'C:\Windows\System32\ResourcePolicyClient.dll'.
Unloaded 'C:\Windows\System32\ResourcePolicyClient.dll'.
Loaded 'C:\Windows\System32\DXCore.dll'.
Loaded 'C:\Users\user\Desktop\avisynth_filter-1.4.4\debug\vapoursynth_filter_64.ax'. Symbols loaded.
Loaded 'C:\Windows\System32\comdlg32.dll'.
Loaded 'C:\Program Files\VapourSynth\core\vapoursynth.dll'. Symbols loaded.
Loaded 'C:\Windows\System32\vcruntime140_1.dll'.
Loaded 'C:\Windows\System32\msvcp140.dll'.
Loaded 'C:\Windows\System32\vcruntime140.dll'.
Loaded 'C:\Program Files\VapourSynth\core\vsscript.dll'.
Loaded 'C:\Program Files\Python38\python38.dll'.
Exception thrown at 0x00007FFCF0BA4FD9 in mpc-hc64.exe: Microsoft C++ exception: char at memory location 0x0000007C2F0FBEC0.

CALL STACK:

win32u.dll!00007ffcf09aa104() (Unknown Source:0)
user32.dll!00007ffcf297078e() (Unknown Source:0)
mpc-hc64.exe!00007ff67c023287() (Unknown Source:0)
mpc-hc64.exe!00007ff67c30e139() (Unknown Source:0)
mpc-hc64.exe!00007ff67c531677() (Unknown Source:0)
mpc-hc64.exe!00007ff67c496086() (Unknown Source:0)
kernel32.dll!00007ffcf14c7034() (Unknown Source:0)
ntdll.dll!00007ffcf2f826a1() (Unknown Source:0)
nitting commented 1 year ago

continuing from that exception also raises this exception


Exception thrown at 0x00007FFC8BDFC512 (vapoursynth_filter_64.ax) in mpc-hc64.exe: 0xC0000005: Access violation reading location 0x0000000000000010.

so it might be a permissions problem afterall(i have no idea), just not sure where

image

not sure if this helps as well: image

CrendKing commented 1 year ago

Thanks for the info. I managed to reproduce the issue. So it seems to be an installation problem of VapourSynth. If I use the installers to install VS, I can't load VSScript.dll. If I install the portable version of VS and embeddable Python 3.10 (extract all files over the VS directory), it works. It looks like the install version of VS lacks some files (e.g. vapoursynth.cp310-win_amd64.pyd) that VPSF requires. Can you try?

Note that VPSF hardcodes to link against the Python 3.10 version of VSScript. You should not use Python 3.8 (that's mostly for backward compatibility against legacy system such as Windows 7).

nitting commented 1 year ago

Note that VPSF hardcodes to link against the Python 3.10 version of VSScript. You should not use Python 3.8 (https://github.com/vapoursynth/vapoursynth/issues/858#issuecomment-1099074652).

i had python 3.8 largely uninstalled until the vapoursynth installer only offered installing through python 3.8 and not populating 3.9/3.10 (which are both installed as well)

will try out the portable version shortly

CrendKing commented 1 year ago

Of course my repro could just look similar but caused by entirely different reason. So I improved the error message that my root causes would show, with https://github.com/CrendKing/avisynth_filter/actions/runs/3043737448. If portable VS solves your problem, then we are good. If not, try that build see if you can see an error message box.

not populating 3.9/3.10 (which are both installed as well)

It could be related to how VS (fails to) detects Python installations via registry.

nitting commented 1 year ago

this is the error i'm getting now (and then the same one in the OP) when running direct from mpc-hc and trying to open the properties page (or play a file)

image

otherwise when debugging through vscode i get a popup titled RegSvr32

The module <path_to_vapoursynth64.ax> was loaded but the call to DllRegisterServer failed with error code 0x80070005.
nitting commented 1 year ago

i downloaded the embedded python + portable VS and extracted (and overwrote) my existing VS installation, should i just extract it to somewhere else and add it to path instead? do i need to remove the existing VS's from path as well?

CrendKing commented 1 year ago

That message is what I just added. So most likely I repro'd your issue.

Extract the portable VS and Python to a different directory, add to PATH and make sure it appears earlier. Once you verify it working, then feel free to uninstall existing VS.

nitting commented 1 year ago

not really sure how to verify it as working as it's never really worked for me in the first place, i installed the portable vs and python to a diff directory and added it to the top of path (with python overwriting any VS files) but still unable to start mpc-hc, the error i'm getting now is

Exception thrown at 0x00007FFCF0BA4FD9 in mpc-hc64.exe: Microsoft C++ exception: [rethrow] at memory location 0x0000000000000000.

image

nitting commented 1 year ago

nevermind, i restarted vscode and uninstalled vapoursynth via windows "uninstall a program" and it looks like it's working now

is it fine to continue using this debug.ax file? i'm too lazy to change it 😂

edit - still getting an error with RIFE but i don't think it'll be related to this repo, appreciate all the help, thank you!

CrendKing commented 1 year ago

You need to restart the "application environment" once you change PATH. Easiest way is logout-login.

is it fine to continue using this debug.ax file? i'm too lazy to change it

Other than being slightly slower, it's not big difference.