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 > Capturing and Editing Video > Avisynth Development

Reply
 
Thread Tools Search this Thread Display Modes
Old 3rd November 2020, 23:35   #321  |  Link
gispos
Registered User
 
Join Date: Oct 2018
Location: Germany
Posts: 996
Quote:
Originally Posted by FranceBB View Post
Same.

This returns unhandled C++ exception:

Ah, Ferenc is here.
I'm running Avisynth+ 3.6.1 r3300 on x86 under Windows XP with PAE turned on and 32 GB of RAM.
Does that work for you now with MP_Pipeline?
If not then my posting was a bump
__________________
Live and let live
gispos is offline   Reply With Quote
Old 4th November 2020, 08:05   #322  |  Link
FranceBB
Broadcast Encoder
 
FranceBB's Avatar
 
Join Date: Nov 2013
Location: Royal Borough of Kensington & Chelsea, UK
Posts: 2,883
Not really...
I'm still stuck...

EDIT: For the sake of avoid a potential Windows-related thing, I tried the very same script on Windows 10 x64 Enterprise with the very same version of MPP and AVS+; same result, unhandled C++ exception...
Let's see if great master Ferenc is gonna jump on this one and come to rescue...

Last edited by FranceBB; 4th November 2020 at 08:09.
FranceBB is offline   Reply With Quote
Old 4th November 2020, 11:15   #323  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 2,309
Quote:
Originally Posted by FranceBB View Post
Not really...
I'm still stuck...

EDIT: For the sake of avoid a potential Windows-related thing, I tried the very same script on Windows 10 x64 Enterprise with the very same version of MPP and AVS+; same result, unhandled C++ exception...
Let's see if great master Ferenc is gonna jump on this one and come to rescue...
You know well if a problem is unexplainable than after hesitating a bit, sooner or later I can't resist and dig into the mistery.

So I have put some debugging into MP_Pipeline.
The error comes from parsing the inherit block (my new error message, much better than unknown exception).
"Error in regex library while copying 'inherit block':
regex_error(error_stack): There was insufficient memory to determine whether the regular expression could match the specified character sequence"

Parsing is done with the standard std::regex C++ library.

Pattern is
^\s*### inherit start ###\s*$(?:.|\s)*?^\s*### inherit end ###\s*$

Probably this pattern is too complex for the engine to analyze against the source. Right now I have not any clue about the workaround.

This is what I have found about the topic.
https://stackoverflow.com/questions/...ultiline-match

edit: of course one can do it w/o involving the regex library, though this present method is more elegant (but fails)

Last edited by pinterf; 4th November 2020 at 14:24. Reason: fix pattern
pinterf is offline   Reply With Quote
Old 4th November 2020, 18:18   #324  |  Link
gispos
Registered User
 
Join Date: Oct 2018
Location: Germany
Posts: 996
Quote:
Originally Posted by pinterf View Post
Parsing is done with the standard std::regex C++ library.

Pattern is
^\s*### inherit start ###\s*$(?:.|\s)*?^\s*### inherit end ###\s*$

Probably this pattern is too complex for the engine to analyze against the source.
Could that have something to do with the fact that I get strange errors when I pass an Ansi String with 'Eval'.
I think I didn't have any problems with older Avisynth versions without 'Plus', but I can also be wrong.
__________________
Live and let live
gispos is offline   Reply With Quote
Old 11th November 2020, 19:29   #325  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 2,309
No, those long inherit sections are not affecting Eval. Nevertheless I have already fixed this error (release later, patience please)
pinterf is offline   Reply With Quote
Old 13th November 2020, 22:58   #326  |  Link
gispos
Registered User
 
Join Date: Oct 2018
Location: Germany
Posts: 996
Quote:
Originally Posted by pinterf View Post
No, those long inherit sections are not affecting Eval. Nevertheless I have already fixed this error (release later, patience please)
Too bad.
I am sure that I opened Avisynth scripts with 'Eval' back then. After an update to a newer version (I think it was one of the first MT versions at that time),
I could only open scripts with AviSource, depending on the content. The current Avisynth versions are at war with Ansi Strings.

Edit:
Quote:
Originally Posted by pinterf View Post
...Nevertheless I have already fixed this error (release later, patience please)
I don't know if I got it right. Have you already fixed something in this regard?
__________________
Live and let live

