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. |
![]() |
#1 | Link |
Registered User
Join Date: Mar 2021
Posts: 40
|
Can a filter (e.g. QTGMC ) be skipped at run-time?
I have a script that feeds my player like this:
Code:
FFMS2("s.ts") QTGMC() my question: Is it possible to skip/ignore QTGMC filter when the player is seeking/paused? OR Is it possible to change and apply the script at run-time? Last edited by Mitra; 13th February 2022 at 17:21. |
![]() |
![]() |
![]() |
#2 | Link |
Registered User
Join Date: Jan 2018
Posts: 1,814
|
Here is fastest ver of QTGMC:
https://github.com/Dogway/Avisynth-S...ods/QTGMC.avsi |
![]() |
![]() |
![]() |
#3 | Link |
Registered User
Join Date: Mar 2021
Posts: 40
|
@kedautinh12, Thanks for your reply, I use the same but not fast enough to seek. (my source is 1080i50)
I need to control the Avisynth filters from my player, but I do not know how. Last edited by Mitra; 13th February 2022 at 21:06. |
![]() |
![]() |
![]() |
#4 | Link |
HeartlessS Usurer
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,698
|
From RT_Stats,
Code:
RT_GetProcessName(bool "parent"=false,bool "debug"=false) Returns string, name of current process eg "VirtualDubMod.exe" or "AvsPMod.exe" or name of parent process (the one that started our process eg "Explorer.exe"). Debug outputs some info to DebugView. Returns String, if error returns -ve int error code. Untested Code:
FFMS2("s.ts") Proc = RT_GetProcessName() Assert(Proc.IsString,"RT_GetProcessName, Error="+String(Proc)) (Proc!="PotPlayer.Exe") ? QTGMC() : Last Return Last
__________________
I sometimes post sober. StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace "Some infinities are bigger than other infinities", but how many of them are infinitely bigger ??? Last edited by StainlessS; 13th February 2022 at 21:38. |
![]() |
![]() |
![]() |
#5 | Link | |
Registered User
Join Date: Mar 2021
Posts: 40
|
Quote:
|
|
![]() |
![]() |
![]() |
#6 | Link |
HeartlessS Usurer
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,698
|
If running in PotPlayer then it dont call QTGMC(), if not then does call QTGMC().
you would have to test against all your player process names. (Potplayer [proc name PotPlayer.Exe] is a media player) Process name is the one shown via Task Manager, or CTRL/SHIFT/ESCape. Or Code:
FFMS2("s.ts") Proc = RT_GetProcessName() Assert(Proc.IsString,"RT_GetProcessName, Error="+String(Proc)) # check for Error getting Process name (Proc=="PotPlayer.Exe" || Proc=="MPC-HC (x64).Exe") ? Last : QTGMC() # if "PotPlayer" or "MPC-HC (x64)" then skip QTGMC() else call it Return Last
__________________
I sometimes post sober. StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace "Some infinities are bigger than other infinities", but how many of them are infinitely bigger ??? Last edited by StainlessS; 13th February 2022 at 21:47. |
![]() |
![]() |
![]() |
#7 | Link | |
Registered User
Join Date: Mar 2021
Posts: 40
|
Quote:
I mean : I wrote my video player using ffmpeg API that feeds by Avisynth, now how can I say to the script something like this : if (my player is playing) {return QTGMC} else if (my player is paused/seeking) {return Last } sorry for my bad English. Last edited by Mitra; 13th February 2022 at 22:11. |
|
![]() |
![]() |
![]() |
#9 | Link |
HeartlessS Usurer
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,698
|
OK, you want to know if seeking or whatever, sorry cant help.
[Dont think you are going to have much luck with that] (I had read your post earlier, but forgot your requirement, I only posted after kedautinh12 post, and did not re-read requirement)
__________________
I sometimes post sober. StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace "Some infinities are bigger than other infinities", but how many of them are infinitely bigger ??? |
![]() |
![]() |
![]() |
#10 | Link | |
Registered User
Join Date: Mar 2021
Posts: 40
|
Quote:
![]() I wish I could send keyboard keys to filters at run-time to control them. ![]() |
|
![]() |
![]() |
![]() |
#11 | Link |
Registered User
Join Date: Dec 2001
Posts: 1,216
|
If its a player that you wrote yourself, is it possible to have it load two scripts? One of the scripts would have QTGMC disabled, and you would pull frames from that when seeking. Then when you begin playback, swap to the other script. Not sure if its feasible, but just an idea.
|
![]() |
![]() |
![]() |
#12 | Link | |
Registered User
Join Date: Mar 2021
Posts: 40
|
Quote:
Thanks for the idea, but I've done this before, and unfortunately it takes about 0.7 second when loading and replacing the sources / scripts. |
|
![]() |
![]() |
![]() |
#14 | Link | |
Registered User
Join Date: Mar 2021
Posts: 40
|
Quote:
I'm curious to know if this can be done with Avisynth or not,but I'm disappointed. Last edited by Mitra; 13th February 2022 at 23:23. |
|
![]() |
![]() |
![]() |
#15 | Link |
Registered User
Join Date: Dec 2001
Posts: 1,216
|
Its a little curious that you can play the video in realtime with qtgmc but the seeking performance is not good enough. I wouldn't expect seeking to use that much more resources than playback, but maybe I'm wrong.
Have you tried tweaking the qtgmc settings to make it perform faster, or is it possible to use a quicker filter instead of qtgmc? |
![]() |
![]() |
![]() |
#16 | Link | |
Registered User
Join Date: Mar 2021
Posts: 40
|
Quote:
also, tried some another filters, but the qtgmc has better quality for what i want. Last edited by Mitra; 13th February 2022 at 23:37. |
|
![]() |
![]() |
![]() |
#17 | Link |
Registered User
Join Date: Mar 2021
Posts: 40
|
These are my questions:
Can a filter (e.g. QTGMC ) be skipped/ignored at run-time? OR Is it possible to skip/ignore QTGMC filter when the player is seeking/paused? OR Is it possible to change and apply the script at run-time? But unfortunately, their answer seems to be NO. I compiled Avisynth+ CUDA to get better performance, but could not use qtgmc please see this my post. Last edited by Mitra; 13th February 2022 at 23:52. |
![]() |
![]() |
![]() |
#18 | Link | |
Formerly davidh*****
Join Date: Jan 2004
Posts: 2,456
|
Quote:
Code:
source = AviSource("source.avi") _preview = source return source.QTGMC() |
|
![]() |
![]() |
![]() |
#19 | Link |
Registered User
Join Date: Jan 2018
Posts: 1,814
|
If you use Avs cuda, you can try KTGMC
https://github.com/pinterf/AviSynthC...er/TestScripts Or you can try another faster filter like yadifmod2: https://github.com/Asd-g/yadifmod2 BWDIF: https://github.com/Asd-g/AviSynth-BWDIF |
![]() |
![]() |
![]() |
#20 | Link | |
Registered User
Join Date: Mar 2021
Posts: 40
|
Quote:
|
|
![]() |
![]() |
![]() |
Tags |
avisynth, filter, qtgmc, video |
Thread Tools | Search this Thread |
Display Modes | |
|
|