Last edited by gispos; 13th November 2020 at 23:21.
gispos is offline   Reply With Quote
Old 13th November 2020, 23:31   #327  |  Link
FranceBB
Broadcast Encoder
 
FranceBB's Avatar
 
Join Date: Nov 2013
Location: Royal Borough of Kensington & Chelsea, UK
Posts: 2,883
Just for the sake of testing, I tested the very same script with the new Avisynth Test 4 version and it still behaves the same.

By the way and totally unrelated, ConvertBits() no longer throws an error for 8-16 when the input = output bit depth correctly!
FranceBB is offline   Reply With Quote
Old 14th November 2020, 07:21   #328  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 2,309
Yes, fixed the crash by not using regex. It is not avisynth related. (On my machine at the moment, I have to cleanup the source before commiting it and release)
pinterf is offline   Reply With Quote
Old 16th November 2020, 09:29   #329  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 2,309
New version, download v0.22
Code:
Fix crash when there were too many characters (over some hundred) in script between
inherit start and inherit end markers (regex library limitation)
pinterf is offline   Reply With Quote
Old 16th November 2020, 18:24   #330  |  Link
FranceBB
Broadcast Encoder
 
FranceBB's Avatar
 
Join Date: Nov 2013
Location: Royal Borough of Kensington & Chelsea, UK
Posts: 2,883
Thanks!
Now I no longer have an unhandled C++ exception and I get an error message from all the scripts.

Code:
MP_Pipeline("""
video1=FFVideoSource("I:\temp\Raw Canon EOS R\20190806_1220_001.MP4")
### export clip: video1
### ###
video2=FFVideoSource("I:\temp\Raw Canon EOS R\20190806_1226_001.MP4")
### export clip: video2
### pass clip: video1
### ###
video3=FFVideoSource("I:\temp\Raw Canon EOS R\20190807_2005_001.MP4")
### export clip: video3
### pass clip: video1, video2
### ###
video4=FFVideoSource("I:\temp\Raw Canon EOS R\20190807_2008_001.MP4")
### export clip: video4
### pass clip: video1, video2, video3
### ###
video5=FFVideoSource("I:\temp\Raw Canon EOS R\20190807_2010_001.MP4")
### export clip: video5
### pass clip: video1, video2, video3, video4
### ###
video6=FFVideoSource("I:\temp\Raw Canon EOS R\20190807_2011_001.MP4")
### export clip: video6
### pass clip: video1, video2, video3, video4, video5
### ###
video7=FFVideoSource("I:\temp\Raw Canon EOS R\20190807_2013_001.MP4")
### export clip: video7
### pass clip: video1, video2, video3, video4, video5, video6
### ###
video8=FFVideoSource("I:\temp\Raw Canon EOS R\20190808_1014_001.MP4")
### export clip: video8
### pass clip: video1, video2, video3, video4, video5, video6, video7
### ###
video9=FFVideoSource("I:\temp\Raw Canon EOS R\20190808_1015_001.MP4")
### export clip: video9
### pass clip: video1, video2, video3, video4, video5, video6, video7, video8
### ###
video10=FFVideoSource("I:\temp\Raw Canon EOS R\20190808_1016_001.MP4")
### export clip: video10
### pass clip: video1, video2, video3, video4, video5, video6, video7, video8, video9
### ###
video11=FFVideoSource("I:\temp\Raw Canon EOS R\20190808_1531_002.MP4")
### export clip: video11
### pass clip: video1, video2, video3, video4, video5, video6, video7, video8, video9, video10
### ###
video12=FFVideoSource("I:\temp\Raw Canon EOS R\20190808_1619_001.MP4")
### export clip: video12
### pass clip: video1, video2, video3, video4, video5, video6, video7, video8, video9, video10, video11
### ###
video13=FFVideoSource("I:\temp\Raw Canon EOS R\20190808_1620_001.MP4")
### export clip: video13
### pass clip: video1, video2, video3, video4, video5, video6, video7, video8, video9, video10, video11, video12
### ###
video14=FFVideoSource("I:\temp\Raw Canon EOS R\20190808_1621_001.MP4")
### export clip: video14
### pass clip: video1, video2, video3, video4, video5, video6, video7, video8, video9, video10, video11, video12, video13
### ###
video15=FFVideoSource("I:\temp\Raw Canon EOS R\20190812_1400_001.MP4")
### export clip: video15
### pass clip: video1, video2, video3, video4, video5, video6, video7, video8, video9, video10, video11, video12, video13, video14
### ###
video16=FFVideoSource("I:\temp\Raw Canon EOS R\20190812_1947_001.MP4")
### export clip: video16
### pass clip: video1, video2, video3, video4, video5, video6, video7, video8, video9, video10, video11, video12, video13, video14, video15
### ###
video17=FFVideoSource("I:\temp\Raw Canon EOS R\20190812_1948_001.MP4")
### export clip: video17
### pass clip: video1, video2, video3, video4, video5, video6, video7, video8, video9, video10, video11, video12, video13, video14, video15, video16
### ###
video18=FFVideoSource("I:\temp\Raw Canon EOS R\20190812_2006_001.MP4")
### export clip: video18
### pass clip: video1, video2, video3, video4, video5, video6, video7, video8, video9, video10, video11, video12, video13, video14, video15, video16, video17
### ###

video1++video2++video3++video4++video5++video6++video7++video8++video9++video10++video11++video12++video13++video14++video15++video16++video17++video18

return last

""")


Code:
MP_Pipeline("""
video1=FFVideoSource("I:\temp\Raw Canon EOS R\20190806_1220_001.MP4")
### export clip: video1
### ###
video2=FFVideoSource("I:\temp\Raw Canon EOS R\20190806_1226_001.MP4")
### export clip: video1, video2
### ###
video3=FFVideoSource("I:\temp\Raw Canon EOS R\20190807_2005_001.MP4")
### export clip: video1, video2, video3
### ###
video4=FFVideoSource("I:\temp\Raw Canon EOS R\20190807_2008_001.MP4")
### export clip: video1, video2, video3, video4
### ###
video5=FFVideoSource("I:\temp\Raw Canon EOS R\20190807_2010_001.MP4")
### export clip: video1, video2, video3, video4, video5
### ###
video6=FFVideoSource("I:\temp\Raw Canon EOS R\20190807_2011_001.MP4")
### export clip: video1, video2, video3, video4, video5, video6
### ###
video7=FFVideoSource("I:\temp\Raw Canon EOS R\20190807_2013_001.MP4")
### export clip: video1, video2, video3, video4, video5, video6, video7
### ###
video8=FFVideoSource("I:\temp\Raw Canon EOS R\20190808_1014_001.MP4")
### export clip: video1, video2, video3, video4, video5, video6, video7, video8
### ###
video9=FFVideoSource("I:\temp\Raw Canon EOS R\20190808_1015_001.MP4")
### export clip: video1, video2, video3, video4, video5, video6, video7, video8, video9
### ###
video10=FFVideoSource("I:\temp\Raw Canon EOS R\20190808_1016_001.MP4")
### export clip: video1, video2, video3, video4, video5, video6, video7, video8, video9, video10
### ###
video11=FFVideoSource("I:\temp\Raw Canon EOS R\20190808_1531_002.MP4")
### export clip: video1, video2, video3, video4, video5, video6, video7, video8, video9, video10, video11
### ###
video12=FFVideoSource("I:\temp\Raw Canon EOS R\20190808_1619_001.MP4")
### export clip: video1, video2, video3, video4, video5, video6, video7, video8, video9, video10, video11, video12
### ###
video13=FFVideoSource("I:\temp\Raw Canon EOS R\20190808_1620_001.MP4")
### export clip: video1, video2, video3, video4, video5, video6, video7, video8, video9, video10, video11, video12, video13
### ###
video14=FFVideoSource("I:\temp\Raw Canon EOS R\20190808_1621_001.MP4")
### export clip: video1, video2, video3, video4, video5, video6, video7, video8, video9, video10, video11, video12, video13, video14
### ###
video15=FFVideoSource("I:\temp\Raw Canon EOS R\20190812_1400_001.MP4")
### export clip: video1, video2, video3, video4, video5, video6, video7, video8, video9, video10, video11, video12, video13, video14, video15
### ###
video16=FFVideoSource("I:\temp\Raw Canon EOS R\20190812_1947_001.MP4")
### export clip: video1, video2, video3, video4, video5, video6, video7, video8, video9, video10, video11, video12, video13, video14, video15, video16
### ###
video17=FFVideoSource("I:\temp\Raw Canon EOS R\20190812_1948_001.MP4")
### export clip: video1, video2, video3, video4, video5, video6, video7, video8, video9, video10, video11, video12, video13, video14, video15, video16, video17
### ###
video18=FFVideoSource("I:\temp\Raw Canon EOS R\20190812_2006_001.MP4")
### export clip: video1, video2, video3, video4, video5, video6, video7, video8, video9, video10, video11, video12, video13, video14, video15, video16, video17, video18
### ###

video1++video2++video3++video4++video5++video6++video7++video8++video9++video10++video11++video12++video13++video14++video15++video16++video17++video18

return last

""")


Code:
MP_Pipeline("""
### inherit start ###
video1 = String(ScriptDir()) + "20190806_1220_001.MP4"
video1 = Exist(video1) ? video1 : "I:\temp\Raw Canon EOS R\20190806_1220_001.MP4"
video2 = String(ScriptDir()) + "20190806_1226_001.MP4"
video2 = Exist(video2) ? video2 : "I:\temp\Raw Canon EOS R\20190806_1226_001.MP4"
video3 = String(ScriptDir()) + "20190807_2005_001.MP4"
video3 = Exist(video3) ? video3 : "I:\temp\Raw Canon EOS R\20190807_2005_001.MP4"
video4 = String(ScriptDir()) + "20190807_2008_001.MP4"
video4 = Exist(video4) ? video4 : "I:\temp\Raw Canon EOS R\20190807_2008_001.MP4"
video5 = String(ScriptDir()) + "20190807_2010_001.MP4"
video5 = Exist(video5) ? video5 : "I:\temp\Raw Canon EOS R\20190807_2010_001.MP4"
video6 = String(ScriptDir()) + "20190807_2011_001.MP4"
video6 = Exist(video6) ? video6 : "I:\temp\Raw Canon EOS R\20190807_2011_001.MP4"
video7 = String(ScriptDir()) + "20190807_2013_001.MP4"
video7 = Exist(video7) ? video7 : "I:\temp\Raw Canon EOS R\20190807_2013_001.MP4"
video8 = String(ScriptDir()) + "20190808_1014_001.MP4"
video8 = Exist(video8) ? video8 : "I:\temp\Raw Canon EOS R\20190808_1014_001.MP4"
video9 = String(ScriptDir()) + "20190808_1015_001.MP4"
video9 = Exist(video9) ? video9 : "I:\temp\Raw Canon EOS R\20190808_1015_001.MP4"
video10 = String(ScriptDir()) + "20190808_1016_001.MP4"
video10 = Exist(video10) ? video10 : "I:\temp\Raw Canon EOS R\20190808_1016_001.MP4"
video11 = String(ScriptDir()) + "20190808_1531_002.MP4"
video11 = Exist(video11) ? video11 : "I:\temp\Raw Canon EOS R\20190808_1531_002.MP4"
video12 = String(ScriptDir()) + "20190808_1619_001.MP4"
video12 = Exist(video12) ? video12 : "I:\temp\Raw Canon EOS R\20190808_1619_001.MP4"
video13 = String(ScriptDir()) + "20190808_1620_001.MP4"
video13 = Exist(video13) ? video13 : "I:\temp\Raw Canon EOS R\20190808_1620_001.MP4"
video14 = String(ScriptDir()) + "20190808_1621_001.MP4"
video14 = Exist(video14) ? video14 : "I:\temp\Raw Canon EOS R\20190808_1621_001.MP4"
video15 = String(ScriptDir()) + "20190812_1400_001.MP4"
video15 = Exist(video15) ? video15 : "I:\temp\Raw Canon EOS R\20190812_1400_001.MP4"
video16 = String(ScriptDir()) + "20190812_1947_001.MP4"
video16 = Exist(video16) ? video16 : "I:\temp\Raw Canon EOS R\20190812_1947_001.MP4"
video17 = String(ScriptDir()) + "20190812_1948_001.MP4"
video17 = Exist(video17) ? video17 : "I:\temp\Raw Canon EOS R\20190812_1948_001.MP4"
video18 = String(ScriptDir()) + "20190812_2006_001.MP4"
video18 = Exist(video18) ? video18 : "I:\temp\Raw Canon EOS R\20190812_2006_001.MP4"
### inherit end ###
FFVideoSource(video1, cache=False)
### ###
v2=FFVideoSource(video2, cache=False)
last=last++v2
return last
### ###
v3=FFVideoSource(video3, cache=False)
last=last++v3

return last
""")



Perhaps these messages will make something pop in your mind, 'cause as things stands, I'm glad that I don't get "unhandled C++ expression" anymore, but I still have no idea about what's wrong...
FranceBB is offline   Reply With Quote
Old 16th November 2020, 19:43   #331  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 2,309
Quote:
Originally Posted by FranceBB View Post
Thanks!
Now I no longer have an unhandled C++ exception and I get an error message from all the scripts.
Thanks! v0.22 Removed until I check what had happened.
Edit: release re-enabled (w/o modification)

Last edited by pinterf; 16th November 2020 at 20:41. Reason: update release status
pinterf is offline   Reply With Quote
Old 16th November 2020, 20:23   #332  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 2,309
Quote:
Originally Posted by pinterf View Post
Thanks! v0.22 Removed until I check what had happened.
Your new errors fortunately are not related to any new bugs.

Your first sample does not work because there must be at least one "last" in the first section. When I insert a dummy "BlankClip" there, it will work* (*: see later)

It even fails if I skelenonize it to a single video1:
Code:
MP_Pipeline("""
video1=FFVideoSource("V01.m2v")
### export clip: video1
### ###

video1

last

""")
But this one is O.K.

Code:
MP_Pipeline("""
BlankClip() ## providing a "last" clip variable
video1=FFVideoSource("V01.m2v")
### export clip: video1
### ###

video1

last

""")
*... until clip count reached 8.
Then we have another error message.
"MP_Pipeline: Unable to create slave process. Message: Script error: SharedMemoryServer: Each process can only export no more than 8 clips."
pinterf is offline   Reply With Quote
Old 16th November 2020, 20:35   #333  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 2,309
The 3rd example is probably wrong as well.

I think you mustn't use "return last" there. MP_Pipeline inserts some "hidden" lines before and after the script blocks, when you put there a return last, this "epilog" will not be reached.

Code:
### inherit end ###
FFVideoSource(video1, cache=False)
### ###
v2=FFVideoSource(video2, cache=False)
last=last++v2
return last
### ###
v3=FFVideoSource(video3, cache=False)
last=last++v3

return last
""")
Works:
Code:
### inherit end ###
FFVideoSource(video1, cache=False)
### ###
v2=FFVideoSource(video2, cache=False)
last=last++v2
### ###
v3=FFVideoSource(video3, cache=False)
last=last++v3

return last
""")
pinterf is offline   Reply With Quote
Old 17th November 2020, 12:28   #334  |  Link
FranceBB
Broadcast Encoder
 
FranceBB's Avatar
 
Join Date: Nov 2013
Location: Royal Borough of Kensington & Chelsea, UK
Posts: 2,883
I tested again with your suggestion and this indeed works!

Code:
MP_Pipeline("""
### inherit start ###
video1 = String(ScriptDir()) + "20190806_1220_001.MP4"
video1 = Exist(video1) ? video1 : "I:\temp\Raw Canon EOS R\20190806_1220_001.MP4"
video2 = String(ScriptDir()) + "20190806_1226_001.MP4"
video2 = Exist(video2) ? video2 : "I:\temp\Raw Canon EOS R\20190806_1226_001.MP4"
video3 = String(ScriptDir()) + "20190807_2005_001.MP4"
video3 = Exist(video3) ? video3 : "I:\temp\Raw Canon EOS R\20190807_2005_001.MP4"
video4 = String(ScriptDir()) + "20190807_2008_001.MP4"
video4 = Exist(video4) ? video4 : "I:\temp\Raw Canon EOS R\20190807_2008_001.MP4"
video5 = String(ScriptDir()) + "20190807_2010_001.MP4"
video5 = Exist(video5) ? video5 : "I:\temp\Raw Canon EOS R\20190807_2010_001.MP4"
video6 = String(ScriptDir()) + "20190807_2011_001.MP4"
video6 = Exist(video6) ? video6 : "I:\temp\Raw Canon EOS R\20190807_2011_001.MP4"
video7 = String(ScriptDir()) + "20190807_2013_001.MP4"
video7 = Exist(video7) ? video7 : "I:\temp\Raw Canon EOS R\20190807_2013_001.MP4"
video8 = String(ScriptDir()) + "20190808_1014_001.MP4"
video8 = Exist(video8) ? video8 : "I:\temp\Raw Canon EOS R\20190808_1014_001.MP4"
video9 = String(ScriptDir()) + "20190808_1015_001.MP4"
video9 = Exist(video9) ? video9 : "I:\temp\Raw Canon EOS R\20190808_1015_001.MP4"
video10 = String(ScriptDir()) + "20190808_1016_001.MP4"
video10 = Exist(video10) ? video10 : "I:\temp\Raw Canon EOS R\20190808_1016_001.MP4"
video11 = String(ScriptDir()) + "20190808_1531_002.MP4"
video11 = Exist(video11) ? video11 : "I:\temp\Raw Canon EOS R\20190808_1531_002.MP4"
video12 = String(ScriptDir()) + "20190808_1619_001.MP4"
video12 = Exist(video12) ? video12 : "I:\temp\Raw Canon EOS R\20190808_1619_001.MP4"
video13 = String(ScriptDir()) + "20190808_1620_001.MP4"
video13 = Exist(video13) ? video13 : "I:\temp\Raw Canon EOS R\20190808_1620_001.MP4"
video14 = String(ScriptDir()) + "20190808_1621_001.MP4"
video14 = Exist(video14) ? video14 : "I:\temp\Raw Canon EOS R\20190808_1621_001.MP4"
video15 = String(ScriptDir()) + "20190812_1400_001.MP4"
video15 = Exist(video15) ? video15 : "I:\temp\Raw Canon EOS R\20190812_1400_001.MP4"
video16 = String(ScriptDir()) + "20190812_1947_001.MP4"
video16 = Exist(video16) ? video16 : "I:\temp\Raw Canon EOS R\20190812_1947_001.MP4"
video17 = String(ScriptDir()) + "20190812_1948_001.MP4"
video17 = Exist(video17) ? video17 : "I:\temp\Raw Canon EOS R\20190812_1948_001.MP4"
video18 = String(ScriptDir()) + "20190812_2006_001.MP4"
video18 = Exist(video18) ? video18 : "I:\temp\Raw Canon EOS R\20190812_2006_001.MP4"
### inherit end ###
FFVideoSource(video1, cache=False)
### ###
v2=FFVideoSource(video2, cache=False)
last=last++v2
### ###
v3=FFVideoSource(video3, cache=False)
last=last++v3
### ###
v4=FFVideoSource(video4, cache=False)
last=last++v4
### ###
v5=FFVideoSource(video5, cache=False)
last=last++v5
### ###
v6=FFVideoSource(video6, cache=False)
last=last++v6
### ###
v7=FFVideoSource(video7, cache=False)
last=last++v7
### ###
v8=FFVideoSource(video8, cache=False)
last=last++v8
### ###
v9=FFVideoSource(video9, cache=False)
last=last++v9
### ###
v10=FFVideoSource(video10, cache=False)
last=last++v10
### ###
v11=FFVideoSource(video11, cache=False)
last=last++v11
### ###
v12=FFVideoSource(video12, cache=False)
last=last++v12
### ###
v13=FFVideoSource(video13, cache=False)
last=last++v13
### ###
v14=FFVideoSource(video14, cache=False)
last=last++v14
### ###
v15=FFVideoSource(video15, cache=False)
last=last++v15
### ###
v16=FFVideoSource(video16, cache=False)
last=last++v16
### ###
v17=FFVideoSource(video17, cache=False)
last=last++v17
### ###
v18=FFVideoSource(video18, cache=False)
last=last++v18

return last
""")
Thank you!!
FranceBB is offline   Reply With Quote
Old 6th June 2022, 17:34   #335  |  Link
Music Fan
Registered User
 
Join Date: May 2009
Location: Belgium
Posts: 1,742
Hi,

I didn't use Avisynth for 1 or 2 years and would like to re-install it. As I'm quite confused with 32/64 bit mixed plugins, I have some questions.
If I understand correctly, Avisynth+ 64 bit is not supposed to work with 32 bit plugins but it can be achieved with MP_Pipeline.
I use Windows 10 pro 64 and would like to install Avisynth+ 64 bit.

1) Is it enough to make work in a single script 32 and 64 bit plugins (thanks to MP_Pipeline) or Avisynth+ 32 bit has to be installed anyway to make work 32 bit plugins, even when used in a script using Avisynth+ 64 bit ?

2) Do I have to put only the 4 MP_Pipeline files of the x64 folder (dll, dll.slave.exe, ...) in Avisynth+ 64 bit's plugin folder to make the whole stuff work with 32 and 64 bit plugins ?

3) In which folder should I place the 32 bit plugins ?

Thanks

Last edited by Music Fan; 6th June 2022 at 17:36.
Music Fan is offline   Reply With Quote
Old 2nd November 2022, 19:02   #336  |  Link
mastrboy
Registered User
 
Join Date: Sep 2008
Posts: 365
Is there a known bug with using Internal String functions with MP_Pipeline?

As soon as I include a Internal Avisynth function like "findstr" or "leftstr" I get a "Unable to create slave process" exception.

Example script not working:
Code:
MP_Pipeline("""
### inherit start ###

script_folder = LeftStr(ScriptDir(),StrLen(ScriptDir()) - 1)
filename_no_ext = ReplaceStr(scriptfile(),".avs",".mkv")
src_file = script_folder + "\" + filename_no_ext

### inherit end ###
LWLibavVideoSource(src_file)

### ###

# crop borders
crop(240,0,-240,0)

""")
If I just set the script_folder and filename_no_ext manually it works as expected, but defeats the idea of loading a source file based on the Avisynth script name...
__________________
(i have a tendency to drunk post)
mastrboy is offline   Reply With Quote
Old 2nd November 2022, 21:15   #337  |  Link
gispos
Registered User
 
Join Date: Oct 2018
Location: Germany
Posts: 996
For ScriptDir() you have to use string(ScriptDir()), the other things I haven't tested yet.
__________________
Live and let live
gispos is offline   Reply With Quote
Old 2nd March 2023, 20:05   #338  |  Link
flossy_cake
Registered User
 
Join Date: Aug 2016
Posts: 605
Hello, is there any possibility of audio support?

I want to do audio compression to make audio louder without clipping ("soft clipping") but there are only 32-bit plugins for that.

I would have used Soxfilter 64-bit compander but it's broken & linear access only.
flossy_cake is offline   Reply With Quote
Old 2nd March 2023, 21:27   #339  |  Link
FranceBB
Broadcast Encoder
 
FranceBB's Avatar
 
Join Date: Nov 2013
Location: Royal Borough of Kensington & Chelsea, UK
Posts: 2,883
Quote:
Originally Posted by flossy_cake View Post
Hello, is there any possibility of audio support?
+1 for audio support.

I asked for it long time ago (I guess last time I begged was probably 2015) but the original author was gone.
Heck, MPPipelins would have also been broken with newer Avisynth+ colorspaces if it wasn't for the always available and irreplaceable C++ & ASM Supreme Grandmaster Ferenc Pinter who picked it up and updated it to version 0.22.
I mean, honestly, pinterf has been picking up almost every project the community has left behind and single handedly updated everything to modern standard. If it wasn't for him I don't know where we would have been...

Quote:
Originally Posted by flossy_cake View Post
I would have used Soxfilter 64-bit compander but it's broken & linear access only.
Sox you said, uh?
Indeed the last Avisynth compatible version was 2.6.1 from 2016, however I guess we're gonna be in for a 2023 miracle after it being broken since 2017, 'cause Grandmaster Ferenc has picked up the "challenge":

https://forum.doom9.org/showthread.p...81351&page=115
FranceBB is offline   Reply With Quote
Reply

Tags
avisynth, multi-process, pipeline

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:09.


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