View Full Version : AvsPmod (Windows_x86) mod


Pages : [1] 2

gispos
21st October 2018, 15:57
I have adapted the program to my own needs. Maybe one or the other likes it.

Large Address Aware Flag is set (32bit version).
Version is based on vdcrim 2.5.1 bug-fix Version for "only one prefetcher allowed" see Doom9 Forum.
With modifications from pinterf (avisynth header V6)

--------------------------

Last Version 2.7.9.7
Changelog (https://github.com/gispos/AvsPmod/blob/GPo/changelog.txt)

Pre-Releases: https://drive.google.com/drive/folders/1I7yNkFLoYmOush5Olx-jT799GphKcSwX?usp=share_link

AvsPmod needs write permissions in its own directory. So please do not unzip into a system program directory!
--------------------------

Mouse button combinations (for the new users)

On video window:
- Press left and right click: changes zoom 100%, 200%
- Press left and use mouse wheel: changes the zoom
- Press Ctrl and double click on the video window increases the height a few pixels
- If tab change for mouse browse buttons selected, press Ctrl or move the mouse on the slider area and bookmark jump is used.
- When the mouse pointer is in the video slider area. Press Ctrl and use mouse browse buttons only trim editor marks would be selected
- When the mouse pointer is in the video slider area. Press Alt and use mouse browse buttons only bookmarks with title would be selected

On script window:
- Press left and right click: The # character is removed or added at the beginning of the selected lines
- If a boolean selected (True, False) the value does change

On slider window:
- If direct slider update enabled (only with preview filters), can then be deactivated by pressing Ctrl on slider move

On the status bar:
- A right click open a context menu for the video slider range

Furthermore:
- On the video slider right click to add or remove a bookmark
- Right click on a marked area in the video slider opens an area menu
- Right click on the play or frame step button opens a selection menu
- Standard functions for mouse middle button, browse buttons and the wheel can be set under Options.

Preview Filter:
- Are an essential part of AvsPmod. They allow near real-time display of filter parameter changes.
- Help > Preview filter example (readme)


GitHub:
https://github.com/gispos/AvsPmod/releases
https://github.com/gispos/AvsPmod

gispos
21st October 2018, 16:00
Last Version 2.1.0

Reads bookmarks saved with AvsPmod in avs script. Also reads a bookmarks list (cr.txt).
You can save the read as a stream, to open quickly with AvsPThumb.
Can send commands to AvsPmod.

GitHub:
https://github.com/gispos/AvsPThumb/releases
https://github.com/gispos/AvsPThumb

Forteen88
21st October 2018, 19:24
Thanks, but what's the difference compared to this version?
https://forum.doom9.org/showthread.php?p=1801766#post1801766

StainlessS
21st October 2018, 22:25
Thanks, but what's the difference compared to this version?
https://forum.doom9.org/showthread.php?p=1801766#post1801766

1488,
This is a perfect opportunity 4U2 do the comparison, and inform the other members about same.

Developers spend a long, long, long, time making it happen, and time is better spent having
someone else do comparison test, docs etc. [you would would not ask the chef to eat it for you].

EDIT:
Whatever a user spends on review, probably 1.0% of developer effort.

Forteen88
22nd October 2018, 12:29
1488,
This is a perfect opportunity 4U2 do the comparison, and inform the other members about same.

Developers spend a long, long, long, time making it happen, and time is better spent having
someone else do comparison test, docs etc. [you would would not ask the chef to eat it for you].

EDIT: Whatever a user spends on review, probably 1.0% of developer effort.I'm not a developer, so I thought s/he'd be more accurate in spotting the difference watching github maybe. And I'm not sure if this developer made a fork out of the AvsPmod that I linked to (that's why I mainly asked the question).
And yes, I appreciate what the developers do a lot, I wanted to be a developer myself once, but I discovered that it's VERY hard.
I even think that developers should have the salaries of lawyers (who got VERY high salaries), and the opposite.

EDIT2: Both this version & the version I linked here have the identical AvsPmod.exe x64-binary as Gispos mentioned here ("Version is based on 2.5.1 r452 bug-fix Version for "only one prefetcher allowed" see Doom9 Forum."), but I like that this version changed to
"- Change the checked status "Video > Play video > Drop frames" now at startup checked=False".

EDIT3: Although, StainlessShlomo, I think you got a stick up your a55 for another reason... You go cry because I want to preserve, and not liking genocide...

StainlessS
22nd October 2018, 16:37
- Error handling on AvsPmod x64: Error "FormatTime - %d cannot convert float" (only handling no fix) - avisynth returns NaN value, no idea how I can fix this


Post the offending line [+ a bit extra], perhaps someone here speaks Parceltongue. [EDIT: Maybe a divide by zero]

EDIT: Unfortunately, the Parceltongue Translator is currently offline:- https://www.adweek.com/galleycat/parseltongue-translator-released/34545

EDIT:
I wanted to be a developer myself once, but I discovered that it's VERY hard.
If you write your own avs scripts, you are half way there already.
The first programming language is the hardest one to learn, after that it becomes quite easy really.

gispos
22nd October 2018, 18:46
Thanks, but what's the difference compared to this version?
https://forum.doom9.org/showthread.php?p=1801766#post1801766

Sorry for the confusion, the base is the linked version. (AvsPmod v2.5.1-90-gfcd7a61 (Windows x86)
But that is also confusing, r452, 2.5.1 with and without bug fix and no release note in the code. Or I overread it.

Edit: @StainlessS, python declares NaN as 'not a number'

StainlessS
22nd October 2018, 22:14
@StainlessS, python declares NaN as 'not a number'

Yep, and 'NaN' (Not a Number) is often result of divide by zero.

gispos
23rd October 2018, 16:53
Yep, and 'NaN' (Not a Number) is often result of divide by zero.

You're right, but I had already tested this and passed zero and float to the function, no error.

So an uninitialized variable or a variable that does not consist of numbers will probably be transferred.

FranceBB
25th October 2018, 22:46
Since you are modifying AVSPmod, how about adding BT2020 / 2100 support?
That would be a real improvement.

color
26th October 2018, 09:25
I have two suggestions, One is to fix the bug (https://forum.doom9.org/showthread.php?t=175830) so the text error color could be changed for us who have problem with red and black. Also, I do got a logo and new symbols for the buttons in the program if you want to change. No need, I can post when I find them.

EDIT: Found them. I also made a few icons also.
Here Is some logos, I do like the donut alot, I tried to use the colors that was used original. :)
I got all files in better quality and larger in psd if you want to use. :P

old:
https://image.ibb.co/irXuRV/men1.png
new:
https://image.ibb.co/f2Y16V/men2.png

Look at the donut. :D
https://image.ibb.co/kuD16V/05.png

gispos
26th October 2018, 20:35
I love AvsPmod and I respect the developers, it took a lot of work and brain.
Since it has not been maintained for a long time, I had decided to adapt it to my needs.

But I do not want to rob the developers of their fruits of work and to make major changes to the program.
Changing icons is not an option for me. Sorry. I hope for understanding.

The question of BT 2020, 2100. Honestly, I know myself with color spaces, bit depth, etc. too little. I'm quite new to avisynth.:helpful:
I also hope that through my action the AvsPmod developers may be get desire to maintain the program.
As you can see there is interest.

regards,
Gisbert

color
27th October 2018, 08:31
Na, I get it. I just don't like the low resolution icon. That's why I made an update on it. But I agree to a bit off it. But I do think some things like changing it should be shown somehow by changing the look a bit so people know it's changed. =)

But if you can, please fix the color bug. =) I would love that. I have problem seeing red on black.

And yes. I hope it would be maintained as well. It's the best and only(?) For watching in real time. I wish there were one more option. =)

EDIT: The smileys didn't work when writing on my phone.

gispos
27th October 2018, 20:25
But if you can, please fix the color bug. �� I would love that. I have problem seeing red on black.


I honestly do not know where your problem is look for yourself.

Color for unknown function (Basic2)

Without changes
https://i.postimg.cc/FdNdfxR4/Unknown-Func.jpg (https://postimg.cc/FdNdfxR4)

With change to yellow
https://i.postimg.cc/gwvLk7Gs/Unknown-Func2.jpg (https://postimg.cc/gwvLk7Gs)

Show me some pictures

regards

color
27th October 2018, 21:56
Because its about the text in the "videobox" when there is an error. :) Otherwise it works perfect with the script with white background. Its just red on black background I have problem seeing. (well red on green is even worse, but thankfully its not the case)

https://thumb.ibb.co/mbvsGV/Sk-rmbild-466.png (https://preview.ibb.co/kqc6bV/Sk-rmbild-466.png)

gispos
27th October 2018, 22:41
see post #2
thanks

FranceBB
4th November 2018, 08:55
Could you add real high bit depth support instead of just stacked 16bit and interleaved 16bit?

For instance, I tried to use ColorBars 4:4:4 8bit and it shows yv24 correctly: Img (https://i.imgur.com/z7iXwQJ.png)
However, when I tried to convert it to 10bit, AVSPmod stopped showing "yv24" and it showed nothing instead. May I suggest adding the label "yuv44410p"? Img (https://i.imgur.com/r7VBbDj.png)

Same applies to other sampling and bit-depths.

Thank you in advance,
Frank.

gispos
9th November 2018, 23:38
update

Dreamland
10th November 2018, 21:57
wrong password..
please, help me! thx

https://i.postimg.cc/ThX5cfh5/Appunti01.jpg (https://postimg.cc/ThX5cfh5)

Groucho2004
10th November 2018, 23:41
Apart from the fact that the password is wrong - what's the point in password protecting a file and at the same time publicly posting the password?

Wait, I understand the logic now. Since the password is wrong, the file is protected. It all makes sense. Very clever. :rolleyes:

FranceBB
11th November 2018, 03:30
Apart from the fact that the password is wrong - what's the point in password protecting a file and at the same time publicly posting the password?

Wait, I understand the logic now. Since the password is wrong, the file is protected. It all makes sense. Very clever. :rolleyes:

ROTFL.
So the password is really wrong!
I thought it was the Antivirus installed in the computers of the company I work for that was somehow blocking it.

gispos
11th November 2018, 22:28
File is uploaded without password protection again.

I just wanted to show you my state of mind.
That's how it is.

But you can see how people even read. Hardly anyone even understood what was written there or did not read it. Funny.

FranceBB
12th November 2018, 03:08
File is uploaded without password protection again.

Thank you! :D
I tested the new version and I'm so glad that you took into account the changes I asked for (high bit depth support and BT2020 support), however I think there's something wrong with the display of BT2020.

This is how BT2020 is displayed: Link (https://i.imgur.com/SeV8C60.png)

This is how I think it should be displayed:
Link (https://i.imgur.com/12ZtNHw.png)

I encoded 100 frames in HEVC and I compared it by opening the file with MPV and it looked totally different.

gispos
13th November 2018, 21:47
I encoded 100 frames in HEVC and I compared it by opening the file with MPV and it looked totally different.

Have you sent a private message.

It's not 16bit (RGB48) display drawing, that's still 8bit (RGB32)

Edit:
Rec. 2020 defines a bit depth of either 10 bits per sample or 12 bits per sample.

I just read.
Well, Rec2020 will be removed.

This happens when you hunt in areas you do not know.:rolleyes:

preludium975
18th November 2018, 09:51
So is it support 64bit plugins?

pinterf
18th November 2018, 10:35
Once I was looking into Avspmod, it turned out that it still based on the old "baked code" Avisynth interface, which allocates and frees up an AVSValue on its own so it's like supporting avs 2.5 interface.
I had problems during avs+ development (when I wanted to introduce the array type to the syntax) because it was incompatible with avspmod, when avspmod invoked BlankClip, the provided parameters were freed up by both Avisynth and avspmod, thus the latter crashed of course. (Arrays did not go live - and they won't until there are plugins using the historical 2.5 interface)
So it would also be nice to have this part rewritten. I didn't have time to figure out how to build avspmod.

gispos
24th November 2018, 15:23
Once I was looking into Avspmod, it turned out that it still based on the old "baked code" Avisynth interface, which allocates and frees up an AVSValue on its own so it's like supporting avs 2.5 interface.

I have sent you a private message
Greetings

gispos
24th November 2018, 15:33
update

gispos
9th December 2018, 22:40
update and new tool post #2

FranceBB
9th December 2018, 23:24
update and new tool post #2

--------------------------
Version 2.5.1.16 [2018-12-08] GPo
--------------------------
- AvisynthPlus (pinterf) fork Neo r2822 compatible, added 'func' to avisynth value parsing

I use the official one provided by pinterf, I don't use the nekopanda fork, but thank you anyway. ^^

FranceBB
21st December 2018, 09:13
I just noticed that 16bit stacked and interleaved visualizations are broken.
They are still there, but when I click on them, it doesn't do anything, it keeps displaying 8bit data with MSB and LSB.

gispos
22nd December 2018, 00:28
I just noticed that 16bit stacked and interleaved visualizations are broken.
They are still there, but when I click on them, it doesn't do anything, it keeps displaying 8bit data with MSB and LSB.

Strange, it works for me.
Try a different version (not mine)

ChaosKing
22nd December 2018, 01:08
I saw this git issue: https://github.com/AvsPmod/AvsPmod/issues/13
Is VapourSynth support something you might add someday maybe?

I don't know if looked at this, but there is also a PR that imroves some high bit depth stuff. And this is the latest fork https://github.com/enccc/AvsPmod/commits/master. Just in case you missed it :)

gispos
22nd December 2018, 14:35
I saw this git issue: https://github.com/AvsPmod/AvsPmod/issues/13
Is VapourSynth support something you might add someday maybe?

I do not know what you mean by that. I can not add anything that avisynth does not support.
But if I understood it wrong: :)
Support for Vapoursynth ... a lot of work, not feasible for me, even if I wanted.


I don't know if looked at this, but there is also a PR that imroves some high bit depth stuff. And this is the latest fork https://github.com/enccc/AvsPmod/commits/master. Just in case you missed it :)

Thanks for the link.
Have just checked the relevant places in the code and found no differences. So my base code is based on the latest version. :)

pinterf
22nd December 2018, 14:43
Which one is your git repository?

FranceBB
23rd December 2018, 02:46
Strange, it works for me.
Try a different version (not mine)

My bad, it works on my home computer, but not in the one I have at the office (sadly, it's definitely something blocked by group policy).
Never mind ^^

gispos
23rd December 2018, 23:11
Which one is your git repository?

My base code source?
https://forum.doom9.org/showthread.php?p=1801766#post1801766

pinterf
23rd December 2018, 23:50
No, I thought you forked the project and use git for source control, and did not know which fork is yours.

gispos
24th December 2018, 23:12
No, I thought you forked the project and use git for source control, and did not know which fork is yours.

I thought too far.:)
Hm, I do not have a git repository, I have to think about it.

My last source code:
https://www114.zippyshare.com/v/Ltry3mrZ/file.html

This will be version 2.5.1.17 which is not yet published.
All relevant changes from me are only in the files:
avsp.py and pyavs.py

Happy Holidays to all!

Danette
25th December 2018, 19:15
Excellent update!

However, I am encountering an error that I did not with the older version. As soon as I open AvsPmod, I receive a box that states: error parsing plugin string at function "checkmate"

Any idea why this is happening?

ChaosKing
25th December 2018, 23:09
A link to your checkmate plugin would be nice, so we can test it too.

gispos
25th December 2018, 23:09
Excellent update!

However, I am encountering an error that I did not with the older version. As soon as I open AvsPmod, I receive a box that states: error parsing plugin string at function "checkmate"

Any idea why this is happening?

Thank you.

I just dumped checkmate.dll (https://github.com/tp7/checkmate/releases) into my plugin folder.

No error received at startup.

Maybe an old AvsPmod filter database (filterdb.dat) or
self created parameters in the function definitions (see picture)

Time to unpack the new version completely in a directory and then start it.

https://i.postimg.cc/0MZh6G2q/checkmate.jpg (https://postimg.cc/0MZh6G2q)

pinterf
26th December 2018, 09:07
I thought too far.:)
Hm, I do not have a git repository, I have to think about it.
Thanks, then I'll wait a bit.

Imagine, now if I'd fork the original AvsPMod, and copy in your current source and commit it back, it will appear on github under my name, because you made those modifications "offline". Using github not only keeps the who-made-and-what history of the source in order (through the properly arranged and documented commits) but makes the teamwork possible.

It can also be used to host the assembled releases - and github is even automatically snapshotting the actual source code.

gispos
26th December 2018, 17:50
Thanks, then I'll wait a bit.

Imagine, now if I'd fork the original AvsPMod, and copy in your current source and commit it back, it will appear on github under my name, because you made those modifications "offline". Using github not only keeps the who-made-and-what history of the source in order (through the properly arranged and documented commits) but makes the teamwork possible.

It can also be used to host the assembled releases - and github is even automatically snapshotting the actual source code.

Have you sent a private message.

pinterf
30th December 2018, 20:23
Thanks, I'm halfway on porting to interface version V6 (which includes Avs+ new functions).
Big success though, because x64 now works, and I think it's even a bit ahead of the x86 version.
Please check it, you have a broader view on the whole AvsPMod project.

One have to know that in this branch avxsynth (a former avisynth variant for linux) will probably not supported.
Neither will this branch support Avisynth versions with interface version less than 6, practically AvsPMod needs classic Avisynth 2.6 or Avisynth+.
But I think this is not a huge problem nowadays.

Things to solve on my part: look into the x86 part, which is not moved to interface V6. As we don't want to support Avs+ exclusively.
So I have to solve that those functions which do no exist on classic Avisynth, those functions should silently fallback to a compatible call. E.g. "is_yuv444" would not crash on classic avisynth, but fall back to the existing "is_yv24".
I think if that works, the core functions can be updated with the high bit depth stuff.

I was also experimenting with trying to use a bit newer environment (use Python 3.7 instead of 2.7, wxWidget 4.x instead of 2.8/3.0.2).
I have not succeeded, the exe compiler (py2exe) should be changed because its development has been stopped and it does not support Python 3.7.

pinterf
31st December 2018, 16:56
@gispos: Update: probably finished with the x86 part, Avisynth+ specific functions can be used freely. I'm using a similar automatic fallback mechanism as I used in the C++ avisynth interface.

For example avs_is_444 will call avs_is_yv24 instead, avs_bits_per_component will always return 8 for classic Avisynth.
So the non-existant Avisynth+ extensions are simulated, they won't crash on classic Avisynth.
is_444, is_422, is_420, is_y, bits_per_component, num_components, component_size, is_planar_rgb, is_planar_rgba, is_yuva, is_rgb48, is_rgb64

Status of the x64 part: the code is working, but the Avisynth+ specific things I just made now for x86 are missing there, I hope it can be done during the next some days.
Yet I won't start a pull request on git immediately, just after you say it's really usable

Happy New Year!

FranceBB
31st December 2018, 18:19
Once again: well done, Ferenc!
I look forward to test it!

Happy new year, everyone! :D

pinterf
2nd January 2019, 13:37
test-test-test
Warning: not a release (I will have no releases, just did the background C interface things and nothing more, and leave the project back for gispos master).
Just please try it to see that they work for you (=no freeze) to sort out obvious bugs when calling the new interface functions. Error messages shown are welcomed - or not :)

In theory x86 should work for both Avs+ and classic Avisynth 2.6.0.5
x64 should work for Avisynth+

x86: https://drive.google.com/file/d/17n2vrsMRBbFVSo7JYZJdL0znoB-_j6ih/view?usp=sharing
x64: https://drive.google.com/file/d/1cqPMsKRJERvJpa0I2_Gyy9G4KFDP5YQi/view?usp=sharing

gispos
2nd January 2019, 22:51
test-test-test
Warning: not a release (I will have no releases, just did the background C interface things and nothing more, and leave the project back for gispos master).
Just please try it to see that they work for you (=no freeze) to sort out obvious bugs when calling the new interface functions. Error messages shown are welcomed - or not :)

In theory x86 should work for both Avs+ and classic Avisynth 2.6.0.5
x64 should work for Avisynth+

x86: https://drive.google.com/file/d/17n2vrsMRBbFVSo7JYZJdL0znoB-_j6ih/view?usp=sharing
x64: https://drive.google.com/file/d/1cqPMsKRJERvJpa0I2_Gyy9G4KFDP5YQi/view?usp=sharing

Hello Ferenc,
I follow your changes already a few days, but I was not at home, sorry for the late reply.

Very nice, and also the comments are very helpful.
I'm about to apply your changes to my next version, and have also successfully created an x32 version.
This version contains all your recent changes, but must first take a look at everything.

And for Information:
I do not want to hinder the project, so I do not mind if you create your own releases.
It's finally 'open source' :)

I found a small mistake in avsp.py line #15487

if debug_stats:
print ('speed_factor: {0}, required_interval: {1} '\
'interval: {2} interval_factor: {3}'.format(
self.play_speed_factor, interval0, interval, factor))
self.increment = 0
self.previous_time = self.play_initial_time

self.play_timer_id = self.timeSetEvent(interval,
self.play_timer_resolution, self.callback_c, factor, periodic)

Correctly:
if debug_stats:
print ('speed_factor: {0}, required_interval: {1} '\
'interval: {2} interval_factor: {3}'.format(
self.play_speed_factor, interval0, interval, factor))
self.increment = 0
self.previous_time = self.play_initial_time

self.play_timer_id = self.timeSetEvent(interval,
self.play_timer_resolution, self.callback_c, factor, periodic)


Greetings Gisbert
and a happy new year to all

Edit:
Yes I just created an x64 version.
Had previously tried with all sorts of avisynth.h versions ... with your modifications, it finally works.
Thanks!

I changed it back to the old code

#GPo, @PF not working on py2.7, Error(arg 1 must be string or..)
#~exec (macrotxt in self.macroVars, {})

pinterf
3rd January 2019, 09:04
And for Information:
I do not want to hinder the project, so I do not mind if you create your own releases.
It's finally 'open source' :)

Yep, true, open source, but it means open co-work rather than open competition. In this small world it is healthier to have a single chief project maintainer at a time, unless our targets are completely different which is not the case. And I'm more interested in the background things and engines rather than in GUI.


I found a small mistake in avsp.py line #15487

self.play_timer_id = self.timeSetEvent(interval,
self.play_timer_resolution, self.callback_c, factor, periodic)
Correctly:
self.play_timer_id = self.timeSetEvent(interval,
self.play_timer_resolution, self.callback_c, factor, periodic)


Oh, those indentation-based blocks :) I didn't use Python previously, there were quite a few surprises for me.

StvG
4th January 2019, 20:54
... x86: https://drive.google.com/file/d/17n2vrsMRBbFVSo7JYZJdL0znoB-_j6ih/view?usp=sharing
x64: https://drive.google.com/file/d/1cqPMsKRJERvJpa0I2_Gyy9G4KFDP5YQi/view?usp=sharing

Bookmarks to Chapter is broken now.
Using higher* wxWidget version than the default one breaks the field where you manually enter the frame number (bottom left) - if you enter once a frame number, there is no problem, but the next time you try, it's already broken.

* - If I remember correctly > 2.9 breaks it.

Thanks for your and @gispos work.

Is it possible a option Video - YUV -> RGB to remember what I set? I set BT.709 and after a restart the option is Resolution-based again.

pinterf
4th January 2019, 22:09
Thanks, yes, my idea of using wxWidget over 2.8 caused gispos some grey hairs, he had already reverted it meanwhile.

poisondeathray
6th January 2019, 03:29
Thanks for the improvements , and keeping the project alive

Just a cosmetic typo on both pftest1 x86,x64 ; video=>bith depth should be "bit depth"

gispos
6th January 2019, 05:07
Thanks for the improvements , and keeping the project alive

Just a cosmetic typo on both pftest1 x86,x64 ; video=>bith depth should be "bit depth"
In the next release, if I do not forget it.:)

Yes I am back on wx version 2.8, with the version 3 there were only problems. For further tests, I have no time at the moment.
New version is uploaded. See first post.

StainlessS
6th January 2019, 05:16
Gispos,
I dont like AvsPMod (Never have) but its lovely to see someone taking over from vdcrim, its a very brave effort on your behalf.
(I dont like the way it modifies my scripts, and I have to keep changing them back again).
Also, with a bit of the monster that is Pinterf, assisiting you, I'm sure that it will be well good :)

Again, thanks for expending your time.

EDIT: Would it be a big task to mod to v3,0 Python (from v2.7 or whatever),
would probably be a big advantage (with others to maybe assist), if not using the older 2.7 snakey stuff.

gispos
6th January 2019, 05:52
Gispos,
I dont like AvsPMod (Never have) but its lovely to see someone taking over from vdcrim, its a very brave effort on your behalf.
(I dont like the way it modifies my scripts, and I have to keep changing them back again).
Also, with a bit of the monster that is Pinterf, assisiting you, I'm sure that it will be well good :)

Again, thanks for expending your time.

EDIT: Would it be a big task to mod to v3,0 Python (from v2.7 or whatever),
would probably be a big advantage (with others to maybe assist), if not using the older 2.7 snakey stuff.

I do not understand that now.
The scripts are not changed by AvsP. Or did not I understand you correctly?

Higher python version:
I've already written that AvsP was the first program I touched with python.

I do not know how it is on newer versions, but Python is a pain for me. I do not want to continue here, but it is and remains a script language for which there is no reasonable IDE.
At least I do not know any, I use PyScripter for Python and the syntax check is for the ass.

Well, first of all, I'm not really good with python, and I do not like it either.
Have already thought about a separate project with Delphi ... but that is probably a lot of work ... I think that's too much for me. At least for the moment.

Greetings

StainlessS
6th January 2019, 06:03
Well from Python 2.7 to Python 3.0, I believe the main diff is the print statement[becomes a function in v3.0], not really too big a difference (see x in y minutes web page for differences)
x in y minutes:- https://learnxinyminutes.com/

I have eg a script that calls a file selector to get a filename from user, On return AvsPMod actually changes my script and embeds to chosen filename in script, making the purpose of the script, useless (Ie file sector no longer works proper).
I have no idea whatever how AvsPMod does what it does (to screw up my scripts). I just know that it does.
Most people love AvsPMod, but if you are a script developer, and have to un-fuck what the AVSPMod thing does EVERY TIME, then its a bit not nice.

EDIT: I think this is one of the ones that causes probs (from RT_Stats), [EDIT: It actually modifes the source script, go figure]

avi = RT_FSelOpen("Please select an AVI file",Filt="*.AVI|*.AVI")
Assert(avi.IsString,"RT_FSelOpen: Error="+String(avi))
AVISource(AVI)
txt = RT_FSelOpen("And now select a Text file",Filt="*.txt|*.txt")
Assert(txt.IsString,"RT_FSelOpen: Error="+String(txt))
Txt=RT_ReadTxtFromFile(txt)
Lines=RT_TxtQueryLines(Txt)
# config
DELAY=100
ALIGN=1 # As Numeric KeyPad
SCROLL=0 # 0 = Upwards : 1 = Downwards : 2 = Right to Left : 3 = Left to right : 4 = Karaoke
#
ORG=Last
Last=(SCROLL==4)? ORG.Blankclip(height=80) : Last
CMD_0 = """RT_Subtitle("%s",Txt,align=ALIGN,y=height+DELAY-current_frame,expx=true,expy=true)"""
CMD_1 = """RT_Subtitle("%s",Txt,align=ALIGN,y=-(Lines*20+DELAY) + current_frame,expx=true,expy=true)"""
CMD_2 = """RT_Subtitle("%s",Txt,align=ALIGN,x=width+DELAY-current_frame,expx=true,vcent=true)"""
CMD_3 = """RT_Subtitle("%s",Txt,align=ALIGN,x=-(width+DELAY)+current_frame,expx=true,vcent=true)"""
CMD_4 = """RT_Subtitle("%s",Txt,align=ALIGN,y=height+DELAY-current_frame,expx=true,expy=true)"""
CMD_5 = """RT_Subtitle("BAD SCROLL COMMAND (0->4)")"""
CMD = (SCROLL<0 || SCROLL>4) ? CMD_5 : Select(Scroll,CMD_0,CMD_1,CMD_2,CMD_3,CMD_4)
ScriptClip(CMD)
Return (SCROLL==4)? StackVertical(ORG,Last) : Last

EDIT: Dont know how it does it, really clever actually, but is unwanted, and detrimental.

gispos
6th January 2019, 06:52
@StainlessS, if I copy your example then should it work? Will try it with AvsP.

Test:
https://i.postimg.cc/565MwDwc/Stainless-S-test.jpg (https://postimg.cc/565MwDwc)


I completely forgot.
This is my preliminary 'Dark Color Style' for the editor.
Move the file to the program folder of AvsP and load it in the Options menu (Load font and color backup'.
Can anyone even make the fine tuning. :)

StvG
6th January 2019, 18:01
In the next release, if I do not forget it.:)

Yes I am back on wx version 2.8, with the version 3 there were only problems. For further tests, I have no time at the moment.
New version is uploaded. See first post.

wx version 2.8 - when you zoom more than 4x, the preview has the right and bottom edge cut. It could happen 7x is ok, but 6x/8x are cut. It's valid for every step more than 4x.
With higher wx version that problem is gone but there is another.

poisondeathray
6th January 2019, 18:43
Request: would it be possible to improve the %RGB %YUV values for pixel sampler (mouse pointer) for additional pixel formats RGB=(R,G,B) , YUV=(Y,U,V)

The video status message bar correctly displays additional pixel formats (eg. YUV422P10, etc...), it would be a nice addition to display those values correctly (currently 8bit 0-255 only)

pinterf
7th January 2019, 08:05
Well from Phy 2.7 to Phy 3.0, I believe the main diff is the print staement, not reallly to big a difference (see x in y minutes web page for differences)
x in y minutes:- https://learnxinyminutes.com/

Python 3.x: I have started porting the syntax: prints, Exceptions were using old syntax, they are probably O.K. now. Some module names had been changed (adaptively using old/new) as well. There are still issues with strings (ur: unicode, raw) which should be ported. Then wxWidgets should move to 4.x and a new exe converter should be found, at least for Python 3.6 and up.

gispos
7th January 2019, 18:34
...and a new exe converter should be found, at least for Python 3.6 and up.

I do not know if you know this version, here is 3.3 and higher specified.
https://pypi.org/project/py2exe/0.9.2.2/

pinterf
7th January 2019, 19:19
Up to 3.4. Last release was in 2014.

ChaosKing
7th January 2019, 19:40
I think for newer python versions, especially 3.7, PyInstaller is the best choice.

Edit
http://nuitka.net/ look also very interessting. It compiles python code to c/c++ code

gispos
7th January 2019, 23:06
The whole thing will be a lot of work.
It's not just the few parentheses for 'print' or a few string signs.
Assignments, naming in internal Python functions and also the parameter processing differ.

There is a tool '2to3.py (https://docs.python.org/3.6/library/2to3.html#to3-reference)' trying to convert v2 code to v3 ...
That might work for small scripts and I tested it briefly with v3.68. Not pleasing, there is much to change.

And then also the vcl library ... wx 4xx
----------

Bug fix version 2.6.0.2 uploaded

gispos
8th January 2019, 00:30
removed, I was wrong

mini-moose
15th January 2019, 11:54
Nice to see this getting an update.

For some reason the x64 won't launch for me (windows10). No issues with x86. Do I need to have avs+ installed? It's an x86_x64 so I would think not.

gispos
17th January 2019, 17:46
Nice to see this getting an update.

For some reason the x64 won't launch for me (windows10). No issues with x86. Do I need to have avs+ installed? It's an x86_x64 so I would think not.

Is there an Error.log in the program directory?

I suspect that the 2008 C ++ runtime components are missing.
I'm not sure if these are here (https://www.microsoft.com/en-ph/download/details.aspx?id=2092&ranMID=24542&ranEAID=TnL5HPStwNw&ranSiteID=TnL5HPStwNw-Pk9v268P5yrMBH_WFiLPuw&epi=TnL5HPStwNw-Pk9v268P5yrMBH_WFiLPuw&irgwc=1&OCID=AID681541_aff_7593_1243925&tduid=(ir__963okikenokfrnza0er6am96sn2xhptbex3byoht00)(7593)(1243925)(TnL5HPStwNw-Pk9v268P5yrMBH_WFiLPuw)()&irclickid=_963okikenokfrnza0er6am96sn2xhptbex3byoht00)

But maybe someone else can say something about Win10.

lansing
17th January 2019, 18:58
Nice to see this getting an update.

For some reason the x64 won't launch for me (windows10). No issues with x86. Do I need to have avs+ installed? It's an x86_x64 so I would think not.

Open your script on Virtualdub and it should tell you the error. Avspmod is very bad on error reporting.

gispos
17th January 2019, 21:14
Open your script on Virtualdub and it should tell you the error. Avspmod is very bad on error reporting.

What? He asks for the error for the AvsPmod x64 version, which VirtualDub can not give you. :)

Program errors are stored in the AvsP directory.

Groucho2004
17th January 2019, 22:56
What? He asks for the error for the AvsPmod x64 version, which VirtualDub can not give you. :)

Program errors are stored in the AvsP directory.
AVSPMod64 just crashes if AVS+ 64 bit is not installed which tells the user nothing. As mentioned, AVSPmod's error handling is abysmal.

The easiest way to verify if AVS+64 is installed is to use "AVSMeter64 avsinfo". Loading a script in VDub64 as lansing suggested is also an option.

mini-moose
18th January 2019, 11:42
AVSPMod64 just crashes if AVS+ 64 bit is not installed which tells the user nothing.

I figured as much but as you say there is no error reporting. Since it's x86_x64 I assumed it would work with just normal AVS x86 installed too. Guess not.

gispos
18th January 2019, 17:38
OK, then I was probably wrong.
Works because an older version (before 2.6) or not created by me?

gispos
26th January 2019, 12:56
To the upcoming Version 2.6.0.4

The plugins dir handling has been changed.
It is only read or written from the 32 / 64bit compatible HKLM entry.
If no valid entry is found at startup, a message appears prompting you to manually enter or register a path.

The correctly recognized plugins path is not of essential importance, but it is important for the advanced program features.

If a path is registered with 'Register the plugins directory', only a message will appear if the directory also exists.
That was a bug in the old version, 'Leave blank for default' which then wrote an entry under the incompatible HKCU.
And this value was determined from standard values that are not always true.

The other big change concerns mainly the 32 bit version
When I wanted to fix the negative YUV values, AvsP crashed every few minutes with a simple ColorBar RGB32.
It took me almost a day to fix that. Parts of the new V6 headers are incompatible with some functions and had to be changed.
Even the x64 version was a little bit affected.

Compatibility with the classic x64 Avisynth version:
I have found a 2.5.8 x64 version and this version does not want to load even VirtualDub2 and the older AvsPmod Versions.
I will not invest any time there. The world keeps turning and that's from yesterday.
But maybe I have also corrected this with my changes. Maybe someone can give notice.
Until then, I declare AvsP x64 as incompatible with 'Classic' Avisynth x64

New version will be uploaded today or tomorrow. Have a nice Weekend.

Groucho2004
26th January 2019, 13:03
Compatibility with the classic x64 Avisynth version:
I have found a 2.5.8 x64 version and this version does not want to load even VirtualDub2 and the older AvsPmod Versions.
I will not invest any time there.
Yeah, forget about it. That version was quite buggy and I doubt anyone is using it nowadays.

gispos
26th January 2019, 13:46
Yeah, forget about it. That version was quite buggy and I doubt anyone is using it nowadays.

That's good! :)

real.finder
26th January 2019, 13:56
To the upcoming Version 2.6.0.4


is it possible to make AvsPmod Multi-processing? so that it will be one AvsPmod that can run both 32 and 64 avs inside it by some sort of switch key

I already suggested this before https://github.com/AvsPmod/AvsPmod/issues/33

gispos
26th January 2019, 19:46
is it possible to make AvsPmod Multi-processing? so that it will be one AvsPmod that can run both 32 and 64 avs inside it by some sort of switch key

I already suggested this before https://github.com/AvsPmod/AvsPmod/issues/33

I do not know if this is possible at all. Certain functions will not be thread save.
And a mix of 32 and 64 bit will not work. The accesses to a 32-bit or 64-bit avisynth.dll are different and dependent on their own compiled version.

On the other hand, changing that with an already finished program is almost impossible, very much is interwoven and you lose the overview quickly.
At the moment I'm glad to have fixed the existing bugs and need some distance to AvsP.

that's a bit of fun!... my temporary solution... use several AvsPmod Instances.:)
And as I wrote this now, one thing crossed my mind: A program that managing multiple instances of AvsP......too much, I need a break.:o


The new version has been uploaded.

real.finder
27th January 2019, 03:40
And a mix of 32 and 64 bit will not work. The accesses to a 32-bit or 64-bit avisynth.dll are different and dependent on their own compiled version.


but mpp (mp_pipeline) can do it, and can even load external avisynth.dll, I already know that they dependent on their own compiled version

real.finder
27th January 2019, 06:02
I just test the last version and the "clear all bookmarks" still not clear the negative (minus) bookmarks

for testing you can made simple negative bookmark by mark the frame 0 as bookmark (ctrl + b) and use the "shift bookmarks by frames" macros with some negative (minus) number, then use clear all bookmarks and then use shift bookmarks by frames with same number or higher but without "-"

gispos
28th January 2019, 17:34
Clear all bookmarks is fixed.
Uploaded to GitHub.
At the version number nothing has changed!

All you have to do is replace lib and src directory.

real.finder
29th January 2019, 07:01
Clear all bookmarks is fixed.
Uploaded to GitHub.
At the version number nothing has changed!

All you have to do is replace lib and src directory.

it works now, thanks

lansing
4th February 2019, 18:10
Will there be support for unicode in path finally?

gispos
4th February 2019, 20:04
Will there be support for unicode in path finally?
It should be Unicode. Problems? I do not like that.:)

Groucho2004
4th February 2019, 20:41
It should be Unicode.It is (screen shot taken on English Windoze):

https://i.postimg.cc/MZCL8QQQ/avspmod-ufn.png

lansing
4th February 2019, 22:13
It should be Unicode. Problems? I do not like that.:)

The problem is still there. Still got a bunch of question marks when loading files that were not English in the path.

Groucho2004
4th February 2019, 22:17
The problem is still there. Still got a bunch of question marks when loading files that were not English in the path.Can you upload one of these?

lansing
4th February 2019, 22:28
Just do something like this

Directshowsource("e:\アメリカ合衆国に\test.mp4")

Groucho2004
4th February 2019, 22:34
Just do something like this

Directshowsource("e:\アメリカ合衆国に\test.mp4")

Oh, I see what you mean. As far as I recall, this is an Avisynth issue, you have to use the appropriate system locale (Japanese in the case you posted) to load scripts like this.

However, I'll have to check to be sure.

lansing
4th February 2019, 23:28
Oh, I see what you mean. As far as I recall, this is an Avisynth issue, you have to use the appropriate system locale (Japanese in the case you posted) to load scripts like this.

However, I'll have to check to be sure.

That same script can be opened in virtualdub

Groucho2004
5th February 2019, 00:22
That same script can be opened in virtualdubPlease upload the .avs file that causes the problem.

Danette
6th February 2019, 02:23
Feature request/suggestion:

Some filters accumulate data from each frame. It would be handy to have a command, perhaps from the "Tools" drop-down, that would scan each frame in an entire video so that the right-arrow button wouldn't have to be manually held down to do this.

gispos
6th February 2019, 20:39
Feature request/suggestion:

Some filters accumulate data from each frame. It would be handy to have a command, perhaps from the "Tools" drop-down, that would scan each frame in an entire video so that the right-arrow button wouldn't have to be manually held down to do this.

If I did not misunderstand you, then that would be the play button?

Danette
7th February 2019, 00:11
If I did not misunderstand you, then that would be the play button?

Both buttons are the same speed. I was looking for a frame-by-frame scan much more rapid than the play function.

quietvoid
7th February 2019, 01:53
Feature request/suggestion:

Some filters accumulate data from each frame. It would be handy to have a command, perhaps from the "Tools" drop-down, that would scan each frame in an entire video so that the right-arrow button wouldn't have to be manually held down to do this.That already exists.
Under Video > Run analysis pass.

Danette
7th February 2019, 03:37
That already exists.
Under Video > Run analysis pass.

I tried that initially, but I can't see that it does anything useful. The data changes that appear on the screen, when moving through each frame by various filters, do not appear when using this procedure.

StainlessS
7th February 2019, 04:09
Add
Assumefps(250)
at end of script, & hit play

Danette
7th February 2019, 15:02
Add
Assumefps(250)
at end of script, & hit play

Perfect (almost), as usual. Thanks.

Interesting use of AssumeFPS. Can I be greedy and ask for more than double the speed? It seems that any value chosen beyond double the source FPS will still yield only about double the playback speed, e.g.; the 250 you suggested is no faster than 70, where fps is 29.97. Is this doubling of the speed the maximum limit possible with AssumeFPS?

ChaosKing
7th February 2019, 15:23
Maybe 70 is the max render fps. You could try the "Run analysis pass" in virtualdub and compare it.

StainlessS
7th February 2019, 19:56
Top speed for AssumeFPS, depends upon how fast your machine can display frames [also, I think in VDub, there is some kind of "drop frames when behind" option which would probably have effect, never tried it].
I used to use AssumeFPS(250.0) in VDubMod instead of Run Video Analysis pass, (VDMod did not have that option) and as VD original Run Video Analysis jumped automatically back to frame 0 on completion,
I could not see any metrics on final frame. [Also, AssumeFPS(300.0) or more used to produce some error alert I think, hence 250.0].
I only used to use VD standard Analysis when I did not want to see metrics, and that meant switching from VDMod to VD std., and then back again
(VD Std did not have AVS script editor, VD2 now takes over from both VDMod and VD std functionality [thanks to "Shekh the Magnificent"], and VDub2, now does not jump back to frame 0
[on my request] so not a problem any more).

Run Video Analysis pass in VDub only renders on screen every now and then (maybe every [EDIT: real time] 1.0 second, maybe every 0.5 second, dont know), and so the frames NOT shown on screen are processed but not
rendered/resized for display. So Run Video Analysis is faster at processing only, because of this non display.
[will likely complete earlier than result of AssumeFPS(250)].

EDIT: As well as colorspace conversion, resizing and rendering, there seems to be some kind of beautification done to hide pixel 'squareness', probably some kind of anti-aliasing.
It is sometimes possible to see the un-beautified frames in VDub if you switch to some other window and then back, where pixels do indeed seem a bit coarse and clearly visible.
("beautification", probably part of DirectX stuff, don't know. Maybe Video Renderer ... Overlay Mixer, VRM Windowed etc does it, [no idea really])

gispos
7th February 2019, 21:34
Perfect (almost), as usual. Thanks.

Interesting use of AssumeFPS. Can I be greedy and ask for more than double the speed? It seems that any value chosen beyond double the source FPS will still yield only about double the playback speed, e.g.; the 250 you suggested is no faster than 70, where fps is 29.97. Is this doubling of the speed the maximum limit possible with AssumeFPS?

I still do not understand it. AssumeFPS can not effect a change on playback.
You have to choose maximum speed first:
Video -> Play Video -> Maximum Speed

Or do you already have? No matter, no explanation needed, I hold myself out. :)

Edit: Now it has sparked. Time again completely wrong :rolleyes:

Edit2: My thoughts were not completely wrong.
Is exactly the same AssumeFPS or maximum playback speed change

PS: New version has been uploaded

lansing
10th February 2019, 21:57
Please upload the .avs file that causes the problem.

That line is the entire script. The program is not able to read unicode path inside the script, just try it. It will return an error message complaining about the path with a bunch of question marks. It's not a system locale issue because that same line can be opened in virtualdub.

Groucho2004
10th February 2019, 23:48
That line is the entire script. The program is not able to read unicode path inside the script, just try it. It will return an error message complaining about the path with a bunch of question marks. It's not a system locale issue because that same line can be opened in virtualdub.
You're right, I was wrong. I checked again and AVSPmod does not support UC paths whereas VDub2 does.

lansing
10th February 2019, 23:51
More from my tests.

When using ffms2 as the source filter, virtualdub works and aspmod doesn't
ffms2("e:\アメリカ合衆国に\test.mp4")

But when using directshowsource, both virtualdub and avspmode doesn't work
directshowsource("e:\アメリカ合衆国に\test.mp4")

It would return an error "DirectShowSource: couldn't open file e:\????合???.mp4"

Habanero2
23rd February 2019, 08:29
Can i set up that AvsPmod displays the preview window in a minimum size? I have some videos here with a small resolution and i have to resize the video preview after opening a video. I don't mean the Zoom, i mean the slider in the middle of the window.

Q-the-STORM
6th May 2019, 20:54
Thanks gispos, didn't think anyone was gonna update this anymore.

Is it possible for you to disable windows 10 high DPI scaling for avspmod by default?

Situation: I use a 2160p display and have set win10 to scale to 200%.

If I open avspmod, windows scales it to 200%, size of buttons at the bottom is fine, but text is blurry and the video preview is also scaled by windows, so if zoom is set to 100% in avspmod, I'm getting 200% anyways due to windows scaling.

I can disable windows scaling for avspmod by going into AvsPmod.exe's properties -> Compatibility -> Change high DPI settings -> set checkmark on "Override high DPI scaling behaviour" -> set "Scaling performed by:" to Application.

Now avspmod behaves just like it would without windows scaling, so size of buttons is now tiny, but text is clear and video preview is scaled correctly.

So basically what I'm wondering is if it's possible for avspmod to do this by default since you really never want windows to scale your preview video. Plus an option to change the button size would be nice, because they are tiny with high DPI displays.

gispos
7th May 2019, 21:28
Now avspmod behaves just like it would without windows scaling, so size of buttons is now tiny, but text is clear and video preview is scaled correctly.

At the moment I have little time to deal with it, but under the options there is a setting "Use large size video controls"
The setting doubles the size of the lower buttons.

Does that help you?

george84
18th July 2019, 09:43
x = ImageSource("testchart1big.jpg", 0, 0, fps=24, use_DevIL = true, info=false, pixel_type = "RGB64")
x=ConvertToPlanarRGB(x)

will result in random color values (RGB) being displayed in status bar of preview. Image size is 3840x2160 and monitor is 4K. It seems to be caused by ConvertToPlanar. In Version 2.5.1 values are correct.

A related problem is that even on a 4K monitor only half of image is displayed (same as in 2.5.1)

gispos
19th July 2019, 23:33
x = ImageSource("testchart1big.jpg", 0, 0, fps=24, use_DevIL = true, info=false, pixel_type = "RGB64")
x=ConvertToPlanarRGB(x)

will result in random color values (RGB) being displayed in status bar of preview. Image size is 3840x2160 and monitor is 4K. It seems to be caused by ConvertToPlanar. In Version 2.5.1 values are correct.

I fixed it. Will upload the source to GitHub the next few days.

Without ConvertToPlanarRGB Ver. 2.6xx has displayed the values correctly.

Ver. 2.5.1 behaved differently:
RGB48 and RGB64 Planar are the values right.
RGB48 (not Planar) incorrect values.
RGB64 (not Planar) incompatible.


A related problem is that even on a 4K monitor only half of image is displayed (same as in 2.5.1)
Unfortunately I can not check.
Have only a 2K monitor and there each image size is displayed correctly, I always see the whole picture.

real.finder
20th July 2019, 05:22
why YUV values in 8 bit range when 8<bit? it useful in debug with float (32bit) cases since the chroma can be between 0.5 and -0.5 and since there are no clamp in float (32bit) both chroma and luma can be anything!

and I note that if I switch between two tabs (with the keyboard 1 and 2 keys) the Pixel Values will Disappears from the bar! until I move the mouse, that not happen in avspmod 2.5.1

gispos
20th July 2019, 17:37
why YUV values in 8 bit range when 8<bit? it useful in debug with float (32bit) cases since the chroma can be between 0.5 and -0.5 and since there are no clamp in float (32bit) both chroma and luma can be anything!
Yes, there is more on the Todo list. Here is the relevant code for the pixelinfo.
For info: (-1, -1, -1) then python returns the RGB value under the pointer.

Maybe we can remove some "Todos".:)

def GetPixelYUV(self, x, y):
if self.bits_per_component > 8: # TODO
return (-1,-1,-1)
if self.IsPlanar:
indexY = x + y * self.pitch
if self.IsY8:
return (self.ptrY[indexY], -1, -1)
x = x >> self.WidthSubsampling
y = y >> self.HeightSubsampling
indexU = indexV = x + y * self.pitchUV
elif self.IsYUY2:
indexY = (x*2) + y * self.pitch
indexU = 4*(x/2) + 1 + y * self.pitch
indexV = 4*(x/2) + 3 + y * self.pitch
else:
return (-1,-1,-1)
return (self.ptrY[indexY], self.ptrU[indexU], self.ptrV[indexV])

def GetPixelRGB(self, x, y, BGR=True):
if self.IsRGB:
if self.IsPlanar and self.bits_per_component > 8: # Todo
return (-1,-1,-1)
bytes = self.vi.bytes_from_pixels(1)
if BGR:
indexB = (x * bytes) + (self.Height - 1 - y) * self.pitch
indexG = indexB + 1
indexR = indexB + 2
else:
indexR = (x * bytes) + y * self.pitch
indexG = indexR + 1
indexB = indexR + 2
return (self.ptrY[indexR], self.ptrY[indexG], self.ptrY[indexB])
else:
return (-1,-1,-1)

def GetPixelRGBA(self, x, y, BGR=True):
if self.IsRGB32:
bytes = self.vi.bytes_from_pixels(1)
if BGR:
indexB = (x * bytes) + (self.Height - 1 - y) * self.pitch
indexG = indexB + 1
indexR = indexB + 2
indexA = indexB + 3
else:
indexR = (x * bytes) + y * self.pitch
indexG = indexR + 1
indexB = indexR + 2
indexA = indexB + 3
return (self.ptrY[indexR], self.ptrY[indexG], self.ptrY[indexB], self.ptrY[indexA])
else:
return (-1,-1,-1,-1)




I note that if I switch between two tabs (with the keyboard 1 and 2 keys) the Pixel Values will Disappears from the bar! until I move the mouse, that not happen in avspmod 2.5.1
Then you have another version.
vdcrim 2.5.1 and r452 behave just like my mod.

real.finder
20th July 2019, 19:07
Then you have another version.
vdcrim 2.5.1 and r452 behave just like my mod.

with this one https://github.com/AvsPmod/AvsPmod/releases/tag/v2.5.1

https://i.imgur.com/IDuuwp8.gif

gispos
20th July 2019, 22:11
with this one https://github.com/AvsPmod/AvsPmod/releases/tag/v2.5.1

https://i.imgur.com/IDuuwp8.gif

OK, I believe you, the flicker makes me very nerveus.:devil:
I changed it, but new code was needed.

gispos
20th July 2019, 22:48
r2 is on GitHub

real.finder
21st July 2019, 01:43
r2 is on GitHub

it work now thanks :)

but it still YUV values in 8 bit range when 8<bit

george84
21st July 2019, 05:30
I fixed it. Will upload the source to GitHub the next few days.



I tested with 2.6.0.7 and it works, Thank you.

gispos
21st July 2019, 23:58
...but it still YUV values in 8 bit range when 8<bit
Because then the displayed RGB value is returned.
See my code posting to pixelinfo. #111

'Todo' means that it is particularly complex or you have no desire or no idea about it.;)
If someone completes the code, I'll gladly take that into the source.

gispos
23rd July 2019, 17:15
Update to 2.6.0.8

Emulgator
23rd July 2019, 23:55
Many thanks !

george84
25th July 2019, 17:56
New versions of AVISynth have some REC2020 support.

In AvsPmod Tab Video Item YUV->RGB there is missing support for BT.2020.

It would be nice to have not only BT.601 and BT.709 but also BT.2020. In this case TV levels should be automatically selected and PC levels greyed out.

Just a wish and thank you for AvsPmod.

gispos
25th July 2019, 18:44
In AvsPmod Tab Item there is missing support for BT.2020.

we had already, but was removed.

Version 2.5.1.15 [2018-11-17] GPo
--------------------------
- Removed wrong Rec2020 display conversion. Sorry.

BT2020 is for 10 or 12 bit, but AvsPmod can only draw 8bit.
Therefore, the display drawing is not correct when only matrix is set.

FranceBB
26th July 2019, 12:08
Yep. I remember asking for support and testing with gispos, but it ended up producing wrong colors. I have a work-around in mind, though, this time, if you are willing to try it.

Edit: I sent you a PM with the LUTs uploaded on WeTransfer and the Avisynth Script to represent PQ, HLG, Slog2, Slog3, Clog3, LogC and XYZ. Let me know. :)

real.finder
29th July 2019, 21:17
script encoder (CLI) not working in x64

Traceback (most recent call last):
File "avsp.pyo", line 9814, in OnMenuToolsRunSelected
File "E:\AvsPmod_.Windows_x86-64\AvsPmod\tools\encoder_gui.py", line 1150, in avsp_run
dlg = CompressVideoDialog(avsp.GetWindow(), inputname, framecount, framerate)
File "E:\AvsPmod_.Windows_x86-64\AvsPmod\tools\encoder_gui.py", line 27, in __init__
self.SetDefaultValues()
File "E:\AvsPmod_.Windows_x86-64\AvsPmod\tools\encoder_gui.py", line 277, in SetDefaultValues
self.SetValidControls()
File "E:\AvsPmod_.Windows_x86-64\AvsPmod\tools\encoder_gui.py", line 416, in SetValidControls
raw_commandline = self.presets[self.ctrlDict['preset'].GetStringSelection()]
KeyError: u''

fAy01
1st August 2019, 20:59
There's a bug in avspmod's preview window. The borders on the right hand side disappear from the preview window when using the zoom feature. For 720p it's 2-3x zoom, for 480p it's 9x zoom.

Zoom 1x:
https://i.imgur.com/yNOe43X.png

Zoom 3x:
https://i.imgur.com/OcvSP6q.png

Could you please fix that?

gispos
4th August 2019, 02:45
script encoder (CLI) not working in x64
I have never touched the things.
I've written my own little script to quickly encode with ffmpeg a video, but when I have time I'll take a look at it.

There's a bug in avspmod's preview window. The borders on the right hand side disappear from the preview window when using the zoom feature. For 720p it's 2-3x zoom, for 480p it's 9x zoom.

Could you please fix that?
I do not know what you mean, the empty space on the right?
If the image width is smaller than the window, an empty area can be seen, if the Image larger then no space can be seen.
That is normal. But there is a function called menu Video> 'Toggle extended left move', let's try it.

gispos
4th August 2019, 15:55
ffmpeg encoding tools for AvsPmod.

There are two links, once with ffmpeg and one with only the scripts.
see first posting

ffmpeg:
Since there are several versions and builds, and not all accept the same parameters, I have added the version I've tested with.
Copy the archive directory 'encoders' into the AvsPmod directory.
If ffmpeg.exe is not in this directory you must make changes to the encoder scripts below.

####################################
# You may need to adjust the path to ffmpeg
ffmpegEncoder = get_app_directory() + r'\encoders\ffmpeg.exe'
####################################

Scripts for ffmpeg encoding:
Copy the content in the archive macros folder into the AvsPmod macros folder.
In the Macros menu, these scripts can then be executed.

The AvsP encoding gui:
I made a few changes to the code and added presets for ffmpeg. The presets can be changed in an editor.

Important!
Quit AvsPmod, in the AvsPmod tools directory the following files must be deleted:
encoder_gui.pyo, encoder_gui.py, encoder_gui.dat

Now copy the files from the archive folder 'tools' into the AvsPmod folder 'tools'.

Finished.
In the menu Tools> 'Script encoder (CLI)' the gui can be started.

Note: Anyone who does not encode with xvid should rename the xvid.presets e.g. xvid.presets.tmp
The menu in the gui is cleaned up.

@real.finder
For me, the Gui works great. The error should lie with the user.;)
Delete the files I listed in the readme. If you have changed the presets then there can also be erroneous entries.

real.finder
8th August 2019, 03:32
ffmpeg encoding tools for AvsPmod.


@real.finder
For me, the Gui works great. The error should lie with the user.;)
Delete the files I listed in the readme. If you have changed the presets then there can also be erroneous entries.

thanks :goodpost:

yes it's from me, I did copy files from old 2.5.1 tools folder to your x64 cuz I was lazy to re-download convert.exe and others, deleting .pyo and .dat files fix it, and ffmpeg encoding tools seems cool thing

Asmodian
8th August 2019, 07:29
I do not know what you mean, the empty space on the right?

I do not think that is it. The source video looks to end with a column of pixels with reduced saturation and then a column of black pixels but these are both missing in the zoomed in version.

StvG
8th August 2019, 21:19
Not only on the right side but on the bottom too x px lines are hidden when zoom y times.

gispos
10th August 2019, 10:35
Update to 2.6.0.9

Zoom fixed, what a stupid bug.
Rounding errors in python while setting the size of the video window.
Almost impossible to find, it cost me several hours.

Small update of encoder_gui.py and ffmpeg.presets
Added to ffmpeg.presets:
Parameter 'SAR'
DNxHR HQ codec

To the GUI menu 'pixel aspect selection':
Automatic DAR to SAR calculation of the video (frame AR)
e.g. Video 720x576 to DAR 16:9 = SAR 1.4222

I think that's this is not often used, it's almost 1:1 encoding, but I'm wondering, though, why is SAR being used in the GUI?
Why not just put the DAR, that would kill the whole conversion cramp: DV-PAL, DV-NTSC, SVCD-PAL, etc.

Note:
Do not forget to delete the encoder_gui.pyo

StvG
10th August 2019, 11:00
Thanks.

Any specific reason to limit max zoom to factor 20?

real.finder
13th August 2019, 05:04
I used to add lossless for x264 in x264.presets
[lossless]
x264.exe --preset ultrafast --crf 0 $extra_options --sar $par_x:$par_y --output "$video_output" "$video_input"

it will be nice if it added in AvsPmod GPo

gispos
14th August 2019, 21:19
Thanks.

Any specific reason to limit max zoom to factor 20?
Can on the next version (can take) the zoom maximum set to 40. Is that enough?

I used to add lossless for x264 in x264.presets
[lossless]
x264.exe --preset ultrafast --crf 0 $extra_options --sar $par_x:$par_y --output "$video_output" "$video_input"

it will be nice if it added in AvsPmod GPo
Preset 'Very Fast' already exists, if the CRF is set to 0 this is also lossless.
The only difference is 'Ultra Fast' to 'Very Fast' or not? I think I've read that at CRF 0 always lossless is converted.

'Ultra Fast' the user should add himself when he needs it.:)

StvG
15th August 2019, 00:21
Can on the next version (can take) the zoom maximum set to 40. Is that enough?

Yes. Thanks.

gispos
15th August 2019, 18:57
Thanks.

Any specific reason to limit max zoom to factor 20?
AvsPmod 2.6.0.9 with max 40 zoom. Swap the library.zip in the AvsPmod 'lib' directory

https://www.sendspace.com/file/u2amj6

Q-the-STORM
26th August 2019, 02:20
I think that's this is not often used, it's almost 1:1 encoding, but I'm wondering, though, why is SAR being used in the GUI?
Why not just put the DAR, that would kill the whole conversion cramp: DV-PAL, DV-NTSC, SVCD-PAL, etc.

Basically, if there's cropping DAR changes while SAR doesn't. SAR is always going to be constant/correct and scale anamorphic video correctly regardless of cropping, while a constant DAR could/would stretch your video if there's cropping. (Assuming your renderer takes SAR into account, obviously)

dREV
4th September 2019, 16:17
Hello, I wanted to simply ask two quick question. When I save screenshots under "Quick save image" I'm not sure how I did it but I ended up saving the file name as so:
000_52698.png

The 52698 is the frame number which I prefer but it's the 000_ that I dunno how I got it to save in this manner long ago. Is it a bug or is it possible to name the file however you want? How would one be able to do that.

Also, I've seen several avspmod images with yellow text on them. How can I do that? Thanks if anybody replies to my two questions.

gispos
5th September 2019, 19:40
When I save screenshots under "Quick save image" I'm not sure how I did it but I ended up saving the file name as so: 000_52698.png

The 52698 is the frame number which I prefer but it's the 000_ that I dunno how I got it to save in this manner long ago. Is it a bug or is it possible to name the file however you want? How would one be able to do that.

This can be changed under Options> Save/Load "Default image filename pattern".
Edit: That's what I thought, but probably does not work. I'll take a look at the code.
https://i.postimg.cc/Y2v7L3Km/FileName.jpg


Also, I've seen several avspmod images with yellow text on them. How can I do that? Thanks if anybody replies to my two questions.
With yellow text on the Image shot?
eg with subtitle, look at the documentation on this.
last.Subtitle("My best shots")
c0 = Trim(0, 4645).Subtitle("0")
c1 = Trim(4646, 5931).Subtitle("1")

With yellow text on the error message?
Option>Video>Error message font...

gispos
6th September 2019, 13:05
Update to 2.6.1.0
fix filename Quick save image, I hope.
max 40x zoom
update ffmpeg and x264 presets, added lossless:)


When I save screenshots under "Quick save image" I'm not sure how I did it but I ended up saving the file name as so:
000_52698.png

To apply a desired file name:
You must first save the image with "Save Image as ...".
The file name is then used for "Quick save Image".
Edit:
If you want to save the frame number with "Quick save image", do not remove the number on "Save Image as..."
If removed, "Quick save image" will not save any frame numbers.

I have a macro here (actually only for me), it's something special.
Try it, you can also create a hotkey in AvsPmod. Copy the file in the archive to the macro directory.
To save the frame number in the file name, the # character of #framenr = '_' + str (avsp.GetFrameNumber ()) must be removed
Info:

# GPo 2018, AvsPmod macro save image

"""
# find source file name for the image name and not the avs or script filename
# search for my pattern and find the source filename (sourceFile, videosource... etc)
# finds also ScriptDir() + "My Video.mkv"
# doesn't override any file
#
# My default AvsPmod templates eg 'mkv, ts, etc..':
#
# SourceFile = ScriptDir() + [***]
# SourceFile = Exist(SourceFile) ? SourceFile : ***
# video=LWLibavVideoSource(SourceFile, cache=False)
# audio=LWLibavAudioSource(SourceFile, cache=False)
# audioDub(video, audio)
"""

import os
import sys

# enable Input for filename if source file not found
# else filename is tab name (script name)
doMessage=True

sourceFile=''
fileName=''
# save as jpg
fnExt='.jpg'
# jpg Quality
jpgQ=90
framenr=''

# enable this for frame number, does not override existing files
#framenr= '_' + str(avsp.GetFrameNumber())

dREV
13th September 2019, 00:00
To apply a desired file name:
You must first save the image with "Save Image as ...".
The file name is then used for "Quick save Image".
Edit:
If you want to save the frame number with "Quick save image", do not remove the number on "Save Image as..."
If removed, "Quick save image" will not save any frame numbers.


Thanks that worked super easy with your new update. :eek:
However, there's an issue that it resets after closing it and have to do the steps again. The one I did doesn't do that. Maybe you can figure it out what the heck I did from a old version of avspmod and see what I mean. link (http://www.mediafire.com/file/297ndy2axh5v72r/avspmod.zip/file).

Haven't tried your macro but I'm content with the other one. Thanks for your help on that.


With yellow text on the Image shot?
eg with subtitle, look at the documentation on this.
last.Subtitle("My best shots")
c0 = Trim(0, 4645).Subtitle("0")
c1 = Trim(4646, 5931).Subtitle("1")

With yellow text on the error message?
Option>Video>Error message font...

Not for error messages. Kinda like this: http://cfile4.uf.tistory.com/image/172E39234CF259250D4B02
I've also seen them on the upper-left and right sides stating "frame number", etc and for screen comparisons stating "Before" and "After". I cannot be certain on the latter if they were modified or it was done within avspmod.

gispos
13th September 2019, 20:53
Thanks that worked super easy with your new update. :eek:
However, there's an issue that it resets after closing it and have to do the steps again. The one I did doesn't do that. Maybe you can figure it out what the heck I did from a old version of avspmod and see what I mean. link (http://www.mediafire.com/file/297ndy2axh5v72r/avspmod.zip/file).
If I understand you correctly then you would like the behavior of the old version?
No problem, it does not matter to me because I do not use the feature ... hopefully someone else will not want to have it afterwards.;)


Not for error messages. Kinda like this: http://cfile4.uf.tistory.com/image/172E39234CF259250D4B02
I've also seen them on the upper-left and right sides stating "frame number", etc and for screen comparisons stating "Before" and "After". I cannot be certain on the latter if they were modified or it was done within avspmod.
Look at your posted picture, top "ScriptClip" is the line for the FrameNr display, it is not AvsPmod function.

Edit:
Now I have to ask again.
When I open a script and save an image with "Quick save" then the file name of the script is used.

Where are your problems?

After all, I can not take the saved name for any other script, that would be confusing and incorrect.
If you want a different formatting then you have to specify a default under Options. %s stands for script title.
instead of %s_%06d then just "My best shoots_%06d" or %s-my best shoots_%06d

Edit2:
According to Python, a unique ID is to be assigned for each scribt, but this unique ID is dependent on the index and thus is always the same for the start for index 0.
This means that if I open any script as Index 0 after starting AvsPmod, the images are saved with the name of the previously opened script. And that's a bug for me.
Therefore, every time you start AvsPmod and on close tab event, the old stored ID is reset and the default value under Options is now also used for saving dialog.

gispos
14th September 2019, 13:07
Thanks that worked super easy with your new update. :eek:
However, there's an issue that it resets after closing it and have to do the steps again. The one I did doesn't do that.[/url][/b].


As reverence is no longer the ID used but the script title (See Python GetId).
So the script is closed and reopened no matter which index, the previously used name is used to save the image.
If in between an image is saved by another script (title), of course, the stored name will be lost.

The existing bug in the old version remains.

If there is a number with the frame number in the file name, e.g.
Bad.Boy.S01E07_000167 everything can mixed up.

At the moment I have no desire to deal with this bug.
Swap the library.zip in the AvsPmod lib directory.

library.zip (https://www.mediafire.com/file/omdy5ydwewsh4ss/AvsPmod_2.6.1.0r3_library.7z/file)

fAy01
15th September 2019, 04:33
Is it possible for you to add VS support to avspmod?

dREV
15th September 2019, 07:09
If I understand you correctly then you would like the behavior of the old version?
No problem, it does not matter to me because I do not use the feature ... hopefully someone else will not want to have it afterwards.;)

Edit:
Now I have to ask again.
When I open a script and save an image with "Quick save" then the file name of the script is used.

Where are your problems?

After all, I can not take the saved name for any other script, that would be confusing and incorrect.
If you want a different formatting then you have to specify a default under Options. %s stands for script title.
instead of %s_%06d then just "My best shoots_%06d" or %s-my best shoots_%06d

Edit2:
According to Python, a unique ID is to be assigned for each scribt, but this unique ID is dependent on the index and thus is always the same for the start for index 0.
This means that if I open any script as Index 0 after starting AvsPmod, the images are saved with the name of the previously opened script. And that's a bug for me.
Therefore, every time you start AvsPmod and on close tab event, the old stored ID is reset and the default value under Options is now also used for saving dialog.

Well I just thought that the old version I used was in your version as well, so I'd thought I could just update my avspmod to yours and carry on. The only issue with it is that it was not saving the settings. If I wanted to change the format all I'd have to do is to repeat the steps as you've mentioned and save those new settings and avspmod was used again.


Look at your posted picture, top "ScriptClip" is the line for the FrameNr display, it is not AvsPmod function.

Oh I see. I just got that off web search as I didn't save any examples so I had to do a quick search to let you see what I meant as I thought it was part of avspmod function.

gispos
15th September 2019, 10:51
Is it possible for you to add VS support to avspmod?
Unfortunately not.
This is a lot of work and requires good knowledge of Python and VapourSynth.
I have not dealt with VapourSynth yet and I only came to Python through AvsPmod.

I started a Delphi project a few weeks ago with the goal to support AS and VS. In contrast to Python, I know a lot better with Delphi.
But I'm not really getting on right now:
Have the AV header translated to Pascal and have problems at the moment to pass the AV script via "Eval" to AV.
Maybe Delphi is not suitable, let's see how it goes on.

LigH
24th September 2019, 09:28
In case the application does not work well and the window closes immediately - is there any debug log option?

gispos
24th September 2019, 21:14
In case the application does not work well and the window closes immediately - is there any debug log option?
Error logs are created in the program directory.
error_log.txt or AvsPmod.exe.log

Normally, however, a window also appears with the hint of the error.
If AvsPmod does not start at all or the window closes immediately without a hint, there must be a significant problem.

I did not see a parameter for the short-term debug of the compiled version.
Maybe vdcrim reads here and can also write something about it.

LigH
26th September 2019, 07:14
One possible reason may be if you try to install in the UAC protected Program Files area, so it is unable to create files there...

gispos
26th September 2019, 17:19
One possible reason may be if you try to install in the UAC protected Program Files area, so it is unable to create files there...
Personally, I do not use directories specified by Windows and the annoying UAC is turned off so I do not notice anything like that.

The problems also with older versions?

LigH
27th September 2019, 10:37
Do not expect that every user accepts to carelessly disable a security feature just to allow software to run which does not care about software guidelines known for at least a decade already. The UAC may be annoying. But malware operating "as Administrator" is deadly.

At the very least, users need to know that AvsPmod must not be installed in a directory where it has no permission to create files as non-admin (similar to MeGUI). This should be documented in a prominent place (like the thread start where the download is linked). And the program should not just close or crash without any feedback about the reason. The less unexpected and unhandled reasons to fail, the better.

gispos
27th September 2019, 22:33
Do not expect that every user accepts to carelessly disable a security feature just to allow software to run which does not care about software guidelines known for at least a decade already. The UAC may be annoying. But malware operating "as Administrator" is deadly.

At the very least, users need to know that AvsPmod must not be installed in a directory where it has no permission to create files as non-admin (similar to MeGUI). This should be documented in a prominent place (like the thread start where the download is linked). And the program should not just close or crash without any feedback about the reason. The less unexpected and unhandled reasons to fail, the better.
You're right... but for how many years does AvsP exist?
Maybe one should have brought these topics closer to the former developers.

This was my start:
I have adapted the program to my own needs. Maybe one or the other likes it.

I've spent quite some time on changes that do not interest me, if that and that does not work, I'm willing to help, but I will not invest time in this topic.
I can write a note about the UAC, but nothing more.

GeZorTenPlotZ
6th October 2019, 01:59
Hi,
i've a problem since i cropped a stream vertical.
I can't open AVSPMod anymore.

Screen1 (https://drive.google.com/open?id=1A1cDBOd3s2jdIrBXByJnKeyKBf_ZZFtO)
Screen2 (https://drive.google.com/open?id=1N4dA0h1bzbGJStfYqcSov0amBpNY6RsE)

Error-Log.txt
[Sun Oct 6 02:46:54 2019]
H:\video\AvsPmodx64\lib\library.zip\cffi\vengine_cpy.py:184: UserWarning: reimporting 'avisynth_cffi_ext' might overwrite older definitions

I deleted the whole AVSPMod folder, un- and reinstalled avisynth+ ... AVSPMod won't start anymore.
AVSMeter does not see any problems and x264-Launcher runs normal.

Any ideas and help is appreciated

THX

StainlessS
6th October 2019, 03:49
Just a daft question, did you reinstall Avs+ x64 (or x86), the 1st screen message seems to come from x64 version of AvsPmod.
Also, did you check with AvsMeter64 or just AvsMeter ?

Are you running two versions of Avs+ (perhaps via Groucho2004 Universal installer), clarify.
Try uninstall x86 version, you still running x264-Launcher etc OK ?

EDIT: And welcome to the forum. https://www.cosgan.de/images/smilie/froehlich/a010.gif

GeZorTenPlotZ
6th October 2019, 19:48
@StainlessS
Installed is Avs+ x64 and x84. In use is only x64 but i checked with both AvsMeter versions.
And yes, i use AvsPmod x64.
This combination worked for years (with updating AvsPmod and x264-Launcher).

I found this one (https://forum.doom9.org/showthread.php?p=1704527#post1704527). It seems to be the same problem...


(THX for welcome ... as you see i'm here since 2015 but just reading helped me out until now.)

StainlessS
6th October 2019, 21:03
I can only think that there may be some (broken asvpmod [or python]) junk left in registry, (HKEY_LOCAL_MACHINE\SOFTWARE\ or HKEY_CURRENT_USER\Software\),
or maybe C:\Users\User\Appdata\ or C:\ProgramData\.

[After AvsPMod uninstall, delete any entries for it in above places, and then re-install - if you find any python entries in above places, then post here about them, maybe somebody knows if related ]

Well Welcome is perhaps the wrong greet, maybe 'Congrats that you found your voice at last', is better :)

GeZorTenPlotZ
6th October 2019, 22:20
i thought about that last night, too.

Appdata (local, roaming, low), documents (public, user) and registry (lm, cu) incl. syswow64 searched. But i found nothing that i can relate to avspmod or python.

Groucho2004
7th October 2019, 00:24
Installed is Avs+ x64 and x84. In use is only x64 but i checked with both AvsMeter versions.
And yes, i use AvsPmod x64.
This combination worked for years (with updating AvsPmod and x264-Launcher).Please run "avsmeter64 avsinfo -log" and post the generated "avsinfo_x64.log" file. I just want to have a look at what plugins you have in the auto-load directory and which versions.

GeZorTenPlotZ
7th October 2019, 02:16
Log here:

Log file created with: AVSMeter 2.9.6 (x64)

[OS/Hardware info]
Operating system: Windows 10 (x64) (Build 18362)

CPU: Intel(R) Core(TM) i9-7900X CPU @ 3.30GHz / Skylake-X (Core i9)
MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, FMA3, AVX, AVX2, F16C, AVX512F, AVX512DQ, AVX512CD, AVX512BW, AVX512VL, BMI1, BMI2
10 physical cores / 20 logical cores


[Avisynth info]
VersionString: AviSynth+ 0.1 (r1576, x64)
VersionNumber: 2.60
File / Product version: 2.6.0.5 / 2.6.0.5
Interface Version: 5
Multi-threading support: No
Avisynth.dll location: C:\WINDOWS\SYSTEM32\avisynth.dll
Avisynth.dll time stamp: 2014-01-03, 16:11:18 (UTC)
PluginDir2_5 (HKLM, x64): H:\video\AviSynth+\plugins64
PluginDir+ (HKLM, x64): H:\video\AviSynth+\plugins64+


[CPP 2.5 Plugins (64 Bit)] [Version, Time stamp]
H:\video\AviSynth+\plugins64+\AddGrainC.dll [1.7.1.0, 2013-11-25]
H:\video\AviSynth+\plugins64+\delogo.dll [0.0.5.1, 2013-12-03]
H:\video\AviSynth+\plugins64+\FFT3dGPU.dll [0.8.2.0, 2010-03-15]
H:\video\AviSynth+\plugins64\aWarpSharp.dll [x.x.x.x, 2014-09-21]
H:\video\AviSynth+\plugins64\Decomb.dll [x.x.x.x, 2013-12-01]
H:\video\AviSynth+\plugins64\flash3kyuu_deband.dll [x.x.x.x, 2015-05-02]
H:\video\AviSynth+\plugins64\gradfun2db.dll [x.x.x.x, 2010-03-29]
H:\video\AviSynth+\plugins64\RemoveGrainHD.dll [0.5.0.0, 2014-09-17]
H:\video\AviSynth+\plugins64\VariableBlur.dll [0.5.0.0, 2011-03-16]

[CPP 2.6 Plugins (64 Bit)] [Version, Time stamp]
H:\video\AviSynth+\plugins64+\ConvertStacked.dll [x.x.x.x, 2018-03-02]
H:\video\AviSynth+\plugins64+\DirectShowSource.dll [x.x.x.x, 2014-01-03]
H:\video\AviSynth+\plugins64+\ImageSeq.dll [x.x.x.x, 2014-01-03]
H:\video\AviSynth+\plugins64+\Shibatch.dll [x.x.x.x, 2014-01-03]
H:\video\AviSynth+\plugins64+\TimeStretch.dll [x.x.x.x, 2014-01-03]
H:\video\AviSynth+\plugins64+\VDubFilter.dll [x.x.x.x, 2014-01-03]
H:\video\AviSynth+\plugins64\DGDecodeNV.dll [2053.0.0.121, 2018-02-07]
H:\video\AviSynth+\plugins64\ffms2.dll [x.x.x.x, 2016-12-29]
H:\video\AviSynth+\plugins64\GBlur.dll [x.x.x.x, 2015-06-02]
H:\video\AviSynth+\plugins64\HBlur.dll [x.x.x.x, 2015-06-02]
H:\video\AviSynth+\plugins64\MedianBlur2.dll [x.x.x.x, 2014-02-10]

[Scripts (AVSI)] [Time stamp]
H:\video\AviSynth+\plugins64+\colors_rgb.avsi [2014-01-03]
H:\video\AviSynth+\plugins64\SimpleSlugUpscale.avsi [2017-04-25]

[Uncategorized files] [Time stamp]
H:\video\AviSynth+\plugins64+\addgrain.avs [2011-10-27]
H:\video\AviSynth+\plugins64+\AddGrainC.txt [2013-11-25]
H:\video\AviSynth+\plugins64+\colors_rgb.txt [2014-01-03]
H:\video\AviSynth+\plugins64+\fft3dgpu.hlsl [2010-02-05]
H:\video\AviSynth+\plugins64\aWarpSharp.txt [2012-03-27]
H:\video\AviSynth+\plugins64\ffms2.lib [2016-12-29]
H:\video\AviSynth+\plugins64\ffmsindex.exe [2016-12-29]
H:\video\AviSynth+\plugins64\flash3kyuu_deband.txt [2012-04-07]
H:\video\AviSynth+\plugins64\GBlur.html [2014-11-11]
H:\video\AviSynth+\plugins64\HBlur.html [2014-08-17]
H:\video\AviSynth+\plugins64\license.txt [2018-02-08]

When i empty the PlugIn folders the log looks like this:

Log file created with: AVSMeter 2.9.6 (x64)

[OS/Hardware info]
Operating system: Windows 10 (x64) (Build 18362)

CPU: Intel(R) Core(TM) i9-7900X CPU @ 3.30GHz / Skylake-X (Core i9)
MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, FMA3, AVX, AVX2, F16C, AVX512F, AVX512DQ, AVX512CD, AVX512BW, AVX512VL, BMI1, BMI2
10 physical cores / 20 logical cores


[Avisynth info]
VersionString: AviSynth+ 0.1 (r1576, x64)
VersionNumber: 2.60
File / Product version: 2.6.0.5 / 2.6.0.5
Interface Version: 5
Multi-threading support: No
Avisynth.dll location: C:\WINDOWS\SYSTEM32\avisynth.dll
Avisynth.dll time stamp: 2014-01-03, 16:11:18 (UTC)
PluginDir2_5 (HKLM, x64): H:\video\AviSynth+\plugins64
PluginDir+ (HKLM, x64): H:\video\AviSynth+\plugins64+

But AvsPmod doesn't start anyway. It must have something to do with this. (https://drive.google.com/file/d/1A1cDBOd3s2jdIrBXByJnKeyKBf_ZZFtO/view)

Just found out that AvsPmod V2.5.1 x64 does work!

StainlessS
7th October 2019, 08:45
Well without doing anything else (or lookin' any further), I suggest update to current avs+ (well at least not a version that is several[5.5] years out of date),

[Avisynth info]
VersionString: AviSynth+ 0.1 (r1576, x64)
VersionNumber: 2.60
File / Product version: 2.6.0.5 / 2.6.0.5
Interface Version: 5
Multi-threading support: No
Avisynth.dll location: C:\WINDOWS\SYSTEM32\avisynth.dll
Avisynth.dll time stamp: 2014-01-03, 16:11:18 (UTC)
PluginDir2_5 (HKLM, x64): H:\video\AviSynth+\plugins64
PluginDir+ (HKLM, x64): H:\video\AviSynth+\plugins64+


r1576 is pre-Pinterf.

Here is current stable Pinterf :- https://github.com/pinterf/AviSynthPlus/releases

r1576 was an Ultim version avs+ in first post of Avs+ in devs forum, (there is I think also a link inserted there via Moderator, to Pinter builds, but people seem to miss it).
You can always find latest Pinterf version via his sig (beneath any of his posts), "My AviSynth+ repo on github", then click on "Releases".

EDIT: If after install of above (selectable install both x86 and x64), then can if desired (I recommend) copy dll's from here:- https://forum.doom9.org/showthread.php?p=1883630#post1883630
into your system32 (x64) and sysWOW64(x86), is most recent test build and working pretty great, with a few improvments over r2772 stable.

EDIT:

[Uncategorized files] [Time stamp]
H:\video\AviSynth+\plugins64+\addgrain.avs [2011-10-27] # OK for current avs+, but maybe rename to *.avsi
H:\video\AviSynth+\plugins64+\AddGrainC.txt [2013-11-25] # delete
H:\video\AviSynth+\plugins64+\colors_rgb.txt [2014-01-03] # delete
H:\video\AviSynth+\plugins64+\fft3dgpu.hlsl [2010-02-05] # for fft3dFilter, leave alone: EDIT: FFT3dGPU.dll
H:\video\AviSynth+\plugins64\aWarpSharp.txt [2012-03-27] # delete
H:\video\AviSynth+\plugins64\ffms2.lib [2016-12-29] # delete
H:\video\AviSynth+\plugins64\ffmsindex.exe [2016-12-29] # delete (or move somewhere else, its not really needed unless via command line)
H:\video\AviSynth+\plugins64\flash3kyuu_deband.txt [2012-04-07] # delete
H:\video\AviSynth+\plugins64\GBlur.html [2014-11-11] # delete
H:\video\AviSynth+\plugins64\HBlur.html [2014-08-17] # delete
H:\video\AviSynth+\plugins64\license.txt [2018-02-08] # delete


Just found out that AvsPmod V2.5.1 x64 does work!
Probably because current avsPMod was converted for current avs+ use, but old one works ok with old avs+.

Groucho2004
7th October 2019, 10:36
@GeZorTenPlotZ
What Stainless wrote.

Also, clean up/update your plugin directory/directories further:

How come you have a ConvertStacked.dll from 2018 in your plugins directory whereas your avisynth.dll version is 4 years older?
There's a newer version of fft3dgpu here (https://github.com/pinterf/FFT3dGPU/releases).

LigH
7th October 2019, 12:03
Probable reason for question 1: The AviSynth+ homepage http://www.avs-plus.net/ is outdated since the "new MT" started its development; learning that most recent builds are elsewhere is apparently a process...

GeZorTenPlotZ
7th October 2019, 15:39
To be frank, i always look to avisynth-wiki for filters and answers. I've read there that there are some probs with MT-version of avisynth. So why upgrading when it works? And it worked 'til last week. Maybe last WinUpdate broke something? Don't know.
But ok, i've done everything what has been said and now it works again.
So thank you guys!

BTW, with all those versions and forks of avisynth it's a bit difficult to follow if you are not in touch continuously.

Groucho2004
7th October 2019, 15:44
BTW, with all those versions and forks of avisynth it's a bit difficult to follow if you are not in touch continuously.True. It has been suggested before to create a dedicated thread for pinterf's AVS+, I hope that's going to happen soon.

Groucho2004
7th October 2019, 17:26
I've read there that there are some probs with MT-version of avisynth.I'd like you to point me to the page where you read that.

You can usually blame a misbehaving plugin for problems with multi-threaded workflows. There are other reasons such as noobs setting the number of threads to insane values and then complain that it crashes (mostly caused by running out of memory).

Anyway, if you have trouble with multi-threading - don't use it.

StainlessS
7th October 2019, 17:59
Originally Posted by GeZorTenPlotZ View Post
I've read there that there are some probs with MT-version of avisynth.

I'm guessin' concerns SEt's version avisynth (non+) MT x64.

EDIT: I dont use MT.

Groucho2004
7th October 2019, 18:08
I'm guessin' concerns SEt's version avisynth (non+) MT x64.I don't think there ever was a 64 bit MT version by SEt or anyone else (but my memory might be failing me).

StainlessS
7th October 2019, 18:58
I don't think there ever was a 64 bit MT version by SEt or anyone else (but my memory might be failing me).


SEt's Avisynth 2.5.8 MT compiled for *X86_64*, Latest Build 4/16/2010 [Compiled by JoshyD]
https://forum.doom9.org/showthread.php?t=152800

v2.58 x64 though, not avs+. (GeZorTenPlotZ did not mention avs+)

EDIT: On Wiki home page under Deprecated builds:- http://avisynth.nl/index.php/Main_Page

Groucho2004
7th October 2019, 19:03
SEt's Avisynth 2.5.8 MT compiled for *X86_64*, Latest Build 4/16/2010 [Compiled by JoshyD]
https://forum.doom9.org/showthread.php?t=152800

v2.58 x64 though, not avs+. (GeZorTenPlotZ did not mention avs+)I stand corrected. :o

I remember the 64 bit version from JoshyD but I thought it was single-threaded only.

gispos
9th October 2019, 20:13
Here was something about avisynth classic x64 #74 (https://forum.doom9.org/showthread.php?p=1863895#post1863895)

Compatibility with the classic x64 Avisynth version:
I have found a 2.5.8 x64 version and this version does not want to load even VirtualDub2 and the older AvsPmod Versions.
I will not invest any time there. The world keeps turning and that's from yesterday.
But maybe I have also corrected this with my changes. Maybe someone can give notice.
Until then, I declare AvsP x64 as incompatible with 'Classic' Avisynth x64

StainlessS
9th October 2019, 21:24
Until then, I declare AvsP x64 as incompatible with 'Classic' Avisynth x64

Yep gispos, dont you sweat at all about that, let it die in peace.

LigH
10th October 2019, 07:39
Indeed. "Classic AviSynth x64" was an attempt to port from a base with code tricks the x86-64 architecture would not accept, partially due to enhanced thread security. It was quite probably bound to fail.

AviSynth+ was not only a user feature enhancement of AviSynth. Most of all, it was a much more clean and portable rewrite. Created to support both 32 and 64 bit code, CPU/OS features as well as constraints.

nyuszika7h
24th October 2019, 13:05
AvsPmod doesn't seem to play well with Hi-DPI displays, some of the text (e.g. in the preferences dialog) is tiny. Overriding Windows compatibility settings seems to fix the issue, maybe the app should be marked as DPI-aware, though I only tested this at 125% scaling and 1920x1080 resolution on Windows 10.

https://thumbs2.imgbox.com/bb/29/1P4TxFww_t.png (http://imgbox.com/1P4TxFww) https://thumbs2.imgbox.com/9e/e4/poGLAOW4_t.png (http://imgbox.com/poGLAOW4) https://thumbs2.imgbox.com/cb/3e/FaJcASRI_t.png (http://imgbox.com/FaJcASRI)

gispos
1st December 2019, 18:49
Update AvsPmod
Update AvsPThumb now on GitHub

https://github.com/gispos

whugemann
7th February 2020, 11:10
How do I report issues on yout Github repository?

I tried the 32-version under Window 10, 32bit and it only runs if you have administrator previlegs. Otherwise it pops up shortly and vanishes again. (BTW: Same issue with the original master branch version.)

gispos
8th February 2020, 12:58
How do I report issues on yout Github repository?

I tried the 32-version under Window 10, 32bit and it only runs if you have administrator previlegs. Otherwise it pops up shortly and vanishes again. (BTW: Same issue with the original master branch version.)
Did you unpack AvsPMod into a system program directory? AvsPmod and many other small tools need write access in its own directory.

Read from post #146

If that's, because I have to add a message.

KreuzBlick
26th February 2020, 21:31
I have found a cryptic behavior of AvsPmod. At first I couldn't explain, but now I know what's going on.

But step by step: I write scripts with Avisynth for my digitized Super 8 soundfilms. I use AvsPmod in the latest version 2.6.1.0. I open video with avisource() and audio with wavsource() and combine them with AudioDub(). After that I have to synchronize audio and video. Virtualdub2 is ideal for this task, because the audio track can be displayed together with the videoframe. The determined sound offset must be entered in the script with the DelayAudio() function. Since Virtualdub2 itself has a script editor, I use it for this purpose. With F5 "save and refresh" I can immediately test whether the offset has been correctly determined.

After that it goes back to AvsPmod to continue editing the script. And here comes the strange thing: The previously saved changes have disappeared! Since I don't believe in miracles, I open the script again in the VD-script editor. The change is back. So I reopen in AvsPmod: the change has gone. As a further check, I open with editor or notepad++, the changes are available here. Only avsPmod does not display them, although they are obviously saved in the script! What's happening?

I take a closer look at the script. It is inconspicuous in avsPmod, but does not contain the externally made changes. Now I open with editor and scroll further down. There I see, commented out, a second variant of the script that begins with the line "### AvsP marked script ###". This variant is obviously generated when user sliders are used. Since Avisynth does not know these sliders, AvsPmod creates a script version with fixed values, which can be executed by Avisynth, and puts the original script as a second part in a comment. Other editor programs can see the first part and can change it and Avisynth respects the new script. But AvsPmod does not pay attention to this first part, but retrieves its script from the second part, which was commented out and not altered.

The behavior of AvsPmod is somehow logical, since it wants to be compatible when using user sliders, but it is not thought until end. It is assumed that you only open a script with the program itself, but this is too restrictive. Other programs cannot be held responsible for the strange behavior, because they don't know the peculiarities of AvsPmod. AvsPmod itself would have to take care of it. If the two versions in the script with and without user-slider no longer match, at least a warning should come and possibly the question, which script version should be used. As it is now, users are irritated because data changes can suddenly disappear.

I made a forum search for "### AvsP marked script ###", but nobody seemed to notice this behavior.

StainlessS
27th February 2020, 03:04
"### AvsP marked script ###", but nobody seemed to notice this behavior.

I have certainly noticed it, tis the reason that I do not use AvsPMod at all.
Earlier versions of AvsPMod were actually modifying my scripts (When I used RT_FSelOpen, it inserted the actual selected filename into the script, instead of the RT_FSelOpen call,
totally magic how it did that but it meant that my scripts no longer worked with file selector, and had to be hand edited back to original again. Real annoying.)
I have no idea if the app still has the same behaviour, on a quick test some time back, it did not edit the RT_FSelOpen thing, but maybe I did not test sufficiently well.
I understand that AvsPMod is just trying to be helpful, and for most people it probably works very well, but during script development, is [EDIT: was] a bloody nightmare to have to keep
changing it back to how it was.

Of course, no blame attaches itself to GisPos, he is doing his best to maintain the monster that he has taken on, much respect for that Gispos.


RT_FSelOpen(string "title"="Open",string "dir"="",string "filt",string "fn="",bool "multi"=false,bool "debug"=false)

Function to select EXISTING filename using GUI FileSelector.

Title = Title bar text.
Dir = Directory, "" = Current
Filt = Lots, eg "All Files (*.*)|*.*"
[Displayed text | wildcard] [| more pairs of Displayed text and wildcard, in pairs ONLY].
first one is default.
fn = Initially presented filename (if any).
multi = Multiply Select filenames. Allows selection of more than one filename at once.
debug = Send error info to DebugView window.

Returns
int, 0, user CANCELLED.
int, non zero is error (error sent to DebugView window).
String, Filename selected, Chr(10) separated multiline string if MULTI==true (and multiple files selected).

Example, to prompt for an AVI file and play it.
avi=RT_FSelOpen("I MUST have an AVI",filt="Avi files|*.avi")
Assert(avi.IsString,"RT_FSelOpen: Error="+String(avi))
AviSource(avi)


EDIT: From earlier in this thread (maybe GisPos fixed it).
Well from Python 2.7 to Python 3.0, I believe the main diff is the print statement[becomes a function in v3.0], not really too big a difference (see x in y minutes web page for differences)
x in y minutes:- https://learnxinyminutes.com/

I have eg a script that calls a file selector to get a filename from user, On return AvsPMod actually changes my script and embeds to chosen filename in script, making the purpose of the script, useless (Ie file sector no longer works proper).
I have no idea whatever how AvsPMod does what it does (to screw up my scripts). I just know that it does.
Most people love AvsPMod, but if you are a script developer, and have to un-fuck what the AVSPMod thing does EVERY TIME, then its a bit not nice.

EDIT: I think this is one of the ones that causes probs (from RT_Stats), [EDIT: It actually modifes the source script, go figure]

avi = RT_FSelOpen("Please select an AVI file",Filt="*.AVI|*.AVI")
Assert(avi.IsString,"RT_FSelOpen: Error="+String(avi))
AVISource(AVI)
txt = RT_FSelOpen("And now select a Text file",Filt="*.txt|*.txt")
Assert(txt.IsString,"RT_FSelOpen: Error="+String(txt))
Txt=RT_ReadTxtFromFile(txt)
Lines=RT_TxtQueryLines(Txt)
# config
DELAY=100
ALIGN=1 # As Numeric KeyPad
SCROLL=0 # 0 = Upwards : 1 = Downwards : 2 = Right to Left : 3 = Left to right : 4 = Karaoke
#
ORG=Last
Last=(SCROLL==4)? ORG.Blankclip(height=80) : Last
CMD_0 = """RT_Subtitle("%s",Txt,align=ALIGN,y=height+DELAY-current_frame,expx=true,expy=true)"""
CMD_1 = """RT_Subtitle("%s",Txt,align=ALIGN,y=-(Lines*20+DELAY) + current_frame,expx=true,expy=true)"""
CMD_2 = """RT_Subtitle("%s",Txt,align=ALIGN,x=width+DELAY-current_frame,expx=true,vcent=true)"""
CMD_3 = """RT_Subtitle("%s",Txt,align=ALIGN,x=-(width+DELAY)+current_frame,expx=true,vcent=true)"""
CMD_4 = """RT_Subtitle("%s",Txt,align=ALIGN,y=height+DELAY-current_frame,expx=true,expy=true)"""
CMD_5 = """RT_Subtitle("BAD SCROLL COMMAND (0->4)")"""
CMD = (SCROLL<0 || SCROLL>4) ? CMD_5 : Select(Scroll,CMD_0,CMD_1,CMD_2,CMD_3,CMD_4)
ScriptClip(CMD)
Return (SCROLL==4)? StackVertical(ORG,Last) : Last

EDIT: Dont know how it does it, really clever actually, but is unwanted, and detrimental.

@StainlessS, if I copy your example then should it work? Will try it with AvsP.

gispos
27th February 2020, 11:36
I have found a cryptic behavior of AvsPmod. At first I couldn't explain, but now I know what's going on.

But step by step: ....

I made a forum search for "### AvsP marked script ###", but nobody seemed to notice this behavior.

I'm not at home at the moment, but I remember there is a setting under the options to deactivate 'Save AvsP marker'. I have never used the sliders myself and cannot write anything about them, when I am at home I will look at them.

KreuzBlick
27th February 2020, 18:57
Thank you very much for your comments.

I like AvsPmod and use it often, so I'm grateful that somebody cares about it.

Now I have found the marker in the options under "Options" - "Program-settings" in the Tab "Save-Load" named "Save *.avs scripts with AvsPmod markings" and I will try, if it solves the problem or arises others.

But to be honest: Now I know about the fact, that AvsPmod can undo changes in the script and can handle with it. I have written down my observation to prevent others to fall into the same trap.

gispos
27th February 2020, 19:06
...There I see, commented out, a second variant of the script that begins with the line "### AvsP marked script ###". This variant is obviously generated when user sliders are used. ...

I can't get the AvsP marker to be written in the script.
As I said, I have not used the sliders so far and switched everything off under the options.
Now I have turned everything on but AvsP does not save any settings in the script. (ShnapShot_001, 002)

I don't feel like looking in the code right now :), so the question: Must this be self created sliders?

https://www.bilder-upload.eu/thumb/35d617-1582973863.jpg (https://www.bilder-upload.eu/bild-35d617-1582973863.jpg.html)

https://www.bilder-upload.eu/thumb/caafe2-1582974308.jpg (https://www.bilder-upload.eu/bild-caafe2-1582974308.jpg.html)


I have certainly noticed it, tis the reason that I do not use AvsPMod at all.
Earlier versions of AvsPMod were actually modifying my scripts (When I used RT_FSelOpen, it inserted the actual selected filename into the script, instead of the RT_FSelOpen call...


https://www.bilder-upload.eu/thumb/a6e225-1582974508.jpg (https://www.bilder-upload.eu/bild-a6e225-1582974508.jpg.html)

As you can see everything works fine with your script.(SnapShot_003).
Under 'User Sliders' turn off 'automatic create sliders'
Under 'Video' turn off 'Refresh preview automatically'
Under 'Save/Load' turn off 'Save *.avs script with AvsP markings'

And you already have a VirtualDub Editor 'Premium' :D


Of course, no blame attaches itself to GisPos, he is doing his best to maintain the monster that he has taken on, much respect for that Gispos.

Thanks.

gispos
27th February 2020, 22:14
I just discovered a bug I generated. If automatic update is switched off, the mouse cursor goes crazy.

gispos
28th February 2020, 00:10
Thank you very much for your comments.

I like AvsPmod and use it often, so I'm grateful that somebody cares about it.

Now I have found the marker in the options under "Options" - "Program-settings" in the Tab "Save-Load" named "Save *.avs scripts with AvsPmod markings" and I will try, if it solves the problem or arises others.

But to be honest: Now I know about the fact, that AvsPmod can undo changes in the script and can handle with it. I have written down my observation to prevent others to fall into the same trap.
This is really a bad thing! I added a warning when the marker was found. See picture.

But I want to remove all of the code.
I looked at a couple of places and honestly found nothing useful (to use).

Does anyone need it? Is it used?

I'm waiting for a few days for feedback. If there are no messages then I will remove it. Or I have to do more work and add an option to disable the warning. :o

https://www.bilder-upload.eu/thumb/d98384-1582974979.jpg (https://www.bilder-upload.eu/bild-d98384-1582974979.jpg.html)

StainlessS
28th February 2020, 00:35
GisPos, right now, YOU are In-Charge, if you think you can do it better, then do it better, that's my opinion.
Of course, some kind of feed back, no matter how trivial would probably feel good to you.
Lets hope someone decides to give some feedback. (Regular users would of couse be best).

LigH
28th February 2020, 08:45
You may prefer external image hosts over attaching here...

KreuzBlick
28th February 2020, 16:43
Hi gispos,

during weekend I will make a simple example to show, what I mean.

gispos
29th February 2020, 15:35
AvsPmod marked script. See Help > User Sliders

So if you use self created sliders in the script and want to save them with the script,
AvsPmod must save a copy of the modified script in the same script (### AvsP marked script ###) because no other program can read the sliders syntax.

However, if the script is changed with another editor and then opened again with AvsPmod, AvsPmod reads its marked script.
A check for a change to the original script is hardly possible (the marked script is changed one way or the other). A check therefore fails.

You have to die one death for so much comfort. Nothing is free.
I hope I translated it correctly;)
Für so viel Komfort muss man eben einen Tod sterben. Nichts ist umsonst.

The only solution: You have to change the original script and the AvsPmod marked script.

New Version on GitHub: https://github.com/gispos
--------------------------
Version 2.6.1.2 [2020-02-29] GPo
--------------------------
---- By default 'Save or read marked script' is now deactivated (Options > Save\Load > 'Save or read avs scripts with AvsPmod markings'.
---- Now, if the option deactivated, AvsPmod doesn't read the marked script, otherwise a warning is displayed.
---- But if 'you know what you doing' you can disable the warning under the options.
- Bug Fix, the screen cursor goes crazy if the script auto update deactivated
- Changed some default program settings (for the new users).

New Version AvsPThumb:
https://github.com/gispos/AvsPThumb/releases


One possible reason may be if you try to install in the UAC protected Program Files area, so it is unable to create files there...
LigH, I tried. I failed.
If there are no write permissions in the program directory, python cannot extract the libraries or whatever.
I have found no way to show a warning before the program starts. After 3 attempts to place the required code in the right place, I gave up. There are better ways to pass the time.:) Anyone who can help on this topic?

What is this about the pictures?
Now I have uploaded the images to an image hoster and at the beginning the preview was also shown and now not. :confused:

gispos
1st March 2020, 01:28
Shortly after I wrote that a comparison to the original script is difficult, I had a brainstorm ... :)

--------------------------
Version 2.6.1.3 [2020-03-01] GPo
--------------------------
On the topic: Save or read marked script
- By default 'Save or read marked script' is now activated again.
- Optional selectable warnings removed, keep it simple.
New behavior:
The md5 hash of the original script is now saved within the 'AvsP marked script' and is compared when it is reopened.
If there are differences, a warning appears, this warning cannot be deactivated.
So you can turn on to save or read 'AvsP marked scripts' and you only get a warning if the original has been changed.

--------------------------
Version 2.6.1.4 [2020-03-01] GPo
--------------------------
- Changed the 'AvsP marked script' and original script compare routine
---- Now no md5 Hash needed, only simple text compare is used

https://github.com/gispos

KreuzBlick
1st March 2020, 16:47
Hi,

there's no need to give an example, because it seems clear, what's going on.
The changes made point to the right direction. And indeed, the differences between the script and the avsp marked script can be seen by ordinary text comparison.
I downloaded the new version and made first tests. Looks good, but I must do further tests. Because if you load the altered script, make further changes and save back, the avs marked script gets even bigger, because both scripts are out of sync. So I will continue to analyse the behavior and then post my remarks.

Thank you for your efforts.

FranceBB
1st March 2020, 19:36
Hi there gispos!
First of all, thank you for the new release which works fine on XP (I just tried). Great work.
I was wondering, would you be interested in supporting the syntax inside MPPipeline?
The fact is that when the Avisynth code lies inside MPPipeline, it thinks that it's a whole giant function and AVSPMod becomes just a plain simple text editor with just a preview feature.
I would love if you could add an exception or a conditional somewhere to make the syntax suggestion / intellisense work with MPPipeline as well.
This is what I mean (how AVSPmod actually behaves): Link (https://i.imgur.com/bPz0pj4.png)

StainlessS
1st March 2020, 22:50
Woah! FranceBB, dont load more stuff onto gispos, he is already knee deep, I'm guessin' that you could do a good job though.

FranceBB
2nd March 2020, 01:41
Woah! FranceBB, dont load more stuff onto gispos, he is already knee deep, I'm guessin' that you could do a good job though.

Oh well no problem, like my request has like x->-∞ (negative infinity) on a scale of infinite numbers, so very low priority. ;) It's like a "it would be nice to have someday in the future". :)

By the way he's doing a great job in picking up avspmod and continuing its development. It's an editor I personally use on a daily basis and I'm really glad that it hasn't been abandoned. :)

StainlessS
2nd March 2020, 09:37
I dont actually use AvsPMod, but I did down both x86 and x64 latest already, I just like to have if I do want at some future point.
I'm a bit awkward, I used AvsEdit for years despite the fact that I truly hated it, go figure :)
I just now use PsPad text editor (with Avs syntax hi-liting and press-button activation of a couple of Media Players), and VDub2.
I have also been known to use NotePadPlus

EDIT: If you try to pile too much stuff onto Gispos, you might make him "do a runner", ie skip town.

gispos
2nd March 2020, 18:45
...first tests. Looks good...Because if you load the altered script, make further changes and save back, the avs marked script gets even bigger, because both scripts are out of sync.
I know, but there's really nothing I can do about that.
It was only important to me that AvsPmod doesn't hide anything.

If the script is changed with another editor, you have to manually copy the slider syntax from the marked script to 'your changed original' and then remove the AvsP marked script and save it again.

But why don't you use the sliders under 'Options> Avisynth function definition > edit selected > define slider', for some plugins and functions they are already predefined. see image.
These sliders are not saved in the script but in a file in the program directory.
https://gupe-picup.de/getthumb.php?getimage=1582824492.jpg ('https://gupe-picup.de/viewer.php?id=1582824492.jpg')



I was wondering, would you be interested in supporting the syntax inside MPPipeline?

I'll look at it. But don't hope for it. :)


EDIT: If you try to pile too much stuff onto Gispos, you might make him "do a runner", ie skip town.
You already know me very well.:D

gispos
2nd March 2020, 20:30
I could bet that the user named 'Ingoldie' is a synonym for another user here. :cool:
We have a troll among us. No, I will not help you dismember AvsPmod. :scared:

gispos
2nd March 2020, 22:29
I was wondering, would you be interested in supporting the syntax inside MPPipeline?


Now ask me how:)

https://i.postimg.cc/zGW0zj32/Spnap-Shot-004.jpg

FranceBB
3rd March 2020, 10:41
Wow! That was fast! O_O

now ask me how

I don't know how you did it but this definitely made my day! Thank you so much!

LigH
3rd March 2020, 11:26
@gispos:

I meant: Installing in an UAC protected directory may be the reason for issues. Not the recommended solution. :o Possibly the opposite of your thoughts.

LigH
3rd March 2020, 11:33
35d617-1582973863.jpg (https://www.bilder-upload.eu/bild-35d617-1582973863.jpg.html)

35d617-1582973863.jpg (https://www.bilder-upload.eu/bild-35d617-1582973863.jpg.html)

caafe2-1582974308.jpg (https://www.bilder-upload.eu/bild-caafe2-1582974308.jpg.html)

a6e225-1582974508.jpg (https://www.bilder-upload.eu/bild-a6e225-1582974508.jpg.html)

Apparently you chose a quite unreliable image hoster, for some reason I can't see the thumbs, so I replaced them with text links in this quote.

My preferred hosters are frupic.frubar.net or imgur.com (or my own webspace).

StainlessS
3rd March 2020, 12:47
Gispos, you are making me want to give AvsPMod another try, that is very naughty of you, naughty boy [or girl] :)

gispos
3rd March 2020, 17:16
Yes, that was really quick.

I searched the code for the correct starting point for half an hour. What now, OnMouseDown, OnMouseUp?
I look at my script and start brooding, what does he want ? Then I remembered the first few days with AvsPmod when I had the same problems.

Options > Program settings > text > 'style inside triple quoted strings'

FranceBB
3rd March 2020, 19:19
Options > Program settings > text > 'style inside triple quoted strings'

Ok, it works. So I feel like an idiot 'cause it has been there the whole time... DX
Well, thank you anyway xD

https://i.imgur.com/SAoeWys.png

gispos
3rd March 2020, 20:16
I hope you didn't get it wrong, was really meant to be fun.:)

FranceBB
3rd March 2020, 23:36
I hope you didn't get it wrong, was really meant to be fun.:)

Not at all, I know it was for fun. ;)

sl1pkn07
4th March 2020, 01:22
Hi

any plans for port to python3? Python2 has been reaches EOL and will never get updates anymore

greetings

gispos
4th March 2020, 16:27
Hi

any plans for port to python3? Python2 reaches EOL and never get updates anymore

greetings

We already had the topic here.
There was a test version with Python 3.02, but the low 3 versions are full of bugs, especially when it comes to mouse events.

And with the higher versions there are some things that are no longer compatible. It would be easier for me to write a new program with Pascal.

I will definitely not do this to myself. So no.

gispos
5th March 2020, 21:19
I'm just testing a bit.

'Unsharp' is only for testing.
But why is the function SuperEQ loaded twice.
Have only one Shibatch.dll in the plugin directory.

Is this normal (loading from another dll), a mistake by Avisynth or by me?

https://i.postimg.cc/63J1KLLN/doublefunc.jpg

LigH
28th March 2020, 10:31
Selur discovered:

AvsPmod may not start at all if you enabled the Windows 10 beta feature to support UTF-8 locale.

gispos
28th March 2020, 22:47
Selur discovered:

AvsPmod may not start at all if you enabled the Windows 10 beta feature to support UTF-8 locale.

I had already discussed this with Selur.
So far I haven't checked whether the code is the culprit.
As written 'Win10 UTF-8 Beta Status' ...

In the worst case, no older version of Python runs under Win10 with UTF-8 switched on. Then the days are numbered and I can dedicate my time to more meaningful things. :D

Despite everything, a new version is on GitHub.
Even if nobody cares about AvsPThumb there is also a new version. :)

AvsPmod change.log (https://github.com/gispos/AvsPmod/blob/GPo/changelog.txt)
AvsPThumb change.log (https://github.com/gispos/AvsPThumb/blob/master/changelog.txt)

both on GitHub (https://github.com/gispos)

gispos
29th March 2020, 00:02
Can someone please test this with the UTF-8 switched on in Win10

AvsPmod newly compiled (http://s000.tinyupload.com/?file_id=02644599818963658017)

Selur
29th March 2020, 08:10
tested: both the 32bit and the 64bit of the AvsPmod_test builds don't start up when UTF-8 is switched on.

gispos
29th March 2020, 10:15
OK, thanks for testing. Then it becomes difficult.

gispos
29th March 2020, 17:42
tested: both the 32bit and the 64bit of the AvsPmod_test builds don't start up when UTF-8 is switched on.
Please test again.:)

AvsPmod newly compiled and compiled again (http://s000.tinyupload.com/?file_id=05921582873427592205)

Selur
29th March 2020, 18:12
Those two versions work fine even with UTF-8 enabled.

Cu Selur

LigH
30th March 2020, 07:42
One of the main issues with AvsPmod, possibly even more Python based applications, is that when already the start fails, there is little to no feedback to the user that helps debugging the reason. Or I don't know where it is reported.

gispos
30th March 2020, 17:30
It still took some effort, because the test version had problems with keyboard events and a flickering in various windows.

Forgive me! shit wxpython. (at least the older ones):mad:

That definitely cost me 3 months of my life. Now everything is fine again.:)

New version is on GitHub (https://github.com/gispos)
changelog (https://github.com/gispos/AvsPmod/blob/GPo/changelog.txt)

gispos
5th April 2020, 15:54
AvsPmod 2.6.1.8 (https://github.com/gispos/AvsPmod/releases)

changelog (https://github.com/gispos/AvsPmod/blob/GPo/changelog.txt)

Mouse browse buttons info:
If 'Tab change' selected and tab count less than 2, 'Bookmark jump' is used
If 'Tab change' selected press CTRL or left mouse and 'Bookmark jump' is used
If 'Bookmark jump', vice versa

Changed component for middle mouse button function, please select your middle mouse button option new.

FranceBB
5th April 2020, 17:00
AvsPmod 2.6.1.8 (https://github.com/gispos/AvsPmod/releases)

changelog (https://github.com/gispos/AvsPmod/blob/GPo/changelog.txt)

Mouse browse buttons info:
If 'Tab change' selected and tab count less than 2, 'Bookmark jump' is used
If 'Tab change' selected press CTRL or left mouse and 'Bookmark jump' is used
If 'Bookmark jump', vice versa

Changed component for middle mouse button function, please select your middle mouse button option new.

Thank you for the new release! ;)

gispos
29th April 2020, 19:13
Small update, 2.6.1.9 (https://github.com/gispos/AvsPmod/releases)
changelog (https://github.com/gispos/AvsPmod/blob/GPo/changelog.txt)

Mouse button combinations (for the new users)
Press left and right click: changes zoom 100%, 200%
Press left and use mouse wheel: changes the zoom
Standard functions for middle button, browse buttons and mouse wheel can be set under Options.

wiggaz
30th April 2020, 17:17
Small update, 2.6.1.9 (https://github.com/gispos/AvsPmod/releases)
changelog (https://github.com/gispos/AvsPmod/blob/GPo/changelog.txt)

Mouse button combinations (for the new users)
Press left and right click: changes zoom 100%, 200%
Press left and use mouse wheel: changes the zoom
Standard functions for middle button, browse buttons and mouse wheel can be set under Options.

Hi gispos,
I have a problem with the last updates (from 2.6.1.7 at least):
if I have more than one tab open, I can't modify the number of the frames by clicking on it. It won't let me do anything.
Thanks in advance.

gispos
30th April 2020, 21:01
Hi gispos,
I have a problem with the last updates (from 2.6.1.7 at least):
if I have more than one tab open, I can't modify the number of the frames by clicking on it. It won't let me do anything.
Thanks in advance.
Just tried ... have to see where I messed up.:rolleyes:

gispos
1st May 2020, 14:47
Hi gispos,
I have a problem with the last updates (from 2.6.1.7 at least):
if I have more than one tab open, I can't modify the number of the frames by clicking on it. It won't let me do anything.
Thanks in advance.
Fixed

AvsPmod 2.6.1.9.r2 (https://github.com/gispos/AvsPmod/releases)
changelog (https://github.com/gispos/AvsPmod/blob/GPo/changelog.txt)

FranceBB
1st May 2020, 17:14
So it was a bug! I thought something was changed for whatever reason and I had to press "ctrl + a letter" to get to the frame box and change the frame number xD
It was weird, though, 'cause if I clicked on the box directly instead of changing the frame it was bringing me to the tab with the number I inserted (i.e if I had 5 tabs and I wrote "1" instead of bringing me to frame 1 it was bringing me to tab 1).
I thought it was a weird feature and I was waiting for others to say something but nobody was mentioning it, so I was going to say something, eventually haha

jlw_4049
1st May 2020, 20:59
Wow I've been using the older AvsPmod for years. This is so so so much better!!!!!

gispos
1st May 2020, 22:02
So it was a bug! I thought something was changed for whatever reason and I had to press "ctrl + a letter" to get to the frame box and change the frame number xD
It was weird, though, 'cause if I clicked on the box directly instead of changing the frame it was bringing me to the tab with the number I inserted (i.e if I had 5 tabs and I wrote "1" instead of bringing me to frame 1 it was bringing me to tab 1).
I thought it was a weird feature and I was waiting for others to say something but nobody was mentioning it, so I was going to say something, eventually haha
Yes it was a bug caused by the change to another wxPython version.
I hate to do that, with every version there is either a new bug or an already fixed bug is available again. And most of the bugs cannot be fixed with your own coding.
The simple frame text field cost me (including research whether there are solutions for this) about 8 hours,
and finally I changed the standard functions. I am happy with it, I hope that others are too.

Wow I've been using the older AvsPmod for years. This is so so so much better!!!!!
Thanks for that

wiggaz
3rd May 2020, 09:56
Thanks gispos!

Sharc
5th May 2020, 13:10
v2.1.6.9r2,32bit Program settings->Misc
'Only allow a single instance of AvsPmod' throws the error here
Traceback (most recent call last):
File "wxp.pyo", line 1559, in OnButtonOK
File "wxp.pyo", line 1641, in UpdateDict
File "wx\_core.pyo", line 12925, in GetClientData
wx._core.PyAssertionError: C++ assertion "IsValid(n)" failed at ..\..\src\common\ctrlsub.cpp(194) in wxItemContainer::GetClientObject(): Invalid index passed to GetClientObject()

gispos
6th May 2020, 17:29
v2.1.6.9r2,32bit Program settings->Misc
'Only allow a single instance of AvsPmod' throws the error here
Traceback (most recent call last):
File "wxp.pyo", line 1559, in OnButtonOK
File "wxp.pyo", line 1641, in UpdateDict
File "wx\_core.pyo", line 12925, in GetClientData
wx._core.PyAssertionError: C++ assertion "IsValid(n)" failed at ..\..\src\common\ctrlsub.cpp(194) in wxItemContainer::GetClientObject(): Invalid index passed to GetClientObject()

Strange, I got a completely different error.
It popped when I tried to open a second file via the CMD. Then it clanked terribly: Thread errors and access violations.

Now I hope that the cause is the same code blunder.
If you already have an error when saving the options, then you should delete the options.dat (save it beforehand),
or test it with a freshly extracted AvsPmod.

I'm still working on another little future.
New version is coming soon.

gispos
9th May 2020, 15:54
AvsPmod 2.6.2.0 (https://github.com/gispos/AvsPmod/releases)
changelog (https://github.com/gispos/AvsPmod/blob/GPo/changelog.txt)

mp3dom
9th May 2020, 21:58
I'm not sure if this is the right place nor if avspmod is going to have some heavy "new design" features, but something that can be extremely useful at some levels, especially filtering like denoise/degrain, despot, debanding etc, would be to allow a "script comparison" with a second script and have a vertical bar that can be moved inside the image to have, for example, an A/B "original/filtered" realtime comparison. I saw this on another software here, I think is "AVSEdit Plus" but it seems no more under development.

real.finder
9th May 2020, 22:56
I'm not sure if this is the right place nor if avspmod is going to have some heavy "new design" features, but something that can be extremely useful at some levels, especially filtering like denoise/degrain, despot, debanding etc, would be to allow a "script comparison" with a second script and have a vertical bar that can be moved inside the image to have, for example, an A/B "original/filtered" realtime comparison. I saw this on another software here, I think is "AVSEdit Plus" but it seems no more under development.

in avspmod you can do something like this with keyboard numbers keys

mp3dom
10th May 2020, 00:30
You mean adding a new tab with the filtered video and switch back and forth? Or another different thing?

real.finder
10th May 2020, 02:11
You mean adding a new tab with the filtered video and switch back and forth?

yes, or more than two tabs with another scripts or settings and using keyboard numbers keys to switch and compare

mp3dom
10th May 2020, 02:45
Well, it can be made in this way even with VDub and alt+tab to switch... the difference and convenience of my suggestion is that during the "filter comparison", both videos moves at the same frame, same zoom, same pixel position in one step, and it's way more precise to see the differences moving a slider rather than switching tabs. Anyway, I'm the first to say that it's not *that* essential as a feature, but it could be very helpful when doing filtering projects oftern.

poisondeathray
10th May 2020, 03:18
Well, it can be made in this way even with VDub and alt+tab to switch...

alt+tab is 2 buttons... and you cannot recall a specific version. eg. to see filtered version 5, hit "5" key. 1 button. alt+tab would require cycling through versions


the difference and convenience of my suggestion is that during the "filter comparison", both videos moves at the same frame, same zoom, same pixel position in one step,


Tabs also are aligned on same frame, same zoom, same pixel position each tab. If you change something in 1 tab, all tabs are synced up


and it's way more precise to see the differences moving a slider rather than switching tabs.

How is it "way more precise" ?

mp3dom
10th May 2020, 03:32
Tabs also are aligned on same frame, same zoom, same pixel position each tab. If you change something in 1 tab, all tabs are synced up

Ok, I remembered differently, like all tabs independent from each others and that a zoom or position in a tab would not be reflected to another tab, but this is clearly not the case thus all my previous thoughts are wrong.

Sharc
10th May 2020, 08:42
Strange, I got a completely different error.
It popped when I tried to open a second file via the CMD. Then it clanked terribly: Thread errors and access violations.

Now I hope that the cause is the same code blunder.
If you already have an error when saving the options, then you should delete the options.dat (save it beforehand),
or test it with a freshly extracted AvsPmod.

I'm still working on another little future.
New version is coming soon.
The new version 2.6.2.0 and deleting the options.dat solved the problem. Thank you :)

gispos
10th May 2020, 10:47
Comparing frames in one video window is not the best. A correct comparison is only possible with 100% zoom. Sometimes it is helpful to use zoom 200%. But in no case less than 100%.
A splitter in the video window like neatvideo that allows a filtered and unfiltered display is me not worth the effort.

The tabs are the only real thing for me.;)
----------------------------------------

I took a look at the slider window (which I don't normally use)
The code irritates me a little, also the behavior of the window.
The width changes or not depending on whether the video window was visible.

Now my question.
My favorite is that the width of the slider window for each tab is saved and restored. The same for the script window.

Are there any objections?

StainlessS
10th May 2020, 10:50
Are there any objections?
Your'e the boss.

gispos
10th May 2020, 13:04
Your'e the boss.
Good to know, :D
but I have to rethink that, the behavior probably depends on the video size.

pcroland
10th May 2020, 17:10
In the latest version the Ctrl+Scroll directions are switched up, scrolling up makes the image smaller. And you can't change the current frame number:
https://widevine.is-a.fail/MtHSsI.png

Btw, I found this monokai theme for AvsPmod, but I have no idea where should I put these lines. Could someone tell?
https://pastebin.com/zeayignH

gispos
10th May 2020, 21:50
In the latest version the Ctrl+Scroll directions are switched up, scrolling up makes the image smaller.

More detail please


And you can't change the current frame number:
https://widevine.is-a.fail/MtHSsI.png

Just click and enter the number, then enter.
Have a look in the changelog version 2.6.1.9 I think.


Btw, I found this monokai theme for AvsPmod, but I have no idea where should I put these lines. Could someone tell?
https://pastebin.com/zeayignH
Under options> Font & Colors you can create your own script theme. :)

Here mine. Unzip it into the AvsPmod directory and load it with 'Options> Load Font & Colors backup'

pcroland
11th May 2020, 16:47
More detail please
The scrolling is reversed.

Just click and enter the number, then enter.
Yeah, but the cursor is missing, so I can't edit the middle part for example easily.

Here mine. Unzip it into the AvsPmod directory and load it with 'Options> Load Font & Colors backup'
Oh, thanks.

gispos
11th May 2020, 20:58
The scrolling is reversed.
Ever opened the options? You can adjust it there. And many other things.:)
Yeah, but the cursor is missing, so I can't edit the middle part for example easily.
That is the case at the moment. The reason for this can be found in the changelog.

PS:
If you unpack AvsPmod into a new directory, the default values will be loaded.
The same if you do delete options.dat. Then you have to recreate your desired options

zybex
12th May 2020, 22:52
gispos

Hello.

Please help me to solve a problem with setting of "Step Size" = 0.01 for filter "Tweak" > Saturation / Contrast.
Default step values for them are 0.1

I tried to enter these values in the filter window "Edit Filter Database" but these values are not saved there, and the contents of the "filterdb.dat" file are not changed.
Step 0.1 for the contrast filter is insufficient, I need 0.01.
I do not want to do this through the "Define User Slider".

http://images.vfl.ru/ii/1589320141/7fe4f5e4/30494698_m.png (http://vfl.ru/fotos/7fe4f5e430494698.html)

gispos
13th May 2020, 08:37
I don't have the code in front of me at the moment, but I think it's because of the resolution limitation. With a value of 100, probably only one goes. And with a value of ten 0.1 and with a value of one 0.01, I'll take a look at that.

Set the maximum value to 9, what happens?

zybex
13th May 2020, 11:31
I successfully solved this problem, the situation turned out to be this:

in the "Edit Filter Database" window, manually entering any values ​​in the "Step Size" cells for these parameters is not visually remembered and not perceived, but after restarting the "AvsPmod" program, it turned out that step 0.01 was successfully earned for these values,
and the changes occurred in the file "options.dat" (and not in the file "filterdb.dat"), and the values ​​of step 0.01 were successfully registered in the file “options.dat”, but at the same time, the values ​​in the "Step Size" cells are still not displayed in the "Edit Filter Database" window.

that is, you need to fix this bug, fix it so that the "Step Size" value appears in the "Edit Filter Database" window if it is written in the "options.dat" file.

and if possible, it is necessary to make the changes made through the "Edit Filter Database" window take effect immediately after clicking "OK" and closing the window, and not require restarting the "AvsPmod" program.

in the file "options.dat" the following line is responsible for the "Tweak" filter:

Vtweak
p110
(VTweak
p111
V(\u000aclip,\u000afloat "hue"=0.0 (-180.0 to 180.0),\u000afloat "sat"=1.00 (0.00 to 10 by 0.01),\u000afloat "bright"=0 (-255 to 255),\u000afloat "cont"=1.00 (0.00 to 10 by 0.01),\u000abool "coring"=True,\u000abool "sse"=False,\u000afloat "startHue"=0 (0 to 360),\u000afloat "endHue"=360 (0 to 360),\u000afloat "maxSat"=150 (0 to 150),\u000afloat "minSat"=0 (0 to 150),\u000afloat "interp"=16 (0 to 32),\u000a[bool "dither"=False]\u000a)

gispos
13th May 2020, 14:32
I don't think that was the right way to go about it, there is an extra option for making your own changes and they are always saved in the options. The database serves as a backup in order to be able to restore the changes you have created yourself

gispos
13th May 2020, 16:32
I have no desire to change the language now, so in the picture a mixture of German and English.
What is the problem, only that the step value is not shown in the right window?
It doesn't matter, in the other window it is shown in the code and works as it should.;)

https://i.postimg.cc/V5nDhk50/User-Slider.jpg (https://postimg.cc/V5nDhk50)
https://i.postimg.cc/p5fC5q3J/User-Slider2.jpg (https://postimg.cc/p5fC5q3J)

zybex
13th May 2020, 17:59
Yes, we can also view and change the filter settings through the top menu:
Options> AviSynth Function Definitions> Core Filters> Tweak> Edit Selected
but there, too, when introducing new parameters “Step Size” ([by 0.01] instead of [by 0.1]), the changes will not come immediately after clicking on “OK” and closing the window, but only after restarting the program “AvsPmod”.

Of course, if it is difficult to fix these glitches and inconveniences, then I will not insist.
In principle, we can put up with it, we just need to know about it.
But for those who did not guess about it initially, the more difficult.

zybex
13th May 2020, 18:13
Another question:

How to make the choice of the section we need to encode in an AVI file (Tools > Script Encoder > VFW),
without adding the Trim command to the AVS script and without actually trimming the frames in the timeline? (same as in VirtualDub)

If I mark the part I need by pressing "Home" at the beginning and "End" at the end, and then select in "Trim editor"> Insert Trim () commands: Copy to clipboard - then the whole timeline is encoded to AVI, but not only the fragment I selected.

And it would also be useful to display information in the status line which fragment is selected: start frame + end frame.
Now it shows only the last frame on which the bookmark is located.

http://images.vfl.ru/ii/1589389982/db070085/30502240.png

gispos
13th May 2020, 20:35
Another question:
How to make the choice of the section we need to encode in an AVI file (Tools > Script Encoder > VFW),
without adding the Trim command to the AVS script and without actually trimming the frames in the timeline? (same as in VirtualDub)
That does not exist. The script is passed to the encoder. Either you have to trim the script or tell the encoder what you want (if he has this option)

If I mark the part I need by pressing "Home" at the beginning and "End" at the end, and then select in "Trim editor"> Insert Trim () commands: Copy to clipboard - then the whole timeline is encoded to AVI, but not only the fragment I selected.
What is 'Copy to Clipboard'? the text is not written into the script, but copied to the clipboard for further use. And for nothing else.

And it would also be useful to display information in the status line which fragment is selected: start frame + end frame.
Now it shows only the last frame on which the bookmark is located.
Well, you saw that before. That's the way it is.;)

gispos
13th May 2020, 21:27
Of course, if it is difficult to fix these glitches and inconveniences, then I will not insist.
In principle, we can put up with it, we just need to know about it.
But for those who did not guess about it initially, the more difficult.
This is not a glitch, but no longer possible after creating the slider.
You don't have to exit AvsPmod, just create a new tab or copy the tab. New sliders have to be created.


then I will not insist.

This is not possible anyway, it's all a gift:rolleyes:

zybex
13th May 2020, 21:53
OK.
Thanks for the support and prompt answers.

tlyul
14th May 2020, 01:22
Hello. I have Avisynth+ and AvsPmod portable but I get this error

Errno 126 Loading avisynth.dll failed! make sure that avisynth is installed. alternatively. specify now its directory

I don't know what to do��. Thank you

StainlessS
14th May 2020, 07:21
tlyul,
Create a test file, test.avs containing

Version


Try play it in either virtualDub2, or a media player (NOT VLC), eg MPC-HC or PotPlayer.

Does it work ? [if not then problem is not with AvsPMod].

Also, what version of Avisynth are you trying to use [it may require Microsoft CPP runtimes to be installed (think Error 126 might suggest the missing runtimes are the problem)].

EDIT: Current Avs+ requires cpp runtimes for vs 2015:- https://www.microsoft.com/en-gb/download/details.aspx?id=48145

gispos
16th May 2020, 13:39
Hello. I have Avisynth+ and AvsPmod portable but I get this error

Errno 126 Loading avisynth.dll failed! make sure that avisynth is installed. alternatively. specify now its directory

I don't know what to do��. Thank you
No answer is also an answer. Or?
A short message for the self sacrificing helper would have been nice. :sly:
---------------------------------

AvsPmod 2.6.2.1 (https://github.com/gispos/AvsPmod/releases)
changelog (https://github.com/gispos/AvsPmod/blob/GPo/changelog.txt)

StainlessS
16th May 2020, 13:56
Gispos, He aint been back in last two days (since his post).
I'm reasonably sure that error 126 is usually missing runtimes, you probably dont need sweat about his report.

gispos
16th May 2020, 18:44
... you probably dont need sweat about his report.
Well, I'm less concerned about that. But I don't think it is right to give the helper (you) no feedback.

KreuzBlick
17th May 2020, 15:05
Hi, thanks for the current work on this program.

As intensive user I noticed in the new versions of AvsPmod (since about 2.6.1.9) a changed behaviour towards comments.

When I try to comment out lines of text in an Avisynth script, for example by writing "__END__" or "/*" in a free line, in previous versions the text below used to turn gray immediately.

With the new versions nothing happens at first. Only when I move the cursor through the lines, they turn grey.

Since I liked the previous behaviour, I wonder if this is a wanted change.

gispos
17th May 2020, 15:19
Hi, thanks for the current work on this program.

As intensive user I noticed in the new versions of AvsPmod (since about 2.6.1.9) a changed behaviour towards comments.

When I try to comment out lines of text in an Avisynth script, for example by writing "__END__" or "/*" in a free line, in previous versions the text below used to turn gray immediately.

With the new versions nothing happens at first. Only when I move the cursor through the lines, they turn grey.

Since I liked the previous behaviour, I wonder if this is a wanted change.

This will be due to the new wxPython version that I have been using since 2.6.1.9
I'll see if I can fix it.

Edit:
Only 'fixing code' I no longer get to 'avisynth scripting', otherwise I should have noticed it.:thanks:
It was fixed. Next version

KreuzBlick
17th May 2020, 17:45
Hi,
thank you for the fast response. I will wait for the next version.

At the moment I'm scripting a lot, because I, allegedly belonging to the risk group, use the Corona time to finish the digitalization of my Super8-films. Avisynth and AvsPmod are doing a fantastic job and I am more than excited about the results that are possible today.

But a different topic. I have an idea how to improve the saving of the avsPmod-scripts while using user sliders. I would also like to program that myself. I have a lot of experience with Pascal and Lazarus, and have also made first steps with C++ and Python. So I should be able to compile and debug AvsPmod as well, if I use the appropriate development environnement. I have seen the hints in build_instructions_windows_new.txt and will try to proceed according to them. This will still be a big challenge for me.

pcroland
17th May 2020, 19:32
Is this intended?
https://widevine.is-a.fail/mFReko.gif
When I don't close the comment it throws an error as it should, but when I fix the script and try to reload the image I just can't and have to reopen it.
Also, If I set the "Mouse Wheel Function" from "Frames step" to "Tabs scrolling" it doesn't do anything. Is there no way to scroll in the image without dragging the scrollbar now?

Edit: after some time AvsPmod throws this error:
https://widevine.is-a.fail/7qFC2t.png

gispos
17th May 2020, 21:17
...I should be able to compile and debug AvsPmod as well, if I use the appropriate development environnement. I have seen the hints in build_instructions_windows_new.txt and will try to proceed according to them. This will still be a big challenge for me.
Yes, then I can sit back and relax, I'm too old for the stress.:D

Is this intended?
https://widevine.is-a.fail/mFReko.gif
When I don't close the comment it throws an error as it should, but when I fix the script and try to reload the image I just can't and have to reopen it.
This will be due to the error that the script will not be completely updated immediately. Will be fixed in the next version.


Also, If I set the "Mouse Wheel Function" from "Frames step" to "Tabs scrolling" it doesn't do anything.
I just tested the tab change with the mouse wheel, for me it works as it should.


Is there no way to scroll in the image without dragging the scrollbar now?
That should work with the left mouse button. Press left and move mouse. I want to know that exactly now. So please give feedback if the scrolling of the video window works with the mouse.


Edit: after some time AvsPmod throws this error:
https://widevine.is-a.fail/7qFC2t.png
I have the mistake every now and then.
This usually happens when another program gets the focus from windows and AvsPmod loses its focus and a mouse button was pressed.
I have not yet found a solution and am living with it.:)

fAy01
17th May 2020, 21:19
Hi, I have a question. Is it possible to add vapoursynth support to avspmod? Another thing, it detect Y/Gray or 4:0:0 encodes as YUV420.

pcroland
17th May 2020, 22:26
That should work with the left mouse button. Press left and move mouse. I want to know that exactly now. So please give feedback if the scrolling of the video window works with the mouse.
Left click and mouse moving works. So now there's no way to scroll in the image with scrolling. I think it would be nice if the tab scrolling would only work when I hover the mouse over the tabs/editing space and it would scroll the image if the cursor is hovered over the image. Or just add a third option that adds back the original behavior. And the "invert scroll" is still ticked by default in the latest version. I don't know if it's on purpose but I don't think most users like this.

gispos
18th May 2020, 17:43
post#143
Is it possible for you to add VS support to avspmod?
Hi, I have a question. Is it possible to add vapoursynth support to avspmod? Another thing, it detect Y/Gray or 4:0:0 encodes as YUV420.
You rogue, twice the same question ;) The same answer twice
https://forum.doom9.org/showthread.php?p=1884965#post1884965

And on the other topic:
If it is avisynth +, otherwise no support.:D
Have you tried?

ScriptClip(PixelType(), show=True, after_frame=false)

If something else is shown, AvsPmod is the culprit, otherwise contact avisynth support. :)
-----------------------------

Left click and mouse moving works. So now there's no way to scroll in the image with scrolling.
...Or just add a third option that adds back the original behavior.

Go to the first page of the thread and read the mouse button combinations (for the new user)

1.) Zooming with the mouse still works like in the original version. CTRL and mouse wheel. :sly:
2.) Zooming is also possible with the left mouse button down and mouse wheel
3.) Press left and right click gives 100% or 200% zoom
4.) I think that's enough. ;)

I think it would be nice if the tab scrolling would only work when I hover the mouse over the tabs/editing space and it would scroll the image if the cursor is hovered over the image.
It is pointless!
If I have to move the mouse over the tabs to change the tab, I can click it right away.

The normal procedure is that you select the video window to see its changes and then compare it with another tab.
So the mouse is on the video window. And when the video window gets the focus, the tab change with the mouse wheel works everywhere.

In my view, switching tabs with the browse buttons is much more useful. And the mouse wheel is for frame step and zoom. But everyone according to his taste.


And the "invert scroll" is still ticked by default in the latest version. I don't know if it's on purpose but I don't think most users like this.
Is it that bad? You need 10 seconds to change that in the options. I have changed the default values according to my understanding.
So I like it as it is now. And if you had used the values from the beginning ... that would be normal for you.

You can also extract the new version over the old version. Or copy your old options.dat into the new AvsPmod directory.Then your set 'wishes' will not change.
:)

gispos
19th May 2020, 19:07
Sorry that I replied a bit harshly in my last posting, I just could not understand why a user complains that the standard settings have changed.
I would never think of asking for the standard settings or complaining about them. Some have become so comfortable, unpack it and it has to work right away.

But now I would like to ask. :)
'Zoom in' backwards or forwards? I think it's a matter of taste.
But change tab and frame step because I get the crisis if I use VDub.
It is simply incomprehensible to me that a frame step forward is carried out with a mouse wheel backwards. The same when changing tabs.
Mouse wheel forward (away from me) is forward. I just can't discusse that.

But your opinion would interest me.

Sparktank
19th May 2020, 23:05
I'm in agreement about the changing of the settings.
I had to go in and change them to be the way that I normally use the wheel.

For me, "invert" is the default for which direction I want to go.
I don't remember when I first practiced this use, but it's completely engrained into me. I change this setting for some games.

Why some games and programs use inverted first, I don't know.

I do miss having the scroll to quickly scroll up and down the image.
My monitor is 1080p only. So when I index, even a 1080p movie (nevermind 4K discs), I prefer to scroll the image up and down as quickly as I can move my index finger.
Using the click and drag isn't as fast enough if I want to check the top and bottom edges quickly.

I also like the idea of changing frames with the wheel.

Wouldn't be possible just to throw in a third option and let the user decide?
I would think a lot of users might find use over that if they've been using AvsPmod for a long time.

I'd learn to code and do the patch myself, but alas, I play too much Skyrim.

gispos
20th May 2020, 19:32
AvsPmod 2.6.2.2 (https://github.com/gispos/AvsPmod/releases)
changelog (https://github.com/gispos/AvsPmod/blob/GPo/changelog.txt)

Changed component for 'mouse wheel function' please select your option new
Completely forgotten: all mouse wheel functions as standard are not inverted. I'm not doing the nonsense. ;)

In the last version I made an effort that nothing flickers.
I hope that it is fine on other systems (change tab, copy tab, zoom change).

Furthermore:
I improved the playback speed - Video > Play video > 'Use faster playback function'
Still as an option, because it has beta status.

AvsPmod settings:
max play speed, no drop frames

Test video:
mkv 1920x1080p, YV12

Script:
video=LWLibavVideoSource(SourceFile, cache=False)
audio=LWLibavAudioSource(SourceFile, cache=False)
audioDub(video, audio)
trim(0, 4999)

Results on my system:
old func: 67.89 sec = 73.64 fps
new func with status bar and text field update: 48.86 sec = 102.33 fps, + 38 %
new func without status bar and text field update: 45.32 sec = 110.32 fps, + 49 %

I choose the 102 fps func
But the advantages in % depend very much on the filters (CPU load) and go towards 0

Video mpg 5000 frames 768x576, filter: SplineResize36(1920, 1080)
old 83.30 sec = 60.02 fps
new 65.48 sec = 76.35 fps + 27 %

Video mkv 1920x1080p with 500 frames, filters: MCTD(GPU=True) + UnsharpMask
with prefetch(4, 8)
old 39.04 sec = 12.80 fps
new 38.92 sec = 12.84 fps + ;)

Note:
Also the old function has become a little faster due to the elimination of pixel information.
Therefore, a new comparison in the current version may a little different.

pcroland
21st May 2020, 00:04
Completely forgotten: all mouse wheel functions as standard are not inverted. I'm not doing the nonsense. ;)Nice
'Tab change or scroll' behaves like the original version 2.5.1Really nice
Changed: during playback no pixel information is shown in the status bar. It is pointless to show.Did it improve anything?

By the way, if I try to change any settings, I get this error message when I click OK: https://widevine.is-a.fail/GZr8J6.png

gispos
21st May 2020, 07:28
Nice
Really nice
Did it improve anything?

By the way, if I try to change any settings, I get this error message when I click OK: https://widevine.is-a.fail/GZr8J6.png

There seems to be no end.
I don't get any errors, does anyone else get the error message?

What OS, AvsPmod 32 or 64?
Unpacked in a new directory? Delete the options.dat (when the program is closed). Let me know.


Did it improve anything?

Yes, a bit the speed, the whole thing has to be read and calculated. But you don't really want to tell me now that you are reading pixel information during playback ?

gispos
21st May 2020, 08:14
I forgot to set a default value for the new mouse wheel function.:( Go into the options and choose a value for the 'mouse wheel function'. I didn't notice because I always use my old options.dat.

gispos
21st May 2020, 08:21
It was a stupid typing mistake
wrong: 'mousewheelfunc': 'framestep',
correct: 'mousewheelfunc': 'frame_step',

New version comes the next few minutes. Sorry

AvsPmod 2.6.2.2.r2 (https://github.com/gispos/AvsPmod/releases):)

gispos
21st May 2020, 08:58
But now I still have to scold: :)

Changed component for 'mouse wheel function' please select your option new
If you had done that there would have been no error message.

But then I wouldn't have found the mistake either. So your doing was the right.:) Wrong world.

Danette
21st May 2020, 15:20
First, thanks for the great work in continuing this project.

Is there any chance that audio preview can be included in the video playback function?

gispos
21st May 2020, 21:45
First, thanks for the great work in continuing this project.

Is there any chance that audio preview can be included in the video playback function?
No. I don't know about it, and it wouldn't be worth the effort for me. I have to confess that I don't care about the audio, I'm visually oriented. :)
And the replay is rarely possible with a script with filters at normal speed.

gispos
23rd May 2020, 14:24
AvsPmod 2.6.2.3 (https://github.com/gispos/AvsPmod/releases)
changelog (https://github.com/gispos/AvsPmod/blob/GPo/changelog.txt)

Have a nice weekend.

fAy01
23rd May 2020, 14:49
And on the other topic:
If it is avisynth +, otherwise no support.:D
Have you tried?

ScriptClip(PixelType(), show=True, after_frame=false)

If something else is shown, AvsPmod is the culprit, otherwise contact avisynth support. :)

https://i.imgur.com/0bu090y.png

gispos
23rd May 2020, 15:01
And on the other topic:
If it is avisynth +, otherwise no support.:D
Have you tried?

ScriptClip(PixelType(), show=True, after_frame=false)

If something else is shown, AvsPmod is the culprit, otherwise contact avisynth support. :)

https://i.imgur.com/0bu090y.png
As I wrote. Contact Avisynth support. So if Avisynth delivers YUV420P10 itself, it's not AvsPmod's fault.
Open the script in a player or VirtualDub.

Does a professional know here? There is 10 bit deep, so no Y8

pcroland
24th May 2020, 05:09
AvsPmod 2.6.2.3 (https://github.com/gispos/AvsPmod/releases)
changelog (https://github.com/gispos/AvsPmod/blob/GPo/changelog.txt)

Have a nice weekend.
Thanks a lot. Everything works great with this version.

pinterf
24th May 2020, 06:05
It's probably the source filter that translates Y10 to YUV420P10.

gispos
24th May 2020, 12:09
It's probably the source filter that translates Y10 to YUV420P10.
As long as AvsPmod is not the culprit... I don't care who:D

Another new version. Unfortunately.
some flicker problems have been fixed.

AvsPmod 2.6.2.4 (https://github.com/gispos/AvsPmod/releases)
changelog (https://github.com/gispos/AvsPmod/blob/GPo/changelog.txt)

gispos
24th May 2020, 13:09
Thanks a lot. Everything works great with this version.
In retrospect, I now know what you meant.
The inverted mouse function was written somewhat confusing by the programmers at that time.
There was only one option to invert and that was set to True by default, but in the code block that allows you to switch tabs with the mouse,
it was inverted again in the calculations (i.e. set to normal). I had set the mouse function to normal as the default and without knowing it set the tab change to inverted.

TDD
25th May 2020, 12:42
Thanks for all the work on AvsPmod gispos, this kind of active development is very much appreciated.

I noticed a small bug in latest version, when I change something in the script and then left-click the already opened preview, it doesn't get updated automatically like it used to do before. Also, if I click F5 while the preview is focused, the preview doesn't get updated with the changes, I have to focus the text editor field, and then click F5 to update the preview with the made changes in the script.
I think the way it used to be before is much more useful, when preview is open and I make some changes in the script, if I left-click the preview window it should get updated automatically, same with click F5, F5 should update the preview with the latest made changes regardless of whether the preview is focused or the text field.

-------
I just noticed that this is an exception-bug more then general bug. The functionality works except for this special case: If I have script like this:
DGDecodeNV_DGSource("video.dgi")
z_Spline36Resize(1280, 720, dither="error_diffusion")
Histogram("luma")
and I have preview open, when I'm focused on preview I can still affect the script by toggling comment the last line (ctrl+q), so that I can quickly check for changes without focusing the script, toggling comment and then focusing the preview. Instead, I used to be able to be focused on preview, toggle-comment last line, and just left-click the preview to update it, without going back and forth. So basically, I want editor to be sensitive to changes in text, without text-field being in focus. I hope this makes sense.

gispos
25th May 2020, 21:31
I noticed a small bug in latest version...
That was a typical volatile mistake. I am getting old.
Can you imagine:
I had to test 6 versions to find out how long this has been the case. The last working version was 2.6.1.9
Do you know how much code I've changed since then? I do not know it either.:)

I remove changes made, test and test and just can't believe it.
And then just an almost invisible parenthesis monkey.

wrong: if self.refreshAVI and (self.options['refreshpreview'] or forceRefresh):
correct: if (self.refreshAVI and self.options['refreshpreview']) or forceRefresh:
correct: if self.refreshAVI and self.options['refreshpreview'] or forceRefresh:

I need holidays.

AvsPmod 2.6.2.5 (https://github.com/gispos/AvsPmod/releases) (i hate the .r releases)
changelog Stupidity bug fixed

bruno321
18th June 2020, 08:10
Thanks for working on avspmod development :) I'm seeing what I think is a bug. I have a the "default image filename pattern" set as default, namely %s%06d, but now avspmod is using the last custom filename I used. More precisely: I saved an image with filename "bla.png" and now each new image wants by default to use that, instead of the default image filename pattern. Also the "quick save image" option is using the same "bla.png", which is quite inconvenient.

gispos
18th June 2020, 18:01
@bruno321, the problem exists in all versions. It is also not as easy as you think.
What is actually an extended option creates problems.

If a file is saved with the Save dialog, the name used is saved as the default for this script (name, title).
Intended for being able to save multiple images with 'Quick save image' and the name of your choice.

Another problem for this extended option is the frame number in the name, if the selected name does not contain a number (with the specified length) at the end of the name,
the whole formatting is lost, because the last name you choose is the default format naming for this script (file name, title)

If that code is changed, with 'Quick save image' the images can only be saved with the (under options) specified name formatting.

I will change it, but remember:
With 'Quick save image' the images can only be saved with the specified name formatting.

I'm excited to see who then complains. Maybe I can think of something else.

Here is a macro I'm using. Try it.
Save it in the AvsPmod macro directory as 'Save Image.py'

# GPo 2018, AvsPmod macro save image

"""
# find source file name for the image name and not the avs or script filename
# search for my pattern and find the source filename (sourceFile, videosource... etc)
# finds also ScriptDir() + "My Video.mkv"
# doesn't override any file
#
# My default AvsPmod templates eg 'mkv, ts, etc..':
#
# SourceFile = ScriptDir() + [***]
# SourceFile = Exist(SourceFile) ? SourceFile : ***
# video=LWLibavVideoSource(SourceFile, cache=False)
# audio=LWLibavAudioSource(SourceFile, cache=False)
# audioDub(video, audio)
"""

import os
import sys

# enable Input for filename if source file not found
# else filename is tab name (script name)
doMessage=True

sourceFile=''
fileName=''
# save as jpg
fnExt='.jpg'
# jpg Quality
jpgQ=90
framenr=''

# enable this for frame number, does not override existing files
#framenr= '_' + str(avsp.GetFrameNumber())

# for test
#fileName= avsp.GetScriptFilename()

if not fileName:
sep = '"'
txt = avsp.GetText(index=None, clean=False)
i = txt.lower().find('sourcefile : "')
if i < 0:
i = txt.lower().find('videosource("')
if i < 0:
i = txt.lower().find('source("')
if i > -1:
s = txt[i : len(txt)]
#avsp.MsgBox(s, cancel = True)
a = {}
a = s.split(sep)
if len(a) > 1:
fileName = a[1]
else:
i = txt.lower().find('scriptdir')
if i > -1:
s = txt[i : len(txt)]
a = {}
a = s.split(sep)
if len(a) > 1:
fileName = os.path.join(avsp.GetScriptFilename(propose='general', only='dir'), a[1])

# if source not found, remove the avs ext and hopefully the source have the same name
if not fileName:
fileName=os.path.splitext(avsp.GetScriptFilename(propose='general'))[0]# remove '.avs'

fileName = fileName.encode(sys.getfilesystemencoding())

if os.path.isfile(fileName):
sourceFile = fileName
fileName = os.path.splitext(fileName)[0]
if fileName:
fileName += framenr
else:
dir=avsp.GetScriptFilename(propose='general', only='dir')
fn=os.path.splitext(avsp.GetScriptFilename(propose='general', only='base'))[0] + framenr
if dir:
dir = dir.encode(sys.getfilesystemencoding())
fn = fn.encode(sys.getfilesystemencoding())
if doMessage:
tx = avsp.GetTextEntry(message=dir, default=fn, title='Enter Filename to save the Image', types='text', width=300)
if not tx:
return
else:
tx = fn
fileName = os.path.join(dir, tx)

if fileName:
if os.path.isfile(fileName + fnExt):
i = 2
s = fileName
while os.path.isfile(s + fnExt):
s = fileName + ' (' + str(i) + ')'
i += 1
fileName = s + fnExt
else:
fileName += fnExt
#fileName=fileName.encode(sys.getfilesystemencoding())

#avsp.MsgBox(fileName, cancel = True)
fileName=avsp.SaveImage(filename=fileName, framenum=None, index=None, default='', quality=jpgQ)

if fileName and sourceFile:
# for other uses
pass

Emulgator
18th June 2020, 23:30
While you're at it: A wish, a small wish ;-)
It would be great to be able to see the real sample values for HBD (i.e. 0..1023 for 10-bit video and so on) under cursor.
At the moment while previewing a 10-bit script I am getting the 8-bit values with an asterisk.

gispos
19th June 2020, 17:01
While you're at it: A wish, a small wish ;-)
It would be great to be able to see the real sample values for HBD (i.e. 0..1023 for 10-bit video and so on) under cursor.
At the moment while previewing a 10-bit script I am getting the 8-bit values with an asterisk.
This is not a small but a huge wish. Note the TODO's:) Look here (https://forum.doom9.org/showthread.php?p=1879721#post1879721)
Maybe I'll figure out how to calculate it, or someone will help me.
My interest in it goes towards 0 and therefore I will not deal with it for days at the moment. Sorry.

gispos
20th June 2020, 15:05
AvsPmod 2.6.2.6 (https://github.com/gispos/AvsPmod/releases)
changelog (https://github.com/gispos/AvsPmod/blob/GPo/changelog.txt)

FranceBB
21st June 2020, 13:23
AvsPmod 2.6.2.6 (https://github.com/gispos/AvsPmod/releases)
changelog (https://github.com/gispos/AvsPmod/blob/GPo/changelog.txt)

Thank you for the update! :)

bruno321
21st June 2020, 17:26
Thanks a lot for taking care of it! :)

gispos
21st June 2020, 18:31
Your wishes are my command ... not always :)

RRD
21st June 2020, 21:26
I installed AviSynth+ 3.6.1 from https://github.com/AviSynth/AviSynthPlus/releases/ using AviSynthPlus_3.6.1_20200619_vcredist.exe then when I launch AvsPmod.exe that I downloaded from https://github.com/gispos/AvsPmod/releases (AvsPmod_v2.6.2.6_.Windows_x86-64) I get a pop-up:

Warning
Shibatch.dll - SuperEQ

This function is beta!
Found more then one function with the same name.
You should clean up your plugins.

https://i.imgur.com/citxkZL.png


Is this normal? Should I ignore it or did I screw something up?


In the "C:\Program Files (x86)\Avisynth+" folder: "plugins" and "plugins64" folders are empty;

The "plugins+" folder contains:
https://i.imgur.com/92KMaYQ.png

The "plugins64+" folder contains:
https://i.imgur.com/dmB5ehS.png

LigH
22nd June 2020, 07:00
Use AVSMeter[64] avsinfo -l -lf to scan for ambiguous functions in several plugins.

gispos
22nd June 2020, 07:43
Warning
Shibatch.dll - SuperEQ

This function is beta!
Found more then one function with the same name.
You should clean up your plugins.
Is this normal? Should I ignore it or did I screw
Yes, just deactivate it. The function is beta and I completely forgot about it.

gispos
22nd June 2020, 17:09
I am testing for DLL function names that have already been loaded.
Can someone tell me why some functions are loaded twice? It can't be due to different function parameters, then that would have to be a lot of more functions.

I don't want to make a lot of effort, but it would be very useful if a message appears when the program starts.
But it should be reliable, AvsMeter shows me a lot more double function names, but that doesn't help because only the name of the function is displayed.

AvsPmod warnings:
grunt.dll - GConditionalFilter
grunt.dll - ConditionalFilter
Shibatch.dll - SuperEQ

grunt.dll ok, there are avisynth internal functions with the same name I think.
but Shibatch.dll SuperEQ, why? SuperEQ is also available as an internal function?

AvsMeter info, how is that to be interpreted?

[Plugin errors/warnings]
_____________________________________________________________________

Duplicate function (Plugin): "AverageChromaU"
_____________________________________________________________________

Duplicate function (Plugin): "AverageChromaV"
_____________________________________________________________________

Duplicate function (Plugin): "AverageLuma"
_____________________________________________________________________

Duplicate function (Plugin): "ChromaUDifference"
_____________________________________________________________________

Duplicate function (Plugin): "ChromaVDifference"
_____________________________________________________________________

Duplicate function (Plugin): "ConditionalFilter"
_____________________________________________________________________

Duplicate function (Plugin): "FrameEvaluate"
_____________________________________________________________________

Duplicate function (Plugin): "LumaDifference"
_____________________________________________________________________

Duplicate function (Plugin): "RGBDifference"
_____________________________________________________________________

Duplicate function (Plugin): "RGBDifferenceFromPrevious"
_____________________________________________________________________

Duplicate function (Plugin): "RGBDifferenceToNext"
_____________________________________________________________________

Duplicate function (Plugin): "ScriptClip"
_____________________________________________________________________

Duplicate function (Plugin): "UDifferenceFromPrevious"
_____________________________________________________________________

Duplicate function (Plugin): "UDifferenceToNext"
_____________________________________________________________________

Duplicate function (Plugin): "UPlaneMax"
_____________________________________________________________________

Duplicate function (Plugin): "UPlaneMedian"
_____________________________________________________________________

Duplicate function (Plugin): "UPlaneMin"
_____________________________________________________________________

Duplicate function (Plugin): "UPlaneMinMaxDifference"
_____________________________________________________________________

Duplicate function (Plugin): "VDifferenceFromPrevious"
_____________________________________________________________________

Duplicate function (Plugin): "VDifferenceToNext"
_____________________________________________________________________

Duplicate function (Plugin): "VPlaneMax"
_____________________________________________________________________

Duplicate function (Plugin): "VPlaneMedian"
_____________________________________________________________________

Duplicate function (Plugin): "VPlaneMin"
_____________________________________________________________________

Duplicate function (Plugin): "VPlaneMinMaxDifference"
_____________________________________________________________________

Duplicate function (Plugin): "WriteFile"
_____________________________________________________________________

Duplicate function (Plugin): "WriteFileIf"
_____________________________________________________________________

Duplicate function (Plugin): "YDifferenceFromPrevious"
_____________________________________________________________________

Duplicate function (Plugin): "YDifferenceToNext"
_____________________________________________________________________

Duplicate function (Plugin): "YPlaneMax"
_____________________________________________________________________

Duplicate function (Plugin): "YPlaneMedian"
_____________________________________________________________________

Duplicate function (Plugin): "YPlaneMin"
_____________________________________________________________________

Duplicate function (Plugin): "YPlaneMinMaxDifference"
_____________________________________________________________________

Groucho2004
22nd June 2020, 18:52
AvsMeter info, how is that to be interpreted?Temporarily remove Grunt and run it again. I think I'll suppress these GrunT duplicates (at least temporarily) in AVSMeter dup report.

gispos
22nd June 2020, 21:19
Temporarily remove Grunt and run it again. I think I'll suppress these GrunT duplicates (at least temporarily) in AVSMeter dup report.
You are right, grunt.dll is the reason for the many double functions.

real.finder
25th June 2020, 05:59
seems AvsPmod 64 wont load external/custom avs dll and always load the installed one (avs+)

I have avs 2.6 st with SEt dll as 32 and AvsPmod 32 work fine with this feature, is it bug in AvsPmod 64 or something in avs+?

gispos
25th June 2020, 09:47
seems AvsPmod 64 wont load external/custom avs dll and always load the installed one (avs+)

I have avs 2.6 st with SEt dll as 32 and AvsPmod 32 work fine with this feature, is it bug in AvsPmod 64 or something in avs+?

That is probably a bug.
I never touched the code, had tested it myself a while ago and just shook my head and hoped that nobody would ever want to use it. :)
Damn it, I have to take a closer look at it now.

gispos
25th June 2020, 17:23
seems AvsPmod 64 wont load external/custom avs dll and always load the installed one (avs+)

I have avs 2.6 st with SEt dll as 32 and AvsPmod 32 work fine with this feature, is it bug in AvsPmod 64 or something in avs+?
Did not notice your note that it works with the 32bit version. It was still early in the morning. :rolleyes:

In those days I only tested the 64bit version and didn't feel like fixing it, you don't care what you don't use. :)


# Wrong! The custom path is only used when debugging. Whoever did that.
try:
import global_vars
directory = global_vars.avisynth_library_dir
except:
directory = ur''
if os.name == 'nt':
if __debug__:
if directory:
ffi = cffi.FFI()
ffi.cdef('bool SetDllDirectoryW(wchar_t *);')
kernel32 = ffi.dlopen('kernel32')
if hasattr(kernel32, 'SetDllDirectoryW'):
print 'Using a custom AviSynth directory:', directory
kernel32.SetDllDirectoryW(directory)
else:
print ('No SetDllDirectoryW on this version of Windows, '
'using AviSynth from PATH')
else:
print 'Using AviSynth from PATH'
else: # TODO
if __debug__:
if directory:
print 'Using a custom AvxSynth directory:', directory
else:
print 'Using AvxSynth from LD_LIBRARY_PATH'

# Correct.
try:
import global_vars
directory = global_vars.avisynth_library_dir
except:
directory = ur''
if os.name == 'nt':
if directory:
ffi = cffi.FFI()
ffi.cdef('bool SetDllDirectoryW(wchar_t *);')
kernel32 = ffi.dlopen('kernel32')
if hasattr(kernel32, 'SetDllDirectoryW'):
kernel32.SetDllDirectoryW(directory)
if __debug__:
print('Using a custom AviSynth directory:', directory)
else:
if __debug__:
print ('No SetDllDirectoryW on this version of Windows, '
'using AviSynth from PATH')
else:
if __debug__:
print('Using AviSynth from PATH')
else: # TODO
if __debug__:
if directory:
print('Using a custom AvxSynth directory:', directory)
else:
print('Using AvxSynth from LD_LIBRARY_PATH')

In the 64bit version it works now too. I will upload them tomorrow evening or at the latest on Saturday.

https://iili.io/JZ4ktj.jpg (https://freeimage.host/i/JZ4ktj)

bruno321
26th June 2020, 18:29
I have two tabs open which load the same source file but have different filters.

For a moment, I'm pretty sure I saw the very nice functionality that using Control+Tab to switch between them was also changing the frame accordingly. I.e. if I'm on Tab 1 and I change the frame, when I control+tab then Tab 2 loads on that new frame. Very useful for comparing the effects of different filters.

Now suddenly it's not happening anymore. Did I daydream it? Or is it triggered/deactivated by something I don't know about?

gispos
27th June 2020, 05:26
I have two tabs open which load the same source file but have different filters.

For a moment, I'm pretty sure I saw the very nice functionality that using Control+Tab to switch between them was also changing the frame accordingly. I.e. if I'm on Tab 1 and I change the frame, when I control+tab then Tab 2 loads on that new frame. Very useful for comparing the effects of different filters.

Now suddenly it's not happening anymore. Did I daydream it? Or is it triggered/deactivated by something I don't know about?
There are a few settings.
Options> Video> 'Shared timeline', 'Only on tabs with the same characteristics'

See what you've set.

If the clips have different lengths, you can also assign a group to the clips. Video> 'Add tab to group'

Note:
You can also select the tabs directly with the keyboard numbers, i.e. 1 for the first tab etc.
Or with the browse buttons of the mouse, if this is set under the options


AvsPmod 2.6.2.7 (https://github.com/gispos/AvsPmod/releases)
changelog (https://github.com/gispos/AvsPmod/blob/GPo/changelog.txt)

bruno321
27th June 2020, 05:57
Yes, it's set. That explains why it was working. I realized now when did it stop working: when I did a resize in one but not in the other.

I guess that makes avspmod classify the two tabs as different enough... I understand, though making comparisons of different aspect ratio choices is a scenario I would think fairly common.

Anyway: the "add tab to group" function works fine in this case, so that does it. Thanks for the explanation!

real.finder
27th June 2020, 08:46
In the 64bit version it works now too. I will upload them tomorrow evening or at the latest on Saturday.

https://iili.io/JZ4ktj.jpg (https://freeimage.host/i/JZ4ktj)

thanks for the update

gispos
27th June 2020, 13:12
I guess that makes avspmod classify the two tabs as different enough... I understand, though making comparisons of different aspect ratio choices is a scenario I would think fairly common.
!
Somehow a differentiation has to be made, otherwise all tabs would jump the frame. You can also disable it. It is stored as a tooltip for the 'Only on tabs with the same characteristics' option.
Then no check is made for frame count and resolution.

https://iili.io/JtSiVp.jpg (https://freeimage.host/i/JtSiVp)

l00t
2nd July 2020, 12:53
Hi gispos,

I've noticed that Crop editor for bottom crop is not working properly when Zoom is enabled. Can you please look around for a fix?

Thanks in advance.

gispos
3rd July 2020, 20:32
Hi gispos,

I've noticed that Crop editor for bottom crop is not working properly when Zoom is enabled. Can you please look around for a fix?

Thanks in advance.
Does this affect a certain resolution?

I just tested with over 2X zoom and found no errors.
But you also have to keep in mind that there may be rounding errors with zoomed cropping.

Show me a few pictures or describe it in more detail.

Edit: I continued testing and now know what you mean.

gispos
4th July 2020, 04:44
Crop Editor fixed:
That was a fat dog, and it was already there in the old versions, bevor me.
With Crop Editor the GPU was running out of memory on large zoom and clip resolution.

I usually use the crop editor only with 100% zoom or with fit window.
Now it also works perfectly at 40x zoom.

Macro update:
Please test the macro 'Save Image Sequence.py' I think I did a nice update.
If the option selected, 'ImageSource' with the 'start' and 'end' file name and correct formatting is insert in the script.
This even works with sub directories.
Also new is the selection of the range 'From first to last bookmark', and the option 'To new tab'
And the directory is now created if it doesn't exists.

Self praises stink, I stink terribly right now. :D

AvsPmod 2.6.2.8 (https://github.com/gispos/AvsPmod/releases)
changelog (https://github.com/gispos/AvsPmod/blob/GPo/changelog.txt)

kebulek
4th July 2020, 13:16
Crop Editor fixed
:thanks:

StainlessS
4th July 2020, 14:44
Self praises stink, I stink terribly right now. :D

At least with self praise, you know that you really mean it. :)

Thanks for your efforts GP.

FranceBB
4th July 2020, 22:09
I usually use the crop editor only with 100% zoom or with fit window.


Same here, that's why I didn't notice that there was a problem, but thanks for fixing it anyway. :)
As to image sequence, I'll try it out at work next time a journalist sends me 82 pictures of something to be encoded in sequence DX

LigH
6th July 2020, 07:08
@gispos: We praise you too...

https://cosgan.de/images/smilie/liebe/f045.gif

gispos
11th July 2020, 14:29
Thanks for the praise. A little bit of fun is always good :)

AvsPmod 2.6.3.0 (https://github.com/gispos/AvsPmod/releases)
changelog (https://github.com/gispos/AvsPmod/blob/GPo/changelog.txt)

Excerpt from the changelog:
***This stubborn error message 'MOUSE_CAPTURE_LOST' has been fixed. Error log should now remain empty :):):):)

*Menu Tools > 'Script encoder (CLI)'
- if you change the output path manually, the directory is now created if it does not exist
- added option 'Output file name to new tab', insert in a new tab the output name depended of the source files templates
- !! For the update you must delete 'tools\encoder_gui.pyo' if it exists.!!

l00t
13th July 2020, 11:43
Thanks for the fix for my previous issue, it is resoved now. However, if zoom is set to 400% and I set top 1 px in the crop editor it only marks the first pixel, not the whole line. For 2 or more pixels it works fine; also, bottom is not affected.

https://thumbs2.imgbox.com/3d/96/cGWH7Pwa_t.png (http://imgbox.com/cGWH7Pwa)

gispos
14th July 2020, 10:45
Thanks for the fix for my previous issue, it is resoved now. However, if zoom is set to 400% and I set top 1 px in the crop editor it only marks the first pixel, not the whole line. For 2 or more pixels it works fine; also, bottom is not affected.

https://thumbs2.imgbox.com/3d/96/cGWH7Pwa_t.png (http://imgbox.com/cGWH7Pwa)
Will be fixed in the next version.

l00t
14th July 2020, 12:39
Thank you :)

bruno321
17th July 2020, 06:37
I'm back with a question. Suppose I have opened a d2v file, 29.97fps. I use QTGMC().srestore() on it. I'd like to make a before-after frame comparison, but that's hard because srestore changes the framerate to 25fps. The way I workaround this is that I keep the cursor on top of my current frame position (on the horizontal scroller at the bottom), I comment out the line above, the framerate changes, and I click on where I left the cursor, which won't be too far off the original frame, but I have to look around.

Is there a more effective way of doing this comparison?

gispos
17th July 2020, 13:20
Is there a more effective way of doing this comparison?
Frame text field context menu 'copy as time'
After changing the frame rate, paste the time (context menu 'paste') into the text field and display the frame with return.

For quick comparison with just one tab:
Set two bookmarks, each in the correct position with or without changing the frame rate.

AvsPmod 2.6.3.1 (https://github.com/gispos/AvsPmod/releases)
changelog
(https://github.com/gispos/AvsPmod/blob/GPo/changelog.txt)

bruno321
17th July 2020, 17:46
Thanks! That did the trick.

Yet another question. I'm seeing some behavior that I don't understand. Situation: I'm loading a d2v file with MPEG2Source, and I only do QTGMC().srestore() after it.

I'm sitting in a frame, I move to the right four frames with the Right key, I see this:
https://i.imgur.com/9KyECRJ.png

Then I press F5 for preview and I see this:
https://i.imgur.com/3e9yZC4.png

How is it that the preview changes when I didn't change anything in the script? (It's a transition frame between two takes). In the actual encode, it's a frame like the first one that appears in that place.

poisondeathray
17th July 2020, 17:52
srestore is like that. You need to go back a longer distance (maybe 1 or 2 seconds) and advance linearly, otherwise frames get mixed up and results change . A few frames is not enough

gispos
17th July 2020, 20:03
Thanks! That did the trick.

You need one tab with normal frame rate and one with the modified.
Then run the macro. The hit rate is usually just one frame off.
You can set a shortcut for the macro.

You only have to run it once and then you can use the tabs to compare.

Copy it into a text file and save it in the macro directory as 'Next tab to current frame time.py'

# GPo 2020, Next tab to current frame time.py
# Changes the tab and shows the video frame from the previous frame time code
# So there must be a second tab with a changed frame rate

import wx
self = avsp.GetWindow()

script = self.currentScript
if script.AVI is None:
wx.Bell()
return

frame = self.GetFrameNumber()
try:
tc = frame/self.MacroGetVideoFramerate()
except:
wx.Bell()
return

self.SelectTab(index=None, inc=1)
script = self.currentScript

try:
frame = int(round(tc * self.MacroGetVideoFramerate()))
except:
wx.Bell()
return

if frame < 0 or (script.AVI and frame >= script.AVI.Framecount):
wx.Bell()
return

self.ShowVideoFrame(frame)

gispos
17th July 2020, 20:13
srestore is like that. You need to go back a longer distance (maybe 1 or 2 seconds) and advance linearly, otherwise frames get mixed up and results change . A few frames is not enough
Read too late. Then the macro is superfluous.
Well maybe not quite, it is useful for normal change fps.

Edit: With two tabs I have found no problems with srestore. So bruno test that.

bruno321
18th July 2020, 07:22
gispos, that's very useful. Maybe sometimes it will run into the kind of problem I explained above when using srestore, but if I compare two encodes (one gotten with srestore, one without), then there can't be any problem. At any rate, your script is very helpful. Thanks once more :)

gispos
18th July 2020, 15:45
gispos, that's very useful. Maybe sometimes it will run into the kind of problem I explained above when using srestore...
A few changes, with goBack you can step frame for frame to the timecode frame. Maybe this helps.

# GPo 2020, Next tab to current frame time.py
# Changes the tab and shows the video frame from the previous frame time code
# So there must be a second tab with a changed frame rate
#
# if the function needs moore frame steps for a proper result,
# set goBack and step frame for frame to the time code frame

import wx
self = avsp.GetWindow()

# set here the go back count
# if the function (plugin) does not need it, set to 0
goBack = 12

try:
if self.currentScript.AVI is None: raise

frame = self.GetFrameNumber()
fps = self.MacroGetVideoFramerate()
tc = frame/fps

self.SelectTab(index=None, inc=1)
script = self.currentScript
if not script.AVI: raise

fps2 = self.MacroGetVideoFramerate()
if fps2 >= fps:
stopFrame = int(round(tc * fps2))
else:
stopFrame = int(tc * fps2)

if stopFrame >= script.AVI.Framecount: raise

frame = max(0, stopFrame - abs(goBack))

re = True
while frame <= stopFrame and re:
re = self.ShowVideoFrame(frame)
frame += 1

if frame - 1 != stopFrame:
wx.Bell()
except:
wx.Bell()

gispos
19th July 2020, 07:00
AvsPmod 2.6.3.2 (https://github.com/gispos/AvsPmod/releases)
Fixed: bookmark highlighting doesn't update immediately on set or remove

FranceBB
19th July 2020, 09:20
AvsPmod 2.6.3.2 (https://github.com/gispos/AvsPmod/releases)
Fixed: bookmark highlighting doesn't update immediately on set or remove

Woah, new build at 8AM on a Sunday morning? You really are an early bird. :D
Thanks.

gispos
19th July 2020, 19:57
Woah, new build at 8AM on a Sunday morning? You really are an early bird. :D
Thanks.
Nope, that was before I went to bed. :D

bruno321
20th July 2020, 08:29
One question -- what's the best way to upgrade avspmod and keep all my settings?

gispos
20th July 2020, 17:00
One question -- what's the best way to upgrade avspmod and keep all my settings?
Your settings are saved in the options.dat. And then there is the backup_style.dat if you have made a backup of a custom script editor style.

There are two possibilities:
A ) Extract the new version into a directory and copy the options.dat from the old version into the new directory.

B ) Overwrite the files in the old directory.That's how I do it. And I recommend this method.

1.) Open the archive
2.) In the File Manager (Explorer), open the AvsPmod directory
3.) Delete the following directories: src, lib, translations
4.) In the archive manager mark all files with left down and a mouse move then press CTRL and mark the directories (src, lib, translations)
5.) Drag and drop the selection into the AvsPmod directory. Confirm 'Overwrite all files'

Every now and then new macros come or something changes in the tools directory. Then I write that as a comment on the new version.

Edit:
I personally make a copy of the options.dat every now and then.

If you haven't changed any macros yourself and haven't made any changes to existing files, you can overwrite everything right away.
Then only the options.dat is important for you.

bruno321
24th July 2020, 07:21
Sometimes when I close all tabs (save session? No) I get these error messages:

Traceback (most recent call last):
File "wx\_core.pyo", line 16767, in <lambda>
File "wx\_core.pyo", line 10675, in Refresh
TypeError: in method 'Window_Refresh', expected argument 1 of type 'wxWindow *'
Traceback (most recent call last):
File "wx\_core.pyo", line 16767, in <lambda>
File "wx\_core.pyo", line 10675, in Refresh
TypeError: in method 'Window_Refresh', expected argument 1 of type 'wxWindow *'


I just close the Error Window and go on with my business, but I guess there's something to be fixed there.

poisondeathray
24th July 2020, 15:46
Sometimes when I close all tabs (save session? No) I get these error messages:
.
.


I noticed this too before, but I can't always reliably reproduce it. I don't know what situations cause it

gispos
24th July 2020, 18:32
I noticed this too before, but I can't always reliably reproduce it. I don't know what situations cause it
When the first tab is selected and then all tabs are closed.

I did not find any error in the code and assume that this is a bug in the wxPython version I am using.

I fixed it, but I still don't know why.
The error log indicates wx.core and no function within avsp. Therefore probably a wx bug.

AvsPmod 2.6.3.3 (https://github.com/gispos/AvsPmod/releases)
fixed close all tabs error

gispos
25th July 2020, 05:18
I can no longer reproduce the error when closing all tabs with version 2.6.3.2 and previous versions. Really very strange.

Now I am not sure if I really fixed the bug in the new version. So please report if the error still exists.

Dogway
1st August 2020, 20:33
Is there a way to disable the mouse wheel functionality? I use it mainly to scroll up/down my script but it constantly want to scrub through the timeline or jump between tabs (depending on settings). I couldn't find a shortcut entry for it.

gispos
1st August 2020, 21:46
Is there a way to disable the mouse wheel functionality? I use it mainly to scroll up/down my script but it constantly want to scrub through the timeline or jump between tabs (depending on settings). I couldn't find a shortcut entry for it.

Options> Video> Mouse wheel function> 'Tab change or scroll'
and uncheck 'Enable scroll wheel through similar tabs'

Dogway
2nd August 2020, 01:37
Thanks, tricky but it worked.

gispos
5th August 2020, 20:44
A little update.

AvsPmod 2.6.3.4 (https://github.com/gispos/AvsPmod/releases)
changelog (https://github.com/gispos/AvsPmod/blob/GPo/changelog.txt)

gispos
30th August 2020, 11:26
AvsPmod 2.6.3.5 (https://github.com/gispos/AvsPmod/releases)
changelog (https://github.com/gispos/AvsPmod/blob/GPo/changelog.txt)

New macro 'Open Image Sequence.py'

GPo 2020, AvsPmod macro 'Open ImageSequence.py'
Only useful for image names with consecutive frame numbers in a sequence.
If the frame number is not consecutive, a new ImageSource is added.
Uses all images in the selected directory that match the selected file name.
Separate by file (frame) range numbers e.g.:
Img_000000.png to Img_000020.png insert one ImageSource
Img_000000.png to Img_000010.png and Img_000012.png to Img_000020.png insert two ImageSources
000001.png to 000010.png and 000012.png to 000020.png insert also two ImageSources

gispos
30th August 2020, 22:10
AvsPmod 2.6.3.6 (https://github.com/gispos/AvsPmod/releases)
fixed load old sessions

JKyle
31st August 2020, 02:53
AvsPmod 2.6.3.6 (https://github.com/gispos/AvsPmod/releases)
fixed load old sessions

:thanks:

This version loads successfully even with a _last_session_.ses file from 2.6.3.4.


BTW, the Plugins directory 64 bit setting is reset to %avisynthdir%\plugins64 every time the program launches.

https://i.imgur.com/CCD35Cw.jpg

The default plugins directory for AviSynth+ in an x64 system is plugins64+, not plugins64.

LigH
31st August 2020, 08:02
The directory plugins64+ is for 64-bit plugins which are only compatible to AviSynth+; there could still be plugins which are compatible to an early legacy 64-bit AviSynth, using older API versions and no support for advanced features. So it should not hurt to put the more compatible plugins into plugins64 in case someone might switch the 64-bit AviSynth DLL sometimes.

gispos
31st August 2020, 16:30
BTW, the Plugins directory 64 bit setting is reset to %avisynthdir%\plugins64 every time the program launches.

The default plugins directory for AviSynth+ in an x64 system is plugins64+, not plugins64.

It is not reset, it is read from the regestrie at startup.
And what says AvsMeter info ? That would be interested me.

To understand:
First 'plugindir2_5' is read from the regestrie. Then it is checked whether the directory exists.
If not, 'plugindir+' is read from the regestrie and the directory is set if it exists, otherwise 'ERROR'

In short, 'plugindir 2_5' is always preferred if the directory exists. This is what avisynth+ does, if I remember correctly.
Either set the plugin dir manually in AvsPmod or rename the directory of the other plugins so that it is not found.

JKyle
31st August 2020, 19:03
It is not reset, it is read from the regestrie at startup.
And what says AvsMeter info ? That would be interested me.

To understand:
First 'plugindir2_5' is read from the regestrie. Then it is checked whether the directory exists.
If not, 'plugindir+' is read from the regestrie and the directory is set if it exists, otherwise 'ERROR'

In short, 'plugindir 2_5' is always preferred if the directory exists. This is what avisynth+ does, if I remember correctly.
Either set the plugin dir manually in AvsPmod or rename the directory of the other plugins so that it is not found.

Thanks for the pointer.

You're right.
By running AVSMeter64.exe avsinfo, I've found that my PluginDir2_5 is set to C:\Program Files (x86)\AviSynth+\plugins64.

Manually setting the plugins directory in AvsPmod does not work as expected. It always reverts my setting to the PluginDir2_5 registry value.

So instead of deleting the registry entry, I chose to delete the already empty plugins64 folder, and it solves my issue.

:thanks:

JKyle
31st August 2020, 19:10
The directory plugins64+ is for 64-bit plugins which are only compatible to AviSynth+; there could still be plugins which are compatible to an early legacy 64-bit AviSynth, using older API versions and no support for advanced features. So it should not hurt to put the more compatible plugins into plugins64 in case someone might switch the 64-bit AviSynth DLL sometimes.

Since all my plugins are put in custom folders except for the basic default plugins shipped with AviSynth+, I chose to delete the empty plugins64 folder.

Thanks for the advice though. :)

gispos
31st August 2020, 20:23
Manually setting the plugins directory in AvsPmod does not work as expected. It always reverts my setting to the PluginDir2_5 registry value.


That's a lie. :)
You just have to read it correctly, every checkbox has a tooltip
It all works for me, after all, I invested a lot of time in the regestry things that everything works as it should.

After a restart, 'BSA' is not a plugin directory and note the checkbox 'Disable Autoload' ;)
And if you also want to change the regestry entry for avisynth, there is still a checkbox 'Register...!

https://i.postimg.cc/mkbDNxzV/options.jpg (https://postimages.org/)

JKyle
1st September 2020, 02:42
After a restart, 'BSA' is not a plugin directory and note the checkbox 'Disable Autoload' ;)
And if you also want to change the regestry entry for avisynth, there is still a checkbox 'Register...!

Oops, my bad! I missed it. I was stupid. :D

Thanks for pointing it out. ;)

bruno321
5th September 2020, 07:20
Is there a way to change the behavior so that when I select a macro it gets inserted where my cursor is, not at the end of the script?

gispos
5th September 2020, 19:48
Is there a way to change the behavior so that when I select a macro it gets inserted where my cursor is, not at the end of the script?


InsertText(txt, pos=-1, index=None)
===================================

Inserts the string 'txt' into the script of the tab located at the zero-based
integer 'index' at the text position 'pos'.

If the input 'index' is None, the text is inserted into the script of the
currently selected tab. The input 'pos' can be either an integer representing
the zero-based position in the text document (a value of -1 is equivalent
to the last position) or a tuple representing the zero-based line and column
numbers (a value of -1 is equivalent to the last line or column, respectively).
Alternatively, if 'pos' is equal to None, the text is inserted at the current
cursor position in the document, replacing any existing selection. In all
cases, the cursor is positioned at the end of the inserted text.

Returns False if insert failed (due to bad inputs), True otherwise.

So you have to change the macro code yourself.
Search for avsp.InsertText and change it to avsp.InsertText(txt, None, None)
'txt' is just an example

bruno321
6th September 2020, 08:51
Worked just fine, thanks. If I may suggest it, I think it'd be a very useful addition to have an option somewhere that allows you to change the default behavior of InsertText so that it's always where the cursor points. We already have that in the Crop window.

gispos
6th September 2020, 10:40
Worked just fine, thanks. If I may suggest it, I think it'd be a very useful addition to have an option somewhere that allows you to change the default behavior of InsertText so that it's always where the cursor points. We already have that in the Crop window.

The macro is passed to the python interpreter and does what is written in it. That's why it's called macro.
So, the option is yourself. Rewrite the code or write your own macro.

An example

# get options, add before macro code
curPos = avsp.GetTextEntry(title='Insert text',
message=['Add cursor'],
default=[True],
types=['check'])
if curPos is '':
return

# here the macro code
txt = "### That's how easy it is ###"

# now select youre option
if curPos:
avsp.InsertText(txt, pos=None, index=None)
else:
avsp.InsertText(txt, pos=-1, index=None)

gispos
11th September 2020, 19:09
AvsPmod 2.6.3.7 (https://github.com/gispos/AvsPmod/releases)
changelog (https://github.com/gispos/AvsPmod/blob/GPo/changelog.txt)


*New function called Split View (Check it out)
- Splits the video window in two views and draws (optional) the next or previous tab in the same View.
- Both videos must have the same width and height.
- When you select video > 'Split View on/off' and Split View is disabled:
--- if tab count 1, the tab is copied and Split View is enabled
--- if tab count 2, Split View selects the correct tab automatically and splits the view
--- if under options Video > 'Use next tab for Split View' selected: the next tab is the second view otherwise the previous tab
- if a tab is changed, Split View is always deactivated
- always the left view is the source for zoom and positions calculations
- To avoid confusion, remember: if 'use next tab' (default) the left view is the selected tab, otherwise the right view is the selected tab
- Choose your option, the default value 'next tab' was only used because it is more manageable at first.
* The menus in the video menu has ben repositioned

FranceBB
11th September 2020, 22:38
I generally don't like "pos" 'cause when I get in front of one it means that I have to pay, but "gis" you're my favorite "pos", "gispos". hahahaha
Ok, silly jokes aside, thank you for the new release! :)

gispos
11th September 2020, 23:42
I generally don't like "pos" 'cause when I get in front of one it means that I have to pay, but "gis" you're my favorite "pos", "gispos". hahahaha
Ok, silly jokes aside, thank you for the new release! :)

thanks for the limerick :)

gispos
13th September 2020, 11:16
AvsPmod 2.6.3.8 (https://github.com/gispos/AvsPmod/releases)

* Split View rewritten
- no selection of next or previous tab, the next tab is always the second view
- if the last tab is selected when Split View is activated, the previous tab is used as the first view
- the split view tabs can now be switched back and forth and split view remains activated.
---- e.g.: activate Split View on tab 1, you can switch between tab 1 and tab 2 and Split View remains switched on.
- script update and error handling improved

gispos
16th September 2020, 19:07
AvsPmod 2.6.3.9 (https://github.com/gispos/AvsPmod/releases)


* Split View small changes (zoom, error handling)
* AvsMeter.exe 3040 args has changed, you must change the args under otions > paths > 'external tool'
-- arg1 use AvsMeter info|-avsinfo
-- arg2 use AvsMeter|%fn ( %fn is now needed to pass the script file name )
* New AvsPmod.exe file with high res app icon. Many thanks to user 'color' from the Doom9 forum
-- for all Win10 Tile Fritzen, in German it sounds better (Für alle Win10 Kachel Fritzen)
-- and for those who use large desktop icons.
-- use it, delete it, sell it, do what you want with it
-- if you use it, you have to replace the AvsPmod.exe in the root directory with this high res version.
-- the file is in the folder 'AvsPmod_high_res_ico_version'


Quite forgotten, I would like to know whether the high res version causes problems under WinXP. Thank you.

JKyle
19th September 2020, 02:26
I know this is a silly question, but how do I keep the AvsMeter window (=cmd window) open after execution?

https://i.imgur.com/tSp5v33.jpg

Setting as above does not seem to be enough: the command prompt window disappears as soon as the command is finished.
How do I apply the "/k" switch for cmd (keep the command prompt window open after execution) in this case?

AvsPmod: 2.6.3.9
AvsMeter: 3.0.4.0

FranceBB
19th September 2020, 11:04
@JKyle... With a normal BAT I would say "pause" at the very end. If you can find a way to pass "pause" it would probably work, but I've never done it through AVSPmod, so I'll let others chip in and reply.



Quite forgotten, I would like to know whether the high res version causes problems under WinXP. Thank you.

No problem at all for XP users. :D
https://i.imgur.com/TExpHKN.png - https://i.imgur.com/noiE3tA.png

gispos
19th September 2020, 16:24
I know this is a silly question, but how do I keep the AvsMeter window (=cmd window) open after execution?

https://i.imgur.com/tSp5v33.jpg

Setting as above does not seem to be enough: the command prompt window disappears as soon as the command is finished.
How do I apply the "/k" switch for cmd (keep the command prompt window open after execution) in this case?

AvsPmod: 2.6.3.9
AvsMeter: 3.0.4.0
What happens if you call AvsMeter via a bat file or the commandline?

I only pass the parameters to AvsMeter, which is basically the same as a call via the commandline.

The window doesn't close for me.
https://i.postimg.cc/JhPstj7W/CMD.jpg (https://postimages.org/)

Look here, maybe it's the same problem (https://forums.tomshardware.com/threads/command-prompt-immediately-closes-when-opening-directly.3192665/)

@JKyle... With a normal BAT I would say "pause" at the very end. If you can find a way to pass "pause" it would probably work, but I've never done it through AVSPmod, so I'll let others chip in and reply.

No problem at all for XP users. :D
https://i.imgur.com/TExpHKN.png - https://i.imgur.com/noiE3tA.png
Thanks, then the new Ico will be used as the standard.

Groucho2004
19th September 2020, 16:33
I know this is a silly question, but how do I keep the AvsMeter window (=cmd window) open after execution?

RTFM:

INI file settings
AVSMeter checks if a settings file ("AVSMeter.ini" / "AVSMeter64.ini") exists in the directory from where it is started. If not, it will be created with the default settings.
Note: If applicable, command line switches override INI settings.

Supported settings for the INI file (default values in red):

...

"PauseBeforeExit" (0 or 1):
If set to "1", pauses the program at the end and returns to the console prompt only after pressing "ESC".

...


I'll also add his as a command line switch in the next release.

JKyle
19th September 2020, 17:01
RTFM:

...

"PauseBeforeExit" (0 or 1):
If set to "1", pauses the program at the end and returns to the console prompt only after pressing "ESC".

...


A big :thanks: to you.
It didn't occur to me that this was an AVSMeter setting problem. :)

gispos
10th October 2020, 12:05
AvsPmod 2.6.4.0 (https://github.com/gispos/AvsPmod/releases)
changelog (https://github.com/gispos/AvsPmod/blob/GPo/changelog.txt)

FranceBB
12th October 2020, 07:41
AvsPmod 2.6.4.0 (https://github.com/gispos/AvsPmod/releases)
changelog (https://github.com/gispos/AvsPmod/blob/GPo/changelog.txt)

Thanks! :)

szabi
14th October 2020, 09:12
Hi
I tried to use the AvsPmod 2.6.4.0 GPo.
I get load avisynth.dll failure.
https://abload.de/img/avmod22jt9.png
The old version running properly and gives this for version info:
https://abload.de/img/vere0jyw.png
What should I do to get new version proper running?
Regards
Szabi

LigH
14th October 2020, 10:00
32 bit AvsPmod needs a 32 bit avisynth.dll
64 bit AvsPmod needs a 64 bit avisynth.dll

Are you sure you have the correct combination available? Also make sure you don't have any stray copy of the avisynth.dll in any other directory when you have AviSynth+ installed in your system.

And you may also need to have the proper Visual C++ runtimes installed.

real.finder
14th October 2020, 10:01
since bookmarks now kinda base on tabs (Except synced one) I think it's better to add new (Clear all bookmarks) for selected tab(s) only, and/or maybe rename the current one to "Clear all bookmarks Globally"

also don't know if it bug or is it fixed or not but in avspmod 2.6.3.9 sometimes when I save some bookmark by ctrl + b and then close avspmod I note it wasn't saved (or removed)

@szabi it work fine here

gispos
14th October 2020, 23:26
since bookmarks now kinda base on tabs (Except synced one) I think it's better to add new (Clear all bookmarks) for selected tab(s) only, and/or maybe rename the current one to "Clear all bookmarks Globally"
Clear bookmarks for the selected tab it's not that simple at all. The bookmarks are still bound globally.
When you change tab, the current bookmarks are saved as a backup in the script variable so that they can be restored when you select the tab again.

That means if I delete the tab bookmarks they are deleted but not deleted because they also exist globally. And when you switch tabs, they are saved again because they still exist global.
And even worse, until the tab is not changed, the tab bookmarks don't even exist. Except, bookmarks were read from the script or read from the session file.


also don't know if it bug or is it fixed or not but in avspmod 2.6.3.9 sometimes when I save some bookmark by ctrl + b and then close avspmod I note it wasn't saved (or removed)

Does this refer to the session files? if so:
I assume that this could also possibly be the problem of not saving in the session file, as I said if the tab is not changed there are no tab bookmarks.
But if I remember correctly, I was paying attention to this problem.

I will look at both.

gispos
15th October 2020, 21:30
If someone feels like it, they can test the new version before I release it tomorrow or the day after tomorrow.

'Clear tab bookmarks' and saving the bookmarks in the session file should now work.

64bit version only.
Exchange the library.zip in the lib folder
https://www.sendspace.com/file/h6nu28


* New item in Bookmarks menu 'Clear tab bookmarks' clears only the current tab bookmarks (idea by real.finder)
-- is disabled if tab context menu option 'Tab change loads bookmarks' is disabled
* 'Clear all bookmarks' renamed to 'Clear all bookmarks Globally'
* Fixed zoom option 'fill window'
* Fixed current tab bookmarks not always saved in session file

real.finder
16th October 2020, 06:59
If someone feels like it, they can test the new version before I release it tomorrow or the day after tomorrow.

'Clear tab bookmarks' and saving the bookmarks in the session file should now work.

64bit version only.
Exchange the library.zip in the lib folder
https://www.sendspace.com/file/h6nu28


* New item in Bookmarks menu 'Clear tab bookmarks' clears only the current tab bookmarks (idea by real.finder)
-- is disabled if tab context menu option 'Tab change loads bookmarks' is disabled
* 'Clear all bookmarks' renamed to 'Clear all bookmarks Globally'
* Fixed zoom option 'fill window'
* Fixed current tab bookmarks not always saved in session file


thanks, quick test and it seems work it it should

gispos
16th October 2020, 19:16
thanks for testing.

AvsPmod 2.6.4.1 (https://github.com/gispos/AvsPmod/releases)
changelog (https://github.com/gispos/AvsPmod/blob/GPo/changelog.txt)

szabi
18th October 2020, 10:11
......
@szabi it work fine here

32 bit AvsPmod needs a 32 bit avisynth.dll
64 bit AvsPmod needs a 64 bit avisynth.dll

Are you sure you have the correct combination available? Also make sure you don't have any stray copy of the avisynth.dll in any other directory when you have AviSynth+ installed in your system.

And you may also need to have the proper Visual C++ runtimes installed.

Hi

I installed on a different PC and working now.
I have to figure out the reason for the other PC which has the issue.
I will check on steps you guide me.
Thanks.

Regards
Szabi

real.finder
26th October 2020, 05:29
Hi gispos
I asked about this before, but it will be nice if tabs in avsp used separate process (Multi-processing like chrome and firefox or even similar to how MP_Pipeline work)

since it's annoying when if one tab crash the whole avsp crash and all work lost! aside from the possibility of making one avsp for both avs x86 and x64 and switch between them anytime from tab setting

LigH
26th October 2020, 08:27
aside from the possibility of making one avsp for both avs x86 and x64 and switch between them anytime from tab setting

Is that even possible? One application is either x86 or x86_64, so it can use only either kind of DLL. If there is a workaround, tell me, I'm curious! :eek:

real.finder
26th October 2020, 09:49
Is that even possible? One application is either x86 or x86_64, so it can use only either kind of DLL. If there is a workaround, tell me, I'm curious! :eek:

MP_Pipeline can do it, you can use something like this


ffms2 (64)
some filter in 32
another one in 64
and the other in 32


and encode in 64

and fun fact, I used to use AvsPmod 32 with avs 64 using MP_Pipeline before AvsPmod get 64 build

gispos
26th October 2020, 19:00
Hi gispos
I asked about this before, but it will be nice if tabs in avsp used separate process (Multi-processing like chrome and firefox or even similar to how MP_Pipeline work)

since it's annoying when if one tab crash the whole avsp crash and all work lost!
I know how annoying this is, yesterday I spent over two hours writing code until the programming IDE crashed and all the work was in vain.
Use the paranoia mode. 'Options > Save\Load > ' Backup session when previewing' then the session will be saved before the preview (if the script was changed).
For me it is switched on.:)

A real multithreading application is one of the most demanding things you can write and that has to be planned from the start.
With the already considerable amount of code and functions of AvsPmod, the subsequent implementation is a mammoth task or even impossible.

With Delphi I have already written a few applications that use multiple threads, with Python I have zero experience with it ... so it doesn't work.
aside from the possibility of making one avsp for both avs x86 and x64 and switch between them anytime from tab setting
64bit and 32bit in one application, I claim this is an impossibility.:)
MP_Pipeline is not a single application, two processes are started 64bit and 32bit that comonicate with each other and finally a memory address is passed to avisynth, the clip.
I don't see any possibility to do this with python for one application.

Even just accessing the 64bit avisynth.dll requires some effort in code preparation under python and differs enormously from the 32bit version.
I would be happy if Ferenc would write something about it.

I'll play around with a few things that occurred to me about the program crash. I can't promise more. Sorry.

gispos
26th October 2020, 20:05
This test program uses a separate thread for each tab when loading.
The title bar shows how many loading threads are currently active.
I started the project a year ago and then gave up!

Avisynth Plus has problems with 'Eval' and AnsiStrings. As soon as MCTemporalDenoise is present in the script, I get error messages.
I can only load scripts internally with AviSource.

I wanted to put Ferenc on it :), but he has enough other things to do.

real.finder You like to test.:) Is it the same for you with MCTemporalDenoise() ?
Open a few scripts at once and switch through the tabs and click into the video window with each tab change so that the script is loaded.
Ignore the 'Test' menu

I am interested in the errors with MCTemporalDenoise()
Thanks.

https://www.sendspace.com/file/190u6y

real.finder
26th October 2020, 20:26
This test program uses a separate thread for each tab when loading.
The title bar shows how many loading threads are currently active.
I started the project a year ago and then gave up!

Avisynth Plus has problems with 'Eval' and AnsiStrings. As soon as MCTemporalDenoise is present in the script, I get error messages.
I can only load scripts internally with AviSource.

I wanted to put Ferenc on it :), but he has enough other things to do.

real.finder You like to test.:) Is it the same for you with MCTemporalDenoise() ?
Open a few scripts at once and switch through the tabs and click into the video window with each tab change so that the script is loaded.
Ignore the 'Test' menu

I am interested in the errors with MCTemporalDenoise()
Thanks.

https://www.sendspace.com/file/190u6y
colorbars
converttoyv12
MCTemporalDenoise
it's same here
https://i.postimg.cc/bGRj8BQn/Annotation-2020-10-26-222614.png (https://postimg.cc/bGRj8BQn)

real.finder
27th October 2020, 01:08
MP_Pipeline is not a single application, two processes are started 64bit and 32bit that comonicate with each other and finally a memory address is passed to avisynth, the clip.


what about make avspmod as not a single application too :) mean the current avspmod will be as just a gui and there are cmd helper small tools (like MP_Pipeline.dll.slave.exe) that work with avs directly and I think megui kinda did this back then for x264 x64 and other when it was 32 only

aside from that, I feel that your test program is faster (whether in response, operation or starting) than avsp, is it because python that slow or is it because it's kinda not complicated with features/options yet?

and if it approved, will it has all features/options of avspmod? and what about avsp py macros support or replacement in it?

LigH
27th October 2020, 08:59
Well, inter-process communication is not trivial, possibly not very performant, and who knows if possible at all using Python. Challenging, at least.

gispos
27th October 2020, 17:48
what about make avspmod as not a single application too :) mean the current avspmod will be as just a gui and there are cmd helper small tools (like MP_Pipeline.dll.slave.exe) that work with avs directly and I think megui kinda did this back then for x264 x64 and other when it was 32 only
What I actually wanted to say:)
You would have to change half the source code to achieve this with even more loss of speed. Even if I knew how to do it. My interest is almost zero.


aside from that, I feel that your test program is faster (whether in response, operation or starting) than avsp, is it because python that slow or is it because it's kinda not complicated with features/options yet?
This is due to both, there are no special options in the test program. But Python is byte code with an interpreter (or mix of interpreter and virtual CPU (https://nedbatchelder.com/blog/201803/is_python_interpreted_or_compiled_yes.html)) that cannot keep up with C or Pascal machine code in terms of speed.

Compare the 'Fast playback' routine with the normal one without a filter, if I remember correctly it's a 30% difference. A few boolean or integer assignments have been left out.
I think with C or Pascal that would make up 3 -5% but not 30%

I checked again and have to correct my statement:
Not only were a few variable assignments removed, but also e.g. read out the pixel values and a few other things. That explains more the performance gain in 'Fast playback'


and if it approved, will it has all features/options of avspmod? and what about avsp py macros support or replacement in it?
What functionality and whether it is comparable to AvsPmod is written in the stars. :)

The main goal was to support AviSynth and VapourSynth at the same time in mixed tabs, and loading the tabs in separate threads.
For pascal there is also python script support, but not as extensive as is possible with AvsPmod.

But as written, after trying for a long time, I gave up the project.

Well, inter-process communication is not trivial, possibly not very performant, and who knows if possible at all using Python. Challenging, at least.
My words. But better worded.:)

And now we are rocking the topic into a very, very deep sleep.;)
Thanks.

gispos
31st October 2020, 16:38
AvsPmod 2.6.4.2 (https://github.com/gispos/AvsPmod/releases)

* New Menu 'Video > Snapshot': Intended for resource-saving comparison of simple settings (sharpness, color, etc.)
-- 'Take snapshot' stores a bitmap from the current frame (tab related)
-- 'Show/hide snapshot', if the snapshot frame number and current frame number different, you must hit again 'Show/hide snapshot'.
-- At the top left the video window shows which snapshot is displayed.
-- Use shortcuts so that you can easily take, show or hide the snapshot.
-- Snapshot hides only automatically if the frame number changed or crop editor is shown (at the moment)
-- Further menus: Clear tab snapshot, Clear all snapshots Globally, New tab (script) from snapshot
* Tab bookmarks now saves the bookmark titles
* Added 'Bookmarks > Titled bookmarks > Remove all title', removes all titles from the current tab bookmarks

FranceBB
31st October 2020, 18:40
Thank you for the new version! :)

gispos
1st November 2020, 14:11
Thank you for the new version! :)
And another one. If you don't do it right, you have to do it again:D

AvsPmod 2.6.4.3 (https://github.com/gispos/AvsPmod/releases)

* 'New tab from snapshot' now sets the current frame number (if possible)
* Get pixel info from avisynth now disabled if snapshot visible
* Fixed 'Copy to new tab' not copying the tab bookmarks

FranceBB
1st November 2020, 15:37
And another one. If you don't do it right, you have to do it again:D

AvsPmod 2.6.4.3 (https://github.com/gispos/AvsPmod/releases)

* 'New tab from snapshot' now sets the current frame number (if possible)
* Get pixel info from avisynth now disabled if snapshot visible
* Fixed 'Copy to new tab' not copying the tab bookmarks


LOL
Ok, I'm downloading the new one as well xD

StainlessS
1st November 2020, 15:42
Me too :)

gispos
1st November 2020, 19:09
LOL
Ok, I'm downloading the new one as well xD
Was that misunderstood? For safety.;) I meant myself (If you don't do it right, you have to do it again)

FranceBB
1st November 2020, 20:50
Was that misunderstood? For safety.;) I meant myself (If you don't do it right, you have to do it again)

No, no, I got it, no worries xD
The implication was that if you "do it again" we have to "do it again as well" hahahahaha

StainlessS
1st November 2020, 22:41
And I got it tooooo :)
[ You are not the mysterious enigma that you think you are, Gispos ]

Shinkiro
2nd November 2020, 22:16
Is it possible to make sure that the zoom settings are saved on reboot?

gispos
2nd November 2020, 23:28
Is it possible to make sure that the zoom settings are saved on reboot?

The different percentages? yes is possible, but I changed it to my wishes.
I don't want to have 200%, 400% zoom when starting the program.

Why should e.g. 200% zoom be set at startup?

Shinkiro
3rd November 2020, 16:19
The different percentages? yes is possible, but I changed it to my wishes.
I don't want to have 200%, 400% zoom when starting the program.
Well, the point of saving the desired settings at startup is that if you do not want 200%, 400% zoom, then you put 100% zoom, while I need 300% zoom I put 300%.

Why should e.g. 200% zoom be set at startup?
About why? I have a 4K TV instead of a monitor (I think the same with a 4K monitor), and the DVD 480p frame is very small
https://i114.fastpic.ru/thumb/2020/1103/6a/_bd5c5bc9b81108fb1e50143f83e1e96a.jpeg (https://fastpic.ru/view/114/2020/1103/_bd5c5bc9b81108fb1e50143f83e1e96a.jpg.html)

l00t
3rd November 2020, 16:55
Also adding multiple types of resizers for zoom would be a good idea. I guess now it's Nearest Neighbor (Point Resize), adding Bilinear or Bicubic (or even Spline36) would be useful in some cases.

gispos
3rd November 2020, 21:59
Well, the point of saving the desired settings at startup is that if you do not want 200%, 400% zoom, then you put 100% zoom, while I need 300% zoom I put 300%.


About why? I have a 4K TV instead of a monitor (I think the same with a 4K monitor), and the DVD 480p frame is very small
https://i114.fastpic.ru/thumb/2020/1103/6a/_bd5c5bc9b81108fb1e50143f83e1e96a.jpeg (https://fastpic.ru/view/114/2020/1103/_bd5c5bc9b81108fb1e50143f83e1e96a.jpg.html)
If I end the session with 200% I don't want to have 200% the next time I open it.
100%, fit and fill are saved, so use 'fit' when you exit. Then I and others don't have to suffer from it.:)
An extra option for it ...? I do not know. Let's see.

Edit: just tested, window 'fit' first sets 100% when the image is smaller than the window. So an extra option is needed.

Also adding multiple types of resizers for zoom would be a good idea. I guess now it's Nearest Neighbor (Point Resize), adding Bilinear or Bicubic (or even Spline36) would be useful in some cases.
That is easier said than coded, the whole zoom handling inc. 'Split View' is very complex.
The wx.Window component takes care of zooming with its own routine.
I have no idea whether there are any settings for this, I have to do some research first.
In any case. I will not use any external routines because these internal routines are some of the best I've seen so far! (Jerky free window movement up to the largest zoom)

gispos
3rd November 2020, 23:03
Test version, optionally save any zoom settings x64 only.
Options > Video > 'Startup with last zoom settings' must be switched on.
Swap this library.zip with the one in the lib folder.

https://www.sendspace.com/file/2udoqk

Shinkiro
4th November 2020, 22:43
Test version, optionally save any zoom settings x64 only.
Options > Video > 'Startup with last zoom settings' must be switched on.
Swap this library.zip with the one in the lib folder.

https://www.sendspace.com/file/2udoqk
Cool, what you need, thanks!

gispos
8th November 2020, 18:16
AvsPmod 2.6.4.4 (https://github.com/gispos/AvsPmod/releases)
If there are any problems, it's a test version, if not, it's a regular one ;)

* New menu Video > Zoom > 'Antialiasing', draws the preview antialiased (bilinear) if the zoom is not equal to 100%
-- drawing requires more power, I have done a lot that the preview does not jerk with mouse movements or playback.
-- but when the scroll bars are moved manually you can feel the difference.
-- It will be temporarily deactivated during playback or if crop editor shown and on some other events.
-- check it out, I don't know if it works on all systems without errors.
-- And I don't know yet whether it will be kept. It took a lot of effort to implement it and if it causes bigger problems then I throw it out.

* New Options > Video > 'Startup with last zoom settings'
* Small other (fixes) changes

l00t
8th November 2020, 20:11
Thanks for the Antialiasing option.

gispos
8th November 2020, 21:35
The next generation AvsPmod 2.6.4.5 (https://github.com/gispos/AvsPmod/releases)

* Fixed zoom settings with keyboard
* Fixed zoom setting 'Antialiasing' cannot be disabled with keyboard shortcut


2.6.4.4 was a test version:D

gispos
9th November 2020, 20:15
Unfortunately I found a bigger bug.
Zoom settings fit and fill have problems erasing the background. I am currently fixing the error.

FranceBB
9th November 2020, 23:17
Oh... ok, I downloaded the version yesterday but I didn't extract it just yet.
I guess I'm not gonna extract it and I'm gonna wait for your next version then. :)

gispos
10th November 2020, 16:17
AvsPmod 2.6.4.6 (https://github.com/gispos/AvsPmod/releases)


Bug fixes caused by the new zoom function 'Antialiasing'

gispos
10th November 2020, 17:58
I'm slowly despairing of this 'antialiasing', again mist uploaded.
Unfortunately already a new version.

AvsPmod 2.6.4.7 (https://github.com/gispos/AvsPmod/releases)

Promised, the latest version for today :)

gispos
11th November 2020, 19:09
AvsPmod 2.6.4.8 (https://github.com/gispos/AvsPmod/releases)

* Some improvments to zoom setting 'Antialiasing' and the program interface
-- scroll bars movement as fast as without antialiasing
-- revised zoom 'Window fill'
-- a few other changes

AvsPmod has never run so smoothly on my system, I hope that this is also the case on other systems.

StainlessS
11th November 2020, 19:16
AvsPmod has never run so smoothly on my system

You smooth talker, downloading again, maybe I try it one day :) thanks.

FranceBB
12th November 2020, 16:14
You know, I still had 2.6.4.7 downloaded but not unzipped xD
I just deleted it and I'm now downloading 2.6.4.8.


AvsPmod has never run so smoothly on my system, I hope that this is also the case on other systems.

Perhaps it will. I'll let you know. ;)
Thanks for the update, again. :)

gispos
12th November 2020, 20:01
You smooth talker, downloading again, maybe I try it one day :) thanks.
I hope that the day will come and you won't use anything else :D


...Perhaps it will. I'll let you know. ;)

Hopefully I haven't promised too much :o:scared::)

StainlessS
12th November 2020, 23:07
and you won't use anything else
Well I may do one day but, I is, I are, we am, a bit awkward, and am happy with PS-Pad text editor [with PotPlayer pop-up play on keypress]
and VDub2. I'm very easily pleased and like it simple, if basic.

gispos
14th November 2020, 15:18
Well I may do one day but, I is, I are, we am, a bit awkward, and am happy with PS-Pad text editor [with PotPlayer pop-up play on keypress]
and VDub2. I'm very easily pleased and like it simple, if basic.
I just wonder how do you compare filter settings? I am a tab lover, even the 'Split View' is not suitable for recognizing small differences.
---------------------------------

Should now be the last version for a while.;)
AvsPmod 2.6.4.9 (https://github.com/gispos/AvsPmod/releases)

* The sliders window:
-- If the key 'Control' is pressed while using the Increment and Decrement buttons next to the sliders,
-- the change in the value is 5 times slower (the key Control does not have to be held down).
-- But it is almost superfluous. Noticed too late: with left Mous down on the slider and then mouse wheel you can do it in single steps
* Some fixes.
-- warning for different bookmarks (script, tab) was broken in 2.6.4.3
-- zoom 'Window fit' resizes automatically if video height smaller then window height
-- key shortcuts for 'Zoom' fires after program start not on the first event
-- 'Split View' zoom 'Window fit' improved

FranceBB
14th November 2020, 16:01
I gotta say, it is a little bit faster on my system as well, but just a little bit.
I guess it largely depends on the systems...
Still, well done. ;)

StainlessS
14th November 2020, 18:38
I just wonder how do you compare filter settings?
I'm quite happy to do any side-by-side type comparisons by hand, using stack etc,
and showing differences via subtract, maybe with amp'ed diff and stack, not that time consuming,
and I got some pre-made functions to do that anyways.
Anyways, downloading again :) thanx.

FranceBB
15th November 2020, 00:29
I'm quite happy to do any side-by-side type comparisons by hand, using stack etc

Yep, same here.
StackHorizontal() and that's pretty much it.

Sangen
19th November 2020, 05:47
gispo, Is it possible black theme in avspmod?

gispos
19th November 2020, 17:30
Is not possible with the wxPython version I am using.

Sangen
19th November 2020, 20:00
Is not possible with the wxPython version I am using.

understand, thanks for responding.

bruno321
21st November 2020, 20:15
Thanks again for all the work. Using the latest version, here's what happened:

- I opened avspmod.
- I clicked "File -- close all tabs".
- I got this:

Traceback (most recent call last):
File "wx\_core.pyo", line 16767, in <lambda>
File "wx\_core.pyo", line 10675, in Refresh
TypeError: in method 'Window_Refresh', expected argument 1 of type 'wxWindow *'

Closed the error window, the program seems to be working fine.

gispos
22nd November 2020, 15:30
Thanks again for all the work. Using the latest version, here's what happened:

- I opened avspmod.
- I clicked "File -- close all tabs".
- I got this:

Traceback (most recent call last):
File "wx\_core.pyo", line 16767, in <lambda>
File "wx\_core.pyo", line 10675, in Refresh
TypeError: in method 'Window_Refresh', expected argument 1 of type 'wxWindow *'

Closed the error window, the program seems to be working fine.
Hopefully I've fixed it now. I can no longer reproduce it on my system.
I'm still working on a few other things, the update is coming soon.

gispos
28th November 2020, 19:24
AvsPmod 2.6.5.0 (https://github.com/gispos/AvsPmod/releases)

* Added to tab context menu 'Save view pos on tab change'
* Added to frame text field context menu 'Set bookmark title'
-- the title of the current bookmark is set with the text in the frame text field
* Added to menu Trim Editor 'Clear all selections Globally', clears all selections in all tabs, see below
* Selections now tab related if 'Tab change loads bookmarks' selected
* Session file saves and restores the selections for each script
-- info: Selections are made when you select 'Copy to Clipboard' in the Trim Editor
-- if selections visible and 'Play loop' enabled the playback plays then only the selections
* New Mouse browse buttons and key events if 'tab change' or 'bookmark jump' for mouse browse buttons selected.
-- CTRL on video window = bookmark jump (only needed if tab count greater 1)
-- SHIFT = jump to selection marks (also works with video control buttons 'bookmark jump')
-- ALT = jump only to titled bookmarks (also works with video control buttons 'bookmark jump')
* Fixed the big error on File > 'Close all tabs'
* Fixed on loading from session file bookmarks can be assigned to the wrong tab
* A lot of code changes

*** Note for script writers: ***
The AvsPmod bookmark list was changed, only type 0 bookmarks may be added to the bookmark list.
Use 'MacroSetBookmark' when adding your bookmarks type 0 or 'AddFrameBookmark' when adding a mark (type 0,1,2)
There is now a 'SelectionsDict' in which the selections are saved (type 1,2).

FranceBB
28th November 2020, 20:23
Oh, look at that, another version. :D
I know this is a bit of a silly question, but... I gotta ask.
Do you see AVSPmod supporting audio too if the user selects it in the next year?

gispos
28th November 2020, 21:14
Oh, look at that, another version. :D
I know this is a bit of a silly question, but... I gotta ask.
Do you see AVSPmod supporting audio too if the user selects it in the next year?
I haven't had anything to do with audio yet, so I'd have to get used to it first.

I had already thought about it and wanted to ask here in the forum for an Avisynth plugin that outputs DirectSound.
Why doesn't it exist yet? If someone is familiar with audio, it shouldn't be that difficult. Please write it:)

But what is more in my head is 10bit video support.
But that will be difficult and slowly I'm too old for all the new stuff. :D

gispos
6th December 2020, 17:51
AvsPmod 2.6.5.1 (https://github.com/gispos/AvsPmod/releases)

* Set tab bookmarks from session file slightly revised.
* 'Play loop' repeats playback at the end of the clip even without selections.
* Playback continue after tab change if the new clip in the same group or it is a similar clip (frame count and dimensions-size).
* Added to menu Trim editor > 'Selections to script' and 'Selections from script', does what the title says.
-- even if I repeat myself: Selections are made when 'Copy to clipboard' is selected in the Trim Editor.
* Small other changes

StainlessS
6th December 2020, 17:56
Cheers GPS.

gispos
6th December 2020, 21:00
Cheers StainlessS and everyone else :)

bruno321
11th December 2020, 08:48
Is there a window to play with the Tweak and Levels commands real time? Like say I want to adjust the gamma, it'd be nice to have a slider to play with. Maybe there's one and I'm not seeing it!

Sharc
11th December 2020, 10:32
Is there a window to play with the Tweak and Levels commands real time? Like say I want to adjust the gamma, it'd be nice to have a slider to play with. Maybe there's one and I'm not seeing it!
Use Tweak() or similar in an avisynth script and you can adjust all parameters with sliders in AvsPmod.
Under Options->Program settings -> Tab 'User Sliders' you have to tick 'Create user slides automatically'. Then you can just click on the 3 arrows on the right of the AvsPmod window to enable the sliders panel.

gispos
11th December 2020, 22:00
Additional note.
If you hold down the left mouse button on the slider, you can easily change the value with the mouse wheel without an update being carried out immediately.
Or if you hold down CTRL and then press an arrow key, the value changes 4 times more slowly.

Fjord
13th December 2020, 00:30
Since updating to v2.6.5.0 x64 and now v2.6.5.1 x64, both text and video preview scaling has been about 150% of normal. That is, my 2048x1556 video has been filling about 3072x2334 in preview at 100% zoom on my 4k monitor. Previously, my videos had previewed at normal 1 to 1 at 100% zoom. The text window also shows text about 2/3 size, so I have to zoom to get readible text.

It has returned to normal scaling after turning on High DPI scaling overide, by application, in Windows Properties/Compatibility/Change high DPI settings for AvsPmod.exe. Preview now has normal scaling, and text is normal. Only override by "Application" works - The other possibilities ("System", "System (Extended)", or no override at all) give the 150% scaling issue.

I have "installed" and updated AvsPmod x64 by simply overwriting files in C:\Program Files\AvsPmod\ from the .zip files, so I'm not sure if my crude update procedure could be to blame. I have to run it as Administrator. Anyway, it is working ok now, in "compatibility mode". I have not had to use high DPI override on a program before.

Running Win10 2004. Avisynth+ 3.6.2 test6 (r3338). Monitor is Viewsonic VP3268-4K.

gispos
13th December 2020, 17:18
Since updating to v2.6.5.0 x64 and now v2.6.5.1 x64, both text and video preview scaling has been about 150% of normal. That is, my 2048x1556 video has been filling about 3072x2334 in preview at 100% zoom on my 4k monitor. Previously, my videos had previewed at normal 1 to 1 at 100% zoom. The text window also shows text about 2/3 size, so I have to zoom to get readible text.

It has returned to normal scaling after turning on High DPI scaling overide, by application, in Windows Properties/Compatibility/Change high DPI settings for AvsPmod.exe. Preview now has normal scaling, and text is normal. Only override by "Application" works - The other possibilities ("System", "System (Extended)", or no override at all) give the 150% scaling issue.

I have "installed" and updated AvsPmod x64 by simply overwriting files in C:\Program Files\AvsPmod\ from the .zip files, so I'm not sure if my crude update procedure could be to blame. I have to run it as Administrator. Anyway, it is working ok now, in "compatibility mode". I have not had to use high DPI override on a program before.

Running Win10 2004. Avisynth+ 3.6.2 test6 (r3338). Monitor is Viewsonic VP3268-4K.
Hello Fjord,
I haven't changed anything that could lead to a different behavior of the DPI scaling.
I don't have a 4k monitor and can therefore not test it, but maybe a user with a 4K monitor is reading this and can say something about this topic.? Thanks.

The update by simply overwriting the old files is okay, that's how I do it.
Unzip an older version in a folder and see if there is a difference in the scaling.
Here is a 2.6.4.9 (https://www.sendspace.com/file/ejz6mz)

... simply overwriting files in C:\Program Files\AvsPmod\ from the .zip files
AvsPmod needs write permissions in its own directory. So please do not unzip into a system program directory.
Try it in a different directory, with some AvsPmod does not start in the Windows program directory.

Fjord
14th December 2020, 11:13
Thanks gispos. I copied my AvsPmod (2.6.5.1) execution folder to \Documents\ and it runs fine there, without requiring to run as Administrator. But the scaling problem persists.

Also 2.6.4.9 has the same scaling issue for me - fixed with the High DPI scaling override checked.

Aha --- I just noticed that this issue only occurs when my AvsPmod window is full screen (4k). In a normal non-full-screen window, with zoom set to "100% (normal)", the preview is scaling as if zoom was "Fit window" (the scale adjusts to fit the height of the preview area). In this case, the preview keeps expanding as I enlarge the preview area -- even beyond 100% (probably to 150% as in full screen case).

Is that the expected behavior, when zoom is set to 100%? I would have expected that the video would be showing constant 1 to 1, cropped by the available preview area, regardless of the window size.

The same is true for zoom settings 200%, 300%, 400%. These all act as if zoom was set to fit window.

Edit: Sorry, I cannot reproduce this. I don't know what was happening before, but it doesn't happen after a coffee break. ☕�� It was perhaps due to switching from full screen window to non-full-screen, or vice versa, without hitting F5 to refresh the preview -- changing zoom setting does not always take effect after changing from/to full screen window, until F5 refresh preview. Mysterious. �� ...but the scaling issue is still there.

gispos
14th December 2020, 17:48
Thanks gispos. I copied my AvsPmod (2.6.5.1) execution folder to \Documents\ and it runs fine there, without requiring to run as Administrator. But the scaling problem persists.

Also 2.6.4.9 has the same scaling issue for me - fixed with the High DPI scaling override checked.

Aha --- I just noticed that this issue only occurs when my AvsPmod window is full screen (4k). In a normal non-full-screen window, with zoom set to "100% (normal)", the preview is scaling as if zoom was "Fit window" (the scale adjusts to fit the height of the preview area). In this case, the preview keeps expanding as I enlarge the preview area -- even beyond 100% (probably to 150% as in full screen case).

Is that the expected behavior, when zoom is set to 100%? I would have expected that the video would be showing constant 1 to 1, cropped by the available preview area, regardless of the window size.

The same is true for zoom settings 200%, 300%, 400%. These all act as if zoom was set to fit window.

Edit: Sorry, I cannot reproduce this. I don't know what was happening before, but it doesn't happen after a coffee break. ☕�� It was perhaps due to switching from full screen window to non-full-screen, or vice versa, without hitting F5 to refresh the preview -- changing zoom setting does not always take effect after changing from/to full screen window, until F5 refresh preview. Mysterious. �� ...but the scaling issue is still there.
AvsPmod was written at a time when it was assumed that the monitor DPI would not change from 96. In short, the AvsPmod code cannot handle high DPI values.

The zoom functions in particular are handled internally in wxPython, so I can't change the code.
And since I don't have a 4K monitor, it makes no sense to change the code anyway. To do this, I would have to see what I am writing.
I can't change anything. Sorry :o

AvsPmod is a dinosaur that I'm desperately keeping alive as long as it still makes sense (for me and a few others).

But please post a few screen shots with details of video and monitor resolution at 100% zoom without Win10 DPI adjustment
Thanks.

Edit: high-dpi-desktop-application-development-on-windows (https://docs.microsoft.com/en-us/windows/win32/hidpi/high-dpi-desktop-application-development-on-windows)
Is that true now with 96 DPI? (Microsoft). For monitors it is actually ppi (pixels per inch)

Please stay tuned, I want to start a few tries

gispos
15th December 2020, 19:37
To everyone who has a monitor with more than 110 PPI (DPI)
I have a test version (x64) for high PPI values, but in the first phase. If this attempt fails, I don't need to continue.

Unzip the archive, in the AvsPmod directory there is already an options.dat and a backup_style.dat (font backup).
Switch off the DPI adjustments for AvsPmod in Win10, only then start AvsPmod.

It's the first step.
My only concern is whether the video window behaves normally.

1.) If zoom 100% also gives a 1: 1 view.
2.) Scroll bars work normally
3.) Moving the area with zoomed video is normal
4.) Zoom function 'Fit Window' does what it should

Font size of menu bar and context menu is OK?
If nothing useful comes out, you can play around with the Win10 DPI settings for AvsPmod.
A screen shot would be nice. thanks.

https://www.sendspace.com/file/sf8ucj

Edit: the default settings under Options and Fonts are for a 4K monitor, I think :)

Fjord
16th December 2020, 17:11
Test of "2.6.5.1.test" on 4K display (Viewsonic VP3268-4K), side-by-side with original 2.6.5.1. Windows 10 2004 with default (recommended) display settings and no High DPI scaling override. See attached annotated screen capture jpg.

Comments to test version display:
- Windows text (status line, tab name, About dialog, fonts and colors dialog) is very small compared to 2.6.5.1, and small (about 2/3) compared to other programs, fx Vegas Pro status line.
- right-click context menu is slightly smaller than in 2.6.5.1.
- Text window text looks large, but font Georgia 18 is bigger than I normally use.
- Preview at 100% is normal 1 to 1.
- Scrolling normal

Comments to original v2.6.5.1:
- Windows text, fx status line, is about 150% bigger than in other "normal" programs, fx compared to Vegas Pro status line. Much bigger than test version.
- right-click context menu is slightly bigger than in the test version..
- Preview at 100% is showing at 150%
- Scrolling normal

Screen capture: https://drive.google.com/uc?export=download&id=129YMhjGUEUmI5ntvN0XIyd8ssYgaUThs

I can attach a screen capture comparing with Vegas Pro, if you want.

Edit: Inserted screen capture (same as attachment)

gispos
16th December 2020, 20:57
Test of "2.6.5.1.test" on 4K display (Viewsonic VP3268-4K), side-by-side with original 2.6.5.1. Windows 10 2004 with default (recommended) display settings and no High DPI scaling override. See attached annotated screen capture jpg.

Comments to test version display:
- Windows text (status line, tab name, About dialog, fonts and colors dialog) is very small compared to 2.6.5.1, and small (about 2/3) compared to other programs, fx Vegas Pro status line.
- right-click context menu is slightly smaller than in 2.6.5.1.
- Text window text looks large, but font Georgia 18 is bigger than I normally use.
- Preview at 100% is normal 1 to 1.
- Scrolling normal

I can attach a screen capture comparing with Vegas Pro, if you want.
That reads well at first. Hopefully we will manage the rest of it.
Only with the tabs I don't have a good feeling, hopefully I'm wrong.
What does the window with the user sliders look like? (click on the bar with the dots on the right)

New test version (https://www.sendspace.com/file/3c4cbi)
Move the library.zip from the archive into the test version 'AvsPmod \ lib' directory. Overwrite the existing library.zip file.
Open AvsPmod go to the options and to the tab 'misc' and deactivate 'Use larg size video controls'. Restart AvsPmod.

The video control panel and status bar should now adapt automatically. Is the size ok?
If this is successful, then I know that I am going in the right direction and you have a few days off. :)

It's not easy to write this blindfolded, how far we will come I can't say yet.
Please stay tuned (It will take a few days).

As a reward (for me) a screenshot would be nice. ;)

gispos
16th December 2020, 23:20
Statusbar and video controls fixed
Size should be good now. (Buttons bitmaps need improvement?)

Font dialog partially adjusted (screen shot needed)

Test3
https://www.sendspace.com/file/l7dmdy

gispos
17th December 2020, 00:10
tab height and font are automatically adjusted
test4 (https://www.sendspace.com/file/cvmbfj)

Fjord
18th December 2020, 01:35
Hi @gispos. I had to delete options.dat to be able to run AvsPmod.exe. Run as administrator. So all options are default. This is your AvsPmod v2.6.5.1.test with the test4 library.zip copied to \lib folder. Note: my Win10 2004 has Windows display "Scale and layout" set to 150% (Recommended).

Here is a screen capture with several tabs, preview window, sliders, and About, Fonts and Program Settings/Misc dialogs. (In Firefox this image is showing at about 150% of normal. Please advise if there is a better way to embed such a large image, and/or to get it to show at 100% or a smaller size in the post.)

https://drive.google.com/uc?export=download&id=1_ALgdUeuRbTYBL0BN2nQBMgLRs1kRYEp

Also as download: Annotated screen capture (https://drive.google.com/uc?export=download&id=1_ALgdUeuRbTYBL0BN2nQBMgLRs1kRYEp)

gispos
18th December 2020, 18:12
Hello Fjord,
I am amazed at the small tabs, when I change the settings for me a completely different result comes out, see pictures.

Test version 5 (https://www.sendspace.com/file/n2gdfm) (Full Version)
Please go to the menu 'Help'> 'DPI Info' and post me the values DPI, DPI 2 and DPI Factor

If still no usable result go to the options under 'Misc 2' and test the 2 settings.
After changing the values you have to restart the program. Does anything change after that?

If this doesn't work, AvsPmod has got a function for the visually impaired.:)

Normal DPI factor
https://i.postimg.cc/Vv6C9ZHc/PPI-Factor-normal.jpg (https://postimg.cc/2bsyrGDH)

Double DPI factor
https://i.postimg.cc/tR2fX131/PPI-Factor-double.jpg (https://postimg.cc/t7nDk4my)

Fjord
19th December 2020, 00:51
Two tests on .test5
1. all defaults, no parameter changes
2. DPI scaling overall set to 10
-- see comments in screen captures
In both cases, the Preview display set to 100% is showing at 150%, as in previous test version.
I suggest that the DPI scaling values be given as percent scaling, rather than an integer factor.

https://drive.google.com/uc?export=download&id=15ux9F8jTTBRutLACqsuXHYmJaoKtrvHD


https://drive.google.com/uc?export=download&id=1Ic-jWj7dQjIS42IMlDhCZmZatACRoszg

gispos
19th December 2020, 14:04
To explain:
Windows always uses 96 DPI when the monitor DPI is not greater then 110 DPI.
The calculation of the ppi_factor is Display DPI / 96.0
But If the display DPI is not larger then 110, no changes are made in AvsPmod.

Let's say the display DPI is 144 DPI:
144 / 96.0 = 1.5
the ppi_factor is therefore 1.5
All component sizes in AvsPmod should now be multiplied by 1.5. That's easier said than done. There is no place where you just write please put all sizes by 1.5
The entire code must be gone through and everything changed individually.
Then there are components in which you cannot change the font or component size, e.g. Checkbox only allows the font to be changed.

With other components, the fonts are cut off when the font size increases, e.g. Listbox
Then you don't know which components Windows internally adjusts the DPI values.
There are many functions in the API that do not compensate for the DPI calculation. Microsoft writes that as a note.

Back to your topic.
I made a mistake in the new version. I did not tell Windows that AvsPmod does not need DPI compensation if the DPI value is not higher than 110.
And if you don't tell Windows not to perform any calculations, Windows will do it automatically. That's why the preview is back at 150%

But on the other side, you cannot compare the font sizes in Windows Explorer with the sizes in other programs.
Many font sizes are larger in newer applications compared to then and Win7.

The whole subject is difficult. You have a monitor DPI of 96 with a high resolution.
So no program will do DPI scaling and Windows alone is responsible for how big the windows and fonts are displayed.
That is why windows suggests a zoom of 150%, but if Windows makes this zoom of 150%, this applies to the entire program, including the preview in AvsPmod.

Wait for the next version, let's see how it looks when I tell Windows not to do DPI scaling again.

Edit:
the values under the settings in Misc 2 are divided by 10. So there are 1/10 steps that are changed (corresponds to 10%)

Fjord
19th December 2020, 15:04
Thanks for the explanation gispos. I have no doubt that this scaling issue is very messy in Windows. Thanks for taking time to investigate the issue.

For your reference, I include my Windows display settings below (as screen captures). Let me know if you want me to try AvsPmod with other display setting.

Note that my Viewsonic 32" VP3268-4K is 140 DPI and not 96 DPI ((3840 pixels wide / 697.31 mm wide ) * 25.4 mm/inch)=139.87.

I tried Windows display scaling 200% and 300%, and as you say, the Preview scaling follows that scaling.

My normal Windows display settings:
https://drive.google.com/thumbnail?id=12M4wrXUudQjLuE8HNYvlg93MiEx5-yby&sz=w1200 (https://drive.google.com/uc?export=view&id=12M4wrXUudQjLuE8HNYvlg93MiEx5-yby)


Other issue: In your test5 version, Options/Program Settings/Misc 2 -- when I check * Requires program restart for full effect, at the bottom of the dialog, and then click OK, the program restarts, but adds a new script tab "New File (1)", with one line of text -- as if to open the running .exe as video source:
DirectShowSource("C:\Users\DRC\Documents\8mm\AVISynth\AvsPmod\AvsPmod_v2.6.5.1.test5_(Windows_x86-64)\AvsPmod\AvsPmod.exe")

Shinkiro
19th December 2020, 15:06
Fjord
I have a 4K TV instead of a monitor, so I set 200% scaling in Windows 10 system settings, and installed the application in the AvsPmod properties in the compatibility section.
https://i114.fastpic.ru/thumb/2020/1219/93/_53fd770fe93ef55a8dd24b6010575b93.jpeg (https://fastpic.ru/view/114/2020/1219/_53fd770fe93ef55a8dd24b6010575b93.jpg.html)
with these settings, I'm fine with scaling in AvsPmod. Except for one nuance, bookmark numbering is hard to see
https://i114.fastpic.ru/thumb/2020/1219/1e/e910e6d70d7de7c92ea0ea8ca389771e.jpeg (https://fastpic.ru/view/114/2020/1219/e910e6d70d7de7c92ea0ea8ca389771e.jpg.html)

gispos
19th December 2020, 18:50
Thanks Shinkiro.

Fjord here is a comparison. Your view and mine at 100%
Except for the blurring caused by poor JPEG quality and probably also the Windows DPI scaling, I don't see any big differences.

Compare with VitualDub2 or AviDemux do they look bigger?
https://i.postimg.cc/053KHSJW/Compare-statusbar-100.jpg

gispos
19th December 2020, 21:04
Test 6 (Full Version) (https://www.sendspace.com/file/78le1r)

Main tabs and statusbar under 'Misc 2' settings set to 2.
I'm looking forward to the result.

https://i.postimg.cc/XNR75Shq/Avs-Pmod-test6.jpg (https://postimages.org/)

Shinkiro
20th December 2020, 13:33
Test 6 (Full Version) (https://www.sendspace.com/file/78le1r)

Main tabs and statusbar under 'Misc 2' settings set to 2.
I'm looking forward to the result.


622https://i114.fastpic.ru/thumb/2020/1220/6a/_e31c3a7cb83490c11a3e9f0f9bd7246a.jpeg (https://fastpic.ru/view/114/2020/1220/_e31c3a7cb83490c11a3e9f0f9bd7246a.png.html) 444https://i114.fastpic.ru/thumb/2020/1220/a6/_250dc7a341b4894b95c3c00ee44ccaa6.jpeg (https://fastpic.ru/view/114/2020/1220/_250dc7a341b4894b95c3c00ee44ccaa6.png.html) 644https://i114.fastpic.ru/thumb/2020/1220/40/_2f730b6b96cfcf4d125ef024c09cac40.jpeg (https://fastpic.ru/view/114/2020/1220/_2f730b6b96cfcf4d125ef024c09cac40.png.html)

666https://i114.fastpic.ru/thumb/2020/1220/29/_2fefcc093ab7dae1ae6ea8d7acf25229.jpeg (https://fastpic.ru/view/114/2020/1220/_2fefcc093ab7dae1ae6ea8d7acf25229.png.html) 466https://i114.fastpic.ru/thumb/2020/1220/5b/_05357f1bdccab1c89d8da1c29ba60a5b.jpeg (https://fastpic.ru/view/114/2020/1220/_05357f1bdccab1c89d8da1c29ba60a5b.png.html) 266https://i114.fastpic.ru/thumb/2020/1220/28/_97227c89b69b2046b917741487593328.jpeg (https://fastpic.ru/view/114/2020/1220/_97227c89b69b2046b917741487593328.png.html)

066https://i114.fastpic.ru/thumb/2020/1220/95/_61d54f786ad9165298f78f69bc02c695.jpeg (https://fastpic.ru/view/114/2020/1220/_61d54f786ad9165298f78f69bc02c695.png.html) 044https://i114.fastpic.ru/thumb/2020/1220/7c/_b790736e11a76477ed5e08e9739ca07c.jpeg (https://fastpic.ru/view/114/2020/1220/_b790736e11a76477ed5e08e9739ca07c.png.html) 022https://i114.fastpic.ru/thumb/2020/1220/1e/_2cfd52d96dbb93ce8173c8864059441e.jpeg (https://fastpic.ru/view/114/2020/1220/_2cfd52d96dbb93ce8173c8864059441e.png.html)

000https://i114.fastpic.ru/thumb/2020/1220/3b/_59e50734b658c027f8ad5b5fd139b23b.jpeg (https://fastpic.ru/view/114/2020/1220/_59e50734b658c027f8ad5b5fd139b23b.png.html)

I have the best looking 622
Windows 10 scale 200% 4K 55'

gispos
20th December 2020, 13:34
Shinkiro I sent you a private message

Shinkiro
20th December 2020, 13:38
Shinkiro I sent you a private message
)) That's what I was doing at the time

gispos
20th December 2020, 13:46
)) That's what I was doing at the time

Thank you for the pictures.
Please contact me if there are still problems somewhere
Thanks!

gispos
20th December 2020, 13:57
I have to say that I'm just looking forward to it.
I was doubtful if all of my efforts were just a waste of time.
It is damn tedious and cumbersome not to be able to check the changes immediately.

I wish everyone a Merry Christmas.:)

Shinkiro
20th December 2020, 14:26
This does not really affect anything, but the keyboard key numbers on the tabs, at system scale 200% are still poorly visible
https://i114.fastpic.ru/thumb/2020/1220/43/_3bd349701b5f313ce8be8b56bd871c43.jpeg (https://fastpic.ru/view/114/2020/1220/_3bd349701b5f313ce8be8b56bd871c43.png.html)
But In general, thank you very much for your work, it has become much better than before.

Fjord
20th December 2020, 14:32
Test 6 (Full Version) (https://www.sendspace.com/file/78le1r)

Main tabs and statusbar under 'Misc 2' settings set to 2.
I'm looking forward to the result.

I have not tried all the variations as @Shinkiro but after a few tries, the following in test6 seems good for me:

1. !! Video preview at zoom 100% is now showing at 100%, regardless of the DPI settings !! :D

2. DPI settings 5, 1, 1 look good for me. (see image)

3. The setting "Use manual DPI setting only" doesn't seem to make a difference. What does this do?

https://drive.google.com/thumbnail?id=1dmJ6bfnM6baOP28QtLHhj8oXVb6TGSkH&sz=w850 (https://drive.google.com/uc?export=view&id=1dmJ6bfnM6baOP28QtLHhj8oXVb6TGSkH)

gispos
20th December 2020, 15:16
3. The setting "Use manual DPI setting only" doesn't seem to make a difference. What does this do?


If only I knew :D
No, joke aside.
If Windows does not do DPI scaling (user has switched it off, some do that) then the ppi_factor is calculated from the display values and also used.

At least that's how it was thought by me, whether it really works?:rolleyes:

Contact me if there are problems

gispos
20th December 2020, 15:28
but the keyboard key numbers on the tabs, at system scale 200% are still poorly visible

The keyboard key numbers are still being adjusted, and a few other adjustments will follow.
Wait for the first public version.

Fjord
20th December 2020, 15:29
Thanks for the fantastic work on this! It looks like it is working fine for me. I will now use test6 as my "production" version, and let you know if anything arises.
Merry Christmas! 🌲🌲🌲

gispos
20th December 2020, 19:52
AvsPmod 2.6.5.2 (https://github.com/gispos/AvsPmod/releases/tag/2.6.5.2)


* Added context menu to the 'play' button (right click)
* Removed Play video > 'Drop frames'
-- 'Drop frames' now in the play button context menu
-- 'Auto' is the old one (video frame rate related)
-- manually (2 - 16) is nice for fast playback (without filters), I get 1800 fps on maximum speed (but that's not real fps) ;)
* Again tab bookmarks handling slightly revised. And that's not the end.
* Synchronisation between 'menu bar' and 'context menu' items 'is item checked' improved.
* Beta: High DPI Awareness
-- added to menu Help 'DPI info'
-- Options > Misc 2 > 'AvsPmod DPI scaling'
-- set 'DPI scaling overall' to value 5 for 150 % scaling
-- play with the other values
-- It's beta, so some elements may be not scaled
-- leave 'Use manual DPI scaling' checked (recommended)
-- you can also use the scaling without a high resolution monitor.

Danette
20th December 2020, 20:25
Request:

Currently, AvsPMod's maximum playback speed seems to be about three times normal. It would be useful if this could be dramatically increased (10-20x normal?). The reason is that when scanning for issues, such as when using ShowChannels() function, the current limit requires about 8 minutes to scan a half-hour of video. Bringing this time down would be very helpful.

StainlessS
20th December 2020, 20:36
Then use VDub2 Menu option, "Run video Analysis Pass".

Danette
20th December 2020, 20:58
Then use VDub2 Menu option, "Run video Analysis Pass".

Thanks. That cut the time by about 40%. Any idea how to go even faster (greedy)?

StainlessS
20th December 2020, 21:05
That goes as fast as is possible.

Danette
20th December 2020, 21:17
That goes as fast as is possible.

OK. Thanks, again.

Fjord
20th December 2020, 21:26
I noticed a couple test6 dialog boxes for the to-do list of DPI updates:
Edit: Whoa -- moving fast 😛 -- now 2.6.5.2 beta...

- Customize the video status bar message - fixed in 2.6.5.2 beta
- Tools/Resize calculator
- Tools/Script encoder (CLI) - Encode video
- Tools/Script encoder (VFW) - Save as AVI

FranceBB
20th December 2020, 22:44
I wish everyone a Merry Christmas.:)

Thank you for yet another version and...

Merry Christmas!! (https://www.youtube.com/watch?v=N-PyWfVkjZc) :D

gispos
21st December 2020, 09:57
Thank you for yet another version and...

Merry Christmas!! (https://www.youtube.com/watch?v=N-PyWfVkjZc) :D
Thanks :)
----------------
AvsPmod tools dpi aware (https://www.sendspace.com/file/t1vzqm) (encoder_gui.py, avs2avi_gui.py, resize_calc.py)

1.) Close AvsPmod
2.) Go to the AvsPmod 'tools' directory
3.) Extract the files from the folder 'tools' into the AvsPmod 'tools' directory. (Overwrite old files)
4.) IMPORTANT: Delete all .pyo files with the same file name

1.) Schließe AvsPmod
2.) Gehe in das AvsPmod 'tools' Verzeichnis
3.) Extrahiere die Dateien aus dem 'tools' Verzeichnis in das AvsPmod 'tools' Verzeichnis. (Überschreibe vorhandene Dateien)
4.) WICHTIG: Lösche alle .pyo Dateien mit dem selben Dateinamen

German translations file update. Kleinen Übersetzungs Fehler behoben.
Entpacke die Datei aus dem 'translations' Verzeichnis in das AvsPmod 'translations' Verzeichnis (Vorhandene Dateien überschreiben)

gispos
21st December 2020, 14:41
Thanks. That cut the time by about 40%. Any idea how to go even faster (greedy)?
Well, it depends on what is written in the script.
Video 1920 * 1080
Normal display playback at maximum speed:
Without filter: 96 fps
with scDetect (scene change detection, and writing to hard disc)
45 fps

AvsPmod > Tools > 'Run analisys pass'
Without filter: 698 fps (no, don't forget the comma)
with scDetect: 65 fps

Is almost 30% faster than with display rendering.

gispos
21st December 2020, 15:23
That goes as fast as is possible.
Are you sure? :)
When I deactivate the display in VDub2, I get almost 360 fps
With the same script I get over 600 fps with AvsPmod.

StainlessS
21st December 2020, 17:38
Not sure.
Did you time same with AvsMeter at all ?
I do know one thing, if you (in CPP plug) call GetFrame() without assigning to a PVideoFrame, then
some part of filter chain dont get processed properley [not sure why] but think is filter before current filter that is affected.

From RT_Stats RT_ForceProcess()

PVideoFrame src = child->GetFrame(n,env); // Force decoding. MUST assign to PVideoFrame


EDIT: You can destroy the PVideoFrame immediately, it is just the assignment that is important, ie not just

child->GetFrame(n,env); // Not fully processed

[EDIT: So its something that the PVideoFrame constructor causes to happen,
Might be related to actions akin to ScriptClip's After_frame=True/False, being used in previous filter.]

I found big change in timings were possible with or without assign to a PVideoFrame. [EDIT depends upon filter chain in use]
If some timing filter is getting way higher speed than another, then maybe is not properley causing full
filtering from the previous filters.

EDIT: Also, maybe for the odd frame that VD2 does show in analysis pass, it decodes to RGB32.

EDIT: Non assignment can result in eg Frames.txt files not being written in filter chain where frames.txt writer
function is in last filter upstream of current filter. Thats part of how I discovered the prob [as well as timings].

gispos
21st December 2020, 18:14
AvsPmod is 1 - 2 fps faster than AvsMeter. So you can say that both show the same values

clip is initialized, frame (PVideoFrame) is initialized and avs_get_frame is called.
However, no further calculations are made. It doesn't need that. The frame should not be displayed.
All filters work normally. I think.

New test with scDetect.
With both the video played half, because of the average calculation of the fps
VDub2 65 fps
AvsPmod 67 fps

And I discovered a bug in VDub2
If 'Direct stream copy' is selected it pops when you try to start the analysis pass

StainlessS
21st December 2020, 18:33
Yeah, probably does full decode to RGB32 for Vdub2 filters processing, just we dont usually have any VD filters in ise just for quick scan.


And I discovered a bug in VDub2
If 'Direct stream copy' is selected it pops when you try to start the analysis pass
Define "pops", is that audio ?

EDIT: OK, I see that 'pops' means Access Violation and Crash.
EDIT: Also occurs in VD2 if direct load of clip into VD2, Direct Stream Copy, Video Analysis Pass, Access violation.
EDIT: Also occurs if VD2 fed RGB32 from Avisynth and Direct Stream Copy, Analysis Pass.

Have posted report in VD2 thread.

gispos
21st December 2020, 19:00
Only the things that are used to display the frame are not calculated. (get_read_ptr, get_pitch, etc.)
The frame is actually ready to be displayed via BitBlt. But not, because the values were not read.

But I've often noticed that AvsPmod with filtering is a tap faster than VDub2. VDub2 is only faster if no filters are used and the frame is to be displayed. (Direct3D, openGL)

No wonder, because, AvsPmod and avisynth form a unit with nothing in between.
Merry Christmas to you too :D

StainlessS
21st December 2020, 19:23
And a Merry XMas to you too, also, as well, Hanz Frunz is leavin' it a bit late this year.
Come on Hanz, we is waitin'.

Fjord
22nd December 2020, 00:01
a small DPI issue, v2.6.5.2:
- Options/Fonts and colors... at bottom of dialog AviSynth fonts and colors: dropdown "Select a predefined theme" and checkbox "Only change colours" do not follow Misc 2 DPI settings.

https://drive.google.com/thumbnail?id=1VWPaCg6ewjpwjtYkoVrMwF4zbieg1OUh&sz=w650 (https://drive.google.com/uc?export=view&id=1VWPaCg6ewjpwjtYkoVrMwF4zbieg1OUh)

gispos
22nd December 2020, 01:23
a small DPI issue, v2.6.5.2:
- Options/Fonts and colors... at bottom of dialog AviSynth fonts and colors: dropdown "Select a predefined theme" and checkbox "Only change colours" do not follow Misc 2 DPI settings.

https://drive.google.com/thumbnail?id=1VWPaCg6ewjpwjtYkoVrMwF4zbieg1OUh&sz=w650 (https://drive.google.com/uc?export=view&id=1VWPaCg6ewjpwjtYkoVrMwF4zbieg1OUh)
Replace the library.zip (https://www.sendspace.com/file/0x9a70) in the AvsPmod 'lib' directory with this one

You also get a new option to change the 'Video Controls' size.
Give feedback.

Fjord
22nd December 2020, 17:43
DPI issue - v2.6.5.2 - Error Window not following DPI settings
(I just started AvsPmod with a script with errors - message not significant, just the size. I have not tried your new library.zip yet.)

https://drive.google.com/thumbnail?id=1dH7fq0puH22O8g3WYxfss_Hdith-R0xW&sz=w350 (https://drive.google.com/uc?export=view&id=1dH7fq0puH22O8g3WYxfss_Hdith-R0xW)

Fjord
22nd December 2020, 18:56
DPI issues - v2.6.5.2 with new tools & library.zip
Tools fixed, except there is some empty space at the bottom of Script encoder (VFW)/Save as AVI dialog.
Some really small details: :p - The Input file and Output file text boxes are perhaps a bit taller than necessary,
and text is not vertically centered (also in Script encoder (CLI) dialog).
Shouldn't these two encoder dialogs have a Cancel button, and close on ESC?

https://drive.google.com/thumbnail?id=1nS8bHQ4PxQs8Zl-xzI6fM4AqBWMdDL-t&sz=w450 (https://drive.google.com/uc?export=view&id=1nS8bHQ4PxQs8Zl-xzI6fM4AqBWMdDL-t)

Have a very Merry Christmas! ��⛄��⛄��⛄

Edit: Video control DPI also ok -- I set it to 2.

gispos
23rd December 2020, 11:01
DPI issues - v2.6.5.2 with new tools & library.zip
Tools fixed, except there is some empty space at the bottom of Script encoder (VFW)/Save as AVI dialog.
Some really small details: :p - The Input file and Output file text boxes are perhaps a bit taller than necessary,
and text is not vertically centered (also in Script encoder (CLI) dialog).
Shouldn't these two encoder dialogs have a Cancel button, and close on ESC?

The empty space is used for text display when encoding. no Cancel, no ESC
Even without DPI scaling, the font is not exactly in the middle. It's so.

The error messages are processed by the system, have you ever started the cmd and looked how big the text is? (with 100 % DPI scaling)
https://www.isunshare.com/windows-10/change-font-and-font-size-in-windows-10-command-prompt.html

Interesting too: https://www.isunshare.com/windows-10/2-ways-to-set-text-scaling-level-in-windows-10.html

gispos
23rd December 2020, 16:57
The last one this year ;)
AvsPmod 2.6.5.3 (https://github.com/gispos/AvsPmod/releases)

* Options > Misc > 'Use large video controls' replaced by options > Misc 2 > 'DPI scaling video controls'
* Changed some functions for DPI awareness
*** Important*** The Guis in the Tools folder need to be updated.
-- avs2avi_gui.py, encoder_gui.py, resize_calc.py
-- To do this, the files must be overwritten and all .pyo files in the 'tools' dirctory deleted.
-- Or unzip AvsPmod in a new directory and copy the options.dat from the old to the new directory.
-- Then copy the .dat files from the 'tools' directory to the new 'tools' directory. So that the settings of the Guis are retained.

FranceBB
23rd December 2020, 22:40
Thanks for yet another version.
Merry Christmas and Happy New Year!

Shinkiro
25th December 2020, 14:43
I translated some things into Russian
http://sendfile.su/1589112

gispos
25th December 2020, 19:18
I translated some things into Russian
http://sendfile.su/1589112
Very nice. Will be added to the next version.
Happy New Year everyone

gispos
5th January 2021, 13:35
First of all, Happy New Year!

AvsPmod 2.6.6.0 (https://github.com/gispos/AvsPmod/releases) with preview filters. A completely new feeling.

For macros script writers.
Bookmark type int 0 is no longer included in the bookmark list ( avsp.GetBookmarkFrameList() ).
'if Bookmark [3632] == bmtype' no longer works. It is enough to just check for the key (if 3632 in bookmarks)
Bookmarks only contains bookmarks with an empty string as value and Selections only selections with type int 1 or 2


* Added to tab context menu 'Auto preview' find it out ;)
* Tabs shown an indictor if clip not initialized (preview not ok) '>'
** Preview filter, fast slider preview, fast compare preview. please open the examplePreviewFilter.avs (.txt)
* The annoying behavior when rearranging the tabs fixed (scripts are initialized that do not yet have a clip)
* User sliders
-- the window interface revised (flicker)
-- slider direct update with preview filters (optional)
-- new menus in the context menu, check it out
-- new fold option 'Fold or restore last order', under main options
-- fixed user sliders makes two steps on the arrow buttons
* New russian translations file, thanks to Doom9 user 'Shinkiro'
* New menu 'Help' > 'Preview filter example'
-- opens the examplePreviewFilter.avs in AvsPmod or shows the .txt version if not found.
* and other changes


In AvsPmod Help > 'Preview filter example' you can open this script.

/*
GPo, 2021.01.03
Examples of preview filter in AvsPmod.

Avisynth filters that do not require a high CPU load are suitable as preview filters.
The faster the avisynth filters are, the faster the preview can be created
It doesn't make sense to use MCTemporalDenoise in a preview filter. Suitable filters are sharpness, colors or similar filters
Preview filters are always processed as last filter, but 'prefetch' in the preview area only affects the preview filter.
Outside of this, 'prefetch' only affects the source filter.
You cannot use resize filters in the preview filters, the source clip size must be the same as the preview filter size. An Error will be shown.

Up to 5 filter sets can be created, each preview filter set must be declared as follows.
*/

# Youre source and source filters.
#AviSource("Bla Bla.avi")
#MCTemporalDenoise()
# and now the fast preview filters

/**avsp_filter
Levels(0, 1.000, 255, 0, 255, coring=true)
Tweak(hue=0.0, sat=1.0, bright=0, cont=1.0, coring=True, sse=False, startHue=0, endHue=360, maxSat=150, minSat=0, interp=16)
*/

# or

/*avsp_filter
sharpen(0.4)
*/

/*
You can see In the second example (in AvsPmod), the text is still displayed as a block comment and the 'sliders' are not integrated either.
So a double star activates the avs syntax and the sliders. Very Nice.

!!! for the sliders and for avs syntax highlighting !!!
'Video' > 'Preview filter' > 'Enable preview filter sliders' must be checked, otherwise the text will shown without avs syntax.
The sliders are only updated automatically when a preview filter is selected, or with a normal script update (refresh, reload, etc.)
There is also the possibility to read only the slider again (slider context menu)

A possibility to see your own name in the 'Preview filter' menu. (multiple same names allowed)
You just have to write something after 'avsp_filter' and the text in this line must be longer than 19 characters (including /**avsp_filter)
Don't use an '&' in the name. I haven't checked all the characters, one or the other can cause problems. Use something else.
*/

/**avsp_filter color + sharpen
#SmoothLevels(input_low=16, gamma=1.00, input_high=235, output_low=16, output_high=235, TVrange=True, Lmode=0, darkSTR=100, brightSTR=100, debug=False)
#SmoothTweak(brightness=0, contrast=1.00, saturation=1.00, hue1=0, hue2=0, TVrange=True, Lmode=0, limitSTR=100, debug=False)
#SmoothCurve(Ycurve="0-0;255-255", Ucurve="0-0;255-255", Vcurve="0-0;255-255", debug=False)
#Highlighter(gblur=100, gradient=True, threshold=100, twopass=False, amount=20, method=0)
#HighlightLimiter(gblur=100.0, gradient=True, threshold=160, twopass=False, amount=20, method=0)
Sharpen(0.40)
#NonlinUSM(z=3, str=2.0, rad=0.6) #sharpen
#NonlinUSM(z=1.0, pow=1.2, str=0.2, rad=120.0) #contrast
#NonlinUSM(z=3, pow=1.2, str=0.25, rad=6) #sharp+
#UnsharpMask(strength=60, radius=3, threshold=8)
#TUnSharp(strength=80, thresholdL=6, thresholdU=40, radius=2, type=0, map=0, lim=2, gui=false)
#SharpenComplex2(str0=2.0, str1=1.125, k0="3 14 3", k1="1 1 1", edgethr=0.2, debug=false)
*/

/*
If you now open the video menu 'Preview filter', these three filter sets should now be displayed.
With a selection one of these filters becomes active. I have defined Ctrl + 'Numpad 0' to 'Numpad 5' to change the filter, change it yourself.
You can save the filters, 'Preview filter' > 'Save preview filters' , but note! All previously saved filters will be deleted!
You can restore all saved or individual sets (will be written into the script at last position).
You can save or restore more then 5 filter sets, but only directly select the first 5 sets.

You can also write the preview filter set in the first line and then the source filter, it makes no difference.
In the event of a refresh or if the script has changed outside of the preview filter area, the preview filter is switched off
When you are done with the settings, simply remove the filter flag start and end or set a comment flag # at the beginning of the line.

And a final remark. For avisynth the area is only a block comment,
for AvsPmod it is a filter, and no matter what is written in this area, an attempt is made to create a clip.

I hope that I was understandable.
*/

FranceBB
6th January 2021, 10:08
New year, new version. Thanks!
I'll try it later on today. :)

gispos
6th January 2021, 14:35
New year, new version. Thanks!
I'll try it later on today. :)
I'm currently looking what at errors occur when filters such as ChangeFPS are used in the preview filter.
Different lengths did not cause an error. The picture only stopped when the preview filter ended.
However, the preview filter is in the next version deactivated for different lengths.

And when switching the matrix (TV, PC level), the filter must be re-initiated. I'll leave it that way ... it's too much effort for me for this little manko.

If you see similar problems, let me know.

Raizo
6th January 2021, 16:49
Many Thanks for your great work gispos !!!!


Script Encoder CLI:
In older releases there were a path folder button that it's gone in most recent releases:

https://i.postimg.cc/J02xs1Cb/Script-Encoder-CLI.png

p.s.
Is there a way to use a sort of "jobs queue" using integreted script encode CLI?

bruno321
6th January 2021, 17:00
It's me again. Using 2.6.5.0, I often have the problem that I'm zoomed to 200% (say), want to change back to 100% and it just won't: I select 100% from the dropdown menu, it gets selected, but I'm still shown 200%. I try changing to zoom to whatever value and it stays at 200%. Is this perhaps something you fixed in the last version? I don't recall this bug in earlier versions. (Perhaps I skipped some versions, I don't remember which was the previous one I used.)

Note that changing the zoom with ctrl+mouse's wheel works fine.

gispos
7th January 2021, 00:23
...Script Encoder CLI:
In older releases there were a path folder button that it's gone in most recent releases:

Not noticed at all. It was a typing mistake, I set the size of the buttons to 0.
'AvsPmod \ tools' replace the file with the one in the archive and delete the 'encoder_gui.pyo'.
encoder_gui (https://www.sendspace.com/file/cz3krv)

It's me again. Using 2.6.5.0, I often have the problem that I'm zoomed to 200% (say), want to change back to 100% and it just won't: I select 100% from the dropdown menu, it gets selected, but I'm still shown 200%. I try changing to zoom to whatever value and it stays at 200%. Is this perhaps something you fixed in the last version? I don't recall this bug in earlier versions. (Perhaps I skipped some versions, I don't remember which was the previous one I used.)

Note that changing the zoom with ctrl+mouse's wheel works fine.
What version are you using, 2.6.5.0 or 2.6.6.0

bruno321
7th January 2021, 08:25
2.6.5.0. I'm behind with the times!

Sharc
7th January 2021, 11:41
Script encoder CLI Configuration for ffmpeg:
The Extra arguments are always inserted before the input file specification, means it is a decoding option. I would suggest to add an 'Extra arguments for encoding' for inserting the encoding options in the CLI.
Or did I miss something?

gispos
7th January 2021, 18:55
Script encoder CLI Configuration for ffmpeg:
The Extra arguments are always inserted before the input file...
I have a look at it

Raizo
7th January 2021, 19:28
Not noticed at all. It was a typing mistake, I set the size of the buttons to 0.
'AvsPmod \ tools' replace the file with the one in the archive and delete the 'encoder_gui.pyo'.
encoder_gui (https://www.sendspace.com/file/cz3krv)


Awesome 😘

gispos
7th January 2021, 19:36
Script encoder CLI Configuration for ffmpeg:
The Extra arguments are always inserted before the input file specification, means it is a decoding option. I would suggest to add an 'Extra arguments for encoding' for inserting the encoding options in the CLI.
Or did I miss something?

The extra options are not entered in the ffmpeg templates ($extra_options).
Open the AvsPmod \ tools \ 'ffmpeg.presets' file with an editor and write '$extra_options' (without quotation marks) in the desired place.
You can also enter your own presets in the file. As a comparison you can look at the 'x264.presets' file.

If you do not convert with xvid, you can remove the xvid.presets (or rename to xvid.presets.tmp) Then the menu is cleaner.

Sharc
8th January 2021, 13:10
The extra options are not entered in the ffmpeg templates ($extra_options).
Open the AvsPmod \ tools \ 'ffmpeg.presets' file with an editor and write '$extra_options' (without quotation marks) in the desired place.
You can also enter your own presets in the file. As a comparison you can look at the 'x264.presets' file.

If you do not convert with xvid, you can remove the xvid.presets (or rename to xvid.presets.tmp) Then the menu is cleaner.
Yep, it works.
:thanks:

VoodooFX
8th January 2021, 17:49
I decided to move from PsPad and give it check, good overall experience, I think I'll use it from now on. Thank you for this mod.

And of course my issues/wishes: :)

1) "Refresh preview automatically" when "switch focus on video window" doesn't work (separate preview window), looks like it works only when switching tabs.

2) Preview window is not fully sized, there is a small bottom/top portion hidden. "Allow AvsPmod to resize window" is selected (Win7 64bit).

3) Slowish script loading/refresh, one script MeGUI loads in 2s vs AvsPmod loads it in 5s, I tried to disable various stuff in settings, but it didn't help. Can it be made faster?

4) Could be the buttons with a configurable step distance in frames added for the bigger steps, next to the previous/next frame buttons?

gispos
8th January 2021, 19:10
1) "Refresh preview automatically" when "switch focus on video window" doesn't work (separate preview window), looks like it works only when switching tabs.

It works fine for me here. But it is also a modified version. Check it out in the next version.


2) Preview window is not fully sized, there is a small bottom/top portion hidden. "Allow AvsPmod to resize window" is selected (Win7 64bit).

You mean that a scrollbar is visible? I will correct it.


3) Slowish script loading/refresh, one script MeGUI loads in 2s vs AvsPmod loads it in 5s, I tried to disable various stuff in settings, but it didn't help. Can it be made faster?

Magic will only start next year.:) The loading time depends on the script content.
I don't know what you're comparing. I used a script that also has a couple of filters.

MeGui open script = 15 seconds
MeGui reload video = 6 seconds
MeGui reopen preview = 8 seconds
VirtualDub2 = 5 seconds
AvsPmod = 6 seconds

And now think of all the functions (database, avs syntax, slider, etc.)... nothing is free. I mean that all that stuff takes CPU time.
And 'keep env and variables' I have removed in AvsPmod (not compatible with preview filter) which AvsPmod might have brought up to the level of VD2.


4) Could be the buttons with a configurable step distance in frames added for the bigger steps, next to the previous/next frame buttons?
You can configure your own jump distance, options > Misc and then create a shortcut.
And under Video > Navigate there is also 1 second and a minute. That is a total of 4 jump distances and one of them is configurable.
Is not that enough? Clicking the button is more cumbersome than a shortcut, or not?
But I'll think about it again.

VoodooFX
8th January 2021, 22:48
It works fine for me here...

1) Found that you need to click on the video frame, I was clicking on the top of the window.

2) Yeap, scrollbar is visible.

3) New retest: MeGUI 2.8s vs AvsPmod 3s. Problem was that in script I was loading ImageSeq from avs_3.5.1 when working in avs_3.6.2.

4) I'm the guy who likes to keep a beer in one hand and mouse in another. ;)

gispos
10th January 2021, 13:27
AvsPmod 2.6.6.1 (https://github.com/gispos/AvsPmod/releases)

* Preview filters revised
* User sliders
-- if direct slider update enabled (only with preview filters), can then be deactivated by pressing Ctrl on slider move.
-- options > 'User slider' > 'Button show / hide applies to all tabs'
-- sliders context menu new item 'Same width for all'
* Error window font size now with DPI scaling
* Step frame buttons got a context menu (frame, second, minute, custom jump). For those who can't let go of their mouse and beer ;)
* Fixed separate video window zoom and flickering on tab change with mouse browse buttons.
* Fixed separate video window shows no bookmarks and selections.
* Fixed encoder_gui.py shows no path buttons, and a new button in the config part (please delete the encoder_gui.pyo)

and the database (filterdb.dat) a bit updated.

FranceBB
10th January 2021, 13:46
I didn't really use the encoder GUI anyway, but thanks for the update.

Sharc
10th January 2021, 16:13
Tabs and the status bar have become micro-tiny with the release 2.6.6.1 on my 2736x1824 resolution monitor. How can I revert to the former useful size?

gispos
10th January 2021, 16:19
Tabs and the status bar have become micro-tiny with the release 2.6.6.1 on my 2736x1824 resolution monitor. How can I revert to the former useful size?
And what is set under the Misc2 options (DPI)?

Disable DPI awareness = not checked
DPI scaling overall only manually = checked and then adjust the values for overall, tabs, video controlls and statusbar

This happens when you unpack AvsPmod into a new directory and do not copy your old settings (options.dat) into the new directory.

Sharc
10th January 2021, 17:39
And what is set under the Misc2 options (DPI)?

Disable DPI awareness = not checked
DPI scaling overall only manually = checked and then adjust the values for overall, tabs, video controlls and statusbar

This happens when you unpack AvsPmod into a new directory and do not copy your old settings (options.dat) into the new directory.
Perfect. Thanks!

VoodooFX
10th January 2021, 18:25
AvsPmod 2.6.6.1 (https://github.com/gispos/AvsPmod/releases)

* Step frame buttons got a context menu (frame, second, minute, custom jump). For those who can't let go of their mouse and beer ;)
* Fixed separate video window zoom and flickering on tab change with mouse browse buttons.
* Fixed separate video window shows no bookmarks and selections.


Osome. :)

Now I have this dream of the handicapped: pasting frame number at the video preview field would go to that frame automatically, selecting numbers in script editor you could increase/decrease them with the scroll button, same with true/false. :D

gispos
11th January 2021, 21:29
Osome. :)

Now I have this dream of the handicapped: pasting frame number at the video preview field would go to that frame automatically, selecting numbers in script editor you could increase/decrease them with the scroll button, same with true/false. :D

True, false is possible, you just have to read this page (https://github.com/gispos/AvsPmod). Paste and enter is not difficult to enter a frame number. And for the other things ... maybe put the beer aside.:D

VoodooFX
11th January 2021, 22:07
True, false is possible, you just have to read this page (https://github.com/gispos/AvsPmod).
Nice, thx for the hint.

There is very annoying issue: disappearing/appearing numbers in tabs, after you click on preview and have like 5 tabs, then you can't click on the right tab, it goes to nothing or wrong tab, because size of tabs changes when you try to click tab.

And there is bug when you try to press a jump button on the script editor window:

Traceback (most recent call last):
File "avsp.pyo", line 9995, in OnMenuVideoNextFrame
NameError: global name 'offeset' is not defined

gispos
15th January 2021, 19:19
Nice, thx for the hint.

There is very annoying issue: disappearing/appearing numbers in tabs, after you click on preview and have like 5 tabs, then you can't click on the right tab, it goes to nothing or wrong tab, because size of tabs changes when you try to click tab.

And there is bug when you try to press a jump button on the script editor window:

Traceback (most recent call last):
File "avsp.pyo", line 9995, in OnMenuVideoNextFrame
NameError: global name 'offeset' is not defined

In the next version the tab images will not be removed if separate video windows are used and the script window gets the focus
There is no other way.

You can also deactivate the tab images under the options. Then the problem no longer exists.

The bug is a typing error, offeset instead of offset. Will be fixed.

VoodooFX
15th January 2021, 21:04
In the next version the tab images will not be removed if separate video windows are used and the script window gets the focus
There is no other way.

You can also deactivate the tab images under the options. Then the problem no longer exists.


I'm not sure what "the tab images" means, but "Show tabs in fixed width" option solved the issue. Thanks.

gispos
16th January 2021, 03:19
I'm not sure what "the tab images" means, but "Show tabs in fixed width" option solved the issue. Thanks.
Or so.
I meant, Misc > 'Use keyboard images in tabs'

gispos
16th January 2021, 18:38
AvsPmod 2.6.6.2 (https://github.com/gispos/AvsPmod/releases)

* Automatic calculation of the DPI factor changed. (I can't test it and I hope it works)
* Fix for tab change with separate video window
* Bugfix step frame buttons

To those with the high DPI monitors,
I have changed the automatic calculation of the PPI factor. Didn't work before. It would be nice if you would tell me if this works now.

Simply unzip AvsPmod into a directory and start from this directory. The correct scaling should now be calculated automatically, I hope so.

Raizo
17th January 2021, 16:39
While encoding (using the Script Encoder CLI) clicking inside the batch process window, freezes / stops the encoding.
Does it happen to any of you too? Or is it just me? :)

https://i.postimg.cc/0QrMQVvH/Immagine.png

gispos
17th January 2021, 21:54
The encoding continues for me, I can click in the window or move the window. Win7 64bit

Edit:
Go to the settings of the encoder Gui, I think button 'Config' (German for me).
Set the encoder priority higher 'above normal' or to 'high'
Does it help?

Raizo
17th January 2021, 23:32
I see.. so it's me !
I can too move/resize the window, but it stops as soon as I click inside the CLI window.

I'm using:
Win10 20H2 x64; avisynth+ x64; avspmod 2.6.6.2 x64 - x570/Ryzen 3700x

I tried the priority trick you suggested without any luck, but It seemed like a good idea thanks!=)

I'll try some different scenarios to figure out if something change ^^

StvG
19th January 2021, 00:02
While encoding (using the Script Encoder CLI) clicking inside the batch process window, freezes / stops the encoding.
Does it happen to any of you too? Or is it just me? :)
On Windows 10 cmd pauses when you click on the window. Just hit any key to continue.

Raizo
19th January 2021, 00:27
On Windows 10 cmd pauses when you click on the window. Just hit any key to continue.

lel No way!! 😅 I'm so dumb..

Danke!!

stax76
19th January 2021, 00:40
Sorry, not usable at 288 DPI.

gispos
19th January 2021, 17:22
Sorry, not usable at 288 DPI.
And with the amount of information about it, nothing will change.

gispos
22nd January 2021, 19:20
AvsPmod 2.6.6.3 (https://github.com/gispos/AvsPmod/releases)

* Slider window and sliders revised
* The preview filter index is displayed on the right in the status bar
* Fixed bug with selections (trim) marks
* A few other changes

radiant chains
22nd January 2021, 23:43
With the automatic DPI scaling introduced in 2.6.6.2, everything is scaled too large. I'm not using a high-DPI monitor; just 1920x1080 at 100% scaling (on Windows 10 20H2). Enabling the "DPI scaling overall only manually option" makes the scaling correct as it was in previous versions.

Screenshot with auto-DPI (https://i.imgur.com/YPOxInz.png)
Screenshot with manual DPI option enabled (https://i.imgur.com/NSvKT8y.png)

gispos
23rd January 2021, 01:33
With the automatic DPI scaling introduced in 2.6.6.2, everything is scaled too large. I'm not using a high-DPI monitor; just 1920x1080 at 100% scaling (on Windows 10 20H2). Enabling the "DPI scaling overall only manually option" makes the scaling correct as it was in previous versions.

Screenshot with auto-DPI (https://i.imgur.com/YPOxInz.png)
Screenshot with manual DPI option enabled (https://i.imgur.com/NSvKT8y.png)
First of all, thanks for the information. At least one who gives feedback. :(
With my monitor, all sizes are normal with automatic DPI. A little strange.

Please go to Help > 'DPI info' and post me the first two values:
Monitor DPI and Screen DPI

Thanks for that!

PS: If you do not use a high DPI monitor, i.e. only use 100% scaling, you can also select 'Disable DPI awareness' under the options.

radiant chains
23rd January 2021, 04:02
First of all, thanks for the information. At least one who gives feedback. :(
With my monitor, all sizes are normal with automatic DPI. A little strange.

Please go to Help > 'DPI info' and post me the first two values:
Monitor DPI and Screen DPI

Thanks for that!

PS: If you do not use a high DPI monitor, i.e. only use 100% scaling, you can also select 'Disable DPI awareness' under the options.

This is what the DPI info dialog box shows when auto DPI is enabled:
Monitor DPI: (141, 141)
Screen DPI: (96, 96)

DPI scaling overall: 146.875 %
DPI scaling main tab: 146.875 %
DPI scaling video controls: 146.875 %
DPI scaling statusbar: 146.875 %

DPI Aware: True
DPI Awareness: 2

gispos
23rd January 2021, 09:55
This is what the DPI info dialog box shows when auto DPI is enabled:
Monitor DPI: (141, 141)
Screen DPI: (96, 96)

DPI scaling overall: 146.875 %
DPI scaling main tab: 146.875 %
DPI scaling video controls: 146.875 %
DPI scaling statusbar: 146.875 %

DPI Aware: True
DPI Awareness: 2
It looks good to me.

You have a monitor DPI of 141 and you use 100% system zoom. That means that you have everything about 46% smaller.
I noticed that in your pictures. You're probably pretty young with good eyesight.:)

I don't know yet whether it is possible to take that into account in the calculations.

Have a nice Weekend.

gispos
23rd January 2021, 10:38
To everyone with a high DPI monitor, I'll try again. The last.

I don't know whether the current version is the right one, I have a modified version here. (https://www.sendspace.com/file/0xao8y)
Which works better now, the current one or the changed one? It would be nice if I could finish here and someone give me feedback.

In the AvsPmod / lib directory replace the 'library.zip' with the one in the link.

radiant chains
23rd January 2021, 10:48
It looks good to me.

You have a monitor DPI of 141 and you use 100% system zoom. That means that you have everything about 46% smaller.
I noticed that in your pictures. You're probably pretty young with good eyesight.:)

I don't know yet whether it is possible to take that into account in the calculations.

Have a nice Weekend.

Ah, that makes sense. For my system, the default/recommended scaling in Windows is 125%, but I changed it to 100% as that's what I prefer.
I've set the "Disable DPI awareness" option and that works well for my use.

Thanks

Edit: The updated library.zip from your last post fixes the automatic scaling for my setup, at least. With DPI awareness on, I get the expected 100% scaling

gispos
23rd January 2021, 19:41
Ah, that makes sense. For my system, the default/recommended scaling in Windows is 125%, but I changed it to 100% as that's what I prefer.
I've set the "Disable DPI awareness" option and that works well for my use.

Thanks

Edit: The updated library.zip from your last post fixes the automatic scaling for my setup, at least. With DPI awareness on, I get the expected 100% scaling
It's good! Now all I need is feedback from a user who uses more than 100% zoom.
Or you set the 125% for yourself and see whether the automatic scaling also works.

Anyway, thanks for the information.

JKyle
23rd January 2021, 20:40
It seems that the new library works well with DPI awareness while the old one does not.

I'm using dual monitors and the scaling factor of my main monitor is 125%.


Under this same setting,

https://i.imgur.com/M50AXGn.jpg

the new library gets the correct numbers

https://i.imgur.com/GkOXWsQ.jpg

but the old one fails to get them:

https://i.imgur.com/Bh2Hdc9.jpg


But when I turn off DPI awareness,

https://i.imgur.com/WK3AVCj.jpg

they both yield the same results,

https://i.imgur.com/Pu005Qp.jpg

but this time, they both ignore my manual setting of 130%!


I'm wondering if this is normal, but as for me, I'm happier with DPI awareness off since the menu letter size is too small with DPI awareness. :(

gispos
24th January 2021, 12:33
JKyle, thank you for the informative information.
Found the bug.
The DPI value overall can now always be set if 'DPI scaling only manually' is selected.
The other values can always be set and are added to the 'Overall Factor'.

If you like, you can download the modified library.zip here (https://www.sendspace.com/file/dhmkzn).

JKyle
24th January 2021, 13:03
If you like, you can download the modified library.zip here (https://www.sendspace.com/file/dhmkzn).

Problem fixed. It's working as expected. :thanks:

gispos
24th January 2021, 15:41
AvsPmod 2.6.6.4 (https://github.com/gispos/AvsPmod/releases)

* Resize filters can now be used in the preview filter (nice for SmoothLevel, SmoothCurve debug mode)
* Bugfix DPI scaling

JKyle
24th January 2021, 18:37
Since FFMS2 filter(function) definition is missing from ffms2 plugin in AvsPmod, I added it as a new function referring to the ffms2 manual (https://github.com/FFMS/ffms2/blob/master/doc/ffms2-avisynth.md).

Go to Options > AviSynth function definition... > Plugins > New function, and do the following:

https://i.imgur.com/bXX7cL3.jpg

Arguments:

(
string source = ("*.*"),
int "vtrack" = -1 (-1 to 10),
int "atrack" = -2 (-2 to 10),
bool "cache" = True,
string "cachefile" = "" ("*.ffindex"),
int "fpsnum" = -1 (-1 to 60000),
int "fpsden" = 1 (1 to 1001),
int "threads" = -1,
string "timecodes" = "" ("*.txt"),
int "seekmode" = 1 (-1 / 0 / 1 / 2 / 3),
bool "overwrite" = False (False / True),
int "width" = -1,
int "height" = -1,
string "resizer" = "BICUBIC" ("FAST_BILINEAR"/ "BILINEAR"/ "BICUBIC"/ "X"/ "POINT"/ "AREA"/ "BICUBLIN"/ "GAUSS"/ "SINC"/ "LANCZOS"/ "SPLINE"),
string "colorspace" = "" ("YV12"/ "YV16"/ "YV24"/ "Y8"/ "YUY2"/ "YV411"/ "YUV9"/ "RGB24"/ "RGB32"),
int "rffmode"=0 (0 / 1 / 2),
int "adjustdelay" = -1 (-3 / -2 / -1 / 0),
string "varprefix"="",
)

Hope this helps those who use FFMS2 frequently just like me. :)

---

BTW, the 'Edit function information' window is not resizeable and 'define sliders(Slider information)' window has a very tiny default size.
@gispos, can you please take a look and fix this? :thanks:

gispos
24th January 2021, 21:38
Hi JKyle,
have you turned off 'DPI awareness'?
If you use a Win10 system zoom, 'DPI awareness' must be selected in AvsPmod.

You can then choose automatic or manual scaling, but do not completely deactivate the DPI awareness.
Only deactivate the DPI awareness if you are using 100% system zoom.

Show me the window that is too small.
This is how it looks for me when I use 140% AvsPmod DPI scaling.
https://i.postimg.cc/MG9gM9Q1/FFm.jpg (https://postimg.cc/hJ72NbMG)

JKyle
24th January 2021, 22:12
Hi JKyle,
have you turned off 'DPI awareness'?
If you use a Win10 system zoom, 'DPI awareness' must be selected in AvsPmod.

You're right. I've kept it off, and that's why the default 'Slider Information' window size was so tiny.
I wasn't aware that DPI awareness is a mandatory option for a high DPI monitor. :'(
Once I turned it back on, the window size becomes normal. :thanks: for pointing it out. :)

BTW, 'Edit function information' window is still unresizeable.
If it's not intended, can you please fix it?

gispos
24th January 2021, 22:46
...
BTW, 'Edit function information' window is still unresizeable.
If it's not intended, can you please fix it?
library.zip x64 only (https://www.sendspace.com/file/tpbikk)

JKyle
24th January 2021, 23:09
library.zip x64 only (https://www.sendspace.com/file/tpbikk)

Super! It's fixed. :thanks:

gispos
24th January 2021, 23:58
Since FFMS2 filter(function) definition is missing from ffms2 plugin in AvsPmod, I added it as a new function referring to the ffms2 manual (https://github.com/FFMS/ffms2/blob/master/doc/ffms2-avisynth.md).

A note:
Take care of your options.dat. All changes are saved in this file. (AvsPmod dir 'options.dat')
I myself make a copy of it every now and then.

And if you unpack a new version in a different directory, you have to copy the old options.dat into the new directory.
Otherwise all your changes will be lost.

I will add your function definition for ffms2 to the database. Then this is available to everyone.

JKyle
25th January 2021, 00:20
I see. Thanks. :)

bruno321
25th January 2021, 16:30
Is there a way to stop a preview? Sometimes I input a filter that's just too slow and it'll take hours before it's finished previewing, and I'd rather just stop it.

gispos
25th January 2021, 20:59
Is there a way to stop a preview? Sometimes I input a filter that's just too slow and it'll take hours before it's finished previewing, and I'd rather just stop it.
When avisynth is working there is no way to end the process normally.
You can then only terminate the program with a crash.

FranceBB
26th January 2021, 10:08
When avisynth is working there is no way to end the process normally.
You can then only terminate the program with a crash.

Actually I found a life hack xD
If you click "compile" bottom right by mistake and the preview of the next frame is loading, you can minimize AVSPmod really fast, go to your desktop, open it again from the minimized window and just like magic it won't load the next frame.

(please don't "fix" it, it's not a bug, it's a feature I use all the time to avoid huge loading time when I click on the preview by mistake)

gispos
26th January 2021, 20:56
Actually I found a life hack xD
If you click "compile" bottom right
I use my native language but I don't know "compile" in the lower right corner.

by mistake and the preview of the next frame is loading, you can minimize AVSPmod really fast, go to your desktop, open it again from the minimized window and just like magic it won't load the next frame.
Please explain that in more detail. Sounds like voodoo to me.:)
When the script has been passed to avisynth, no program in the world should be able to terminate the process without killing the thread.

(please don't "fix" it, it's not a bug, it's a feature I use all the time to avoid huge loading time when I click on the preview by mistake)
well, let's see :devil: :D

gispos
26th January 2021, 21:48
I've been trying to understand your voodoo for almost half an hour now. Minimized .. maximized.. everything without success.
You must have a bewitched version. That leaves me with no peace. I can't sleep tonight. :D

Shinkiro
29th January 2021, 13:16
Can anyone tell me if there is a way to force AvsPmod to stop video playback on a scene change?

gispos
29th January 2021, 17:52
Can anyone tell me if there is a way to force AvsPmod to stop video playback on a scene change?
AvsPmod does not have a scene change detection filter.

I had played around with SCDetect a bit and wrote a macro for AvsPmod. But if it was not fully tested, other things came up.

1.) Create a scene change log with SCDetect
2.) Open this file with the macro
3.) Selections are made in AvsPmod. Every 2nd scene is selected.

Don't know if you can do something with it.

SCDetect, tip: Use 'Run analysis pass' I get 63 fps when writing the log file.

###################################################
### ###
### Scene change detect script ###
### ###
### by 06_taro - astrataro@gmail.com ###
### ###
### v0.3 - 12 February 2012 ###
### ###
###################################################
###
### SCDetect - Detect scene change and output scene change frames to a file.
###
### FFTypeList - Output frame type list to a new file.
### The list has exactly the same format as x264's qpfile, except for no qp value is given.
###
### +-----------+
### | CHANGELOG |
### +-----------+
###
### v0.3 - 12 February 2012:
### - Add means difference calculation, more accurate on flicking.
###
### v0.2 - 28 December 2011:
### - Crop before calculate whether the scene change mask is a scene change frame or not,
### and replace LumaDifference(BlankClip) with YPlaneMax, might be faster.
### - Tweak parameters of thSCD1 and thSCD2 back to MVTools2's default. The parameters in v0.1 is too weak to detect non-grain clips.
### - Add FFTypeList to output frame types of source clip. Can be used only with FFVideoSource or FFmpegSource2.
###
### v0.1 - 28 December 2011:
### - First release.
###
### +----------------+
### | REQUIREMENTS |
### +----------------+
###
### SCDetect:
### YV12 input
### -> RemoveGrain
### -> MVTools2
###
### FFTypeList:
### FFVideoSource or FFmpegSource2 as source filter
###
### +-------+
### | USAGE |
### +-------+
###
### SCDetect(scFile, thSCD1, thSCD2, mDiff, pel, search, searchparam, info)
### ----------------------
###
### scFile [string, Default="scFile.log"]
### -- The log file of scene change frames, do not output log file when scFile is set to "nul"
###
### thSCD1 [int, Default=360]
### -- Threshold which decides whether a block has changed between the previous frame and the current one.
### -- Raising it will lower the number of blocks detected as changed. It may be useful for noisy or flickered video.
### -- Read MVTools2 documents for more details.
###
### thSCD2 [int(0-255), Default=120]
### -- Threshold which sets how many blocks have to change for the frame to be considered as a scene change.
### -- 0 meaning 0 %, 255 meaning 100 %.
###
### mDiff [float, Default=2.5]
### -- Means difference threshold.
###
### pel [int(1,2,4), Default=1]
### -- It is the accuracy of the motion estimation. Value can only be 1, 2 or 4.
### -- 1 means a precision to the pixel.
### -- 2 means a precision to half a pixel.
### -- 4 means a precision to quarter a pixel.
### -- Larger value is more accurate but slower, and not always better due to big level scale step.
###
### search [int(0-7), Default=4]
### searchparam [int, Default=2]
### -- Search decides the type of search at every level, and searchparam is an additional parameter (step, radius) for this search:
### -- search = 0 : 'OneTimeSearch'.
### searchparam is the step between each vectors tried ( if searchparam is superior to 1, step will be progressively refined ).
### -- search = 1 : 'NStepSearch'.
### N is set by searchparam. It's the most well known of the MV search algorithm.
### -- search = 2 : Logarithmic search, also named Diamond Search.
### searchparam is the initial step search, there again, it is refined progressively.
### -- search = 3 : Exhaustive search.
### searchparam is the radius (square side is 2*radius+1). It is slow, but it gives the best results, SAD-wise.
### -- search = 4 : Hexagon search.
### searchparam is the range. (similar to x264).
### -- search = 5 : Uneven Multi Hexagon (UMH) search.
### searchparam is the range. (similar to x264).
### -- search = 6 : pure Horizontal exhaustive search.
### searchparam is the radius (width is 2*radius+1).
### -- search = 7 : pure Vertical exhaustive search.
### searchparam is the radius (height is 2*radius+1).
###
### preblur [bool, Default=true]
### -- Blurring before scene change detection on the clip to avoid affected by grain or not.
###
### info [bool, Default=false]
### -- Overlay the result of scene change detection on the clip or not.
###
###
###
### FFTypeList(tlFile, full)
### ----------------------
###
### tlFile [string, Default="FFTypeList.log"]
### -- The log file of frame type list.
###
### full [bool, Default=false]
### -- Generates list of only I frames or all frames.
###

Function SCDetect(clip c, string "scFile", int "thSCD1", int "thSCD2", float "mDiff", int "pel", int "search", int "searchparam", bool "preblur", bool "info"){

scFile = Default(scFile, "scFile.log")
thSCD1 = Default(thSCD1, 360)
thSCD2 = Default(thSCD2, 120)
mDiff = Default(mDiff, 2.5)
pel = Default(pel, 1)
search = Default(search, 4)
searchparam = Default(searchparam, 2)
preblur = Default(preblur, true)
info = Default(info, false)

last = preblur ? c.RemoveGrain(20, 0) : c
Assert( IsYV12 , "SCDetect needs YV12 input!" )

super = MSuper(pel=pel, chroma=false)
vector = super.MAnalyse(pelsearch=pel, search=search, searchparam=searchparam, chroma=false)
scMask = MSCDetection(vector, thSCD1=thSCD1, thSCD2=thSCD2).Crop(0,0,16,16)

SC_mD = mDiff
mean = Histogram(mode="Color").Crop(width+64, 64, 128, 128)

# faster with info=True
SCTrue = c.Subtitle("Scene change: true" )
SCFalse = c.Subtitle("Scene change: false")
info ? ConditionalFilter( last, SCTrue, SCFalse, "boolSC", "==", "true" ) : nop

sss = """
global boolSC =
\ (
\ (scMask.YPlaneMax == 255 ) &&
\ (
\ (mean.YDifferenceFromPrevious > SC_mD*3) ||
\ (
\ (mean.YDifferenceFromPrevious > SC_mD) &&
\ (mean.YDifferenceFromPrevious > (mean.YDifferenceToNext+mean.loop(0, 0, -1).YDifferenceToNext+mean.loop(0, 0, 1).YDifferenceToNext)/1.2)
\ )
\ )
\ )
(scFile != "nul") ? WriteFileIf( scFile, "boolSC==True", "current_frame" ) : nop
#info ? (boolSC) ? last.Subtitle("Scene change: true" ) : last.Subtitle("Scene change: false") : last # slower with info=True
return last
"""
return ScriptClip(sss, Args="scFile, scMask, SC_mD, mean, info")
}

Function FFTypeList(clip c, string "tlFile", bool "full"){

tlFile = Default(tlFile, "FFTypeList.log")
full = Default(full, false)
last = c

full ? WriteFileIf(tlFile, "true", "current_frame", "chr(32)+chr(FFPICT_TYPE)", append=false)
\ : WriteFileIf(tlFile, """ chr(FFPICT_TYPE)=="I" """, "current_frame", "chr(32)+chr(FFPICT_TYPE)", append=false)
}


AvsPmod macro

import wx
re=avsp.GetTextEntry(_('Start from first scene:'), True,
_('Select scene start'), 'check', 200)
if re == '':
return

filename = avsp.GetFilename(_('Select the scene file'), filefilter=
_('Log files') + '|*.log|' +
_('Log and Text files') + '|*.txt;*.log|' +
_('All files') + ' (*.*)|*.*')

if not filename:
return
self = avsp.GetWindow()
txt = self.GetTextFromFile(filename)[0]
txt = txt.strip()
first = re
bookmarkDict = {}
lines = txt.split('\n')
count = len(lines)

try:
for index, line in enumerate(lines):
s = line.strip()
if not s.isdigit():
raise
if first:
if index == 0:
bookmarkDict[int(s)] = 1
if index < count -1:
s = lines[index+1].strip()
if not s.isdigit(): break
bookmarkDict[int(s)-1] = 2
elif index % 2 == 0:
bookmarkDict[int(s)] = 1
if index < count -1:
s = lines[index+1].strip()
if not s.isdigit(): break
bookmarkDict[int(s)-1] = 2
elif index > 0 and index % 2 != 0:
bookmarkDict[int(s)] = 1
if index < count -1:
s = lines[index+1].strip()
if not s.isdigit(): break
bookmarkDict[int(s)-1] = 2
except:
bookmarkDict = {}
avsp.MsgBox(_('Error reading scenes'), _('Error'))

if bookmarkDict:
items = bookmarkDict.items()
for i, item in enumerate(items):
value, bmtype = item
self.AddFrameBookmark(value, bmtype, refreshVideo=False)

gispos
29th January 2021, 18:41
And then I have the macro 'Bookmarks from file.py' If you use it to open the log file, a bookmark is created for every scene change.

#mod by GPo 2017

import re
import cPickle

filename = avsp.GetFilename(_('Select a file'), filefilter=
_('All supported files') + '|*.txt;*.xml;*.ses;*.log;*.qp|' +
_('Chapters Text files') + ' (*.txt)|*.txt|'+
_('Matroska XML files') + ' (*.xml)|*.xml|' +
_('Celltimes files') + ' (*.txt)|*.txt|' +
_('AvsP Session files') + ' (*.ses)|*.ses|' +
_('Avisynth files') + ' (*.avs)|*.avs|' +
_('TFM log files') + ' (*.log)|*.log|' +
_('XviD log files') + ' (*.log)|*.log|' +
_('QP files') + ' (*.qp)|*.qp|' +
_('Timecode format v1 files') + ' (*.txt)|*.txt|' +
_('All files') + ' (*.*)|*.*')
if not filename:
return

lines = avsp.GetWindow().GetTextFromFile(filename)[0]

bookmarkDict = {}
Book_Ident = u'#Bookmarks:'

# parsing QP-file (GPo change for title in bookmarks) parse simple txt file
if not bookmarkDict:
try:
for index in lines.strip().split('\n'):
s = index.strip()
if s != '':
a = {}
title = ''
a = s.split(' ')
if a[0].isdigit():
if len(a) > 1:
title = str(a[1])
if len(a) > 2:
title = title + ' ' + str(a[2])
bookmarkDict[int(a[0])] = title
except:
bookmarkDict = {}

## parse Bookmarks from avs file. #Bookmarks: 32 ,122 MyTitle,544
def findBookmarks_txt():
txt = {}
txt = avsp.GetText(index=None, clean=False).split('\n')
for s in txt:
#if s.find(Book_Ident) > -1:
if s.strip().startswith(Book_Ident):
return s.strip(Book_Ident)
return ''

## Ein Leerzeichen im title erlaubt
if not bookmarkDict:
try:
ss = findBookmarks_txt()
if ss != '':
for index in ss.split(','):
s = index.strip()
if s != '':
a = {}
title = ''
a = s.split(' ')
if a[0].isdigit():
if len(a) > 1:
title = str(a[1])
if len(a) > 2:
title = title + ' ' + str(a[2])
bookmarkDict[int(a[0])] = title
except:
bookmarkDict = {}

#################################################################

# parsing Timecode format v1: place a bookmark on every starting frame
if not bookmarkDict:
if lines.startswith('# timecode format v1'):
match = re.search(r'^\s*assume\s*(\d*\.*\d+\.*\d*)', lines, re.M|re.I)
base_fps = (match.group(1) if match else 'unknown') + ' fps'
bookmarkDict[0] = base_fps
for line in lines.splitlines():
if line and line[0].isdigit():
start, end, fps = line.split(',')
bookmarkDict[int(start)] = fps + ' fps'
bookmarkDict[int(end)+1] = base_fps

# parsing SCXviD log
if not bookmarkDict:
try:
if lines.startswith('# XviD 2pass stat file'):
bookmarkDict=dict((i-3,'') for i,v in enumerate(lines.split('\n')) if v.startswith('i'))
except:
bookmarkDict = {}

# parsing TFM output
if not bookmarkDict:
if lines.startswith('#TFM '):
try:
stats = lines.split('# FORMAT:')
if len(stats)==5:
sectionslice = (0,(2,-2),(2,-4),(2,-4),(2,-1))
section = lambda sectionidx: stats[sectionidx].strip().split('\n')[sectionslice[sectionidx][0]:sectionslice[sectionidx][1]]
sectionisempty = lambda sectionidx: 'none detected' in stats[sectionidx]

frameindent = 4
frametitle = lambda line: line[line.find(' ',frameindent+1)+1:]
framenum = lambda line: int(line[1:line.find(' ',frameindent)])

dCombed = dict( (framenum(L), frametitle(L)) for L in section(1) ) if not sectionisempty(1) else {}
dGrouped = dict( (int(F), frametitle(L)) for L in section(2) for F in re.split('[\s,]',L[frameindent:])[:-2] ) if not sectionisempty(2) else {}
dPossible = dict( (framenum(L), frametitle(L)) for L in section(3) ) if not sectionisempty(3) else {}
dUBmatch = dict( (int(F),L[-1]) for L in section(4) for F in re.split('[\s,]',L[frameindent:-2]) ) if not sectionisempty(4) else {}
maxframe = max([max(d.keys()) if d.keys() else -1 for d in (dCombed, dPossible, dUBmatch)])
if maxframe == -1:
avsp.MsgBox(_('Not combed or out of order frames'), _('Bookmarks from TFM file'))
return
s=avsp.GetTextEntry( \
[_('Combed') + ' (%d)' % len(dCombed),\
_('Possible') + ' (%d)' % len(dPossible),\
_('u,b,out-of-order') + ' (%d)' % len(dUBmatch),\
'',\
_('Min frame:'),\
_('Max frame:')],\
[True,True,True,'','0',str(maxframe)],\
_('TFM log parser'),\
['check','check','check','sep','text','text'],\
250 )
if not s: return

if s[0]: bookmarkDict.update(dCombed)
if s[1]: bookmarkDict.update(dPossible)
if s[2]: bookmarkDict.update(dUBmatch)

try:
f1,f2=int(s[3]),int(s[4])
if f1!=0 or f2!=maxframe:
bookmarkDict=dict( (f,t) for (f,t) in bookmarkDict.items() if f1<=f<=f2 )
except:
pass

avsp.GetWindow().GetStatusBar().SetStatusText( _('%d frames imported') % len(bookmarkDict) )
except:
raise
avsp.MsgBox(_('[COMBED FRAMES] section could not be parsed'))
return

# parsing chapters text files
if not bookmarkDict:
timeList = re.findall(r'(\d+)=(\d+):(\d+):(\d+\.\d+)', lines)
if timeList:
fps = avsp.GetVideoFramerate()
titleDict = {}
for index, title in re.findall(r'(\d+)NAME=(.*)', lines, re.I):
titleDict[index] = title
for index, hr, min, sec in timeList:
sec = int(hr)*3600 + int(min)*60 + float(sec)
bookmark = int(round(sec*fps))
bookmarkDict[bookmark] = titleDict.get(index, '')

# parsing matroska xml files
if not bookmarkDict:
sections = re.findall(r'<ChapterAtom>(.*?)</ChapterAtom>', lines, re.I|re.S)
fps = avsp.GetVideoFramerate()
for text in sections:
timecode = re.search(r'<ChapterTimeStart>(\d+):(\d+):(\d+\.\d+)</ChapterTimeStart>', text)
if not timecode:
continue
title = re.search(r'<ChapterString>(.*?)</ChapterString>', text)
hr, min, sec = timecode.groups()
sec = int(hr)*3600 + int(min)*60 + float(sec)
bookmark = int(round(sec*fps))
bookmarkDict[bookmark] = title.group(1) if title else ''

# parsing celltime format - frame count content
if not bookmarkDict:
try:
for index in lines.strip().split():
bookmarkDict[int(index)] = ''
except:
bookmarkDict = {}

# parsing AvsP ssesion files
if not bookmarkDict:
try:
f = open(filename, 'rb')
session = cPickle.load(f)
except:
pass
f.close()
try:
if 'bookmarks' in session:
if 'bookMarkDict' in session:
for bookmark, btype in session['bookmarks']:
bookmarkDict[bookmark] = session['bookMarkDict'].get(bookmark, '')
else:
for bookmark, btype in session['bookmarks']:
bookmarkDict[bookmark] = ''
except:
pass

if bookmarkDict:
bookmarkList = bookmarkDict.items()
# Don't delete current bookmarks, update its title if supplied
#oldBookmarks = avsp.GetBookmarkList()
#for bookmark, title in bookmarkDict.items():
#if bookmark in oldBookmarks:
#if title:
#bookmarkList.append((bookmark, title))
#else:
#bookmarkList.remove((bookmark, title))
# GPo delete old bookmarks
avsp.GetWindow().DeleteAllFrameBookmarks()
avsp.SetBookmark(bookmarkList)
else:
avsp.MsgBox(_('Bookmark file unrecognized!'), _('Error'))

Shinkiro
29th January 2021, 19:23
gispos Thank, I'll try

gispos
29th January 2021, 21:43
gispos Thank, I'll try

And then I found this macro.
Created from the bookmarks clips, so:

c0=Trim(0, 74)
c1=Trim(75, 190)
c2=Trim(191, 287)
c3=Trim(288, 329)
c4=Trim(330, 498)
c5=Trim(499, 614)
c6=Trim(615, 784)

# GPo 2020
import wx

bmlist = avsp.GetBookmarkList(title=False)
if not bmlist:
wx.MessageBox(_('No bookmarks defined.'), _('Error'), style=wx.OK|wx.ICON_ERROR)
return

bmlist.sort()
count = len(bmlist)
txt = 'c0=Trim(0, {})\n'.format(bmlist[0]-1)
c = 1
for i in xrange(count):
if i < count-1:
start = bmlist[i]
end = bmlist[i+1]-1
else:
start = bmlist[i]
end = 0
txt += 'c{}=Trim({}, {})\n'.format(c, start, end)
c += 1

avsp.InsertText(txt, pos=None)

real.finder
30th January 2021, 00:31
added your macros to https://github.com/realfinder/AvsP-macros

gispos
30th January 2021, 21:35
added your macros to https://github.com/realfinder/AvsP-macros
Nice collection, I have to take a closer look. Something like that is also helpful to realize your own ideas.

I would also like to thank you for your engagement.
Ference is probably most responsible for the existence and further development, but without people like you a lot would be more complicated. :thanks:

gispos
2nd February 2021, 18:30
AvsPmod 2.6.6.5 (https://github.com/gispos/AvsPmod/releases)

* The filter exclusion list of the sliders has been revised, now also works with multiple identical filters.
-- my proposition for exclusion list (trim crop prefetch and 'Your SourceFilters'). The list can be changed options > User sliders
* The filter exclusion list can be activate or deactivate in the context menu of the sliders.
* Some changes to preview filter and sliders:
-- preview filter index is showing on the sliders
-- the decision for 'use' direct slider update improved (direct update only if slider in current preview filter).
* Update database, add 'ffms2_FFMS2', 'GamMac', 'TemporalDegrain2', update 'RGBAdjust', SmoothCurveC3
* Some other changes


In addition to this one. (https://forum.doom9.org/showthread.php?t=182327)
I added a few parameters from SmoothCurve to 'SmoothCurveC3'.


function SCurve3(string "name", int "low", int "a1", int "a2", int "b1", int "b2", int "c1", int "c2", int "high"){
name = default(name, "curve")
low = default (low, 0)
a1 = default(a1, 64)
a2 = default(a2, 64)
b1 = default(b1, 128)
b2 = default(b2, 128)
c1 = default(c1, 168)
c2 = default(c2, 168)
high = default(high, 255)
return "0-"+string(low)+";" +string(a1)+"-"+string(a2)+";" +string(b1)+"-"+string(b2)+";" +string(c1)+"-"+string(c2)+ ";255-"+string(high)
}

function SmoothCurveC3(Clip clp, string "Ycurve", int "Y_Low", int "y_a1", int "y_a2", int "y_b1", int "y_b2", int "y_c1", int "y_c2", int "Y_High",
\ string "Ucurve", int "U_Low", int "u_a1", int "u_a2", int "u_b1", int "u_b2", int "u_c1", int "u_c2", int "U_High",
\ string "Vcurve", int "V_Low", int "v_a1", int "v_a2", int "v_b1", int "v_b2", int "v_c1", int "v_c2", int "V_High",
\ int "TVRange", bool "limiter", int "mode", int "interp", int "dither", bool "HQ", int "useMT", int "useOpt", bool "debug")
{
mode = default(mode, 100)
TVRange = default(TVRange, 0)
limiter = default(limiter, false)
interp = default(interp, 100)
dither = default(dither, 75)
HQ = default(HQ, false)
useMT = default(useMT, 0)
useOPT = default(useOpt, 0)
debug = default(debug, false)
clp
SmoothCurve(Ycurve=SCurve3("Ycurve", Y_Low, y_a1, y_a2, y_b1, y_b2, y_c1, y_c2, Y_High),
\ Ucurve=SCurve3("Ucurve", U_Low, u_a1, u_a2, u_b1, u_b2, u_c1, u_c2, U_High),
\ Vcurve=SCurve3("Vcurve", V_Low, v_a1, v_a2, v_b1, v_b2, v_c1, v_c2, V_High),
\ screenW=clp.Width(), screenH=clp.Height(), mode=mode, TVRange=TVRange, limiter=limiter,
\ interp=interp, dither=dither, HQ=HQ, useMT=useMT, useOpt=useOpt, debug=debug)
}

gispos
6th February 2021, 22:35
AvsPmod 2.6.6.6 (https://github.com/gispos/AvsPmod/releases)

* Added predefined 'Default dark' editor theme
* Also added slider window custom theme colors
-- program options > user slider > 'Enable slider window custom theme colors'
-- the colors can be set under options > Fonts and colors > 'Advanced 2'

StainlessS
7th February 2021, 00:24
Default Dark Editor Theme,
Oooh, lovely.
Tanks!

FranceBB
7th February 2021, 09:22
Uuuu I didn't see that coming!
Thanks, now I can have everything in dark mode! :D (except Doom9 :'( )
I look forward to try it. :D

gispos
7th February 2021, 10:25
The program itself is not 'Dark Themed'. Unfortunately not possible with wxPython.
But the editor and the slider window are dark, it's more pleasing to the eyes.

FranceBB
7th February 2021, 10:36
The program itself is not 'Dark Themed'. Unfortunately not possible with wxPython.
But the editor and the slider window are dark, it's more pleasing to the eyes.

Ah, I see. Well, yeah, it's still something. :)

JKyle
7th February 2021, 11:01
It feels like an unexpected gift.
I like it a lot. :)

https://i.imgur.com/spoCrzR.jpg

:thanks:

gispos
7th February 2021, 15:12
It feels like an unexpected gift.
I like it a lot. :)

That pleases me.
Thanks for the picture, if I had posted it ... He just wants to show off. :)

JKyle
7th February 2021, 17:20
He just wants to show off. :)

You may well. :D

VoodooFX
8th February 2021, 00:32
Thanks, now I can have everything in dark mode! :D (except Doom9 :'( )

Lucky for you, atm I'm toying with the darkmode userscript, here you can have a dark mode for doom9: Darkmode User (https://greasyfork.org/en/scripts/421332-darkmode-user). ;)

StainlessS
8th February 2021, 10:40
There is also Dark Reader Addon for Firefox/Chrome, as in this thread:- https://forum.doom9.org/showthread.php?t=177066&highlight=textarea

Although D9 is one of the few sites that I prefer non Dark mode, as I find the visited links color too similar to non visited links.
Numerically close dark colors harder to distinguish than close light colors (I wonder if VoodooFX takes that into account).
[there is some kind of tweaking in Dark Reader, but I ain't tried that]

https://i.postimg.cc/VSBTH0jg/Dark-Reader.jpg (https://postimg.cc/VSBTH0jg)

VoodooFX
8th February 2021, 13:10
Although D9 is one of the few sites that I prefer non Dark mode, as I find the visited links color too similar to non visited links.
Numerically close dark colors harder to distinguish than close light colors (I wonder if VoodooFX takes that into account).
[there is some kind of tweaking in Dark Reader, but I ain't tried that]


I spent only few minutes adding doom9 "support" to script, if you have ideas how to better doom9 then you can tweak it.
It's basically a wrapper to universal darkmode.js + correction funcs specific to sites.
I made a thread to avoid off topic here: [Userscript] Darkmode User - Dark theme (https://forum.doom9.org/showthread.php?p=1935549).

(Darkreader is something similar, userscript is instant fast, Darkreader plugin takes a second [try to switch on/off] )

quantum
10th February 2021, 09:13
In the script editor, mouse wheel does not scroll the text up or down, regardless of settings. The only thing it seems able to change is the video. Is this expected?

gispos
10th February 2021, 17:00
In the script editor, mouse wheel does not scroll the text up or down, regardless of settings. The only thing it seems able to change is the video. Is this expected?
What settings do you use? If the script has the focus, the text should also be scrolled with the mouse wheel.

quantum
10th February 2021, 17:42
I had tried every option related to wheel I could find. After you said it should work, I tried toggling "Only allow a single instance" which was on.

Then for the first time the wheel started working and now it works even if I toggle single instance on or off.

Anyway I don't need to know why, just glad it works! Thanks for the great work!

gispos
10th February 2021, 18:36
I had tried every option related to wheel I could find. After you said it should work, I tried toggling "Only allow a single instance" which was on.

Then for the first time the wheel started working and now it works even if I toggle single instance on or off.

Anyway I don't need to know why, just glad it works! Thanks for the great work!
Made a few attempts with a fresh AvsPmod (unzipped into a new directory).
Can't produce the behavior, but it doesn't matter, the main thing is that everything works now. :)

lansing
11th February 2021, 08:02
I got a problem playing 4k video while dragging around the preview screen, the program will seem like frozen with the video still playing, and clicking on anything will have no response.

gispos
11th February 2021, 17:30
I got a problem playing 4k video while dragging around the preview screen, the program will seem like frozen with the video still playing, and clicking on anything will have no response.
I don't think this has anything to do with AvsPmod.
The video itself, source filter, graphics memory full, ram full, avisynth filter... etc.
The strangest things can happen with graphic memory or if avisynth does not give a return, AvsPmod freezes.

If you tell me that this is the case with all videos and sourcfilter, only then do I worry if AvsPmod is the culprit.

I can play 4K videos with various filters cube() or DGHDRToSDR and McDegrainSharp and zoom in like crazy or move the preview screen without getting stuck.
But then I also have 2K videos that make problems without a filter. AvsPmod then reacts to no inputs for 2 to 3 seconds because the system is busy. Then the problem is the video or source filter.

But I will still see if I can change the delayed response to an input when the system is busy.

gispos
13th February 2021, 19:23
AvsPmod 2.6.6.7 (https://github.com/gispos/AvsPmod/releases)

* New playback function Video > Play video > 'Use separate thread'
- Is switched on as standard, deactivate in case of problems or to compare.
- So far the playback runs asynchronously in the main thread, if the function is activated, a separate thread is used for it.
-
- The advantages are an immediate reaction to input from the mouse or keyboard.
- Disadvantages:
-- Python threads behave differently than I am usually used to, therefore I can not yet estimate whether there are further disadvantages or even insurmountable problems.
-- Unexpectedly! So far it's been going smoothly for me.
-----
* Fixed, I think: The playback continues if avisynth does not return a frame. (in both playback routines)
* Fixed, slider window radio button labels now react to a mouse click (went lost through custom colors)

bruno321
15th February 2021, 09:13
Is there a way for bookmarks to be made on the basis of timestamps rather than frame numbers?

gispos
15th February 2021, 17:05
Is there a way for bookmarks to be made on the basis of timestamps rather than frame numbers?
I don't know what you're up to, but the bookmarks are only saved with the frame number.

Converting timecode from a file into bookmarks or the other way should be possible.
In AvsPmod there is also a macro that converts matroska xml files or chapter text files or timecode v1 files into bookmarks.
Just try 'Import bookmarks from file.py'

l00t
15th February 2021, 21:05
Hey gispos, thank you for your continous work on AvsPmod making it better. May I suggest one thing to be improved? When the program calculates YUV to RGB conversion (for preview) it assumes a colormatrix based on the resolution, however, it could be better if it would be read from the source. Many source filters pass this value (or should pass this) to the AVS frameserver. Could you please make preview display based on this?

Thank you for your efforts!

StainlessS
15th February 2021, 21:17
Many source filters pass this value (or should pass this) to the AVS frameserver.
Really, could you name a few [you might be able to extract that info from ffms2, but what else? ].

EDIT: And DGIndex/Mpeg2Source, if you scan d2v [although often no more than guesswork by DGIndex]..

real.finder
15th February 2021, 21:53
Hey gispos, thank you for your continous work on AvsPmod making it better. May I suggest one thing to be improved? When the program calculates YUV to RGB conversion (for preview) it assumes a colormatrix based on the resolution, however, it could be better if it would be read from the source. Many source filters pass this value (or should pass this) to the AVS frameserver. Could you please make preview display based on this?

Thank you for your efforts!

Really, could you name a few [you might be able to extract that info from ffms2, but what else? ].

EDIT: And DGIndex/Mpeg2Source, if you scan d2v [although often no more than guesswork by DGIndex]..

it first need this https://github.com/AviSynth/AviSynthPlus/issues/197 to be done, or gispos have to use z_ConvertFormat for this

l00t
15th February 2021, 22:03
Really, could you name a few [you might be able to extract that info from ffms2, but what else? ].

EDIT: And DGIndex/Mpeg2Source, if you scan d2v [although often no more than guesswork by DGIndex]..

I think FFMS2, L-SMASH, and DGSource are capable of doing this (or at least they work fine under VapourSynth, colormatrix, primaries, and transfer are all passed and readable; I don't see a big obstacle making it also functional under AVS if they are not already).

StainlessS
15th February 2021, 23:05
FFMS2 makes a few local or maybe (Global) variables available, as used by the TheFluff ffms2 avs script that displays info on frame.
Not aware of LSmash doing the same in Avisynth.
DGIndex, has that info in d2v as text, would need scan and extract to access it.
DGSource, no idea.
The ability seems to be vapoursynth specific, although avs+ now has frame properties, but would need something to be implemented in the source filters
and would not work in avs v2.6 std.

EDIT: Actually, dont seem to be in the d2v

DGIndexProjectFile16
4
D:\DVD\P\VIDEO_TS\VTS_01_1.VOB
D:\DVD\P\VIDEO_TS\VTS_01_2.VOB
D:\DVD\P\VIDEO_TS\VTS_01_3.VOB
D:\DVD\P\VIDEO_TS\VTS_01_4.VOB

Stream_Type=1
MPEG_Type=2
iDCT_Algorithm=6
YUVRGB_Scale=1
Luminance_Filter=0,0
Clipping=0,0,0,0
Aspect_Ratio=16:9
Picture_Size=720x576
Field_Operation=0
Frame_Rate=25000 (25/1)
Location=0,0,3,4403d

d00 5 0 2048 0 1 1 b2 b2 92 b2 b2 a2 b2 b2 a2 b2 b2 a2 b2 b2 a2
900 5 0 45056 0 1 1 32 32 92 b2 b2 a2 b2 b2 a2 b2 b2 a2 b2 b2 a2
900 5 0 90112 0 1 1 32 32 92 b2 b2 a2 b2 b2 a2 b2 b2 a2 b2 b2 a2

# ...


although Colorimetry is in the log (if selected for output)

Stream Type: MPEG2 Program
Profile: main@main
Frame Size: 720x576
Display Size: [not specified]
Aspect Ratio: 16:9 [3]
Frame Rate: 25.000000 fps
Video Type: PAL
Frame Type: Interlaced
Coding Type: B
Colorimetry: BT.470-2 B,G* # <<<<<<<<< Asterisk ('*') means DGIndex guessed it [very common]
Frame Structure: Frame
Field Order:
Coded Number: 184618
Playback Number: 2
Frame Repeats: 0
Field Repeats: 0
VOB ID: 7
Cell ID: 5
Bitrate:
Bitrate (Avg):
Bitrate (Max):
Audio Stream: 80: AC3 2/0 192
Timestamp: 0:20:11
Elapsed: 0:01:00
Remain: FINISH
FPS:
Info:

StvG
16th February 2021, 15:35
@StainlessS, ffms2 - https://forum.doom9.org/showthread.php?p=1925683#post1925683
lsmash - https://forum.doom9.org/showthread.php?p=1931083#post1931083 ( built with the latest commits including "AviSynth: set frame properties" https://github.com/HolyWu/L-SMASH-Works/commits/master )
Mpeg2Source/d2vsource - https://github.com/Asd-g/MPEG2DecPlus ( there is commit "Set frame properties" https://github.com/Asd-g/MPEG2DecPlus/commit/30508c32477cad7e0dade724b3faa6d36911b0e5 )
The latest official DGSource also set frame properties.
There is a frame property for the matrix in every of those source filters.

gispos
16th February 2021, 17:24
Well, now read out the frame properties for each frame and then reinitialize the display clip for each frame ... That can't work.

If so, then it has to be looped through as a clip property by avisynth and I don't think that's possible.
What if clips are combined, or various filters are in between, what kind of Rec should then be used.

StainlessS
16th February 2021, 17:44
There is a frame property for the matrix in every of those source filters.
OOoh, people have been busy, I guess I lose interest when I see stuff like [I dont bother reading it :( ]
- ffmpeg n4.4@9b72cea446;
- zlib 1.2.11;
- dav1d 0.7.1;
- set frame properties - _DurationNum (int), _DurationDen (int), _AbsoluteTime (float), _SARNum (int), _SARDen (int), _Matrix (int), _Primaries (int), _Transfer (int), _ChromaLocation (int), _ColorRange (int), _PictType (string), _FieldBased (int), MasteringDisplayPrimariesX (float array), MasteringDisplayPrimariesY (float array), MasteringDisplayWhitePointX (float), MasteringDisplayWhitePointY (float), MasteringDisplayMinLuminance (float), MasteringDisplayMaxLuminance (float), ContentLightLevelMax (float), ContentLightLevelAverage (float).

l00t
16th February 2021, 20:26
Well, in principle the first frame should do it, as in most cases it will be the same over the entire footage.

What if clips are combined, or various filters are in between, what kind of Rec should then be used.

colormatrix should be conserved (all filters should respect it and changes should be followed) and different clips could only be merged if the matrices are matched/converted previously... otherwise you can end up with funny results...

PS: VSEditor is handling this in a quite correct way, so it's not impossible...

gispos
17th February 2021, 16:49
Well, in principle the first frame should do it, as in most cases it will be the same over the entire footage.
.
Now it has arrived, sometimes takes a little longer when there is a traffic jam. ;)

Edit: Are the names for the matrix always the same, or does everyone cook their own thing?

StainlessS
17th February 2021, 19:30
Edit: Are the names for the matrix always the same, or does everyone cook their own thing?

Also, is an asterisk tagged on end of name [meaning guessed] a standard habbit ?
[ie beware, maybe not exact string match to end of string if has trailing asterisk, also if asterisk is it
sometimes space separated ?]
( string parsing )

l00t
18th February 2021, 10:26
Names are standardized and determined by the ITU, as far as I know all filters/frameservers rely on their naming scheme.

Edit: Are the names for the matrix always the same, or does everyone cook their own thing?

pinterf
18th February 2021, 16:57
See http://avisynth.nl/index.php/Internal_functions#Functions_for_frame_properties
For quickly checking them use propShow.

gispos
18th February 2021, 17:11
See http://avisynth.nl/index.php/Internal_functions#Functions_for_frame_properties
For quickly checking them use propShow.
Thanks. That's exactly what I meant. A standard name for the matrix. (_Matrix)


Reserved frame property names
There are quasi-standard frame property names which are used widespread.
_Matrix
int _Matrix
Matrix coefficients as specified in ITU-T H.265 Table E.5


Edit: But that we still take time, I'm busy with the threads.

stax76
21st February 2021, 09:14
I would like to request the addition of a UTF-8 manifest to enforce UTF-8 usage because ANSI encoding is a thing of the past abandoned as default by any modern application.

And I would also like to request a new File menu option to support legacy applications:

File > Save as ANSI

If anybody wants a tool to be patched with UTF-8 manifest, I can help with that since I have a script for it.

StaxRip has patched avs2pipemod and ffmpeg, all other tools already have native UTF-8 support as listed in the wiki:

https://github.com/staxrip/staxrip/wiki/AviSynth-Unicode-support-on-Windows-10-1903

So there is a clear trend, more and more applications enforce UTF-8 usage.

gispos
22nd February 2021, 17:33
I would like to request the addition of a UTF-8 manifest to enforce UTF-8 usage because ANSI encoding is a thing of the past abandoned as default by any modern application.

And I would also like to request a new File menu option to support legacy applications:

File > Save as ANSI

If anybody wants a tool to be patched with UTF-8 manifest, I can help with that since I have a script for it.

StaxRip has patched avs2pipemod and ffmpeg, all other tools already have native UTF-8 support as listed in the wiki:

https://github.com/staxrip/staxrip/wiki/AviSynth-Unicode-support-on-Windows-10-1903

So there is a clear trend, more and more applications enforce UTF-8 usage.
I'll take a look, but I'm not confident.
Python 2 does not have a native Utf-8, and I doubt whether the editor and its lexer energy support utf-8.
It is also useless to save the script in utf-8 if it has to be converted to Ansi when it is opened.
Or there will be a confused utf-8... only Ascii.

But I don't want to be too pesemistic now, haven't tried it yet.

Edit:
Maybe should have looked before I gave an answer. :)
So if a script is opened with utf-8, it is saved again with utf-8. If I have seen it correctly now, a new script will be saved with the system default encoding (prefered).

I will definitely take a closer look at this and if possible provide utf-8

Edit 2:
I experimented a bit and successfully saved utf-8 with bom :)

stax76
22nd February 2021, 20:30
Thanks for investigating.

I'm sorry that it's not easy migrating to Python 3.

I think most MS tools support BOM but generally BOM is not very popular, it's fine as an option but should be avoided as the default choice.

gispos
22nd February 2021, 22:13
Thanks for investigating.

I'm sorry that it's not easy migrating to Python 3.

I think most MS tools support BOM but generally BOM is not very popular, it's fine as an option but should be avoided as the default choice.
AvsPmod has always saved new scripts in utf-8. Only other programs do not recognize this until there are characters outside of the ASCII table.
When I set the bom the script is recognized as utf-8 with bom. Ascii is just the same as utf-8 Latin1, therefore Ansi is recognized by other programs.
Or the python encoder refuses to encode utf-8 if the characters are only within Ascii

You can test it.
Paste a few Japanese characters into a new script and save it. It is recognized as utf-8 with bom.

Why you don't accept Ansi in your tools? It is not a problem to process both. Isn't a hassle.

Edit:
Save a file with only Ascii characters with Notepad++ as utf-8 without bom. And then open it, Ansi is displayed as the coding.

Edit 2:
https://github.com/staxrip/staxrip/wiki/AviSynth-Unicode-support-on-Windows-10-1903
How do you want to recognize Ansi?

On Windows 10 1903 or higher all these apps expect AviSynth scripts to be UTF-8 encoded, ANSI encoded scripts will cause errors.

Fjord
22nd February 2021, 23:26
EDIT1: The crash was due to a bug in RemoveDirt 0.9.2, corrected by pinterf in RemoveDirt 0.9.3. The script shown here does not crash with the new RemoveDirt.dll 0.9.3.
--------------------
I started getting crashes when I added a resizer at the start of my film restoration script for ProRes HQ 10-bit scans. It turns out not related to the input or the resizer, but rather the width of the clip going through the script. Height doesn't seem to cause the crash. I have boiled it down to the following script, with ColorBarsHD as input, which crashes AvsPmod (v2.6.6.6 or .7 x64), but runs ok in VirtualDub2 (build 44282 x64) -- both using AviSynth+ 3.7.0 (r3382 x64). Since this appears to be an AvsPmod issue, I post here -- Let me know if I should be posting somewhere else.

AvsPmod crashes hard (access violation) on the following simplified film restoration script, for 10-bit source (ie YUV444P10, YUV422P10, YUV420P10), when frame width is multiple of 2 or 4. AvsPmod exits abruptly when F5 is pressed, or with first advance to next frame.

However, it runs fine in VirturalDub2, or when frame width is multiple of 8 -- or the source is 8-bit. The frame height doesn't seem to matter. The crashes don't seem to leave a useful traceback, and I am not familiar with AviSynth/AvsPmod debugging, so I don't know where the problem occurs.

Plugins used are latest pinterf x64 versions of MVTools2 (v2.7.44 20201214), RGTools (v1.1 20210104), RemoveDirt (v0.9.2 20190324) -- loaded manually, directly from the unzipped downloads.

The only error information I get are an AvsPmod error pop-up (most times). The first occurs if AvsPmod opens and runs the script on startup:

https://drive.google.com/thumbnail?id=14Ih7k5fnIHUNciTZYC0qh41QQhIewJ2J&sz=w400 (https://drive.google.com/uc?export=view&id=14Ih7k5fnIHUNciTZYC0qh41QQhIewJ2J)

The second is when the script is run using F5 key:
https://drive.google.com/thumbnail?id=18qJ6jTM80zh8MxCnIbqcIczKGk3hPPAd&sz=w400 (https://drive.google.com/uc?export=view&id=18qJ6jTM80zh8MxCnIbqcIczKGk3hPPAd)

I did get the following AviSynth warning message on one test run, when I enabled logging with SetLogParams(), but mostly no error messages or warnings for crashes.
WARNING: A plugin or the host application might be causing memory leaks.

I removed all other code and filters in the script that didn't make a difference for this example.

Does this cause a crash for anyone else?
What steps should I take to find the cause of the crash?

Stripped-down reproducible error script.
/*

This script crashes AvsPmod (v2.6.6.7 x64), but runs ok in VirtualDub2 build 44282
both running AviSynth+ 3.7.0 (r3382, 3.7, x86_64)

This script is a stripped-down version of a johnmeyer film restoration script, adapted for high bit depth (10-bit)

*/

ClearAutoloadDirs() # clear autoloader list, to manually load plugins

PluginsFolder = "C:\Users\DRC\Documents\8mm\AVISynth\Plugins"

LoadPlugin(PluginsFolder + "MVtools2\mvtools-2.7.44-with-depans20201214\x64\mvtools2.dll")
# pinterf v2.7.44 (20201214) x64

LoadPlugin(PluginsFolder + "RgTools\RgTools-v1.1\x64_LLVM_build\RgTools.dll")
# pinterf v1.1 (20210104) x64 LLVM Clang

LoadPlugin(PluginsFolder + "RemoveDirt\RemoveDirt-0.9.2\x64\RemoveDirt.dll")
# pinterf v0.9.2 (20190324) x64

#~ Wsrc2 = 888 Hsrc2 = 640 # 888x640 runs ok -- width 888 & height 640 multiples of 8
#~ Wsrc2 = 890 Hsrc2 = 640 # 890x640 CRASHES AvsPmod -- width 890 is multiple of 2, height 640 multiples of 8
Wsrc2 = 892 Hsrc2 = 640 # 892x640 CRASHES AvsPmod -- width 892 is multiple of 4, height 640 multiples of 8

src2 = colorbarsHD( Wsrc2, Hsrc2, pixel_type="YUV444P10" ).killaudio()

stabcrop = RemoveDirtMC( src2, limit=51, _grey=FALSE, show=FALSE )

return stabcrop

#===================================================================================================

function RemoveDirtMC( clip input, int "limit", bool "_grey", bool "show" )
{

prefiltered = RemoveGrain( input, 2 )
superfilt = MSuper( prefiltered, hpad=32, vpad=32, pel=2 )
super = MSuper( input, hpad=32, vpad=32, pel=2 )

bv1 = MAnalyse( superfilt, isb=true, blksize=16, overlap=2, delta=1, truemotion=true )
fv1 = MAnalyse( superfilt, isb=false, blksize=16, overlap=2, delta=1, truemotion=true )

backw = MFlow( input, super, bv1 )
forw = MFlow( input, super, fv1 )

clp = interleave( forw, input, backw )

clensed = clp.Clense()
alt = clp.RemoveGrain( 2 )

clp = RestoreMotionBlocks( clensed, clp, alternative=alt, \
pthreshold=6, cthreshold=8, gmthreshold=40, \
dist=3, dmode=2, debug=false, noise=limit, noisy=4, grey=_grey )

clp = clp.SelectEvery( 3, 1 ) # select every third frame, starting at frame 1 (second frame)

return clp
}

When I verified the crash with the above code, using load script in a clean AvsPmod (no other tabs), it does crash, and interestingly the preview window is corrupted and shows some slider/toggles that I did not create, and have not seen before:
https://drive.google.com/thumbnail?id=1mZb1-GutcZ1vWvk1eUss3Cj-QBJMWnS2&sz=w400 (https://drive.google.com/uc?export=view&id=1mZb1-GutcZ1vWvk1eUss3Cj-QBJMWnS2)

Where did these come from?
EDIT2: The spurious slider toggles came from forum [URL=...] [IMG] and [CODE] tags in my avs script comments, that AvsPmod parsed as slider tags.

gispos
23rd February 2021, 17:14
Hello Fjord,
I just tested it, like you crashed.
In VirtualDub it works, with 8 bit it works that put me on the right track. Because internally AvsPmod only works with 8 bits, so errors caused by a different bit color resolution are hardly possible.

VirtualDub2 uses a different avisynth interface (vfw).
So I tried AviSource with success.

In a new script (tab) open your script with AviSource("your script")
The error must probably come from avisynth.

pinterf
23rd February 2021, 17:52
More specifically the error comes from RemoveDirt.dll, which I'm gonna fix soon (an SSE2 load from unaligned address caused a C0000005 exception there)
EDIT: check https://github.com/pinterf/RemoveDirt/releases

Fjord
23rd February 2021, 18:56
Thanks gispos for confirming the crash and clarifying that AvsPmod only uses 8-bits.
Thanks Ferenc for identifying RemoveDirt.dll (RepairMotionBlocks) as the cause of the crash, and the super quick fix -- new version of RemoveDirt 0.9.3.

My script now runs fine, also with odd frame dimensions (non-mod2) for YUV444P10. (mod2 of course required for YUV422P10 or YUV420P10).
I will mark my crash post as resolved.

gispos
23rd February 2021, 18:58
That was fast :)

Fjord
23rd February 2021, 19:34
gispos, I figured out where the odd slider/toggles came from, at the bottom of my crash post above. It's a markup conflict. :rolleyes:

To verify my script in the crash post, I literally pasted my entire Doom9 post from the post edit window into a new .avs file, and marked the non-code text as comments with # or /*. When I ran the script in AvsPmod, AvsPmod interpreted the URL, IMG and CODE post markup (in brackets) in the post as AvsPmod slider toggle codes!

I can't show how this now looks in the script, because Doom9 interprets them as post markup. But now there are "URL=1" and "IMG=1" (in brackets) in the script, where the URL= and IMG markup had been for my images. Weird!

(anybody know how to display a literal bracket character in a Doom9 post without being interpreted as start of a post markup?)

videoh
23rd February 2021, 20:59
Here are some escaped brackets: [lala]

Use the noparse tag around the desired text.

Fjord
23rd February 2021, 21:24
Thanks videoh for the noparse tip: xxx ;)

Is there a similar "noparse" escape in AvsPmod, to "comment out" slider tags, so they don't get used? Even better, a noparse toggle, to turn off and on display of slider sections?

videoh
23rd February 2021, 21:33
Don't know about AvsPmod. Hopefully author will enlighten us.

gispos
24th February 2021, 17:23
Thanks videoh for the noparse tip: xxx ;)

Is there a similar "noparse" escape in AvsPmod, to "comment out" slider tags, so they don't get used? Even better, a noparse toggle, to turn off and on display of slider sections?
Ok, /* (Block comment) will be ignored. # (Comment) works corectly.
Seems to be a minor bug or was ignored. This is placed at the very end of the todo list.

You just have to stick to certain rules and [< >] is reserved for user sliders. It's not an HTML editor. ;)

FranceBB
24th February 2021, 18:35
Ok, /* (Block comment) will be ignored. # (Comment) works corectly.
Seems to be a minor bug or was ignored. This is placed at the very end of the todo list.

Wait, what?

I generally use

Some code

#this is a comment

some code

however when I have to comment out large parts of a huge script, I use

Some code

/*
commented out stuff
commented out stuff
commented out stuff
*/

some code


Are you actually saying that you're planning to remove /* */ support or did I get it wrong?
'cause so far it has been working like a charm for me.

Fjord
24th February 2021, 22:09
The forum tags in my script were definitely unintentional, so I have no interest in protecting that sort of tag. The forum tags were in a block comment in my script, and were parsed as section toggle tags by AvsPmod.

I checked the parsing of slider tags in script comments, and confirm that slider, separator and section toggle tags [< >] and [ ] [/ ], are active inside block comments /* */ as well as in script code. They are not active in # or #~ comments.

gispos
24th February 2021, 23:44
Wait, what?

I generally use

Some code

#this is a comment

some code

however when I have to comment out large parts of a huge script, I use

Some code

/*
commented out stuff
commented out stuff
commented out stuff
*/

some code


Are you actually saying that you're planning to remove /* */ support or did I get it wrong?
'cause so far it has been working like a charm for me.

No, no no fear. :)
It's about the user slider characters [< >] which are also incorrectly found in a /* block comment.

FranceBB
25th February 2021, 09:19
Ah, got it. No problem then. :D

pcroland
25th February 2021, 21:53
Hi!

I updated to the latest version (2.6.6.7) and noticed that framestepping with the arrow keys is really slow. I'm working on a project where I have tons of plugins and scripts being used so the initial load takes a long time, but playing the script works fine (with ~25fps). In the current version playing it works fine but framestepping is really slow, like 2-3fps (holding down arrow). I checked some versions and 2.6.6.0 introduced the slowdown. I tried turning off "Constantly update video while dragging", "Refresh preview automaticaly" and "Video > Video play > Use separate thread" but none of them solved the issue.

Also, could someone explain what "Constantly update video while dragging" and "Refresh preview automaticaly" actually do? The first reloads all the plugins for any kind of frame step and the second one also but when I switch tabs?

I noticed that "Load fonts and colors backup" does not restore the ticked monospace fonts option. Is that on purpose?

Another bug is when you open the sidebar with a lot of plugins, it's really laggy to scroll in them with both the mouse wheel and dragging the bar. Resizing the image window is also laggy if the sidebar is opened: https://i.kek.sh/rzVUZxLMrjB.gif

And I have a suggestion btw: It would be nice if the FPS value would be a little more precise. For example when I have 23.976fps, you can't know if it's proper 24000/1001 or 23976/1000 FPS just by looking at the FPS number.

gispos
26th February 2021, 18:51
Hi!

I updated to the latest version (2.6.6.7) and noticed that framestepping with the arrow keys is really slow. I'm working on a project where I have tons of plugins and scripts being used so the initial load takes a long time, but playing the script works fine (with ~25fps). In the current version playing it works fine but framestepping is really slow, like 2-3fps (holding down arrow). I checked some versions and 2.6.6.0 introduced the slowdown. I tried turning off "Constantly update video while dragging", "Refresh preview automaticaly" and "Video > Video play > Use separate thread" but none of them solved the issue.
It's not going any slower than usual for me.
But I look at that. Try turning off the zoom 'Antialiasing'
Edit:
Test that with a fresh AvsPmod.
Maybe something got mixed up with the keyboard shortcuts and two functions are carried out.

Also, could someone explain what "Constantly update video while dragging" and "Refresh preview automaticaly" actually do? The first reloads all the plugins for any kind of frame step and the second one also but when I switch tabs?

Constantly update video while dragging. This is available as a tooltip when you move the mouse over it.
'Update the video constantly when dragging the frame slider'

Refresh preview automatically. This is available as a tooltip when you move the mouse over it.
'Refresh preview when switch focus on video window or change a value in slider window'
open eyes ;)

I noticed that "Load fonts and colors backup" does not restore the ticked monospace fonts option. Is that on purpose?

Well if I have time to spare.;)

Another bug is when you open the sidebar with a lot of plugins, it's really laggy to scroll in them with both the mouse wheel and dragging the bar. Resizing the image window is also laggy if the sidebar is opened: https://i.kek.sh/rzVUZxLMrjB.gif

I've just tried 100 entries. I expanded all entries so that there were 300 entries.
Everything runs smoothly for me, there is no jerking (Win7). I suspect that your system is causing the problem.
But I'll look at it again.

And I have a suggestion btw: It would be nice if the FPS value would be a little more precise. For example when I have 23.976fps, you can't know if it's proper 24000/1001 or 23976/1000 FPS just by looking at the FPS number.
Video> Video information, as it is specified in more detail.

And now I almost forgot:
Please go to the options for the user sliders and enter 'trim' in the text field below. And enter all filters (with spaces) that do not necessarily have to be displayed in the sliders. You can still show them later 'Context menu Slider window'

FranceBB
26th February 2021, 20:17
Hi gispos,
I'm not sure whether this fits into AVSPmod or Avisynth Development, but... I'm not sure which one is to "blame".
I was trying ASSRender and I noticed an odd behavior about something else.
I have a video in HuffYUV encoded as NV12 (so a particular version of yv12), which is semi-planar as it has two planes instead of three: one for luma and another plane for both the two chroma components which are interleaved.
Now, when I indexed it with FFMpegSource2, it worked just fine, but here is the thing: AVSPmod was showing "yv12" instead of "NV12", so I thought it was actually yv12, so a proper 4:2:0 planar (instead of an half-interleaved crap) at 8bit and I used assrender with the appropriate subtitle track. Of course, it reported the issue about the colorspace not being supported.
As I convert it to yv24 for instance, it works like a charm.
Same goes if I use ConvertBits(10), it works like a charm as Avisynth internally brings it to 4:2:0 planar 10bit.
So, I thought AVSPmod was to "blame" for reporting it as yv12 instead of as NV12, but here's the thing: as I tried to convert it to yv12 with Converttoyv12(), the command was simply ignored by Avisynth, the NV12 was passed through and assrender prompted the colorspace not supported issue.
So... in a nutshell, who is to blame?

1) AVSPmod for not reporting NV12 and reporting it as YV12?
2) Avisynth for not signalling that it's actually NV12 thus making AVSPmod report it incorrectly?
3) FFMpegSource2 for telling Avisynth "yeah, fine, go ahead, it's yv12" while it's really serving an NV12?

Just asking, 'cause it felt weird.
I'm using the latest version of AVSPmod and the very latest version of Avisynth+ x86. ;)

gispos
26th February 2021, 21:13
The color space name is taken directly from avisynth plus. Only if nothing is returned the video information is used, i.e. vi.is_yv12()
Whether avisynth or FFMpegSource2 is the culprit I can not tell you, but I am 99% sure that it is not AvsPmod.

pcroland
26th February 2021, 23:04
It's not going any slower than usual for me.
But I look at that. Try turning off the zoom 'Antialiasing'
Edit:
Test that with a fresh AvsPmod.
Maybe something got mixed up with the keyboard shortcuts and two functions are carried out.
Thanks for the reply.
Turning of both zoom antialiasing and zoom doesn't solve the issue: https://femto.pw/s5kd, mirror: https://0x0.st/-KQG.mp4
It has to do something with the arrow keys because mouse wheel frame stepping works fine (even with zooming and zoom antialiasing).

pinterf
27th February 2021, 13:46
Hi gispos,
I'm not sure whether this fits into AVSPmod or Avisynth Development, but... I'm not sure which one is to "blame".
I was trying ASSRender and I noticed an odd behavior about something else.
I have a video in HuffYUV encoded as NV12 (so a particular version of yv12), which is semi-planar as it has two planes instead of three: one for luma and another plane for both the two chroma components which are interleaved.
Now, when I indexed it with FFMpegSource2, it worked just fine, but here is the thing: AVSPmod was showing "yv12" instead of "NV12", so I thought it was actually yv12, so a proper 4:2:0 planar (instead of an half-interleaved crap) at 8bit and I used assrender with the appropriate subtitle track. Of course, it reported the issue about the colorspace not being supported.
As I convert it to yv24 for instance, it works like a charm.
Same goes if I use ConvertBits(10), it works like a charm as Avisynth internally brings it to 4:2:0 planar 10bit.
So, I thought AVSPmod was to "blame" for reporting it as yv12 instead of as NV12, but here's the thing: as I tried to convert it to yv12 with Converttoyv12(), the command was simply ignored by Avisynth, the NV12 was passed through and assrender prompted the colorspace not supported issue.
So... in a nutshell, who is to blame?

1) AVSPmod for not reporting NV12 and reporting it as YV12?
2) Avisynth for not signalling that it's actually NV12 thus making AVSPmod report it incorrectly?
3) FFMpegSource2 for telling Avisynth "yeah, fine, go ahead, it's yv12" while it's really serving an NV12?

Just asking, 'cause it felt weird.
I'm using the latest version of AVSPmod and the very latest version of Avisynth+ x86. ;)
Probably it is converted to I420 instead of YV12 from the source filter. You can see it by Info().
As for why assrender failed to handle: added I420 to assrender, see the new release. This color space is basically the same as YV12 but their internal constants are different (U and V plane order is different), but both is reported for IsYV12 as true.

gispos
27th February 2021, 13:59
Thanks for the reply.
Turning of both zoom antialiasing and zoom doesn't solve the issue: https://femto.pw/s5kd, mirror: https://0x0.st/-KQG.mp4
It has to do something with the arrow keys because mouse wheel frame stepping works fine (even with zooming and zoom antialiasing).
I know that you can change the keyboard repeat rate under windows.
What happens if you stay on a key? Normally, the status bar display should change extremely quickly for some functions (e.g. shortcut for 'Play video').
How do other programs behave?
https://winaero.com/change-keyboard-repeat-delay-and-rate-in-windows-10/
https://www.dummies.com/computers/pcs/set-your-keyboards-repeat-delay-and-repeat-rate/

pcroland
27th February 2021, 15:00
I know that you can change the keyboard repeat rate under windows.
What happens if you stay on a key? Normally, the status bar display should change extremely quickly for some functions (e.g. shortcut for 'Play video').
How do other programs behave?
https://winaero.com/change-keyboard-repeat-delay-and-rate-in-windows-10/
https://www.dummies.com/computers/pcs/set-your-keyboards-repeat-delay-and-repeat-rate/
It's set to fast, but it has nothing to do with my OS settings. It works fine in 2.6.5.3 and it's only slow in 2.6.6.0 or newer versions.

gispos
27th February 2021, 15:36
The first test version with access to avisynth in threads is ready. Access in threads to clip create/release and get frame.
on/off: Options menu > 'Access Avisynth in threads'

This option takes precedence for Playback in threads. So if this option is set, the playback is also performed with threads.

For the test phase:
All thread messages appear earlier (so you can see something).
Under Help > 'Active video thread count' you can find running threads.
Mostly only the clip threads that were canceled. So normally 0 should be printed. The output is printed in the Scrap window.
If a larger number is outputted here than threads that you canceled yourself, please report this to me.

For example, if a clip thread is canceled while loading, it remains until the clip is returned by avisynth.
Only when the thread has ended can an attempt be made to reinitialize the clip.
The same with frames, a new frame can only be requested when the frame thread has finished.

And for clip threads:
If the thread is canceled by the user and the thread terminates later, an attempt is made to release the now abandoned clip.
But it is always better to restart the program after aborting it.

The whole should only be used for more script security. So that you can save your scripts even after a hanging avisynth.
But Threads carry their own risk, when it comes to clip threads I'm 99.9 percent sure, but only about 90% for the frame threads.
The problem with frame threads is that if a playback is running and a frame is being accessed from outside at the same time, the playback frame thread must first be ended.
Without playback, I'm 98% sure for the frame threads.:)

So let's see if it works.

mediafire
x64 http://www.mediafire.com/file/mneklw2itoj9lw3/AvsPmod_v2.6.6.8.1b_(Windows_x86-64).zip/file
x32 http://www.mediafire.com/file/ygq327gyh1ogdve/AvsPmod_v2.6.6.8.1b_(Windows_x86-32).zip/file

sendspace
x64 https://www.sendspace.com/file/c2u82v
x32 https://www.sendspace.com/file/vxiu5x

It's set to fast, but it has nothing to do with my OS settings. It works fine in 2.6.5.3 and it's only slow in 2.6.6.0 or newer versions.
Ever tried another shortcut? What kind of Os?
You seem like the only one. Otherwise others would have posted the problem. Difficult to find something there. :o

pcroland
27th February 2021, 17:33
Ever tried another shortcut? What kind of Os?
You seem like the only one. Otherwise others would have posted the problem. Difficult to find something there. :o
I'm using Win 10 20H2. As I said I'm working on a project with tons of filters/plugins. If I open just a regular avs script with a few lines the problem doesn't occur. Try out this script: https://privatebin.at/?836caac53a425aa0#DV3YeS6ZwpNoCQGXRU8dVvcwzDP4MVvZvvKU32Jgj6iD

gispos
27th February 2021, 20:00
I'm using Win 10 20H2. As I said I'm working on a project with tons of filters/plugins. If I open just a regular avs script with a few lines the problem doesn't occur. Try out this script: https://privatebin.at/?836caac53a425aa0#DV3YeS6ZwpNoCQGXRU8dVvcwzDP4MVvZvvKU32Jgj6iD
You are right, I am looking for it.

gispos
27th February 2021, 22:24
I'm using Win 10 20H2. As I said I'm working on a project with tons of filters/plugins. If I open just a regular avs script with a few lines the problem doesn't occur. Try out this script: https://privatebin.at/?836caac53a425aa0#DV3YeS6ZwpNoCQGXRU8dVvcwzDP4MVvZvvKU32Jgj6iD
Found the bug for the slow frame jump with the arrow keys. This takes longer, the entire preview filter handling via the script is affected.
Turn off 'Enable preview filter sliders' but do this with a smaller script, otherwise it will take time. Then that's the other bug that I found.

And there is a sober explanation for the slow resize. Too many complex entries (slider, color button).
wxPython doesn't handle that. I tested your script in the original version 2.5.1.90 and the result is a little slower.

pcroland
27th February 2021, 22:39
Turn off 'Enable preview filter sliders'
This works, thanks a lot.

And there is a sober explanation for the slow resize. Too many complex entries (slider, color button).
wxPython doesn't handle that. I tested your script in the original version 2.5.1.90 and the result is a little slower.
Maybe it's slow in the original too but in your 2.6.5.3 the issue doesn't occur :D So it updates the slider for every framestep if it's done with the arrows and that's why it's slow with 2.6.6.0-2.6.6.8?

FranceBB
27th February 2021, 22:50
Probably it is converted to I420 instead of YV12 from the source filter. You can see it by Info().
As for why assrender failed to handle: added I420 to assrender, see the new release. This color space is basically the same as YV12 but their internal constants are different (U and V plane order is different), but both is reported for IsYV12 as true.

Ahhh! Makes sense!
Thanks for acting so fast, by the way, Ferenc! You're always the best. ;)

pcroland
2nd March 2021, 21:52
I noticed that font width is not the same for normal and bold text despite using a mono font: Fira Code Regular Nerd Font Complete Mono.ttf (https://github.com/ryanoasis/nerd-fonts/raw/master/patched-fonts/FiraCode/Regular/complete/Fira%20Code%20Regular%20Nerd%20Font%20Complete%20Mono.ttf)
Is this an error with the font or can it be changed in AvsPmod?

LigH
3rd March 2021, 08:29
If a font has separate files for different font styles of the same font face, it's indeed possible that different styles have a different width although all glyphs in the same style have the same width... so it will certainly be important to check that with several fonts and a few sizes. (Semi-) Professional font editors may also help investigating, unfortunately they can be pretty complex, so one needs to have founded knowledge about fonts to interpret the results correctly.

In this specific case, I see that it supports "ligatures" (https://github.com/ryanoasis/nerd-fonts/tree/master/patched-fonts/FiraCode/Regular) (glyphs combining several adjacent characters), this could be a little supported special feature. So even though "Fira Code" looks prettier, using "Fira Mono" instead will be safer. There is an Editor compatibility list (https://github.com/ryanoasis/nerd-fonts/tree/master/patched-fonts/FiraCode/Regular#editor-compatibility-list) on that page documenting that not every text editor handles this font properly.

pcroland
3rd March 2021, 12:47
Hmmm, indeed. Fira Code has difference width for different styles, Fira Mono works great, thanks.

gispos
3rd March 2021, 19:20
Second test version with threads. Apparently the threads don't seem to cause any problems. Strange.

Bugfix:
Preview Filter slowed down some functions in large scripts.
CreateDisplayClip could cause an error.
When terminating the program and releasing a clip, the program interface could be deactivated

Changes:
Releasing a clip now shows a progress dialog after 10 seconds.
Option 'Enable preview filter sliders' has been removed, the preview filters now always support the sliders.

The characters for the end of the preview filter area have been changed. **/ must be set as the end of the preview filter.
If this not done, firstly no preview filter is found and secondly, no changes to the script are recognized after /**avsp_filter

/**avsp_filter
sharpen(0.40)
**/

mediafire
x64 https://www.mediafire.com/file/pgj1o4by5li6gx5/AvsPmod_v2.6.6.8.2b_(Windows_x86-64).zip/file
x32 https://www.mediafire.com/file/jrhqzxrxb6bxhaa/AvsPmod_v2.6.6.8.2b_(Windows_x86-32).zip/file

sendspace
https://www.sendspace.com/filegroup/Zw9MZziHnssIg%2FkSkiaV8g

FranceBB
4th March 2021, 10:16
Thanks for the update, I just noticed the new Window:

https://i.imgur.com/jqF2yJE.png

Nice one, but would it be asking too much to ask to show a progress if we're indexing with an indexer like ffms2?
That would be a really cool feature!

LigH
4th March 2021, 15:23
The indexing step won't return any details to AviSynth or the calling application. It won't know anything about its progress. The frame number won't change until the indexing is done.

FranceBB
4th March 2021, 16:40
The indexing step won't return any details to AviSynth or the calling application. It won't know anything about its progress. The frame number won't change until the indexing is done.

Shouldn't ffindex.exe be able to provide this? All we would need then is to let AVSPmod aware of ffindex, but maybe it can't be done...

real.finder
4th March 2021, 17:34
Shouldn't ffindex.exe be able to provide this? All we would need then is to let AVSPmod aware of ffindex, but maybe it can't be done...

LSMASH can at least with ffmpeg (https://forum.doom9.org/showthread.php?p=1913828#post1913828), ffms2 not sure

gispos
4th March 2021, 17:40
That would be a nice extra and also easy to implement if the prerequisites were given.
The plugin has to inform Avisynth of its status every few seconds and avisynth has to provide a function to be able to query this information.

As far as I know, neither of them exists.

real.finder
4th March 2021, 17:41
hi gispos
since I cant live without AvsPmod, is it possible to make it work in linux? https://forum.doom9.org/showthread.php?p=1932680#post1932680

gispos
4th March 2021, 17:48
hi gispos
since I cant live without AvsPmod, is it possible to make it work in linux? https://forum.doom9.org/showthread.php?p=1932680#post1932680
Sorry, sorry no. :o
I don't have Linux, I'm no longer the youngest and don't feel like doing Linux.

gispos
7th March 2021, 15:11
Third thread test version.
Changed some things, unfortunately I didn't write anything down this time, so without change.log

mediafire
x64 https://www.mediafire.com/file/98wkbfjb8iakw4f/AvsPmod_v2.6.6.8.3b_%2528Windows_x86-64%2529.zip/file
x32 https://www.mediafire.com/file/ldaawkr9giwhfon/AvsPmod_v2.6.6.8.3b_%2528Windows_x86-32%2529.zip/file

sendspace
x64 https://www.sendspace.com/file/vncsut
x32 https://www.sendspace.com/file/duudy3

@real.finder
Did AvsPmod work before the avxsynth change? Is the filename still 'libavxsynth.so'

real.finder
7th March 2021, 16:07
@real.finder
Did AvsPmod work before the avxsynth change? Is the filename still 'libavxsynth.so'

don't know, I rarely use Linux (and I do it in virtualbox)

the file now is libavisynth.so

l00t
10th March 2021, 17:53
I would like to note a bug:

Latest beta simply freezes and quits upon opening avs frameserver (even with a single line of Version() ) when only SSE4.2 is present as highest instruction set (i7-980). It works fine on CPUs with AVX and AVX2 (i7-3960X & Xeon Gold 6152)... probably this has something to do with threading.

Latest stable works fine, however, the app releases the avisynth.dll dramatically slowly (approx half min) on the SSE4.2 system...

(AVS+ 3.7.0 was used)

gispos
11th March 2021, 17:35
I do not like such messages. :)

I would like to note a bug:

Latest beta simply freezes and quits upon opening avs frameserver (even with a single line of Version() ) when only SSE4.2 is present as highest instruction set (i7-980). It works fine on CPUs with AVX and AVX2 (i7-3960X & Xeon Gold 6152)... probably this has something to do with threading.

Routines that are not thread save and are taken over by AVX for other CPUs are likely to be executed on the threads.
If so, I can't do anything about that.

What happens if you turn off the threads when loading the clip and turn them on again later?


Latest stable works fine, however, the app releases the avisynth.dll dramatically slowly (approx half min) on the SSE4.2 system...

(AVS+ 3.7.0 was used)
If AvsPmod has problems with freeing up the memory, there is apparently a problem with the interaction of your system and avisynth.
AvsPmod does almost nothing and passes it on to avisynth.
avs_release_video_frame, avs_release_clip, avs_delete_script_environment

Have you ever tried an Avisynth version for Windows XP?
Maybe Ferenc or FranceBB also reads here and can write something about it?

I can't think of anything better, you can download AvsPThump here (https://github.com/gispos/AvsPThumb).
It also uses Avisynth in separate threads.
Create a few bookmarks in AvsPmod (at least 50), save the bookmarks in the script and save the script.
Then open this script with AvsPThumb, the thumbnails should be created in a few seconds. If not, or a crash follows ... you are unlucky

gispos
11th March 2021, 18:59
Well, in principle the first frame should do it, as in most cases it will be the same over the entire footage.



colormatrix should be conserved (all filters should respect it and changes should be followed) and different clips could only be merged if the matrices are matched/converted previously... otherwise you can end up with funny results...

PS: VSEditor is handling this in a quite correct way, so it's not impossible...
I'm not thrilled with this feature After a few tests I turned it off.

Too many filters do not pass the frame properties and the result is not satisfactory.
First Rec601, I activate a filter and the color changes because there are no more properties.
It's a back and forth that is just annoying.
Then I would rather read the matrix myself (propShow) and adjust the display accordingly if necessary.

This is not worth the effort for me at the moment (menu adjustments, extra variables, Rec must be displayed, menu status must change, etc.)

FranceBB
12th March 2021, 10:32
Have you ever tried an Avisynth version for Windows XP?
Maybe Ferenc or FranceBB also reads here and can write something about it?

I just tried version 2.6.6.8.3b on Windows XP x86 which supports SSE4.2 only and I don't see any problems: https://i.imgur.com/tUejsKW.png

I also tried the new x86 build on Win10 with an AVX2 capable CPU and I didn't have any problems. As to the WinXP build per se, the difference between that one and the Win7 and up one I think is essentially the /Zc:threadSafeInit which I don't think it's gonna help in this case, but it might be worth trying, although I'm pretty sure his problem is related to something else...

EDIT: Actually the x64 version on Win10 with Avisynth x64 crashes...

l00t
12th March 2021, 12:42
I just tried version 2.6.6.8.3b on Windows XP x86 which supports SSE4.2 only and I don't see any problems: https://i.imgur.com/tUejsKW.png

I also tried the new x86 build on Win10 with an AVX2 capable CPU and I didn't have any problems. As to the WinXP build per se, the difference between that one and the Win7 and up one I think is essentially the /Zc:threadSafeInit which I don't think it's gonna help in this case, but it might be worth trying, although I'm pretty sure his problem is related to something else...

EDIT: Actually the x64 version on Win10 with Avisynth x64 crashes...

Oh yes, I forgot to mention that I use W10 20H2 x64 with x64 AVS+ on all of my machines...

Regarding the colormatrix: Since some filters erase properties (as they are not 100% conform with 3.7.0 standards, yet) I would suggest to display according to the colormatrix if the property exists, otherwise fall-back to resolution based.

gispos
13th March 2021, 17:38
EDIT: Actually the x64 version on Win10 with Avisynth x64 crashes...
With threads? and without threads?
I'm slowly losing interest, it's just annoying and is not worth all the effort. I do not know if I will continue.

Try this version
x64 https://www.sendspace.com/file/33l7sl

Wasn't actually meant to be published yet. Whatever, description will come later.
Display YUV -> RGB conversion (Resolution-based, BT.709, BT.601) now script related
There are a few new entries in the menu Display > YUV -> RGB

gispos
13th March 2021, 18:05
But it also sucks, for 2 weeks I've been working on this stuff and putting test versions in here ... for what? there is no response after all.
I still don't know if any test version worked and only now has an error occurred. That's puke my dear users.:mad:

One had reported problems (after almost 2 weeks), so I do not assume that it does not work.
I can save the whole thing here and just put a version on github every now and then.

FranceBB
13th March 2021, 18:37
But it also sucks, for 2 weeks I've been working on this stuff and putting test versions in here ... for what? there is no response after all.
I still don't know if any test version worked and only now has an error occurred. That's puke my dear users.:mad:


The thing is that I don't really use Avisynth x64 except on my work servers in which I clearly don't have AVSPmod as they're... well... servers.
I do have it on my computers and I use it on a daily basis, however I use the x86 version 99.9% of the time as I have all the plugins I collected over the years as x86 and only a very few of them as x64, so... I didn't notice. But for me, everything was fine on x86. It has been working just fine on Win10, while on XP the new "waiting for Avisynth" message is slightly truncated at the very bottom in the UI, but it doesn't really matter as it's just a waiting message.

Here: https://i.imgur.com/i1835qD.png


Try this version
x64 https://www.sendspace.com/file/33l7sl



Works just fine on my end! ;)
Let's wait for the other guy...



One had reported problems (after almost 2 weeks), so I do not assume that it does not work.
I can save the whole thing here and just put a version on github every now and then.

I mean... I do test and for me x86 works just fine.
Every time you release a new beta, I download it and put it on my Win10 and XP, but both are using the x86 version which doesn't have any issues and works great, both with SSE4.2 and AVX2, so nothing to report on my end.
Since the other user reported something, I decided to try to reproduce his issue, that's all.
Don't be upset Gispos, you're doing a great work.

l00t
15th March 2021, 16:34
Thank you for your efforts. I have tested the new version on my SSE4.2-only system (everything is x64). The outcome:

With threads enabled (Access AviSynth in threads): Version() and ColorBars() are working fine, however, program still crashes with DGSource.
With threads disabled: Everything is fine :)

Regarding the colormatrix, please give me more time to test :)

If I notice any more strange behavior, I'll let you know for sure.

And I also would like to make an excuse, like FranceBB. I use various environments for encoding videos, and on high-core systems (used in 70% of my time) VapourSynth performs superior, compared to AVS+, so from there I can only report bugs present in VS and VSEdit...

With threads? and without threads?
I'm slowly losing interest, it's just annoying and is not worth all the effort. I do not know if I will continue.

Try this version
x64 https://www.sendspace.com/file/33l7sl

Wasn't actually meant to be published yet. Whatever, description will come later.
Display YUV -> RGB conversion (Resolution-based, BT.709, BT.601) now script related
There are a few new entries in the menu Display > YUV -> RGB

gispos
16th March 2021, 18:50
With threads enabled (Access AviSynth in threads): Version() and ColorBars() are working fine, however, program still crashes with DGSource.
With threads disabled: Everything is fine :)
Is the SourceFilter then DGDecodeNV.dll with Cuda?

Is the CPU or the SourceFilter the problem, so:
What happens with other SourceFilters? AviSource, Directshow, ffmpeg, LWLibavVideoSource
That is the question that interests me most.

Regarding the colormatrix, please give me more time to test :)

Is not completely finished yet. With Matrix 1 Rec601 is set with everything else Rec709.
I don't know yet what other values there are, maybe someone can tell me.

To display the conversion used, there is the value %DYR under the settings of the statusbar.
If no matrix is found in the properties, the matrix that was written in the script is used.

@FranceBB crashes AvsPmod x64 when you use DGSource?

videoh
16th March 2021, 18:56
With threads enabled (Access AviSynth in threads): Version() and ColorBars() are working fine, however, program still crashes with DGSource.
With threads disabled: Everything is fine Can you post your script using DGSource please? DGSource should be MT_SERIALIZED. It is by default and you should not override that.

JKyle
16th March 2021, 20:58
DGSource should be MT_SERIALIZED. It is by default and you should not override that.

That's a very informative tip. :thanks:

BTW, how about DGHDRtoSDR and DGTonemap?

(Sorry about the digression. :rolleyes:)

StainlessS
16th March 2021, 22:16
I thought ALL(or Nearly all) source filters need to be MT_SERIALIZED.
Anybody, is this correct ?, if nearly all, what are exceptions.

EDIT: From SetMTMode.avsi
# 5. Starting from AviSynth+ r2069, AviSynth+ will now automatically recognize source filters.
# If it sees a source filter which has no MT-mode specified at all, it will automatically use mode 3 instead of the default MT mode.
# This is great for source filters as in their case it rarely hurts performance and they often need mode 3 anyway, and it will help yet
# unclassified source filters perform correctly without any user action. One step closer to the "it just works" target.

# ...

# Source plugins
SetFilterMTMode("DGSourceIM", MT_SERIALIZED) #DGDecIM beta 50 2015/10/10
SetFilterMTMode("DGSource", MT_SERIALIZED) #DGDecNV 2046 2014/01/01 - GPU decoding
SetFilterMTMode("DSS2", MT_SERIALIZED) #DSS2 2.0.0.13 2014/11/10
SetFilterMTMode("FFAudioSource", MT_SERIALIZED) #FFMS2 V2.22 2015/10/12
SetFilterMTMode("FFImageSource", MT_SERIALIZED) #FFMS2 V2.22 2015/10/12
SetFilterMTMode("FFFFmpegSource2", MT_SERIALIZED) #FFMS2 V2.22 2015/10/12
SetFilterMTMode("FFMS2", MT_SERIALIZED) #FFMS2 V2.22 2015/10/12
SetFilterMTMode("FFVideoSource", MT_SERIALIZED) #FFMS2 V2.22 2015/10/12
SetFilterMTMode("FRIMSource", MT_SERIALIZED) #FRIMSource V1.26 2016/01/16
SetFilterMTMode("JpegSource", MT_SERIALIZED) #JpegSource ---> 2014/04/19
SetFilterMTMode("LSMASHAudioSource", MT_SERIALIZED) #LSMASHSource r877 2016/03/09
SetFilterMTMode("LSMASHVideoSource", MT_SERIALIZED) #LSMASHSource r877 2016/03/09
SetFilterMTMode("LWLibavAudioSource", MT_SERIALIZED) #LSMASHSource r877 2016/03/09
SetFilterMTMode("LWLibavVideoSource", MT_SERIALIZED) #LSMASHSource r877 2016/03/09
#SetFilterMTMode("RawSource", MT_SERIALIZED) #RawSource26 20160528 2016/05/28

real.finder
17th March 2021, 01:20
x64 https://www.sendspace.com/file/33l7sl


I did try it and seems work fine, thanks

I like how avspmod not crash if there are some problem in the script

videoh
17th March 2021, 02:07
BTW, how about DGHDRtoSDR and DGTonemap? Gotta check what I did. Will report back. I think they can be NICE as they don't use the (single) video engine.

gispos
17th March 2021, 17:02
I did try it and seems work fine, thanks

I like how avspmod not crash if there are some problem in the script
Thanks for the feedback.
I couldn't really test it yet, in the past avisynth almost always got stuck when I used QTGMC and MCTD together,
at the moment avisynth just doesn't want to crash anymore, what a bummer. :)

gispos
27th March 2021, 19:25
AvsPmod 2.6.6.9 (https://github.com/gispos/AvsPmod/releases)

** The syntax for the preview filter end has changed. The Preview Filter Area must now be completed with **/
- /**avsp_filter
- sharpen(0.4)
- **/
* First public release with thread access to avisynth on create/release clip and get frame
- on/off options menu 'Access Avisnth in threads'
- default turned off, but I recommend turning on the threads and only to deactivate if there are problems.
- for more info please reade the readme_threads.txt
* Display YUV -> RGB conversion (Resolution-based, BT,709, BT.601) now script related.
- conversion coefficient can be read from the source (frame properties). Or from the script when it was previously manually stored in the script.
- an asterisk * is preceded when the matrix has not read from the source ( *Rec601 )
- under Program Options > Configure Statusbar, there is a new value %DYR to display the used matrix in the status bar.
* Preview filter handling with the sliders revised. Should everything run a little better. ;)
* Still some changes


Crap: I turned on the threads as default. So test it yourself.

real.finder
28th March 2021, 08:07
AvsPmod 2.6.6.9 (https://github.com/gispos/AvsPmod/releases)


thanks

AvsPmod has same problem as https://forum.doom9.org/showthread.php?t=145912 maybe same solution and also I think https://github.com/SAPikachu/MP_Pipeline/commit/dee365e3750433dffca5a089c8d63b13a5290f0d

at least it should do this in analysis pass

edit: the file is not empty after close the avspmod, so it's not 100% same case, but it should not give empty file after close analysis pass window

gispos
28th March 2021, 17:42
thanks

AvsPmod has same problem as https://forum.doom9.org/showthread.php?t=145912 maybe same solution and also I think https://github.com/SAPikachu/MP_Pipeline/commit/dee365e3750433dffca5a089c8d63b13a5290f0d

at least it should do this is analysis pass

edit: the file is not empty after close the avspmod, so it's not 100% same case, but it should not give empty file after close analysis pass window
The problem is that analysis pass uses the current script.
No new ScriptEnvironment is created and the avisynth.dll cannot be released either, which then affects all loaded scripts.

The ScriptEnvironment is also released when the script is released. What happens if you release the script after the analysis pass?

gispos
28th March 2021, 18:32
If that works with the release of the script, I have a relatively simple solution.

I changed the Analysis pass:
When the process runs through to the end, the script is then released and thus also the env.
But if the process is canceled, nothing else happens.

I think that's a reasonable solution.
Creating a new clip is firstly code intensive and secondly it then needs twice the memory!

real.finder
28th March 2021, 18:51
release video memory seems work, but I think it should be done after close analysis pass window

maybe adding new button in analysis pass window as "close and release video memory" or "close and release"?

gispos
28th March 2021, 21:37
release video memory seems work, but I think it should be done after close analysis pass window
That was my suggestion.
The script is automatically released after the analysis pass has been completed. Only if the process is aborted is the script not released.

maybe adding new button in analysis pass window as "close and release video memory" or "close and release"?
An additional button cannot be added to the dialog.

gispos
3rd April 2021, 17:24
AvsPmod 2.6.7.0 (https://github.com/gispos/AvsPmod/releases)

* Threads slightly revised.
* Split View now loads the second frame in a thread if threading is enabled.
* New menu Edit > Insert > 'Preview filter', insert Preview filter syntax for the selected lines ( Ctrl + P )
- keyboard shortcuts may have to be checked, previously printing was linked to it, now (Shift + P)
* In the preview filter it is now possible to switch individual filters on or off (Edit > Insert > 'Tag selection for toggling')
- /**avsp_filter
-
- sharpen(0.4)
-
- unsharp()
- **/
* In the preview filters you can now also use sliders that you have created yourself. I think ... I don't support this though.
- I only support automatically generated sliders that are stored in the database or options.
* Show free memory (program options > Misc 2)
- after creating a new clip displays the free system memory for 3 seconds in the status bar if the free memory less then x MB
* Threads was enabled by default. Sorry. (on/off options menu 'Access Avisnth in threads')
- If the threading works on your system, they offer more script security in the event of an avisynth error (hang). So turn it on.
- for more info please reade the readme_threads.txt

Totally forgot, env is released when the analisys pass runs through to the end. If it is canceled, nothing is released, that's what I want.

FranceBB
3rd April 2021, 19:06
Thanks! I'll test it later to see if the loading screen graphical issue on XP has been fixed too or not. :)

gispos
3rd April 2021, 21:26
Thanks! I'll test it later to see if the loading screen graphical issue on XP has been fixed too or not. :)
You mean the Progress Dialog?
It has two stages. It appears in small form after 10 seconds and increases in size after another 5 seconds.
Is the problem in the second stage when it enlarges?

FranceBB
4th April 2021, 14:00
Is the problem in the second stage when it enlarges?

Yes, the second stage.
The first one is fine and fits the window perfectly, however when it enlargers the lower part is cut off cause the text enlargers but not the window.
This happens on Windows XP, Windows Embedded Standard, Windows POSReady and Windows Server 2003.
It doesn't however happen on Windows 10.

real.finder
4th April 2021, 21:28
AvsPmod 2.6.7.0 (https://github.com/gispos/AvsPmod/releases)


Totally forgot, env is released when the analisys pass runs through to the end. If it is canceled, nothing is released, that's what I want.

thanks, it work now

gispos
5th April 2021, 11:41
Yes, the second stage.
The first one is fine and fits the window perfectly, however when it enlargers the lower part is cut off cause the text enlargers but not the window.
This happens on Windows XP, Windows Embedded Standard, Windows POSReady and Windows Server 2003.
It doesn't however happen on Windows 10.
I added an OS version check.
In versions earlier than Win7, the progress dialog is displayed in the larger form from start up.
So there should be no more problems with resizing the dialog in Win XP.

Exchange the corresponding library.zip in the lib folder.
https://www.sendspace.com/file/z6nsn9

FranceBB
5th April 2021, 21:43
Thanks for the preview build!
Now it's all nice and dandy! :D

https://i.imgur.com/r3ltSit.png
https://i.imgur.com/2u8clWE.png

I guess StainlessS and Manolito are gonna be happy too. :)

gispos
11th April 2021, 13:50
AvsPmod 2.6.7.1 (https://github.com/gispos/AvsPmod/releases)

* The matrix (YUV > RGB) stored in the script (tv601, tv709) is preferably used. If the entry is found no matrix is read from the source.
* If the > character is used after the comment character #, the comment is displayed in a different font #>
- the font can be set under Options > Fonts and Colors > Basic 1 > 'Comment extra #>'
Please set the font before using it for the first time. I can only load the default font theme. For example, if the dark theme is used, the font is not set correctly.
If you use the dark theme you only have to reload the dark theme under 'Fonts and Colors'.
-
* Toggle tags can be saved with the script. Program options > User sliders > 'Save toggle tags ...' Please read the tooltip!
#>
sharpen (0.40)
#>
- toggle tags are displayed with the font 'Comment extra' and the toggle tags are only comments for other programs.
- in AvsPmod sharpen is disabled [sharp=0], but in other programs not.
- when opening in an external player (AvsP button) , the deactivated filters in the preview script are still removed. Everything as usual.
If you remove the toggle tags 'Clear all tags' and you have used the characters #> in front of the tag, and the option 'Save toggle tags' is enabled,
then all these characters will also be removed if the line contains only this characters.
The whole thing is intended to not lose the toggle tags when saving the script and not to have to use the function 'Save or read AvsPmod markings'.
Because so far the toggle tags were only saved in the session file or in the AvsPmod marked section.
-
* Added the possibility of using the toggle tag checkbox as a radio item.
- the name must be split into two parts by > and the second name must be present as a checkbox.
-
#>[sharp>unsharp=1] # the check-radio box
sharpen(0.4)
#>[/sharp>unsharp]
-
#> # the child checkbox
unsharpmask()
#>
- in this example clicking on 'sharp>unsharp' toggles between the filters sharpen and unsharpmask. Useful in the preview filters.
-
* Add Toggle tag for one line, now the line must not be selected, only the cursor just needs to be on the line.
* Progress Dialog resize fix for Win OS versions below Win7
* Added Options > 'Show available memory' displays for 3 seconds the available system mem in the status bar.
* The status bar displays also the available memory while loading the clip
* Added DGHDRToSDR to the database
-
And a note:
The sliders are a fine thing, but you should also use them with the right feeling.
Use the filter exclusion list for the sliders. The creation of the sliders is time and resource consuming, minimize this effort to what is necessary.
source filters, trim, crop, addborders, prefetch, etc. can also be set wonderfully in the script.
And there is still the possibility to switch the list on and off in the slider window if you want to see all of them.

FranceBB
11th April 2021, 17:10
Thanks for the new build, buddy. :)

gispos
11th April 2021, 19:42
Thanks for the new build, buddy. :)
Thanks buddy :)

rco133
13th April 2021, 16:36
Hi.

I have noticed it for a while now, but not sure if it is an AvsPmod issue or a Windows 10 issue.

What happenes is the following.

When WIN10 start up and I open AvsPmod, open an avs file and press F5 to show the video. Then I can scroll up and down in the AVS window by using the mouse wheel.

But after some time that feature just stops working, and it doesn't help to close AvsPmod and start it again. The only way to scroll in the AVS window, is either by using the up/dn arrows on the keyboard, or use the sliders on the right side.

If I reboot the box it works again. Which could point to a WIN10 issue.

But in all other programs like Word and so on, I can still scroll up and down using the mouse wheel.

I have no clue why it only seems to be AvsPmod that is affected by this.

Am using version 2.6.7.1, but it also happened in some previous version. Not really sure when the problem started.

I am using WIN10 1909, and the screen resolution is 1680x1050 in case that matters.

WIN10 has been running for 26 days, and I noticed it again a few days ago. Then I can restart the box and it will work for another 2-3 weeks again.

Hope that my description makes sense.

rco133

gispos
14th April 2021, 16:45
Hi.

I have noticed it for a while now, but not sure if it is an AvsPmod issue or a Windows 10 issue.

What happenes is the following.

When WIN10 start up and I open AvsPmod, open an avs file and press F5 to show the video. Then I can scroll up and down in the AVS window by using the mouse wheel.

But after some time that feature just stops working, and it doesn't help to close AvsPmod and start it again. The only way to scroll in the AVS window, is either by using the up/dn arrows on the keyboard, or use the sliders on the right side.

If I reboot the box it works again. Which could point to a WIN10 issue.

But in all other programs like Word and so on, I can still scroll up and down using the mouse wheel.

I have no clue why it only seems to be AvsPmod that is affected by this.

Am using version 2.6.7.1, but it also happened in some previous version. Not really sure when the problem started.

I am using WIN10 1909, and the screen resolution is 1680x1050 in case that matters.

WIN10 has been running for 26 days, and I noticed it again a few days ago. Then I can restart the box and it will work for another 2-3 weeks again.

Hope that my description makes sense.

rco133
Strange. Nothing happens when you use the mouse wheel? Is that only the case in the script window? Does the mouse work in the video window?
What do you mean by 'box'? VirtualBox?

rco133
14th April 2021, 18:12
Strange. Nothing happens when you use the mouse wheel? Is that only the case in the script window? Does the mouse work in the video window?
What do you mean by 'box'? VirtualBox?

Hi.

Nothing happens in the video window either.

Box = the physical PC.

Going to install some windows updates tomorrow, so will restart the PC then. Then it will probably work for a while again.

rco133

rco133
14th April 2021, 20:23
Hi.

Nothing happens in the video window either.

Box = the physical PC.

Going to install some windows updates tomorrow, so will restart the PC then. Then it will probably work for a while again.

rco133

Just rebooted the PC, and now the mouse wheel works in the AVS window again. It doesn't seem to do anything in the video window though. What is it supposed to do there?

rco133

gispos
15th April 2021, 17:25
...What is it supposed to do there?
rco133
It depends on what is set under the program options. Frame step, switch tab or scroll video window

gispos
18th April 2021, 17:57
AvsPmod 2.6.7.2 (https://github.com/gispos/AvsPmod/releases)

* Video window scroll bars can be hidden Options > 'Hide video window scrollbars'
* Auto preview now also works when switching tabs with the mouse wheel (if mouse wheel is set for tab change)
* Toggle tags can be created or removed for the selected filter in the context menu of the slider window.
* The toggle tags in the slider window have been given a context menu. Remove, Add child, Remove child
- so there is the possibility with 'Add child' to create a check-radio item from two toggle tags.
- but use the toggle tags in the slider window with care, not everything can always be checked and changed automatically.
- the filter name can change in the slider window if e.g. the same filter is added again.
- if you not need or like it you can remove the menu entries under program options > User sliders > 'Hide slider window toggle tag menus'
* Bugfix Special Comment #> only working correctly in the preview filters.
- the special comment characters #> are a bit confusing. Sorry. Hopefully I didn't get lost with this option.
- everything in the line behind #> is registered in AvsPmod as a text change and thus the script is then reinitialized.
- although in reality (for avisynth) there are no changes. For avisynth it is a normal comment.
- at the moment it is only used for saving toggle tags within the script, but it also opens up possibilities for other functions.
- use it only for the toggle tags when a toggle tag is alone in a line.
* And a few more code changes and a different wx version
** It's always a tightrope walk between functionality and ease of use **

StainlessS
18th April 2021, 18:14
Cheers Gispos.

FranceBB
18th April 2021, 21:16
Thanks for keeping it going. :)

gispos
24th April 2021, 13:20
AvsPmod 2.6.7.3 (https://github.com/gispos/AvsPmod/releases)

* Snapshot buttons in the slider window have got a context menu (Restore to current, Restore to new tab, Clear all)
* The background color of the sliders in the slider window can be changed. (Options > Font and colors > Advanced 2 )
* Some new menu entries in the slider window and toggle tag context menus
* Under Win10, the mouse wheel should now also work on the video slider (if video window visible).
* Fixed: With the new wx version the Navigate > Bookmarks menu no longer worked.
*/
One user did not like the fact that a message appeared in the status bar when the script was saved.
Now if the script is saved without changes, no more messages appear. Messages appear if the script is changed while saving,
i.e. if toggle tags and filters are removed or an AvsP marked section is added to the script.
These messages are displayed for at least 3-4 seconds and disappear when you move the mouse in the video window.
Therefore, important messages are still displayed in the status bar. Without extra options for it.
*/


Maybe someone can answer that for me:
I installed Win10 in a VM and noticed that the mouse wheel behaves differently to Win7. As with the browser buttons, the element that is located under the pointer is always addressed.

With Win7 it is always the element that has the focus. Is that always the case with Win10 or is it optional?

Sharc
25th April 2021, 12:45
No luck with v2.6.7.3 32bit here. From the log:
Traceback (most recent call last):
File "run.py", line 44, in <module>
File "wx\__init__.pyo", line 45, in <module>
File "wx\_core.pyo", line 187, in <module>
AttributeError: 'module' object has no attribute 'RA_USE_CHECKBOX'

FranceBB
25th April 2021, 16:04
Well it works on Windows XP x86 under SSE4.2 and Avisynth+ x86

gispos
25th April 2021, 16:14
No luck with v2.6.7.3 32bit here. From the log:
And the previous version 2.6.7.2 worked? When does the error occur?

gispos
25th April 2021, 17:09
No luck with v2.6.7.3 32bit here. From the log:
I have just tested the 32bit version under Win7 and Win10 64bit and could not produce the error.

Unzip it into a new directory and then start. Without the old options.

abyss616
25th April 2021, 21:44
Is it possible to have a keyboard shortcut to copy the frame number when in the video window instead of manually copying it?

Sharc
26th April 2021, 08:09
I have just tested the 32bit version under Win7 and Win10 64bit and could not produce the error.

Unzip it into a new directory and then start. Without the old options.
This helped. Thank you.

gispos
26th April 2021, 16:54
Is it possible to have a keyboard shortcut to copy the frame number when in the video window instead of manually copying it?
You can insert the current frame number into the script using a shortcut.
Try F11 is the default, otherwise: Optionen > Keyboard shortcuts...

abyss616
26th April 2021, 22:08
You can insert the current frame number into the script using a shortcut.
Try F11 is the default, otherwise: Optionen > Keyboard shortcuts...
Ahh - I missed what that meant in the shortcuts. This might be even better than what I needed - thanks!

gispos
1st May 2021, 17:35
AvsPmod 2.6.7.4 (https://github.com/gispos/AvsPmod/releases)

* New checkbox in the slider window 'Disable refresh'
- if checked: several filter parameters can be changed with the sliders without triggering an immediate refresh.
- the refresh is only carried out when the video window gets the focus or through other actions that trigger a refresh.
- Exceptions are the preview filters, which are treated normally.
- But if a non-preview filter parameter is changed, the preview filter is switched off.
- default value can be changed under program options > User sliders > 'Disable refresh as default'
* Win10 bugfix: program restart from options dialog create a new tab
* Some other fixes and code improvements.

StainlessS
1st May 2021, 19:41
Thanks GP,you really took on a monster, R.E.S.P.E.C.T.

FranceBB
2nd May 2021, 01:29
Woah, new version already?
Time to update all my server, my Win10 Enterprise and my XP Professional again.
Thanks. :)

gispos
2nd May 2021, 12:50
Thank you StainlessS and FranceBB. Unfortunately already a new version. :)

* Just a bug fix version
* If only preview filters were in the script, the slider window button may not have been set to enabled
* An error could arise if only one tab was available and 'Split View' has been activated.


AvsPmod 2.6.7.5 (https://github.com/gispos/AvsPmod/releases)

FranceBB
2nd May 2021, 18:39
Eheheheh you're faster in releasing AVSPmod version than Matt Hancock is in updating his Facebook feed xD
Downloaded again. :)

chmars
4th May 2021, 08:00
Works great, lots of thanks!

mabuse
7th May 2021, 12:00
I need some help here.

Windows 10 (20H2), fresh install.
When i try to start AvsPmod, a small windows opens and closes. Nothing more.

error_log says:
[Fri May 7 12:47:49 2021]
Traceback (most recent call last):
File "run.py", line 49, in <module>
File "avsp.pyo", line 23665, in main
File "wx\_core.pyo", line 8622, in __init__
File "wx\_core.pyo", line 8187, in _BootstrapApp
File "avsp.pyo", line 23653, in OnInit
File "avsp.pyo", line 5268, in __init__
File "avsp.pyo", line 6580, in LoadAvisynth
File "avisynth.pyo", line 1173, in <module>
File "ctypes\__init__.pyo", line 379, in __getattr__
File "ctypes\__init__.pyo", line 384, in __getitem__
AttributeError: function 'avs_is_yv24' not found

I've tryed different versions of AvsPmod (2.3.1; 2.6.5.3 and 2.6.7.5) and AviSynth (2.58 and 2.60). Everything in 32 Bit. No difference.

I'm totaly at loss, where the problem is.

Funny thing is: I have another installation wich runs flawless.
Only difference is the hardware, working PC has a 9th-generation i5 with 16 GB, not working PC a 2nd-gen i7 with 16 GB (an even on this maschine it worked under Windows XP!).

Anyone an idea what to do?


/Edit:
Forget it. After a couple of uninstall/reinstall of AviSysnth it's working now...

gispos
7th May 2021, 16:47
I need some help here.

Windows 10 (20H2), fresh install.
When i try to start AvsPmod, a small windows opens and closes. Nothing more.

error_log says:
[Fri May 7 12:47:49 2021]
Traceback (most recent call last):
File "run.py", line 49, in <module>
File "avsp.pyo", line 23665, in main
File "wx\_core.pyo", line 8622, in __init__
File "wx\_core.pyo", line 8187, in _BootstrapApp
File "avsp.pyo", line 23653, in OnInit
File "avsp.pyo", line 5268, in __init__
File "avsp.pyo", line 6580, in LoadAvisynth
File "avisynth.pyo", line 1173, in <module>
File "ctypes\__init__.pyo", line 379, in __getattr__
File "ctypes\__init__.pyo", line 384, in __getitem__
AttributeError: function 'avs_is_yv24' not found

I've tryed different versions of AvsPmod (2.3.1; 2.6.5.3 and 2.6.7.5) and AviSynth (2.58 and 2.60). Everything in 32 Bit. No difference.

I'm totaly at loss, where the problem is.

Funny thing is: I have another installation wich runs flawless.
Only difference is the hardware, working PC has a 9th-generation i5 with 16 GB, not working PC a 2nd-gen i7 with 16 GB (an even on this maschine it worked under Windows XP!).

Anyone an idea what to do?


/Edit:
Forget it. After a couple of uninstall/reinstall of AviSysnth it's working now...
I once wrote that there is no longer any support for the Avisynth classic versions x64, but the support for the 2.6 classic 32bit has probably also been lost. At least one avisynth version with header V6 is required.
I'm not the only one to blame, Ferenc (pfmod) updated the code part for avisynth to the latest version at that time and threatened me with blows:D to remove the old avisynth code.

Win10 i7? I wonder why you are using such an old avisynth version. Why not a plus version? Multithreading, memory management ... everything is better than with the old versions. :)

Edit: I thought that I caught this in the code and an error message should appear... probably not. :rolleyes:

gispos
9th May 2021, 20:04
AvsPmod 2.6.7.6 (https://github.com/gispos/AvsPmod/releases)

* Values of the sliders can only be changed with the mouse wheel if the left mouse button is held down
- (prevents changing without performing a refresh, Win10)
* The drawing of the video frame slightly changed (if row size != pitch) faster now.
- especially affects the preview filter if there is a resize filter in the preview filter (or crop is used)
* Extra background color for the sliders can optionally be switched on or off (Fonts and colors)
** AvsPThumb does not work with this version. Update follows.
/*
Bookmarks navigation menu has been removed without replacement. Reason:
I have been looking for a bug for almost 12 months that caused me a 4-5% increased CPU load when the slider window is visible.
The bookmark menu is the culprit, there are entries there and if these entries are emptied and filled again when you change tabs,
this leads to very strange behavior. I've looked at all the calls to this routine and can't find any errors.
I think this is a wx bug
*/

mabuse
10th May 2021, 08:10
Win10 i7? I wonder why you are using such an old avisynth version. Why not a plus version? Multithreading, memory management ... everything is better than with the old versions. :)
Simply because it's working perfectly.
I'm doing this for... somewhere around 20 years or 40000 encodings. I'm very suspicious of new versions because of the plugins and scripts I've collected over the years. But I will give avisynth+ a try because of the colour conversions from UHD movies.

Memory management was never a problem for me, even with very long filter chains, and for multithreading... instead of fidling with MT I've just run two or three encodings parallel. I don't count hours per encodings but encodings per week :D
In addition: Win 10 seems to much better for this. Encodings on a i7 quadcore/Win 7 runs with ~40-45% CPU load. Same encoding on a i5 hexacore/W10 runs at double speed with ~95% CPU load. Without any MT-tricks...

I'm just a week on Win 10 and simply copied the most from my old XP installation.

Dogway
12th May 2021, 13:25
@gispos: Is this a bug or is it ok? In 16-bit the color picker shows 235 for Expr("65535","range_half", "range_half",scale_inputs="none") until I convert down to 8-bits. I'm using v2.6.3.1 so excuse me if this has changed recently.

gispos
12th May 2021, 23:43
@gispos: Is this a bug or is it ok? In 16-bit the color picker shows 235 for Expr("65535","range_half", "range_half",scale_inputs="none") until I convert down to 8-bits. I'm using v2.6.3.1 so excuse me if this has changed recently.
That's right, AvsPmod only has 8 bit display depth and I have no idea about the 10,12,16 bit calculations routines.
You can see from the asterisk in front of the values that the values are read directly from the display and do not come from Avisynth.

gispos
14th May 2021, 16:46
AvsPmod 2.6.7.7 (https://github.com/gispos/AvsPmod/releases)

* New option Options > 'On cancel assign the clip later' ( Refer to 'Accessing Avisynth in threads' )
- AvsPmod should normally be closed after a thread has been canceled by the user.
- this option tries to assign the clip to the script after the user has canceled the thread and the thread has been terminated internally.
- nice for indexing, you can play with AvsPmod with another tab and a message appears if the clip process finished.
- but test it, it's a bit alpha or beta or whatever. It's going smoothly for me, but you never know what the user is doing. ;)
* New frame thread routine Options > 'Use new frame thread routine. Beta!'
- Please test and report the differences, on my system under Win7 the new routine only brings 2.5 fps more playback speed.
- I had expected more of it for the long hours of work. I'm sad ;) But maybe it works better on another system.
- The old routine works fine for me, I've never had a thread error. If no one gives me positive feedback about the new routine, it will be removed.
- To compare, please do not use any filters in the script and set playback speed to maximum and zoom to 100%
- The fps is displayed on the left in the status bar. The videos shouldn't be bigger than HD otherwise the difference in the routines will be minimized.

/*
About accessing Avisnth in threads:
Even with thrads it is easy to crash AvsPmod, the avisynth.dll is coupled with the main thread,
if an error is triggered by a plugin and the plugin or avisynth crashes, AvsPmod is also torn into the abyss.
The threads only helps if avisynth does not return.
Use program options > Save/Load > 'Backup session when previewing' and the accesses in threads to minimize the risk of losing the script.
*/

FranceBB
16th May 2021, 08:43
Well it's gonna take a bit more time to test this one 'cause I'm lying on my bed recovering after getting the Oxford Astra Zeneca shot here in Deutschland (https://i.imgur.com/WfDyy8g.jpg)...

I don't really feel like turning on my computer at all right now, so... this time avspmod has to wait eheheh, but thanks for the new release anyway. :)

StainlessS
16th May 2021, 14:52
I'm lying on my bed recovering
Yet you still have time & energy to post on D9 ! [day off, yes :) ]

[after my very mild 1st jab side effect (less than 2 hours shivering) , 2nd jab was totally eventless]

gispos
16th May 2021, 19:53
I don't really feel like turning on my computer at all right now, so... this time avspmod has to wait eheheh...
No stress. I am completely relaxed this time. :D
I turned the stuff off, the new thread routine doesn't run properly.

AvsPmod 2.6.7.8 (https://github.com/gispos/AvsPmod/releases/tag/2.6.7.8)

* With large video dimensions, the display drawing is much faster.
* Split View drawing routine improved and zoom option 'fit inside' fixed
* Bugfix: AvsPmod can crash if a resize filter is used in the preview filters.
- the reason is the pixel information that does not match the x, y coordinates of the mouse pointer.
- if a resize filter is now used in the preview filter, the pixel information is only read from the display.
* New frame thread routine disabled, get thread errors.
* some other small changes

Seiya
22nd May 2021, 09:34
Hi. Will add unicode support? Details:
https://github.com/staxrip/staxrip/wiki/AviSynth-Unicode-support-on-Windows-10-1903

l00t
23rd May 2021, 13:56
Hey gispos!

I was able to play a little bit with the colormatrix aware YUV to RGB conversion and things look a bit confusing for me.

Source clip is a ColorBars(640, 480, "YV12") and colormatrix is set via propSet("_Matrix", N), where N is a number. According to AVS manual the values should be taken from E5 table of the ITU H.265 standard, where 1 should be BT.709 and 6 should be BT.601. However, in AvsPmod I have to set _Matrix to 1 to get BT.601 and value 2 gives me BT.709; for the other values it falls back to guessing.

Can you please elaborate which values should be set and how? Thank you in advance!

gispos
23rd May 2021, 15:39
Hey gispos!

I was able to play a little bit with the colormatrix aware YUV to RGB conversion and things look a bit confusing for me.

Source clip is a ColorBars(640, 480, "YV12") and colormatrix is set via propSet("_Matrix", N), where N is a number. According to AVS manual the values should be taken from E5 table of the ITU H.265 standard, where 1 should be BT.709 and 6 should be BT.601. However, in AvsPmod I have to set _Matrix to 1 to get BT.601 and value 2 gives me BT.709; for the other values it falls back to guessing.

Can you please elaborate which values should be set and how? Thank you in advance!

I have there sloppy worked.:D I searched the WEB to find out which value is assigned to a matrix,
then I gave up, so the matrix is only being changed for the values 1 and 2 at the moment.
If you give me the source of your knowledge, or even offer me a list of the value matrix pairs, I'll look again.:)
----------------------

AvsPmod 2.6.7.9 (https://github.com/gispos/AvsPmod/releases)

* Split View can now show the Snapshots
* Split View remembers the last X, Y coordinates and the zoom factor when you turn off Split View.
- in short, you can go from split view to normal view and compare the image using the tab selection,
- if you don't change the frame number you can switch back to the previous Split View.
* Auto Preview now only closes the video window. So you can look at the scripts via tab even if auto preview is switched on.
- the uninitialized tabs are still skipped if the tabs are changed with the mouse forwards/backwards buttons or the mouse wheel.
* Bugfix (I hope): 'Add toggle tag' from the slider window context menu. Toggle tag was sometimes incorrectly placed in the script.

gispos
23rd May 2021, 16:06
Hi. Will add unicode support? Details:
https://github.com/staxrip/staxrip/wiki/AviSynth-Unicode-support-on-Windows-10-1903
What problems are there under Win10?
AvsPmod is unicode capable. Write what Japanese or other language in the script and look what happens.
The first 256 Unicode characters are identical (Latin-1, Western European), AvsPmod uses this as standard, only when characters are included outside the table, a UTF-8 boom is written.

What is written there is not right, no one can recognize a difference of ANSI and Unicode when the characters are within the ASCII table.
What I personally did not try is to open a file that is stored with Russian script. I have to test.

l00t
23rd May 2021, 20:20
I have there sloppy worked.:D I searched the WEB to find out which value is assigned to a matrix,
then I gave up, so the matrix is only being changed for the values 1 and 2 at the moment.
If you give me the source of your knowledge, or even offer me a list of the value matrix pairs, I'll look again.:)

The documentation is available from ITU's webpage for free: https://www.itu.int/rec/dologin_pub.asp?lang=e&id=T-REC-H.265-201911-I!!PDF-E&type=items

If you don't want to look and collect by yourself, I have the values from the E3-E5 tables:

_Matrix: 0 : 'RGB', 1 : 'BT.709', 2 : 'undef', 3 : 'reserved', 4 : 'FCC T47', 5 : 'BT.470 B/G', 6 : 'BT.601',
7 : 'SMPTE ST 240', 8 : 'YCgCo', 9 : 'BT.2020ncl', 10 : 'BT.2020cl', 11 : 'SMPTE ST 2085', 12 : 'Chroma ncl', 13 : 'Chroma cl', 14 : 'BT.2100'

_Transfer: 0 : 'reserved', 1 : 'BT.709', 2 : 'undef', 3 : 'reserved', 4 : 'BT.470 M', 5 : 'BT.470 B/G', 6 : 'BT.601',
7 : 'SMPTE ST 240', 8 : 'linear', 9 : 'log100', 10 : 'log316', 11 : 'xvycc (IEC 61966-2-4)', 12 : 'BT.1361',
13 : 'IEC 61966 sRGB', 14 : 'BT.2020_10', 15 : 'BT.2020_12', 16 : 'SMPTE ST 2084', 17 : 'SMPTE ST 428', 18 : 'BT.2100 HLG'

_Primaries: 0 : 'reserved', 1 : 'BT.709', 2 : 'undef', 3 : 'reserved', 4 : 'BT.470 M', 5 : 'BT.470 B/G', 6 : 'BT.601',
7 : 'SMPTE ST 240', 8 : 'Generic film', 9 : 'BT.2020', 10 : 'SMPTE ST 428', 11 : 'P3DCI', 12 : 'P3D65', 22 : 'EBU Tech. 3213-E'

Keep up the good work,
Cheers

gispos
24th May 2021, 14:59
If you don't want to look and collect by yourself, I have the values from the E3-E5 tables: ...

That helped me alot. Thanks.

AvsPmod 2.6.8.0 (https://github.com/gispos/AvsPmod/releases)

* Bugfix and update: display YUV > RGB conversion showed wrong values.
- the matrix actually read is displayed in brackets behind the matrix currently in use.

l00t
24th May 2021, 15:04
Thanks! Testing it right away....

Bugs:
_Matrix = 5 (BT470B/G) should be represented as BT601, not guessed;
_Matrix = 7 (SMPTE ST 240M) should be represented as BT709; others seem to be OK, as their conversion matrix is not (yet) defined and also quite rare ones.

It is really cool though that it finally displays the value read from the script :)

gispos
24th May 2021, 15:10
Thanks! Testing it right away....

Bugs:
_Matrix = 5 (BT470B/G) should be represented as BT601, not guessed;
_Matrix = 7 (SMPTE ST 240M) should be represented as BT709; others seem to be OK, as their conversion matrix is not (yet) defined and also quite rare ones.

It is really cool though that it finally displays the value read from the script :)
So, 5 = Rec601 and 7 = Rec709, right ?

l00t
24th May 2021, 15:14
So, 5 = Rec601 and 7 = Rec709, right ?

Yes! However, they are not equal mathematically, but very close. I would say within rounding error... BT470B/G is basically the PAL version of BT601 and SMPTE 240M is an NTSC ~variant of BT709.

gispos
24th May 2021, 15:18
Yes! However, they are not equal mathematically, but very close. I would say within rounding error... BT470B/G is basically the PAL version of BT601 and SMPTE 240M is an NTSC ~variant of BT709.
OK, I will pass on complaints to you :D

l00t
24th May 2021, 15:20
Sure :) I will forward them to this part of the forum: https://forum.doom9.org/showthread.php?t=133982

Thank you for your efforts!

gispos
24th May 2021, 15:39
:D AvsPmod 2.6.8.1 (https://github.com/gispos/AvsPmod/releases)

* Without words ;)

l00t
24th May 2021, 15:46
Looks good to me :) :cool:

Seiya
24th May 2021, 18:46
Gispos,
If video file have japanise name like "魔法少女まどかマギカ.mkv" avspmod can't open it
Error: [Fatal]: Failed to avformat_open_input
but nvencc can encode it without error

LigH
25th May 2021, 07:27
Search this thread for "Unicode" ... not a new problem, and possibly hard to solve in this project. So temporarily rename your source to something that contains only Latin letters...

stax76
25th May 2021, 07:43
@Seiya

Everything in the wiki page is true...

You can change the system default code page to UTF-8 if you use Windows 10 1903 or higher, find that option in the administrative language settings.

There is a Visual Studio tool that can add a UTF-8 manifest, this would possibly work.


$content = @"
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity type="win32" name="generic" version="1.0.0.0"/>
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<longPathAware xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">true</longPathAware>
<activeCodePage xmlns="http://schemas.microsoft.com/SMI/2019/WindowsSettings">UTF-8</activeCodePage>
</windowsSettings>
</application>
</assembly>
"@

$fileName = Split-Path ($args[0]) -Leaf
$path = ".\$fileName.manifest"
$content | Out-File $path -Encoding UTF8
$mt = 'C:\Program Files (x86)\Windows Kits\10\bin\10.0.18362.0\x64\mt.exe'
& $mt -manifest $path "-outputresource:$fileName;1"

real.finder
25th May 2021, 08:11
as LigH and stax76 said, also see this https://forum.doom9.org/showpost.php?p=1909790&postcount=9

Dogway
25th May 2021, 10:02
Is it possible to change the comment characters from "#~ " to "# "

gispos
25th May 2021, 17:46
UTF-8, Win10, well, that's not my favorite theme and at the moment I don't really care if I can open a file with Japanese script.
I fully agree with LigH. Rename it.


There is a Visual Studio tool that can add a UTF-8 manifest, this would possibly work.

Hello stax76,
can you inject a manifest into every exe with the manifest tool, and is that in the code field a template for the manifest tool?
To get to the manifest tool the complete Visual Studio has to be installed?

And if the manifest is integrated into the exe then can AvsPmod also read Japanese? :)
In the past it was sufficient to add a manifest file with the name of the application. Does this no longer work under Win10?

Is it possible to change the comment characters from "#~ " to "# "
I would be interested in what other say about it...
But you are lucky, from here (https://github.com/gispos/AvsPmod) and here (https://forum.doom9.org/showthread.php?t=175823)

On script window:
Press left and right click: The # character is removed or added at the beginning of the selected lines
If a boolean selected (True, False) the value does change

Dogway
25th May 2021, 19:10
When I comment out from another application like notepad2 with the AviSynth scheme it leaves behind the ~ (tilde) character. I don't know if this comment format is exclusive from AvsPmod or not, never seen it before.

gispos
28th May 2021, 12:28
PreviewEncode macro for AvsPmod.
Removed, new version in AvsPmod

gispos
29th May 2021, 19:55
PreviewEncode.py update
Removed, new version in AvsPmod

gispos
30th May 2021, 01:54
I'm on sick leave for two weeks and can't sleep, so another update.:D
Removed, new version in AvsPmod

kedautinh12
30th May 2021, 03:33
Thanks

FranceBB
31st May 2021, 10:50
I'm on sick leave for two weeks...

Me thinking: Oh, he's probably gonna rest, I hope he's gonna get well soon


so another update.:D


:eek:

You're spoiling us now hahahahhaha
Thanks for the update and get well soon (I could never code with fever, so you're a sort of hero for doing it eheheh). :)

gispos
4th June 2021, 19:19
You're spoiling us now hahahahhaha

:D

AvsPmod 2.6.8.2 (https://github.com/gispos/AvsPmod/releases)

* Add menu Video > 'Timeline range'
- you can set the range for the video slider from 50 to 2000 frames in steps, or a custom range or start and end separated by a comma.
- is not start and end is specified the current position is the calculations center for the range (set range 200 at pos 500 results in frame range 400 to 600 )
- if a range set, the playback ignores the selections and plays the timeline range in a loop if 'Play loop' activated and not 'Auto scroll' is set
- the background color of the slider and selections is changed when a range is set
* The status bar has got a context menu 'Timeline ranges', the custom timeline settings can only be accessed from here.
- if 'Auto scroll' set, the timeline range scrolls automatically if a frame outside the current range selected (key, mouse wheel, bookmark jump, etc.)
- if 'Auto reset' set, the range resets if the video frame count change or you set the range and the script was not initialized.
- If the slider is in the area of a selection and 'Custom range' is selected, the slider area is entered as a default in the dialog box.
* New status bar info %TR and %TM stands for Timeline range. (program settings > Video > 'Configure video statusbar')
- %TR or %TM shows nothing if 100% Range is set, at Range 200: %TR shows [200] and %TM [start-end], use one of them.. should be enough.
- a good place should be after the frame count value 'Frame %F / %FC %TR - (%T)'
* Added selections and bookmark information to the Video information ( Video > Video information )
* On Win10, the mouse wheel should now also work in the status bar.
* Added macro 'PreviewEncode.py' ( update 2021.06.01 ) to the macro folder
- encodes fhe selections and insert the clips and trims into the script ( for a fast preview )
- please open the macro with an text editor and read the info and change the paths and templates according to your needs.

gispos
11th June 2021, 18:43
AvsPmod 2.6.8.3 (https://github.com/gispos/AvsPmod/releases/tag/2%2C6%2C8.1)

* Added the ability to move the timeline range
- move left or right on the status bar with the left mouse button pressed
- the shift value is calculated depending on the size of the area, if you press the control key the value is 1
- the range of movement is limited to the slider position, if the shift key is pressed, the range is not limited,
- but then the displayed image no longer matches the displayed slider position, you then have to click on the slider again.
* The video slider has been given a context menu
- if you click with the right mouse button directly on a selection (blue area), the full menu is displayed else only the 'Trim editor' menu
* Status bar info %TM removed, a similar information is now displayed on the video slider
* Added macro PreviewResize.py
- is intended for playback with display zoom < 100%, more information is written in the macro.
* Update PreviewEncode.py macro (showDialog, save and read the options, and more)
* New macro 'DeleteEndodings.py' in macro subfolder 'Extra'. Is intended as a supplement to 'PreviewEncode'
* Small bugfixes in timeline range


Edit: Moving the timeline is calculated from the pixel position. Are there any problems with higher monitor resolutions? If so please report

kedautinh12
11th June 2021, 19:45
Thanks

FranceBB
11th June 2021, 23:37
Thanks, downloaded as always.
Although this time I didn't have enough time to test the former version (2.6.8.2), so I'm gonna jump from 2.6.8.1 to 2.6.8.3. :)

stranno
11th June 2021, 23:54
Is there any possibility to set the frame position in the first frame of every step instead of the middle frame?

If I set 50,000 frames for an step and I advance one frame from the final frame of the first step (50,000), the next position is 50,001, but in the middle of 25,001 and 75,001. I want the next step to show from 50,001 to 100,001, not from 25,001. Not sure if I explained myself properly :D

Moving the status bar (latest version) does that. But I would want to do it with the left/right keys.

I would want to request, if possible, a shortcut to copy the current frame's time without milliseconds. It would come handy for Youtube timelines (it does not support milliseconds, of course you can delete them, but that would save time). Now I can copy the time through rmb on the frame box, but afaik there's no shortcut for that.

I love the timeline range feature. Thanks for keeping Avspmod alive!

Bernardd
12th June 2021, 15:15
Hello,
I have a little problem with WriteFile function.
I do not knows if problem is in Avisynth or in AvsPmod. But i find it with AvsPmod, when i exam frame by frame a video to adjust filter's params.

To explain the problem : a little script


BlankClip(length=10, width=640, height=480, pixel_type="RGB32", fps=24.0, fps_denominator=1, audio_rate=44100, channels=1, sample_type="16bit", color=$000000)

save = Select([<"save (no = 0 ; yes =1)", 0, 1, 0>], false , true)

data =1
colon = " "

(save == true) ? WriteFile("D:\Normal\Videos\8 et super 8\valeurs\essai.txt", "current_frame", "colon", string(data)):last


In AvsPmod, i run the script, and i tune the userslider to 1, and i jump one frame and other frame. I tune the userslider to 0, i jump to frame number 4. I tune the userslider to 1, i play frame 5 and 6.

I hope WriteFile write this

0 1
1 1
2 1
4 1
5 1
6 1

or WriteFile write this

0 1
0 1
0 1
1 1
2 1
0 1
0 1
4 1
5 1
6 1


It is a little bug because it is easy to correct the file, but it eat some time.

AvsPmod AvsPmod 2.6.8.3 windows x86-64
AviSynth+ 3.7.0 (r3382,3.7,x86-64)
Thanks
Bernard

StainlessS
12th June 2021, 17:07
With this

BlankClip(length=10, width=640, height=480, pixel_type="RGB32", fps=24.0, fps_denominator=1, audio_rate=44100, channels=1, sample_type="16bit", color=$000000)

save = true # false writes nothing

data =1
colon = " " # maybe should be called SPACE, colon = ":"

(save) ? WriteFile(".\essai.txt", "current_frame", "colon", string(data)):last

I get

0 1 # This extra is produced in VDub, load will write 1st one, then play will write again from frame 0. OK [missing] if play in eg PotPlayer
0 1
1 1
2 1
3 1
4 1
5 1
6 1
7 1
8 1
9 1

Maybe AvsPMod is seeking back to frame 0 before jumps, sort of same as VDub play from frame zero after load and display frame 0.

EDIT:
Maybe this would work in AvsPMod as it is [whether it is bug or not)

BlankClip(length=10, width=640, height=480, pixel_type="RGB32", fps=24.0, fps_denominator=1, audio_rate=44100, channels=1, sample_type="16bit", color=$000000)

save = true # false writes nothing # EDIT: Put your select thing here

data =1

FN="D:\_TEST\essai.txt"
#RT_FileDelete(FN) # EDIT: Added : Probably makes it not work in AvsPMod, test with/without
SSS="""
RT_WriteFile(FN, "%d %d",current_frame,data,Append=current_frame>0)
Return last
"""
(save) ? Scriptclip(SSS) : last

Dogway
12th June 2021, 18:58
Is there a way to keep the video panel from resizing itself? For example after an error message or switching tabs.

Bernardd
12th June 2021, 19:24
Thanks Stainless.

I have tested this mod of your script.


SSS="""
((0<=current_frame<=3)||(5<=current_frame<=8)) ? RT_WriteFile(FN, "%d %d",current_frame,data,Append=current_frame>0):last
Return last
"""
Scriptclip(SSS)


Now, i think my problem is not a Avisynth problem, but a AvsPmod. When i show the video with AvsPmod and i change the save param value, the display are refreshed and RT_WriteFile forget the old datas to keep the newer.

StainlessS
12th June 2021, 21:35
@Bernardd
What is it that you are trying to do. [what is the output file used for].

gispos
12th June 2021, 22:55
Is there any possibility to set the frame position in the first frame of every step instead of the middle frame?... Not sure if I explained myself properly:D
I know what you mean. I don't know yet whether I can still integrate that.

Moving the status bar (latest version) does that. But I would want to do it with the left/right keys.
To do this, new entries would have to be created in the video menu, because shortcuts are only supported there.
let's see if that is feasible.

I would want to request, if possible, a shortcut to copy the current frame's time without milliseconds. It would come handy for Youtube timelines (it does not support milliseconds, of course you can delete them, but that would save time). Now I can copy the time through rmb on the frame box, but afaik there's no shortcut for that.!
But that saves not my time:D


I love the timeline range feature. Thanks for keeping Avspmod alive!
Thanks

Is there a way to keep the video panel from resizing itself? For example after an error message or switching tabs.
Some ways are unfathomable.
It also annoys me sometimes but not so much that I have changed that. That is an inscrutable matter. Let's see..


Now, i think my problem is not a Avisynth problem, but a AvsPmod. When i show the video with AvsPmod and i change the save param value, the display are refreshed and RT_WriteFile forget the old datas to keep the newer.
Come on. Certainly not.
GetFrame is usually only called once and should only be called again when the frame number changes.
What you see in the video window is called up once and should also be written by write file.

Exception:
the script is changed, then the frame has to be read again.
There is no other way, the frame has to be reloaded, not just the frame but the entire clip.
This is not a bug.

Bernardd
12th June 2021, 23:30
@StainlessS
I am working on old 8mm. I am using Descratch with 10 args.
In AvsPmod, i exam each frame and tune Descratch's args (generaly for whole scene). When the result is like i want, i save the 10 args in file with WriteFile. Then i exam the following scene.
In finish, i run Descratch with Conditionnal Reader to use the args datas file on the whole video.

It is why, in my script sample to explain the problem, i have a boolean AvsPmod user slider to enable or desable the WriteFile job.

@gispos
Thanks for your answer. I shall continue to clean WriteFile after write.

gispos
12th June 2021, 23:52
Thanks, downloaded as always.
Although this time I didn't have enough time to test the former version (2.6.8.2), so I'm gonna jump from 2.6.8.1 to 2.6.8.3. :)
You disappoint me :eek:
:D

StainlessS
13th June 2021, 00:01
@Bernardd,
Maybe have a look at this thread, maybe it gives you ideas [konstantin1 posts]:- https://forum.doom9.org/showthread.php?t=173010

stranno
13th June 2021, 00:01
But that saves not my time:D
Np. Thanks again :)

Bernardd
13th June 2021, 11:22
@StainlessS
I observe your proposal of unknow value (current_frame>0) (not find in doc) of append arg for RT_WriteFile eliminate the problem of twice first frame data save.
(note with append = true, RT_WriteFile and WriteFile give the same result)
Thanks for your link proposal.


@gispos
Do you get like me when you run this script with AvsPmod display and with Virtualdub ?

BlankClip(length=10, width=640, height=480, pixel_type="RGB32", fps=24.0, fps_denominator=1, audio_rate=44100, channels=1, sample_type="16bit", color=$000000)
u =1
colon = " "
WriteFile("D:\........\try.txt", "current_frame", "colon", string(u))


With AvsPmod, saved datas are :

0 1
0 1
0 1
1 1
2 1
3 1
4 1
5 1
6 1
7 1
8 1
9 1


With Virtualdub, saved datas are :

0 1
0 1
1 1
2 1
3 1
4 1
5 1
6 1
7 1
8 1
9 1


I believe pershaps a Avisynth bug.

l00t
13th June 2021, 14:06
Hmm, I have just noticed, that the total number of frames is overindexed by one. Probably the length is used, however, the counter starts from 0, so len-1 is the last frame, not len.

StainlessS
13th June 2021, 15:20
I observe your proposal of unknow value (current_frame>0) (not find in doc)

RT_WriteFile(String FileName, string format, dat1, ... , datn, bool "Append"=False)
Writes a formatted string to FileName file. The unnamed 'format' string and optional unnamed 'dat' args are used to construct the
text string that is written, uses C/CPP printf() style formatting.
Format: compulsory string controlling format and describing the datn type args that are expected.
datn: Variable number of data args of any type (excluding clip).
Append, Default False, optional and MUST be supplied with name (eg Append=True) as we do not know where optional data args end,
Appends to file if already exists, else opens new FileName.


Append=current_frame>0

Will NOT append when current_frame==0, ie wipe file and create new file with the written "current_frame 1" thing.
When current_frame > 0, then will append to existing file.

As gispos said, using the Jump To Frame thing, refreshes script, reloads script and produces frame 0, (where 0 is written to file),
then jumps to the "Jump To Frame". Thats how Avisynth works, and there is nothing AvsPMod can do about it. It is a bug
in neither Avisynth not AvsPMod, just how things work.

Assuming that I understand your requirements,
You need something that can write whatever it is you wanna write to a text file (maybe by macro as pointed to in other thread), and
read that file somehow in Avisnyth, (maybe only if the file exists, or ensure that it already exist but maybe blank).
that way AvsPMod refresh script does not write anything to the text file.

That VD_Edkey thing, writes VDub2 frame/Range numbers to a text file whilst using VDub2,

another AutoIt program (SawBones) and script (FrameSurgeon) uses similar VDUB2 technique.
SawBones(FrameSurgeon):- https://forum.doom9.org/showthread.php?t=173158&highlight=sawbones

EDIT: Maybe if you can create a group of clips with a group of 'standard' DeScratch settings, and provide them to
FrameSurgeon, then you could use the FXd type commands to select the clip to use in FrameSurgeon via the Clipclop
plugin, ie those particular DeScratch settings would be used for that section of the source clip.
(Above would require use of VDub2 rather than AvsPMod)
See the SawBones/FrameSurgeon DEMO script, it will show you what it can do.

EDIT: Here, the simnple demo script

Import("FrameSurgeon.avs")

### Config ###
SHOW=True # Show ClipClop OR Prune Metrics
SHOWMODE=0 # 0=ClipClop metrics, 1=Prune Metrics (Show deletions rather than replacements)
SCMD="" # Not Using SCMD in this DEMO
CMD="DEMO_Command.txt"
DV=5 # 0=ERRORS ONLY, 5=FULL Debug to DebugView(Google)
STACK=True

### Source clip and Simulated replacement clips ###
src=Colorbars.killaudio.ConvertToYV12.ShowFrameNumber(Size=72,x=320,y=240)

FX1=src.FlipHorizontal # Light denoising or whatver
FX2=FX1.FlipVertical # Heavy denoising or whatver

### Edit or No Edit ###
CMD=(CMD!="") ? RT_GetFullPathName(CMD) : ""
PROCESS = (SCMD!="" || (CMD!="" && Exist(CMD))) # Skip FrameSurgeon if no String nor file commands.
Result = (PROCESS) ? FrameSurgeon(src,scmd=SCMD,cmd=CMD,Show=Show,ShowMode=SHOWMODE,dv=DV,fx1=FX1,fx2=FX2) : src

### Stack For View ###
TOP=StackHorizontal(src.RtSub("Source",True),FX1.RtSub("FX1",True))
BOT=StackHorizontal(FX2.RtSub("FX2",True),Result.RtSub("Result",True))
Return (STACK) ? StackVertical(TOP,BOT) : Result


/*
Can use above script where DEMO_Command.txt file does not exist and will not produce error, ie use same script and Demo_Command.txt
with VirtualDub, Sawbones, and NotePad.
*/

Only supports two FXd clips [FX1, and FX2], you could use more FXd clip and stack similarly to above.
Instead of this

FX1=src.FlipHorizontal # Light denoising or whatver
FX2=FX1.FlipVertical # Heavy denoising or whatver

use something like

FX1=src.DeScratch("args list 1") # your own favorite args list, I dont remember descratch args
FX2=src.DeScratch("args list 2") # your own 2nd favorite args list, I dont remember descratch args

gispos
13th June 2021, 17:58
@gispos
Do you get like me when you run this script with AvsPmod display and with Virtualdub ?

Correct. AvsPmod makes 3 times ping when initializing.
When initializing a clip, a lot has to be read and set.
Try this, then it looks like VirtualDub

BlankClip(length=10, width=640, height=480, pixel_type="RGB32", fps=24.0, fps_denominator=1, audio_rate=44100, channels=1, sample_type="16bit", color=$000000)
u =1
colon = " "

/**avsp_filter
WriteFile("E:\Temp\try.txt", "current_frame", "colon", string(u))
**/
return last

gispos
13th June 2021, 18:55
An update of PreviewEncode.py and DeleteEncodings.py is available here (https://www.sendspace.com/file/a3b73l)

Bernardd
13th June 2021, 23:23
@gispos, @StainlessS
Thanks for you answers. I shall try your proposals.

I have understood your explains about process when one video is displayed. It is logical.

Before this month, i used AvsPmod version 2.5.1 x86-32 associated with Avisynth 2.60, build:Mar 31 2015. I know, they were old versions.
With this combination, i have no problem with WriteFile.

This month, i have migrated to AvsPmod 2.6.8.3 windows x86-64 and AviSynth+ 3.7.0 (r3382,3.7,x86-64).
With this combination, i have find this frame 0 datas redundant saves.

I have read the Doom9 forum AvsPmod thread, i understand the new AvsPmod do'nt work exactely as the older, because memory use is optimised.

For me this multiple frame 0 saves is an regression. But, in text file, it is easy to search lines "0 data" and to delete the redundants.

Thanks for your work.

gispos
14th June 2021, 13:05
@gispos, @StainlessS
Thanks for you answers. I shall try your proposals.

I have understood your explains about process when one video is displayed. It is logical.

Before this month, i used AvsPmod version 2.5.1 x86-32 associated with Avisynth 2.60, build:Mar 31 2015. I know, they were old versions.
With this combination, i have no problem with WriteFile.

This month, i have migrated to AvsPmod 2.6.8.3 windows x86-64 and AviSynth+ 3.7.0 (r3382,3.7,x86-64).
With this combination, i have find this frame 0 datas redundant saves.

I have read the Doom9 forum AvsPmod thread, i understand the new AvsPmod do'nt work exactely as the older, because memory use is optimised.

For me this multiple frame 0 saves is an regression. But, in text file, it is easy to search lines "0 data" and to delete the redundants.

Thanks for your work.
Then it's not just AvsPmod, because the old AvsPmod 2.5.1 64bit makes 3 pings with the Avisynth version 3.71 when initializing.

0 1
0 1
0 1


Edit:
This is not an Avisynth bug either. With AvsPmod, the source clip and the display clip are initialized and _getFrame must be transmitted to Avisynth.
The 3rd ping is then sent when the video window is drawn for the first time

gispos
14th June 2021, 22:21
For me this multiple frame 0 saves is an regression. But, in text file, it is easy to search lines "0 data" and to delete the redundants.

Save it in the AvsPmod macro folder as 'RemovePing.py' (or whatever you want to name it)

#-------------------------------------------------------------------------------
# Name: RemovePing.py
# Purpose: For WriteFile log files
# Reduces consecutive identical numbers (frames) to 1 or 0 if found == badNumber
# new file is written in the same dir with the prefix 'new_'
#
# Author: GPo
#
# Created: 14.06.2021, update 15.06.2021
# Copyright: (c) GPo 2021
# Licence: <free>
#-------------------------------------------------------------------------------
import os
# run macro in new thread

badNumber = '0'

filename = avsp.GetFilename(title='Open WriteFile log', filefilter=_('Text files') +
' (*.txt)|*.txt|' + _('All files') + ' (*.*)|*.*', default='')
if not filename:
return
if os.path.getsize(filename) > 1024 * 500:
avsp.MsgBox('File size to big')
return

fDir, fName = os.path.split(filename)

with open(filename, mode='rb') as f:
txt = f.read()
f.close()
lines = txt.split('\n')
newTxt = ''
L = len(lines)
x = 0

try:
while x < L:
nr = lines[x].split(' ')[0]
if nr.isdigit():
if nr != badNumber:
newTxt += lines[x] + '\n'
x += 1
while x < L and lines[x].startswith(nr):
x += 1
else:
newTxt += lines[x] + '\n'
x += 1
except:
avsp.MsgBox('Unknown error')
return

saveName = os.path.join(fDir, 'new_' + fName)
try:
with open( saveName, 'wb') as f:
f.write(newTxt)
f.close()
except IOErroras as err:
raise

Bernardd
15th June 2021, 14:30
@gispos

Thanks for this macro, which clean the saved writefile.

It is perfect when i want WriteFile output on the whole video. But some pings are not cleaned with my AvsPmod use.

I explain my specific use of AvsPmod.
I use the AvsPmod display to exam frame by frame the after filter output to tune the filters args. In first pass, with WriteFile function i save the tuning. In finish pass i apply the filter with specific frame tune with ConditionalReader function.

I use "user slider" and "tag selection for toggling" AvsPmod functions.

Below an script sample

BlankClip(length=10, width=640, height=480, pixel_type="yv12", fps=24.0, fps_denominator=1, audio_rate=44100, channels=1, sample_type="16bit", color=$008080)

[Tuning pass=0]
# Filter Arg tuning
off_y =[<"off_y", -64, 64, 0>]
ColorYUV(off_y=off_y)

# Args tune save
colon = " "
save = Select([<"enregistre (non = 0 ; oui =1)", 0, 1, 0>], false , true)
(save) ? WriteFile("D:\...\writefile.txt", "current_frame", "colon", string(off_y)):last
Return last
[/Tuning pass]

# Before finish, writefile.txt must be completed, with this two lines in beginnig :
# Type int (sample)
# Default 0 (sample)

ScriptClip("ColorYUV (off_y=off_y)",show=false, after_frame=false)\
.ConditionalReader("D:\Normal\Videos\8 et super 8\valeurs\writefile.txt", "off_y", show=False)


Now two scenarii

First, frame by frame i exam the ouput, i tune arg and for each frame, i enable save and immediately i desable, for the frames 0,1,2,3, i desable save for the frames 4,5,6 and i enable save for the whole frames 7,8 and 9 with the same tune.
In this case the writefile. txt is :

0 33
0 33
0 33
0 -64
0 -64
1 -64
0 64
0 64
2 64
0 0
0 0
3 0
0 32
0 32
7 32
8 32
9 32


and new writefile.txt is :

0 33
0 -64
1 -64
0 64
2 64
0 0
3 0
0 32
7 32
8 32
9 32


I wish deleted lines 0 "something" (pings) before frame number 1, 2, 3 and 7

Second scenario, frame by frame i exam the ouput, i tune arg and for each frame, i enable save and immediately i desable, for the frames 1,2,3, i desable save for the frames 4,5,6 and i enable save for the whole frames 7,8 and 9 with the same tune.
In this case the writefile. txt is :

0 -64
0 -64
1 -64
0 64
0 64
2 64
0 0
0 0
3 0
0 32
0 32
7 32
8 32
9 32


and new writefile.txt is :

0 -64
1 -64
0 64
2 64
0 0
3 0
0 32
7 32
8 32
9 32


I wish deleted lines 0 "something" (pings) before frame number 1, 2, 3 and 7

I hope, that it is possible to amend the macro script for this specific uses.

And if possible, "the icing on the cake", if the in the macro message, where the file to clean is selected, the conditionnalreader datas "type" and "default" can be given, it should be wonderful.

gispos
15th June 2021, 17:38
I wish deleted lines 0 "something" (pings) before frame number 1, 2, 3 and 7
I probably did not understand everything, but you can change the script something.
This code removes all lines that start with 0. Replaced the part in the script.

try:
while x < L:
nr = lines[x].split(' ')[0]
if nr.isdigit() and nr == '0': # specify a number
x += 1
while x < L and lines[x].startswith(nr):
x += 1
else:
newTxt += lines[x] + '\n'
x += 1
except:
avsp.MsgBox('Unknown error')
return

Result from your 1st example

1 -64
2 64
3 0
7 32
8 32
9 32


If that is correct then the code can also be simplified

import os
# run macro in new thread

filename = avsp.GetFilename(title='Open WriteFile log', filefilter=_('Text files') +
' (*.txt)|*.txt|' + _('All files') + ' (*.*)|*.*', default='')
if not filename:
return
if os.path.getsize(filename) > 1024 * 500:
avsp.MsgBox('File size to big')
return

fDir, fName = os.path.split(filename)

with open(filename, mode='rb') as f:
txt = f.read()
f.close()
lines = txt.split('\n')
newTxt = ''

for line in lines:
if not line.startswith('0'):
newTxt += line + '\n'

saveName = os.path.join(fDir, 'new_' + fName)
try:
with open( saveName, 'wb') as f:
f.write(newTxt)
f.close()
except IOErroras as err:
raise

Bernardd
15th June 2021, 20:33
@gispos
Thanks

With my specific use, i look each frame with AvsPmod display, and i enable WriteFile (with user slider) and i desable it frame by frame or for a frames interval.

Each WriteFile enable give two pings : two lines 0 some datas

This script delete all these two lines 0 some datas. It is perfect.

But if some data is saved for the frame 0, WriteFile have first three lines 0 some data. This script delete these three lines.

I hope the script keep only one line for the frame 0, if they are three lines and delete lines for the frame 0, if they are only two lines.

I resume an specific process for the frame 0 and one other for the lines > 0.

gispos
16th June 2021, 09:05
I hope the script keep only one line for the frame 0, if they are three lines and delete lines for the frame 0, if they are only two lines.

I resume an specific process for the frame 0 and one other for the lines > 0.
I think that should fit now

import os
# run macro in new thread

filename = avsp.GetFilename(title='Open WriteFile log', filefilter=_('Text files') +
' (*.txt)|*.txt|' + _('All files') + ' (*.*)|*.*', default='')
if not filename:
return
if os.path.getsize(filename) > 1024 * 500:
avsp.MsgBox('File size to big')
return

fDir, fName = os.path.split(filename)

with open(filename, mode='rb') as f:
txt = f.read()
f.close()

lines = txt.split('\n')
newTxt = ''
c = 0
for line in lines:
if line.lstrip().startswith('0'):
c += 1
if c > 2: # change here the threshold
newTxt += line + '\n'
c = 0
else:
newTxt += line + '\n'
c = 0

saveName = os.path.join(fDir, 'new_' + fName)
try:
with open( saveName, 'wb') as f:
f.write(newTxt)
f.close()
except IOErroras as err:
raise

Bernardd
16th June 2021, 15:49
@Gispos

Well done, this script clean perfectly the pings and keep only saved frame numbers and their filter datas.

But now i hope the script can integrate like macro "ConditionalReader file from bookmarks.pny", the opportunity to write in begining of file the datas "Type" and "Default" necessary for ConditionnalReader file.

Like "ConditionalReader file from bookmarks.pny", operator should see a display, where he choose "Type" and give "Default".

Name the output macro's file, "new" input macro's file is your and a good idea.

I propose "ConditionalReader from WriteFile.pny" as name for this new macro.

I apologize for this last job, but i have tried to merge these two scripts and i cannot do.

Thanks

gispos
16th June 2021, 16:46
@Gispos

Well done, this script clean perfectly the pings and keep only saved frame numbers and their filter datas.

But now i hope the script can integrate like macro "ConditionalReader file from bookmarks.pny", the opportunity to write in begining of file the datas "Type" and "Default" necessary for ConditionnalReader file.

Like "ConditionalReader file from bookmarks.pny", operator should see a display, where he choose "Type" and give "Default".

Name the output macro's file, "new" input macro's file is your and a good idea.

I propose "ConditionalReader from WriteFile.pny" as name for this new macro.

I apologize for this last job, but i have tried to merge these two scripts and i cannot do.

Thanks
Not at the moment. The script didn't cost me much time, the one with ConditionalReader, values and options is a completely different matter.
I haven't looked at it yet and that's why it takes time. You have to feel like doing something like that ... :)

gispos
16th June 2021, 17:57
...but i have tried to merge these two scripts and i cannot do.

Fast and dirty :) try it (https://www.sendspace.com/file/mrquph)

Bernardd
16th June 2021, 18:14
Your the boss.
Thanks

gispos
16th June 2021, 18:35
Fast and dirty :) try it (https://www.sendspace.com/file/mrquph)
Update (https://www.sendspace.com/file/s3fhfw)
If there were no two values, nothing was added on the first version.
Tell me if it works

Bernardd
16th June 2021, 19:43
Thanks.

First :
It run well, but last line is no good ['']
sample :

Type Int
Default 0
0 32
1 32
2 32
3 32
4 32
9 32
10 32
11 32
12 32
13 32
14 32
15 32
22 32
23 32
24 32
25 32
26 32
27 32
28 32
['']


Two : for options, some one can be delete.
In message box :
The choice of value and her windows is not necessary.
"Boolmarks represent..." and the two choice below "Single Frame" and "Override ..." are not necessary.

Three :
Thank for this job.
I think the AvsPmod power is the visualisation of output script, the tuning of filters args with user sliders, the saving of this tuning by WriteFile use for easy built of Conditional Reader file to get encoded output.

gispos
16th June 2021, 20:06
Bernardd a question: All because of the first two lines? or something else changes.

for the last bad line change:
lines = txt.split('\n') to lines = txt.strip().split('\n')

Bernardd
16th June 2021, 20:40
The aim of this script is
first to let operator choice "type" (bool, int, float or string) and chose "default" in accordance with "type" (true or false, or sample (22 or -0.5 or ghj and so one...). Perhaps, the script can control if the default value is in accordance with type choice. But it is no necessary, i do'nt know if Conditionnal Reader function control this.
secund : to write this manual choice in begining of the conditional reader file
third : to automatic delete lines created by pings.

The other options are specific for conversion from bookmarks to conditional reader file.

gispos
17th June 2021, 17:02
The aim of this script is
first to let operator choice "type" (bool, int, float or string) and chose "default" in accordance with "type" (true or false, or sample (22 or -0.5 or ghj and so one...). Perhaps, the script can control if the default value is in accordance with type choice. But it is no necessary, i do'nt know if Conditionnal Reader function control this.
secund : to write this manual choice in begining of the conditional reader file
third : to automatic delete lines created by pings.

The other options are specific for conversion from bookmarks to conditional reader file.
Another update (small bugs fixed) (https://www.sendspace.com/file/qfmmsr)

gispos
17th June 2021, 18:09
AvsPmod 2.6.8.4 (https://github.com/gispos/AvsPmod/releases)

* SplitView now also recognizes group offsets ( nice for compare two same videos with different start offsets )
* Timeline range can be moved with 'hard coded shortcuts'
- Ctrl + Alt + Left or Right ( moves 10% steps in the limited range )
- Ctrl + Alt + Up or Down ( moves the complette range ), then slider position does not match the picture.
- the now displayed frame number can be updated with the 'Enter' or 'Return' or a frame step, if you have not updated and
- you hold down Ctrl while hitting 'Enter' or 'Return' the timeline moves back to the current frame number
- there is one setting under program options > Video > 'Move video slider to timeline start', read the tooltip
* Update macro PreviewEncode.py and DeleteEncodings.py
* Fixed: if a resize filter was set with a 'Preview Filter' during playback, an error message could appear.
* Fixed: the context menu of the text editor could crash under certain conditions
-
How do I sync videos with groups:
If a group was previously selected, delete that group first. Make sure 'Add tab to group' > 'Apply offsets' is checked
Go to the desired position with each video (tab), then select the same group for each video ('Add tab to group').
Now all videos should be frame accurately synchronized.

Bernardd
17th June 2021, 19:05
Thanks Gispos,
You have well simplified the script, thus i can understand something.

In "ConditionalReader file from bookmarks.pny" the variable value is necessary, because bookmarks can have title. If this title exist, it is use as data value after frame number in conditionnal reader file. If this title do'not exist, operator must give default value in prompt msg.

With Conditionnal Reader from WriteFile, the data value after frame number is already written in WriteFile.

I propose you to delete value ref in script. I do'not know, if my explain is clear, thus below the script amended in this way (i have add comments in some lines).


# -*- coding: utf-8 -*-
"""
Generate a ConditionalReader file from the video bookmarks

This macro takes the list of the current video bookmarks and generates a
new text file to be used with ConditionalReader. Each frame can represent a
single frame or the start or end of a range of frames. If the 'interpolation'
option is selected (only valid for int and float), 'Value' must consist in
two space-separated values.

If a bookmark have a title, it can be used as its value instead of the one
introduced in the prompt dialog. For ranges of frames, the value can be put
in the title of either the start or end frame. When using interpolation the
two values can be introduced both in the same bookmark or separately.

More info on ConditionalReader:
http://avisynth.nl/index.php/ConditionalReader


Written by vdcrim
Original macro idea by Bernardd

GPo mod, @2021 fast and dirty, last change: 17.06.2021
Generate a ConditionalReader file from WriteFile file
read the input and:
delete two '0' pings and reduce three '0' pings to one
"""

# PREFERENCES

default_type = 'Bool'
default_default = ''
# default_value = ''
default_bm_meaning = 'Single frames'
default_insert_path = True


# ------------------------------------------------------------------------------


# Run in thread
import sys
import os.path

filename = avsp.GetFilename(title='Open WriteFile log', filefilter=_('Text files') +
' (*.txt)|*.txt|' + _('All files') + ' (*.*)|*.*', default='')
if not filename:
return
if os.path.getsize(filename) > 1024 * 500:
avsp.MsgBox('File size to big')
return

fDir, fName = os.path.split(filename)
# set the default filename
default_filename = os.path.join(fDir, 'new_' + fName)

with open(filename, mode='rb') as f:
txt = f.read()
f.close()

lines = txt.strip().split('\n')
bmlist = []
c = 0
for line in lines:
line = line.strip()
if not line:
continue
if line.startswith('0'):
c += 1
if c > 2: # change here the threshold
nr = line.split(' ')
if len(nr) == 2:
bmlist.append((nr[0], nr[1]))
else:
bmlist.append((line, ''))
c = 0
else:
nr = line.split(' ')
if len(nr) == 2:
bmlist.append((nr[0], nr[1]))
else:
bmlist.append((line, ''))
c = 0

if not bmlist:
avsp.MsgBox(_('There is not Valus'), _('Error'))
return

# Prompt for options
if not default_filename:
default_filename = os.path.splitext(avsp.GetScriptFilename(propose='general'))[0]

txt_filter = (_('Text files') + ' (*.txt)|*.txt|' + _('All files') + '|*.*')
while True:
options = avsp.GetTextEntry(
title=_('ConditionalReader file from WriteFile file'),
message=[[_('Type'), _('Default')],# _('Value')],
_('ConditionalReader file'),
_('Insert the ConditionalReader file path at the current '
'cursor position')
],
default=[[(_('Bool'), _('Int'), _('Float'), _('String'), default_type),
(_('True'), _('False'), _('Your Int'), _('Your Float'), _('Your String'), default_default)],
# (_('True'), _('False'), default_value)],
(default_filename, txt_filter), default_insert_path
],
types=[['list_read_only', 'list_writable', 'list_writable'], 'file_save', 'check'], width=415)
if not options:
return
typ, default, filename, insert_path = options #value, filename, insert_path = options
if not filename:
avsp.MsgBox(_('An output path is needed'), _('Error'))
else: break

(default_typ, default_default, default_value,
default_filename, default_insert_path) = options

# Write the ConditionalReader file
# value_default = value.strip()
text = ['Type {0}\n'.format(typ)]
if default: text.append(u'Default {0}\n'.format(default.strip()))

for frame, title in bmlist:
text.append(u'{0} {1}\n'.format(frame,
title.strip())) # if title else value_default))


text = [line.encode(sys.getfilesystemencoding()) for line in text]
with open(filename, 'w') as file:
file.writelines(text)
if insert_path:
avsp.InsertText(u'"{0}"'.format(filename), pos=None)




In end, a cosmetic add, i have completed the default choice, to be more clear.

Thanks Gispos

lansing
17th June 2021, 20:49
I'm trying out the new timeline range feature. I see that you're trying to implement a more precise timeline navigation with the current slider-based setup.

One of the main problem with all slider-based timeline video editing programs is its fixed length. Since the number of frames of the video will be mapped to the slider, navigation using slider will get more difficult as the video gets longer. For example, if we have a 2 hour video, it will be painful to navigate to a specific frame in a 500,000 frames slider just by clicking. The solution to this problem is a cursor-based zoomable timeline, which is what all NLE programs are doing.

I don't think doing it with a slider-based setup is going to work. Setting a timeline range isn't really solving anything, as I still have problem going to a specific frame. There needs to be labels of frame positions in the background along with the slider in order to be useful. The moving of timeline doesn't really work either because the position of the slider is blocking it, as I couldn't move the timeline pass the start/end of the slider.

gispos
18th June 2021, 01:01
I propose you to delete value ref in script. I do'not know, if my explain is clear, thus below the script amended in this way (i have add comments in some lines).

You can do that way, but it does not hurt the script if you leave it ... for a possibly other form of 'WriteFileEx'

...The moving of timeline doesn't really work either because the position of the slider is blocking it, as I couldn't move the timeline pass the start/end of the slider.
First read then scold.

AvsPmod 2.6.8.3
* Added the ability to move the timeline range
- move left or right on the status bar with the left mouse button pressed
- the shift value is calculated depending on the size of the area, if you press the control key the value is 1
- the range of movement is limited to the slider position, if the shift key is pressed, the range is not limited,
- but then the displayed image no longer matches the displayed slider position, you then have to click on the slider again.
* The video slider has been given a context menu
- if you click with the right mouse button directly on a selection (blue area), the full menu is displayed else only the 'Trim editor' menu


AvsPmod 2.6.8.4
* Timeline range can be moved with 'hard coded shortcuts'
- Ctrl + Alt + Left or Right ( moves 10% steps in the limited range )
- Ctrl + Alt + Up or Down ( moves the complette range ), then slider position does not match the picture.
- the now displayed frame number can be updated with the 'Enter' or 'Return' or a frame step, if you have not updated and
- you hold down Ctrl while hitting 'Enter' or 'Return' the timeline moves back to the current frame number


...which is what all NLE programs are doing.

Then you have to use such a program:rolleyes:

lansing
18th June 2021, 05:50
First read then scold.

AvsPmod 2.6.8.3
* Added the ability to move the timeline range
- move left or right on the status bar with the left mouse button pressed
- the shift value is calculated depending on the size of the area, if you press the control key the value is 1
- the range of movement is limited to the slider position, if the shift key is pressed, the range is not limited,
- but then the displayed image no longer matches the displayed slider position, you then have to click on the slider again.
* The video slider has been given a context menu
- if you click with the right mouse button directly on a selection (blue area), the full menu is displayed else only the 'Trim editor' menu


AvsPmod 2.6.8.4
* Timeline range can be moved with 'hard coded shortcuts'
- Ctrl + Alt + Left or Right ( moves 10% steps in the limited range )
- Ctrl + Alt + PageUp or PageDown ( moves the complette range ), then slider position does not match the picture.
- the now displayed frame number can be updated with the 'Enter' or 'Return' or a frame step, if you have not updated and
- you hold down Ctrl while hitting 'Enter' or 'Return' the timeline moves back to the current frame number


Then you have to use such a program:rolleyes:

These controls doesn't really work correctly either, and also they are way too complicated. You should really be looking at the timeline of NLE and see how they work.

What you're trying to do is like moving a scrollbar in a zoomed timeline in NLE, where the scrollbar will cover the entire length of the timeline, and moving the thumb left/right in the bar will get you anywhere in the timeline. In comparison, in your current implementation, moving the timeline left/right is only able to move it by a few hundred frames at most, which is not what it supposed to do.

gispos
18th June 2021, 13:28
Really thick lips.

Is there anyone else that it doesn't work for?
This is how it should work. (Without the numbers)
https://streamable.com/mz5cwy

lansing
18th June 2021, 14:27
Really thick lips.

Is there anyone else that it doesn't work for?
This is how it should work. (Without the numbers)
https://streamable.com/mz5cwy

You need to test with longer clip to see the problem. I have a 900,000 frames clip and moving the timeline is basically getting nowhere.

gispos
18th June 2021, 16:25
You need to test with longer clip to see the problem. I have a 900,000 frames clip and moving the timeline is basically getting nowhere.

2 million frames
https://streamable.com/psz44x

timeline range move on status bar during playback
https://streamable.com/ksqkjy

timeline moves automatically
https://streamable.com/updeuv

lansing
18th June 2021, 20:34
2 million frames
https://streamable.com/psz44x

timeline range move on status bar during playback
https://streamable.com/ksqkjy

timeline moves automatically
https://streamable.com/updeuv

I am not getting what you're getting, holding shift and drag on status bar only moves the timeline by little for me.

gispos
18th June 2021, 20:59
I am not getting what you're getting, holding shift and drag on status bar only moves the timeline by little for me.
I tested it under Win7 and Win10 and no problems. What range did you set? Are you using a high resolution monitor?
What happens to Ctrl + Alt + PageUp or PageDown?

lansing
18th June 2021, 21:31
I tested it under Win7 and Win10 and no problems. What range did you set? Are you using a high resolution monitor?
What happens to Ctrl + Alt + PageUp or PageDown?

I'm using Win10, 2560 x 1440 with 125% scaling. I tried both 50 frames and 2000 frames range, timeline range dragging is almost going nowhere.

ctrl + alt + pageup/pagedown has no effect.

gispos
18th June 2021, 22:25
Look under the hotkeys if there is already an entry with Ctrl + Alt + PageUp.
If not, set a video function to Ctrl + Alt + PageUp e.g. Frame Step 1 minute and try out whether it works

Edit:
What happens when you start playback? what happens if you execute frame step at the end of the timeline?

gispos
18th June 2021, 22:46
I made a mistake and described UP as a PageUp. The UP and Down buttons are located next to the Left and Right buttons.

lansing
19th June 2021, 00:57
ctrl + alt + up/down works now, and it works okay during playback.

gispos
19th June 2021, 08:07
lansing, can you please show me a snapshot of Help > DPI Information or post me the values.

lansing
19th June 2021, 14:32
Monitor DPI: (93, 93)
Screen DPI: (120, 120)

DPI scaling overall: 125.0%
DPI scaling main tab: 125.0%
DPI scaling video controls: 125.0%
DPI scaling statusbar: 125.0%

DPI Aware: True
DPI Awareness: 2
You may also want to add a "copy to clipboard" button for this, I couldn't just copy and paste the info.

Arx1meD
19th June 2021, 17:14
The updated and revised translation into Russian language of the program. The translation was made for the program version 2.6.8.4.
Download: translation_rus.py (https://mega.nz/file/dLZl2S4Z#s2AGWoFD-Eng7hTh8I7BiwFh9ge5Ujx_F7_RcSBkkXQ)

gispos
20th June 2021, 06:05
The updated and revised translation into Russian language of the program. The translation was made for the program version 2.6.8.4.
Download: translation_rus.py (https://mega.nz/file/dLZl2S4Z#s2AGWoFD-Eng7hTh8I7BiwFh9ge5Ujx_F7_RcSBkkXQ)
Thanks, I will add to the next version.

Edit:
If you translate it I'll add it too

Timeline move on status bar sensitivity
Sets the sensitivity of the mouse movement on the status bar, for timeline range move (with or without Shift), lower value more movement

Arx1meD
20th June 2021, 13:16
gispos,
Чувствительность перемещения временной шкалы в строке состояния

Задаёт чувствительность при движении мышки в строке состояния, для перемещения ползунка по диапазону шкалы времени (с или без удерживания Shift), чем меньшее значение тем больше подвижность

EDIT:
I am still working on the correct translation. After testing, I will update the translation file. Don't wait for me...

Arx1meD
22nd June 2021, 11:54
The following screenshots show which text could not be translated.
https://thumbs2.imgbox.com/8e/3e/xhipBOvY_t.jpg (https://imgbox.com/xhipBOvY) https://thumbs2.imgbox.com/2a/56/M0OiPUOt_t.jpg (https://imgbox.com/M0OiPUOt) https://thumbs2.imgbox.com/8d/a8/uIL4WleM_t.jpg (https://imgbox.com/uIL4WleM) https://thumbs2.imgbox.com/f0/20/GcqzKakH_t.jpg (https://imgbox.com/GcqzKakH) https://thumbs2.imgbox.com/c3/87/BmbA8olQ_t.jpg (https://imgbox.com/BmbA8olQ) https://thumbs2.imgbox.com/da/d1/LgXTubGk_t.jpg (https://imgbox.com/LgXTubGk) https://thumbs2.imgbox.com/6b/29/hmdGQBmn_t.jpg (https://imgbox.com/hmdGQBmn)

EDIT:
Found another text that cannot be translated
https://thumbs2.imgbox.com/cd/d3/Kn88KnVV_t.jpg (https://imgbox.com/Kn88KnVV)

Shinkiro
24th June 2021, 23:06
Very often some hotkeys do not work correctly.
For example I put on Ctrl+Nampad1 Take Snapshot1 and on Ctrl+Nampad2 Take Snapshot2, but often Ctrl+Nampad2 starts bookmarking although this action is set to key B
And it happens randomly, you should reload the program and everything becomes normal, but sometimes it does not.
At the same time, if at the moment when the hotkeys are working incorrectly go to the settings and reset them and set them again, everything becomes correct.

And another glitch that I have just discovered, when I changed the interface language from Russian to English, all the hotkeys that I set were reset to default.

Has anyone ever had that kind of magic happen?

Arx1meD
25th June 2021, 13:11
And another glitch that I have just discovered, when I changed the interface language from Russian to English, all the hotkeys that I set were reset to default
The same bug.

Updated translation into Russian: translation_rus.py (https://mega.nz/file/ZbIzGC7D#cwYTR0sCviY5RJx3byQcRkHOd5CzXpaTHt41y0p2xzo)

gispos
25th June 2021, 18:48
The following screenshots show which text could not be translated.
https://thumbs2.imgbox.com/8e/3e/xhipBOvY_t.jpg (https://imgbox.com/xhipBOvY) https://thumbs2.imgbox.com/2a/56/M0OiPUOt_t.jpg (https://imgbox.com/M0OiPUOt) https://thumbs2.imgbox.com/8d/a8/uIL4WleM_t.jpg (https://imgbox.com/uIL4WleM) https://thumbs2.imgbox.com/f0/20/GcqzKakH_t.jpg (https://imgbox.com/GcqzKakH) https://thumbs2.imgbox.com/c3/87/BmbA8olQ_t.jpg (https://imgbox.com/BmbA8olQ) https://thumbs2.imgbox.com/da/d1/LgXTubGk_t.jpg (https://imgbox.com/LgXTubGk) https://thumbs2.imgbox.com/6b/29/hmdGQBmn_t.jpg (https://imgbox.com/hmdGQBmn)

EDIT:
Found another text that cannot be translated
https://thumbs2.imgbox.com/cd/d3/Kn88KnVV_t.jpg (https://imgbox.com/Kn88KnVV)
You can not change Scrap Window. What you have marked belongs to the dialog font and color settings.
Basically, window titles can not be changed.

"Available Memory: {} MB" Can you translate in the next version
"%s - Initialize clip: %s" Can you translate in the next version
"set colors" Can you translate in the next version
Input a frame number or time.. Can you translate in the next version
You can translate the process dialog in the next version.

Default, Default Dark, etc. can not be translated.

Auto scroll, Auto reset, Custom, 50 frames...
I update now and then the German translation file, I do not consciously update everything, reasons:
1.) I would like to keep the names of the menus as short as possible, and most of them is shorter and memorable in English.
2.) Everyone should understand a little English, e.g. the word 'frames'.
Auto scroll, Auto reset, how does that look in Russian? Auto is already a shortcut that looks better and is shorter like 'Automatic scroll' and german 'Automatischer Bildlauf'

I do not think it really makes sense to translate everything that makes some menu items just too long.
'50 frames' is therefore not offered. The word 'frames' occurs in other places and is then translated in German as 'Einzelbilder'. I do not want to have that in this menu.
Auto scroll, Auto reset, you can translate in the next version. Think about whether that makes sense.
Why is the arrow missing for the submenus with 'Percent'?

Very often some hotkeys do not work correctly.
For example I put on Ctrl+Nampad1 Take Snapshot1 and on Ctrl+Nampad2 Take Snapshot2, but often Ctrl+Nampad2 starts bookmarking although this action is set to key B
And it happens randomly, you should reload the program and everything becomes normal, but sometimes it does not.
At the same time, if at the moment when the hotkeys are working incorrectly go to the settings and reset them and set them again, everything becomes correct.

The shortcuts Ctrl + Numpad 0 to Numpad 5 are assigned as standard for the preview filters. What Shortcuts did you set for the preview filters?
Maybe in the options something has come confused (2 entries for the same shortcut).
Is now stupid, but create a copy of the options.dat file and delete the original. Start AvsPmod and delete the shortcuts for the Preview Filter (Ctrl + NumPad0 to Numpad5).
Close AvsPmod and open the program again and see if the shortcuts are still deleted. If not it's bad, if yes, assign it to the snapshots.


And another glitch that I have just discovered, when I changed the interface language from Russian to English, all the hotkeys that I set were reset to default.

Has anyone ever had that kind of magic happen?
That's how it is, You have to decide for a language.;)

Arx1meD
25th June 2021, 20:24
gispos, I do not insist on the need to translate all the words in the program.
Auto scroll, Auto reset, how does that look in Russian?
In Russian it will be: Auto scroll - Автопрокрутка; Auto reset - Автосброс.

Arx1meD
25th June 2021, 20:42
Why is the arrow missing for the submenus with 'Percent'?
Wow! If you translate the word 'Percent' in this place, the arrow disappears. I removed the translation and the arrow is back! I did it in other languages and the bug was repeated.

gispos
25th June 2021, 21:24
Wow! If you translate the word 'Percent' in this place, the arrow disappears. I removed the translation and the arrow is back! I did it in other languages and the bug was repeated.
Try the next version, it works for me, but I don't know if I've changed anything
https://i.postimg.cc/mDPX3rQy/Prozent.jpg (https://postimages.org/)

Arx1meD
26th June 2021, 05:40
Perhaps this is not a bug, but it looks strange.
If you enable "Accessing AviSynth in threads", then when switching frames, the RAM grows in jumps. So it should be?
I used DSS2 to load the source.

https://thumbs2.imgbox.com/88/24/NMXmgfnP_t.png (https://imgbox.com/NMXmgfnP) https://thumbs2.imgbox.com/c2/68/csL6XDjP_t.png (https://imgbox.com/csL6XDjP)

EDIT: I will clarify. The GPU Memory and RAM grows when you enable/disable the processing of a clip by a filter or function, or change the arguments.

gispos
26th June 2021, 13:31
EDIT: I will clarify. The GPU Memory and RAM grows when you enable/disable the processing of a clip by a filter or function, or change the arguments.
This is how Windows (and Avisynth) works.
Once memory has been allocated, it is not completely removed from the program. And if you change filters or parameters, the clip is reinitialized and that costs memory.
This then goes up to a certain limit. If you repeat this a few times, the memory will hardly change.

Arx1meD
26th June 2021, 14:02
This is how Windows (and Avisynth) works
This only happens when "Accessing AviSynth in threads" is enabled.

EDIT:
If you repeat this a few times, the memory will hardly change.
There was an error after turning the filters on/off (or changing arguments).
https://images2.imgbox.com/a9/6e/Zf4Y3aG9_o.jpg

Shinkiro
26th June 2021, 19:31
The shortcuts Ctrl + Numpad 0 to Numpad 5 are assigned as standard for the preview filters. What Shortcuts did you set for the preview filters?
Before using Ctrl + Numpad, I delete them from Preview Filters.

Maybe in the options something has come confused (2 entries for the same shortcut).
Is now stupid, but create a copy of the options.dat file and delete the original. Start AvsPmod and delete the shortcuts for the Preview Filter (Ctrl + NumPad0 to Numpad5).
Close AvsPmod and open the program again and see if the shortcuts are still deleted. If not it's bad, if yes, assign it to the snapshots.

I deleted options.dat like you said, deactivated Ctrl + Numpad 1 and Ctrl + Numpad 2 in preview filters, they no longer show up in settings but still work as preview filters 1 and preview filters 2. After that I reloaded the program and assigned my hotkeys
Ctrl + Numpad 1 for Take Snapshot1
Ctrl + Numpad 2 for Take Snapshot2
Numpad 1 for Show/hide Snapshot 1
Numpad 2 for Show/hide Snapshot 2
S for Quick save images
B for add/remove bookmark
at first everything was fine, but after a while the problem repeated itself, most often it repeats with Ctrl + Numpad 2, when I turn the program go to the desired frame, press Ctrl + Numpad 2 to save a screenshot after which I press Numpad 2 to see it, it instead puts a bookmark, which is interesting Ctrl + Numpad 1 and Numpad 1 at the same moment works fine

gispos
27th June 2021, 12:11
AvsPmod 2.6.8.5 (https://github.com/gispos/AvsPmod/releases)

* New Frame thread routine Options > 'Use advanced frame thread'
- it is Beta! a bit faster, one single frame thread per script, test it out and report problems.
* Timeline shows frame or time numbers if a timeline range is set
- program options > Misc 2 > 'Timeline range numbers count', you can change the count of numbers (1, 4, 9)
* The sensitivity of the mouse movement on the status bar for moving the timeline range is adjustable
- program options > Misc 2 > 'Timeline move on status bar sensitivity', lower values more movement
* A double click on the status bar moves the timeline in the limited area forwards or backwards, depending on the position of the mouse pointer
- if Shift is held, the entire area is moved without limit
* A middle click on the status bar moves the timline back to the current frame
* Fxed: if not timeline 'Auto reset' was set, on tab change the wrong frame was shown
* Fix: I hope some shortcut problems fixed
* New russian translation, thanks to Doom9 user Arx1meD



Perhaps this is not a bug, but it looks strange.
If you enable "Accessing AviSynth in threads", then when switching frames, the RAM grows in jumps. So it should be?
I used DSS2 to load the source.

EDIT: I will clarify. The GPU Memory and RAM grows when you enable/disable the processing of a clip by a filter or function, or change the arguments.
If this only occurs with the threads, you have to switch off the threads or try the new version Options > 'Use advanced frame thread'.
AvsPmod is not responsible for the GPU RAM, these are the filters used. Load a script without a filter and look at the GPU usage.

Very often some hotkeys do not work correctly.
For example I put on Ctrl+Nampad1 Take Snapshot1 and on Ctrl+Nampad2 Take Snapshot2, but often Ctrl+Nampad2 starts bookmarking although this action is set to key B
And it happens randomly, you should reload the program and everything becomes normal, but sometimes it does not.
At the same time, if at the moment when the hotkeys are working incorrectly go to the settings and reset them and set them again, everything becomes correct.

I hope I fixed the problem.

Arx1meD
28th June 2021, 04:54
If this only occurs with the threads, you have to switch off the threads or try the new version Options > 'Use advanced frame thread'.
AvsPmod is not responsible for the GPU RAM, these are the filters used. Load a script without a filter and look at the GPU usage.
Did as you said. Everything works fine. It looks like the problem was with the filters, specifically DSS2.

l00t
28th June 2021, 14:25
Latest version crashes with Prefetch enabled (accessing in threads state does not matter). Furthermore, frames on the bottom statusbar are still overindexed by one (e.g. the latest frame is 9/10, as counter starts from 0 not 1).

LigH
28th June 2021, 15:06
Furthermore, frames on the bottom statusbar are still overindexed by one (e.g. the latest frame is 9/10, as counter starts from 0 not 1).

Just like the decimal number system: There is a number of 10 digits, in a range from 0 to 9. Or a byte can have 256 different values, in a range from 0 to 255. Seems intentional to me, that's just the way how zero-based indexes work.

StainlessS
28th June 2021, 16:58
Dont really know what this is referring to but maybe it shows FrameIndex / FrameCount,
and maybe 100t happier with FrameIndex / (FrameCount-1).

gispos
28th June 2021, 17:21
Latest version crashes with Prefetch enabled (accessing in threads state does not matter).
I can not confirm. If you do not use the new thread routine, nothing has changed to the previous versions.
Furthermore, frames on the bottom statusbar are still overindexed by one (e.g. the latest frame is 9/10, as counter starts from 0 not 1).

Can one explain that to me (am I too stupid for that?)
Trim (0, 9) displayed is then 9 / 10
What's wrong with it? It's frame number 9 of 10 frames

Shinkiro
28th June 2021, 20:46
I hope I fixed the problem.
Unfortunately the problem remained, I repeated all over again deleted options.dat assigned my keys restarted the program, updated the frame on F5, pressed Ctrl+Nampad2 to save the screenshot, then I clicked on Nampad2 to see the screenshot, but a bookmark is inserted instead

l00t
29th June 2021, 07:17
If you scroll to the last frame of any clip at the bottom it will display (N-1)/N where N is the total number of frames. [0,N] has N+1 elements, you need [0,N) (or [0,N[ depending on the notation) here, just as TinMan said.

Regarding the crash it seems that new z_Resize is causing the crash with Prefetch. Sorry about that.

I can not confirm. If you do not use the new thread routine, nothing has changed to the previous versions.


Can one explain that to me (am I too stupid for that?)
Trim (0, 9) displayed is then 9 / 10
What's wrong with it? It's frame number 9 of 10 frames

gispos
29th June 2021, 18:42
If you scroll to the last frame of any clip at the bottom it will display (N-1)/N where N is the total number of frames.
That is correct, and we are sticking to it ( N = total count )

[0,N] has N+1 elements,

What brings you to this thought? We recorded it above, N is the number of elements and not N + 1
0/1 there is one element with the designation 0

you need [0,N) (or [0,N[ depending on the notation) here, just as TinMan said.

This is completely irrelevant, because there is only one integer notation

Regarding the crash it seems that new z_Resize is causing the crash with Prefetch. Sorry about that.
Thanks

l00t
29th June 2021, 19:43
That is correct, and we are sticking to it ( N = total count )

But why? It suggests that there's one more frame, but in fact there isn't... it never reaches 100% (1/1) and this disturbs me...

gispos
30th June 2021, 07:56
Unfortunately the problem remained, I repeated all over again deleted options.dat assigned my keys restarted the program, updated the frame on F5, pressed Ctrl+Nampad2 to save the screenshot, then I clicked on Nampad2 to see the screenshot, but a bookmark is inserted instead
I've set my shortcuts like yours and tested the whole thing again under Win7 and Win10 and cannot understand the behavior. And the code for it shows me no errors either.
You wrote that if you deleted the shortcut for the preview filter, it would still work, I cannot understand that either. If I delete it, I cannot switch on a Previev Filter with it.

I don't know how you update the versions, please try a freshly unzipped archive.
And let me know, even if I don't know what I can do at the moment.

But why? It suggests that there's one more frame, but in fact there isn't... it never reaches 100% (1/1) and this disturbs me...
This is due to the indexing that starts at 0.

if indexing started at 1 it would look like you would like it to be.
1/1 one element labeled 1

But since it starts at 0 and it would be according to your wishes.
0/0 0 elements labeled 0 (very strange)
Then the total number of frames would never be displayed correctly.

It makes a difference whether I show the information in the status bar or in the timeline.
With a frame count of 5 there would be markers at 0, 1, 2, 3, 4, but the status bar information must be 4/5
The frame number 4 of 5 frames is displayed and frame number 4 is the last frame, because the first frame starts with 0.

gispos
30th June 2021, 10:15
Unfortunately the problem remained, I repeated all over again deleted options.dat assigned my keys restarted the program, updated the frame on F5, pressed Ctrl+Nampad2 to save the screenshot, then I clicked on Nampad2 to see the screenshot, but a bookmark is inserted instead

Give this build a try, x64 only
https://www.sendspace.com/file/k3bg3s

FranceBB
2nd July 2021, 12:31
I'm trying to save the .tif after applying a LUT in 16bit, but AVSPmod only allows me to save images in 8bit.
Is there a way to save the picture in 16bit?

https://i.imgur.com/AMeBHQH.png
https://i.imgur.com/Ek2Cnmf.png
https://i.imgur.com/Ae1zHg2.png

this is what I get saved:

https://i.imgur.com/jlfndBP.png

this is the source:

https://i.imgur.com/QH9wH7p.png

Also, Avisynth seems to be indexing this correctly and in fact AVSPmod recognizes it as RGBP16:

https://i.imgur.com/Qpaz8Js.png

I understand that the preview in AVSPmod is 8bit only, but isn't there a way to save the image with the original bit depth?

I would rather avoid to fire up ffmpeg every time I wanna make a screenshot:

"ffmpeg.exe" -y -i "\\mibctvan000\Ingest\MEDIA\temp\tiff\AVS Script.avs" -an -pix_fmt rgb48 -vcodec tiff -y "01.tiff"


pause

gispos
2nd July 2021, 18:45
I'm trying to save the .tif after applying a LUT in 16bit, but AVSPmod only allows me to save images in 8bit.
Is there a way to save the picture in 16bit?

Dear FranceBB, unfortunately I have to disappoint you.
That would be 48 bit, natively Python does not support 48 bit images, even Windows bitmaps only have 24bit + 8bit alpha.
I tried PNG but at the moment I only get error messages.

It is also not that easy to copy the frame with a bit depth of 48bit into a buffer in order to create an image from it, regardless of whether it is tiff or png.
You have to get used to something like that (test, read yourself smartly, get angry and test again).
I can't do that quickly, and probably a few Python libraries are needed for this, which would also inflate AvsPmod.

Shinkiro
2nd July 2021, 20:59
Give this build a try, x64 only
https://www.sendspace.com/file/k3bg3s
I, too, can not identify an exact pattern, the appearance of this glitch, it is then it is not, now it seems all right. I began to have suspicions that it is my system and not the software.

FranceBB
2nd July 2021, 23:58
That would be 48 bit,


Yep, RGB48


natively Python does not support 48 bit images,


Oh... :(



I tried PNG but at the moment I only get error messages.


I see... :(


It is also not that easy to copy the frame with a bit depth of 48bit into a buffer in order to create an image from it, regardless of whether it is tiff or png.
You have to get used to something like that (test, read yourself smartly, get angry and test again).
I can't do that quickly, and probably a few Python libraries are needed for this, which would also inflate AvsPmod.

Got it...
Well, it would be something nice to have even in the future. Right now I can just use FFMpeg to get the tiff out of Avisynth correctly. I've sent them to a production studio in Burbank, California in the afternoon to check one of the LUT which is gonna be used to see if both parties (us airing the movies and them selling us the movies) agree on that, so it could happen again in the future and it would be cool to do that in AVSPmod, but hey, it's not like something "mandatory" per se as I have the FFMpeg workaround, so... no worries. :)

gispos
3rd July 2021, 21:44
...and it would be cool to do that in AVSPmod, but hey, it's not like something "mandatory" per se as I have the FFMpeg workaround, so... no worries. :)
I don't think I can do that with Python in the near future. Have tinkered a macro that also works with ffmpeg but maybe a bit easier to use. I hope. :)
Maybe you or others can use it. Tell me if improvements (changes) are still necessary.

The path to ffmpeg.exe must still be entered in the macro
download here (https://www.sendspace.com/file/b28a18)


# GPo 2021, Save as Tiff_rgb48.py
# save current frame as 48bit tiff image file with ffmpeg

import subprocess
import os
import sys
self = avsp.GetWindow()

##### user settings
# path to ffmpeg.exe
ffmpeg = os.path.join(self.programdir, 'encoders\\ffmpeg.exe')

# added the output to a new tab ( FFImageSource )
addNewTab = True
#####

script = self.currentScript
if self.UpdateScriptAVI() is None or not self.previewOK(script):
avsp.MsgBox('Script not initialized.')
return
frame = avsp.GetFrameNumber()
trim = 'trim(%i, -1)' % frame
scriptTxt = avsp.GetText(index=None, clean=True).strip() + '\n' + trim

if not os.path.isfile(ffmpeg):
avsp.MsgBox('ffmpeg not found.\nYou must change the "ffmpeg" variable in the macro.\n\n' + ffmpeg, 'Error')
return

default = self.options['imagesavedir']
#default = self.GetProposedPath(type_='image')
if not os.path.isdir(default):
default = ''
if script.filename:
base, ext = os.path.splitext(script.filename)
default = base + '.tif'

outfile = avsp.GetSaveFilename(title='Save as', filefilter=_('Tagged Image File') + ' (*.tif)|*.tif', default=default)
if not outfile:
return
self.options['imagesavedir'] = os.path.dirname(outfile)

infile = os.path.join(os.path.split(outfile)[0], 'encoding.avs')
encoding_args = [
ffmpeg,
'-i', infile,
'-an',
'-pix_fmt', 'rgb48',
'-vcodec', 'tiff',
'-y', outfile,
]

try:
with open(infile, 'wb') as f:
f.write(scriptTxt)
f.close()
except IOError as err:
raise

def utf8ify(list):
return [item.encode(sys.getfilesystemencoding()) for item in list]

def fileSizeToString(fsize, precision=0):
if fsize < 1:
return '0 B'
suffixes = ['B','KB','MB','GB','TB']
suffixIndex = 0
while fsize > 1024 and suffixIndex < 4:
suffixIndex += 1
fsize = fsize/1024.0
if suffixIndex > 2 and precision == 0:
precision = 2
return '%.*f%s' % (precision, fsize, suffixes[suffixIndex])

encoding_errors = ''
encoding_file_size = 0
args = utf8ify(encoding_args)
re = subprocess.call(args)
if re != 0:
encoding_errors = 'Code: %s\n%s\n' % (str(re), os.path.split(outfile)[1])
elif os.path.isfile(outfile):
encoding_file_size += os.path.getsize(outfile)
else:
encoding_errors = 'Unknown error'

if encoding_errors:
avsp.MsgBox('Last encoding returns error\n' + encoding_errors, 'Error')
elif addNewTab:
self.NewTab(text='#Filesize: %s\nFFImageSource("%s")' % (fileSizeToString(encoding_file_size), outfile))

FranceBB
3rd July 2021, 23:12
Oh, thanks, that will do! ;)

gispos
4th July 2021, 10:51
AvsPmod 2.6.8.6 (https://github.com/gispos/AvsPmod/releases)

* Fixed again some shortcut problems
* Minor other changes

gispos
16th July 2021, 15:14
AvsPmod 2.6.8.7 (https://github.com/gispos/AvsPmod/releases)

* Add to menu File > 'Clear file history'
* Bugfix advanced frame thread ( Options > 'Use advanced frame thread' )
* Bugfix 'Write selected preview filter to script', at the end a * was missing ( **/ )
* Bugfix filterdb.dat, entry for 'MCTemporalDenoise' was buggy


Lirk -> How to clear recently opened files list? (https://forum.doom9.org/showthread.php?p=1947359#post1947359)
The function is now available :)

FranceBB
16th July 2021, 16:31
Thanks for the new version, as always. :)

rco133
29th July 2021, 16:27
Hi.

I posted some time ago about the mouse stops working in the AVS window.

The strange thing is that it still works in the video window. I can scroll frames back and forth with the mouse weel.

However, I am not able to scroll up and down in the AVS script window.

I don't see this happening in any other programs, and it only happens after quite some time. I am not sure if it is windows uptime, or how long time I have AvsPmod open that triggers the issue.

If I reboot the PC it starts working again. Closing and opening AvsPmod doesn't change anything. Once it starts happening, the only thing that help is to reboot the PC.

I know it kinda sucks to find an issue like this, since I can't reproduce it, other than I see it happening after some time. The PC has been running for 40 days, but AvsPmod have not been running for all that time. I close/open it regularly.

Right now it is a the state where the mouse doesn't work in the AVS window. Is there anything I can do to troubleshoot?

rco133

gispos
29th July 2021, 19:46
Hi.

I posted some time ago about the mouse stops working in the AVS window.

The strange thing is that it still works in the video window. I can scroll frames back and forth with the mouse weel.

However, I am not able to scroll up and down in the AVS script window.

I don't see this happening in any other programs, and it only happens after quite some time. I am not sure if it is windows uptime, or how long time I have AvsPmod open that triggers the issue.

If I reboot the PC it starts working again. Closing and opening AvsPmod doesn't change anything. Once it starts happening, the only thing that help is to reboot the PC.

I know it kinda sucks to find an issue like this, since I can't reproduce it, other than I see it happening after some time. The PC has been running for 40 days, but AvsPmod have not been running for all that time. I close/open it regularly.

Right now it is a the state where the mouse doesn't work in the AVS window. Is there anything I can do to troubleshoot?

rco133
Hello,
I'm sorry to read this.

You write that the PC has been running for 40 days .. continuously?
From earlier I know that there can be problems with some programs if the PC is switched on for so long without a reboot.
Programs that use the Windows Time Counter for calculations can cause problems.

I can't tell you whether this concerns AvsPmod, the editor is first of all a basic component that is then expanded with its own code.
But I have no access to the basic code.

Only the mouse wheel in the editor does not work?
Are the scroll bars working?
Does the Up and Down keyboard work too?

rco133
29th July 2021, 22:07
Hello,
I'm sorry to read this.

You write that the PC has been running for 40 days .. continuously?
From earlier I know that there can be problems with some programs if the PC is switched on for so long without a reboot.
Programs that use the Windows Time Counter for calculations can cause problems.

I can't tell you whether this concerns AvsPmod, the editor is first of all a basic component that is then expanded with its own code.
But I have no access to the basic code.

Only the mouse wheel in the editor does not work?
Are the scroll bars working?
Does the Up and Down keyboard work too?

Hi.

Yes, everything is working except for the mouse scroll wheel in the AVS window. I can left click the slider on the right and move it up and down, and I can use all four keyboard arrows on the AVS window as well.

In the video window (after pressing F5) I can use the mouse wheel to scroll forward/backwards in the frames.

It is really strange that only the AVS window is affected.

I just ried to open notepad and make a lot of lines. I can scroll up and down with the mouse wheel there as well.

The PC has been running for 40 days constant.

I am not sure if it will make any difference if I shut down AvsPmod each time I have used it, or if I leave it running all the time.

Anyway. It isn't a big deal, so I can live with it. I am just used to just using the mouse wheel in the AVS window :-)

rco133

gispos
2nd August 2021, 18:01
AvsPmod 2.6.8.8 (https://github.com/gispos/AvsPmod/releases)

* Completely new threaded playback routine.
- especially under Win10 this should result in lower CPU usage, higher speed and a smoother playback.
* Add custom editor mouse wheel handler ( Program options > Misc2 > 'Mouse wheel scroll rate on editor' )
- One user reports problems with the mouse wheel while the PC is running for a long time (40 days). Maybe it helps.
- Or you want change the scroll rate: 1 to 5 lines ( default 0 = custom handler disabled )
* Add to video slider context menu 'Timeline to trims' and 'Timeline to clips'
- inserts the complete timeline into the script as trims, separated by the selections.


@rco133 test the custom mouse wheel handler

FranceBB
2nd August 2021, 19:45
AvsPmod 2.6.8.8 (https://github.com/gispos/AvsPmod/releases)

* Completely new threaded playback routine.
- especially under Win10 this should result in lower CPU usage, higher speed and a smoother playback.



Wow, this looks like a really promising update, then! :D
I'll let you know how it behaves on Windows Server 2019 which, effectively, it's like Win10. :)

gispos
2nd August 2021, 22:05
Wow, this looks like a really promising update, then! :D
I'll let you know how it behaves on Windows Server 2019 which, effectively, it's like Win10. :)
I have now installed Win10 and had to find out that the thread routines do not run as under Win7.
With Win10 there was an extremely high CPU load during playback. Which then also led to a choppy playback.

I compared the new routine with VirtualDub2, CPU utilization are only slightly worse with AvsPmod.
VirtualDub just has the advantage of hardware support.

Edit:
Something else interesting on the side:
In my attempts, I managed to increase the Python clock speed by approx. 60% in one thread.
I was looking forward to 180 fps with a 1280x720 video.
The problem was then that the thread could not be terminated... I tried it for 3 days and then gave up.
That was a real turbo thread without a brake. :)

rco133
4th August 2021, 19:48
AvsPmod 2.6.8.8 (https://github.com/gispos/AvsPmod/releases)

* Completely new threaded playback routine.
- especially under Win10 this should result in lower CPU usage, higher speed and a smoother playback.
* Add custom editor mouse wheel handler ( Program options > Misc2 > 'Mouse wheel scroll rate on editor' )
- One user reports problems with the mouse wheel while the PC is running for a long time (40 days). Maybe it helps.
- Or you want change the scroll rate: 1 to 5 lines ( default 0 = custom handler disabled )
* Add to video slider context menu 'Timeline to trims' and 'Timeline to clips'
- inserts the complete timeline into the script as trims, separated by the selections.


@rco133 test the custom mouse wheel handler

Hi.

I can confirm that the new setting solves the issue with the mouse wheel in the AVS window. With new version and setting as before the mouse wheel doesn't work in AVS window.

Setting scroll rate to 1 and restarting AvsPmod makes the mouse wheel work in the AVS window.

Changing it back to 0 and restarting AvsPmod makes the mouse wheel stop working in the AVS window again.

The setting defenately helps, and I now have a working mouse wheel in the AVS window again :-)

rco133

FranceBB
5th August 2021, 10:16
That was a real turbo thread without a brake. :)

ehehehehe indeed!
I gotta say that the new version helps with speed nonetheless, so, well done! :)
I generally deal with masterfiles, so I'm never really using the "play" function (also 'cause I don't expect MPV to play a 1 Gbit/s HDR PQ AppleProRes 12bit file, nor AVSPmod after ffms2 has indexed it over the network), but any improvement in increasing the responsiveness of showing frames when moving back and forth is always more than welcome. :)

tormento
5th August 2021, 11:53
AvsPmod 2.6.8.8
I never used your program and I tried.

I keep on getting the error:

Error parsing plugin string at function "KNLMeansCL"

Any idea?

gispos
5th August 2021, 16:31
I never used your program and I tried.

I keep on getting the error:

Error parsing plugin string at function "KNLMeansCL"

Any idea?

I haven't used KNLMeansCL for a long time and just downloaded the pfmod version from here (https://github.com/pinterf/KNLMeansCL/releases/tag/v1.1.1e).
I have no problems with this version and Avisynth + 3.7.1

Have you ever checked the plugins with AvsMeter?

Edit:
I think you're using an old version.
I found this and it seems your version is returning incompatible information.

pos = long_name.find('_' + short_name)
if pos == -1:
print>>sys.stderr, 'Error parsing plugin string at function "%s"\n' % long_name
break

I will replace the break with a continue so that it is not canceled.
Can you please send me your version so that I can test it.

gispos
5th August 2021, 17:09
ehehehehe indeed!
I gotta say that the new version helps with speed nonetheless, so, well done! :)
I generally deal with masterfiles, so I'm never really using the "play" function (also 'cause I don't expect MPV to play a 1 Gbit/s HDR PQ AppleProRes 12bit file, nor AVSPmod after ffms2 has indexed it over the network), but any improvement in increasing the responsiveness of showing frames when moving back and forth is always more than welcome. :)
I don't use the playback that often either, mostly to find spots.
But the threads were so bad under Win10 that it needed a revision.

In the meantime I have been able to mount a brake on the turbo thread ...:) The playback runs in my test multi-threaded.
But only brings advantages up to a certain limit, depending on the video dimension and filters.

tormento
5th August 2021, 20:28
Can you please send me your version so that I can test it.
I have latest version.

AVSMeter 3.0.8.0 (x64), (c) Groucho2004, 2012-2021

VersionString: AviSynth+ 3.7.1 (r3431, master, x86_64)
VersionNumber: 2.60
File / Product version: 3.7.1.0 / 3.7.1.0
Interface Version: 8
Multi-threading support: Yes
Avisynth.dll location: C:\WINDOWS\SYSTEM32\avisynth.dll
Avisynth.dll time stamp: 2021-07-06, 12:31:12 (UTC)
PluginDir2_5 (HKLM, x64): D:\Programmi\Media\AviSynth+\plugins64
PluginDir+ (HKLM, x64): D:\Programmi\Media\AviSynth+\plugins64+

[C++ 2.6 Plugins (64 Bit)] [Version, Time stamp]
D:\Programmi\Media\AviSynth+\plugins64+\BM3Dcpu-0.2~Wolfram.dll [n/a, 2021-08-01]
D:\Programmi\Media\AviSynth+\plugins64+\BM3Dcuda-0.2~Wolfram.dll [n/a, 2021-08-01]
D:\Programmi\Media\AviSynth+\plugins64+\KNLMeansCL 1.1.1e~pfmod.dll [n/a, 2020-11-12]
D:\Programmi\Media\AviSynth+\plugins64+\MVTools-2.7.45~pfmod.dll [2.7.45.0, 2021-06-08]

[Scripts (AVSI)] [Time stamp]
D:\Programmi\Media\AviSynth+\plugins64\CompTest.avsi [2010-09-05]
D:\Programmi\Media\AviSynth+\plugins64\CompTest24.avsi [2020-04-28]
D:\Programmi\Media\AviSynth+\plugins64\ExTools-4.5c~Dogway.avsi [2021-08-01]
D:\Programmi\Media\AviSynth+\plugins64\NotSMDegrain-3.1.2_115~realfinder.avsi [2021-07-08]
D:\Programmi\Media\AviSynth+\plugins64\SMDegrain-3.2.3d~Dogway.avsi [2021-08-05]
D:\Programmi\Media\AviSynth+\plugins64\SPresso-2020_0507.avsi [2020-05-07]
D:\Programmi\Media\AviSynth+\plugins64\STPresso-2020_0507.avsi [2020-05-07]
D:\Programmi\Media\AviSynth+\plugins64\Utils-r41~raffriff42.avsi [2021-08-05]
D:\Programmi\Media\AviSynth+\plugins64\Zs_RF_Shared-1.154~realfinder.avsi [2021-07-08]

[Uncategorized files] [Time stamp]
D:\Programmi\Media\AviSynth+\plugins64+\AviSynth-new.css [2012-02-26]
D:\Programmi\Media\AviSynth+\plugins64+\AviSynth.css [2016-03-31]
D:\Programmi\Media\AviSynth+\plugins64+\BM3D-0.2~Wolfram.md [2021-08-01]
D:\Programmi\Media\AviSynth+\plugins64+\KNLMeansCL 1.1.1e~pfmod.txt [2020-11-12]
D:\Programmi\Media\AviSynth+\plugins64+\KNLMeansCL-1.1.1.htm [2018-03-10]
D:\Programmi\Media\AviSynth+\plugins64+\MVTools-2.7.45~pfmod.html [2021-06-08]
D:\Programmi\Media\AviSynth+\plugins64+\MVTools-2.7.45~pfmod.md [2021-06-08]
D:\Programmi\Media\AviSynth+\plugins64\AviSynth-new.css [2016-03-31]
D:\Programmi\Media\AviSynth+\plugins64\AviSynth.css [2016-03-31]
D:\Programmi\Media\AviSynth+\plugins64\SMDegrain-3.2.0dRC1~Dogway.html [2021-08-05]

[Plugin errors/warnings]
________________________________________________________________________________________________________________

Function duplicates:

"ColorbarsHD2" : "D:\Programmi\Media\AviSynth+\plugins64\Utils-r41~raffriff42.avsi"
"ColorbarsHD2" : "D:\Programmi\Media\AviSynth+\plugins64\Utils-r41~raffriff42.avsi"
"FormatTime" : "D:\Programmi\Media\AviSynth+\plugins64\Utils-r41~raffriff42.avsi"
"FormatTime" : "D:\Programmi\Media\AviSynth+\plugins64\Utils-r41~raffriff42.avsi"
"IsAvsPlus" : "D:\Programmi\Media\AviSynth+\plugins64\Utils-r41~raffriff42.avsi"
"IsAvsPlus" : "D:\Programmi\Media\AviSynth+\plugins64\Zs_RF_Shared-1.154~realfinder.avsi"
"undefined" : "[InternalFunction]"
"Undefined" : "D:\Programmi\Media\AviSynth+\plugins64\Zs_RF_Shared-1.154~realfinder.avsi"
________________________________________________________________________________________________________________

"D:\Programmi\Media\AviSynth+\plugins64+\MVTools-2.7.45~pfmod.dll" requires the FFTW library for some functions.

Note: 'libfftw3f-3.dll' can be downloaded here:
http://www.fftw.org/install/windows.html

'libfftw3f-3.dll' should be placed in "System32" and/or "SysWoW64"
_______________________________________________________________________________________________________________

kedautinh12
5th August 2021, 23:27
You need libfftw3f for some functions of MVTools
https://forum.doom9.org/showthread.php?t=174470

gispos
6th August 2021, 00:34
@tormento please rename the dll, use a normal name 'KNLMeansCL.dll' or 'KNLMeansCL_pfmod.dll'
I haven't looked at it yet and don't know why AvsPmod insists on an underscore and doesn't like some characters at all. such as '~' '.' ',' or similar.

tormento
6th August 2021, 10:26
You need libfftw3f for some functions of MVTools
I know. Not needed for my purposes.
@tormento please rename the dll
Ok, I will try ASA the encoding will finish.

Why doesn't it complain about other "strangely" renamed dll such as MVTools-2.7.45~pfmod.dll?

LigH
6th August 2021, 10:27
Quite possible it uses the DLL name to build an identifier, which has to obey Python syntax rules for identifiers... Furthermore, AviSynth provides explicit function names to separately access functions of the same name in different plugins (plugin1dll_function / plugin2dll_function), so I guess AvsPmod always prefers unambiguous explicit function names.

Plugins – 6. Plugin Autoload and Conflicting Function Names (http://avisynth.nl/index.php/Plugins#Plugin_Autoload_and_Conflicting_Function_Names)

StainlessS
6th August 2021, 12:23
so I guess AvsPmod always prefers unambiguous explicit function names.
AvsPMod probably dont wanna guess how avisynth will convert filter names to dll prepended filter names. [if it guesses wrong, it will not work proper].
Even a simple hyphen ['-'] in older MaskTools dll name caused problems.

EDIT:
Dll names should match as for variable names ie,
1st character can be Underscore ['_'] or Alphabetic, thereafter can also be digit.
[and of course ending in ".dll"]

gispos
6th August 2021, 15:43
I
Why doesn't it complain about other "strangely" renamed dll such as MVTools-2.7.45~pfmod.dll?
As LigH has already written, AvsPmod has to split the name of the dll and the associated functions to enable a user-friendly editor support.
There are also entries in the database that are managed and only found if the dll name matches the function name.
For example, I added the KNLMeansCL function to the database yesterday:

KNLMeansCL_KNLMeansCL this entry is only found if the dll name matches.
Before the underscore name of the dll after the underscore name of the function.

Such a naming is also otherwise not recommended. '~' usually stands for temporary files.
The best is to leave the names of the dll, and if there is '-' in the name, replace it with an underscore '_'

gispos
7th August 2021, 10:02
AvsPmod 2.6.8.9
(https://github.com/gispos/AvsPmod/releases)

* Improved get_frame threading ( lower CPU usage on Win10 )
* Play thread now multi threaded.
- the speed up varies on the video dimensions and used filters and
- goes down to 0 with heavy filters or big video dimensions (no hardware acceleration).
- on my system: video 1280x720 without a filter and 100% zoom, before 120 fps now 178 fps
* Slider window refresh on Win10 improved.
* Slider window snapshot button (label) gets feedback on making a snapshot.
* Slider window scroll rate increased to 40 pixel
* Added to filterdb.dat 'KNLMeansCL'
* Some other changes


About Avisynth filter plugins *.dll naming:
Please do not use strange characters in the names of the plugins. It is best not to rename the *.dll files.
Avisynth and AvsPmod can have problems with it. Function names have to be assigned to the associated dll,
the name has to be split and this can lead to errors.
AvsPmod can only provide a user-friendly editor if he has no problems with the name of the dll and its function.
If, for example, there is a '-' in the file name of the dll, AvsPmod will report it at startup,
please rename this dll and replace the '-' with a '_'

FranceBB
7th August 2021, 12:33
Nice, more performance improvements! :D

videoFred
8th August 2021, 11:52
Nice, more performance improvements! :D

I agree. Great improvement!
Also the "disable refresh" is very useful.

Thank you Gispos! :thanks:

Doctor Nick
8th August 2021, 22:26
Just curious, how exactly do you install the build requirements for AvsPMod? PyPi doesn't seem to have the wxPython versions (2.8-2.9) that it requires.

gispos
9th August 2021, 15:49
Thank you Fred, thank you FranceBB

Just curious, how exactly do you install the build requirements for AvsPMod? PyPi doesn't seem to have the wxPython versions (2.8-2.9) that it requires.
Manually cmd or batch file

Shinkiro
12th August 2021, 09:55
The 'Save Image Sequence' macro gives an error
'MainFrame' object has no attribute 'matrix' (Save Image Sequence.py, line 103)

gispos
12th August 2021, 18:26
The 'Save Image Sequence' macro gives an error
'MainFrame' object has no attribute 'matrix' (Save Image Sequence.py, line 103)
Fixed it quickly.
When I have time I look at it again.

Test it and report if there are problems.
https://www.sendspace.com/file/urcp5u

VoodooFX
15th August 2021, 09:40
Updated 2.6.6.1 x86 to v2.6.8.9 x86 and it crash after minute or less when playing preview (on Win 7).

Playing this script:
https://forum.doom9.org/showthread.php?p=1949755#post1949755

Log:
Exception in thread Thread-2:
Traceback (most recent call last):
File "threading.pyo", line 801, in __bootstrap_inner
File "threading.pyo", line 754, in run
File "avsp.pyo", line 22578, in play
File "avsp.pyo", line 22159, in SaveCallYield
File "wx\_core.pyo", line 8361, in Yield
PyAssertionError: C++ assertion "m_pendingEvents && !m_pendingEvents->IsEmpty()" failed at ..\..\src\common\event.cpp(1253) in wxEvtHandler::ProcessPendingEvents(): should have pending events if called

gispos
15th August 2021, 10:13
AvsPmod 2.6.9.0 (https://github.com/gispos/AvsPmod/releases)

* Play thread modified, ~14% faster ( without filter ).
- hopefully bug under Win7 fixed
* Bugfix middle mouse button on a selections mark in the timeline ( trying to delete the mark causes an error )
* Bugfix 'Save Image Sequence', fixed AvsPmod and macro code
* Added to filterdb.dat Dogway's ex_contrast

VoodooFX
15th August 2021, 11:17
Thx, v2.6.9.0 doesn't crash. :goodpost:

gispos
15th August 2021, 12:27
nice :)

Shinkiro
15th August 2021, 21:28
Fixed it quickly.
When I have time I look at it again.

Test it and report if there are problems.
https://www.sendspace.com/file/urcp5u
👍Now it works, thank you!

FranceBB
15th August 2021, 22:10
Oh, another update, thanks! :)

StvG
16th August 2021, 03:20
Thanks for the updates.

Is it possible to set YUV->RGB: BT.709 as default for every new tab? Currently a new tab always has Resolution-based as default.

gispos
16th August 2021, 18:00
Thanks for the updates.

Is it possible to set YUV->RGB: BT.709 as default for every new tab? Currently a new tab always has Resolution-based as default.
Pre release AvsPmod library.zip
Under Program Options > Misc2 the default display conversion YUV -> RGB can be set, which is used for a new tab (script).

In the AvsPmod subdirectory 'lib' replace the library.zip with the one contained in the archive.

https://www.sendspace.com/file/1p1f8s

StvG
16th August 2021, 18:48
Pre release AvsPmod library.zip
Under Program Options > Misc2 the default display conversion YUV -> RGB can be set, which is used for a new tab (script).

In the AvsPmod subdirectory 'lib' replace the library.zip with the one contained in the archive.

https://www.sendspace.com/file/1p1f8s

It works.
Thanks.

StvG
20th August 2021, 21:24
Another request. Currently YUV input to be saved as png or displayed is converted to RGB with ConvertToRGB(matrix=x). Is it possible to add option to use another default conversion to RGB (avsresize, fmtconv)? Maybe something like "Resize calculator->Configure" (the "Avisynth resize:" field).

gispos
21st August 2021, 12:07
Another request. Currently YUV input to be saved as png or displayed is converted to RGB with ConvertToRGB(matrix=x). Is it possible to add option to use another default conversion to RGB (avsresize, fmtconv)? Maybe something like "Resize calculator->Configure" (the "Avisynth resize:" field).
It would be possible,
but it doesn't make much sense to me and is therefore not worth the effort.
You can convert to RGB in the script yourself and use whatever you want.

And then there are also the preview filters:
/**avsp_filter
avsresize, fmtconv...
**/
I tested it, even with a PreviewFilter the png with the RGB conversion used is saved.

There is also the macro 'PreviewResize' the macro could possibly be expanded with additional filters.

And with the snippet's ( Video > 'Insert snippet' )
You can also quickly insert predefined filters into the script.

And with the left mouse button pressed and right click you can also quickly activate or deactivate these filters in the script.

FranceBB
21st August 2021, 13:18
Speaking of the conversion, now that ferenc actually introduced full range BT2020 I think we can try to support it again (but this time properly). :)

gispos
21st August 2021, 14:33
Another request. Currently YUV input to be saved as png or displayed is converted to RGB with ConvertToRGB(matrix=x). Is it possible to add option to use another default conversion to RGB (avsresize, fmtconv)? Maybe something like "Resize calculator->Configure" (the "Avisynth resize:" field).
I thought again.
I wanted to replace the macro PreviewResize with a constant PreviewFilter that can always be combined with the other PreviewFilters.

So there will be a display filter that is freely configurable.
Applies to all scripts, i.e. not related to scripts.
Can be switched on / off
Is always processed at last, even if a preview filter is processed.

Speaking of the conversion, now that ferenc actually introduced full range BT2020 I think we can try to support it again (but this time properly). :)
Hm .. I'm curious. But it still remains an 8-bit display, how then are the colors displayed...?

FranceBB
22nd August 2021, 00:36
Well technically by specifications BT2020 was supposed to be 10bit and higher, however manufacturers like Sony didn't give a toss about it and still produced perfectly valid 8bit files. For instance, Sony A7 III produces even HDR files in 8bit as BT2020 HLG.
Anyway, I don't think 8bit is gonna be a problem to be fair, however I think that maybe only Windows 10 (and 11) will give an accurate representation as you should pass the right metadata to Windows as well about what you're displaying. Now, I don't know if there are some APIs to call, but I think we need someone with Windows 10 and/or 11 and WGC enabled.

From MSDN:

"The Desktop Window Manager (DWM) is Windows' compositor. When advanced color is enabled, the DWM performs an explicit color conversion from the app visual content's colorspace to a canonical composition color space, which is scRGB. Windows then color-converts the composed framebuffer content to the display's native color space. In this way, traditional sRGB content automatically gets color-accurate behavior, while advanced color-aware apps can take advantage of the full color capabilities of the display."

The question is: how do we tell Windows what the app is outputting?

Again, from MSDN:

"Windows 10 supports a wide variety of rendering APIs and frameworks. Advanced color support fundamentally relies on your app being able to perform modern presentation using either DXGI or the Visual Layer APIs."

So I found this: https://docs.microsoft.com/en-us/windows/uwp/composition/visual-layer

M$ seems to call it "advanced colour" and any rendering API that can output to one of these presentations methods: D3D11, D3D12, Direct2D, Win2D or Windows.UI.Input.Inking can support advanced color.

StvG
22nd August 2021, 03:06
It would be possible,
but it doesn't make much sense to me and is therefore not worth the effort.
You can convert to RGB in the script yourself and use whatever you want.

Yes, you can write in the script the conversion to RGB but imo it's more convenient if such manual writing is avoided. Often I'm opening 4-5 tabs just to test various things. Writing everytime in every tab that conversion is a bit annoying.

Dogway
22nd August 2021, 09:10
I asked for something similar like 8 years ago.

I think it would make sense to add an editable header and footer option common for all tabs, so in the header you have SetMemoryMax(), LoadPlugin(), global flags, etc, and in the footer an RGB conversion function and Prefetch(), for example.

gispos
22nd August 2021, 12:39
M$ seems to call it "advanced colour" and any rendering API that can output to one of these presentations methods: D3D11, D3D12, Direct2D, Win2D or Windows.UI.Input.Inking can support advanced color.
And that will be the problem.
AvsPmod does not handle D2, D3 OpenGL or any other hardware acceleration. The display is dependent on the GDI. A bitmap memory has to be copied 'DIB Draw' and as long as there are no 10bit bitmaps... nothing works. And even if there were 10bit or higher bitmaps, I don't know whether the wx display component can even handle it.

Changing the AvsPmod display to any other technology is almost impossible. At least for me.

I asked for something similar like 8 years ago.

I think it would make sense to add an editable header and footer option common for all tabs, so in the header you have SetMemoryMax(), LoadPlugin(), global flags, etc, and in the footer an RGB conversion function and Prefetch(), for example.
That won't work with prefetch.
Preftech only has an effect on the set preview filters.

What would be practical is to create a new script with a freely definable header.
Otherwise there are 'snippets', extensions-related templates and the filter database.

This is what the file template looks like for *.mkv, for example

SourceFile = ScriptDir() + [***]
SourceFile = Exist(SourceFile) ? SourceFile : ***
video=LWLibavVideoSource(SourceFile, cache=False)
audio=LWLibavAudioSource(SourceFile, cache=False)
audioDub(video, audio)

#QTGMC(Preset="fast", Sharpness=1.0, InputType=0, FPSDivisor=2, ShowSettings=False)
#SelectEven()

#MCTemporalDenoise(settings="low", sigma=4, strength=100, tovershoot=1, GPU=false)

#Spline36Resize(1920, 1080)
#SuperResXBR(Passes=1, Soft=0.0, XbrSharp=1.0, fWidth=1920, fHeight=1080)

#Sharpen(0.40, MMX=True)
#NonlinUSM(z=3, str=2.0, rad=0.6) #sharpen
#NonlinUSM(z=1.0, pow=1.2, str=0.2, rad=120.0) #contrast
#NonlinUSM(z=3, pow=1.2, str=0.25, rad=6) #sharp+
#UnsharpMask(strength=60, radius=3, threshold=8)
#unsharp(strength=0.6, varY=2.5)
#TUnSharp(strength=80, thresholdL=6, thresholdU=40, radius=2, type=0, map=0, lim=2, gui=false)
#BicubicSharp(str=0.5, edges=0.5, r=2.0, g=2.2, wg=5.0, bl=0.0, mode=1)
#SharpenComplex2(str0=2.0, str1=1.125, k0="3 14 3", k1="1 1 1", edgethr=0.2, debug=false)

#prefetch(4)


The preview filters can also save predefined filters and insert them back into the script ( the whole thing costs one keystroke on the keyboard )
One of 5 pre-defined preview filters that can be inserted individually into the script.

/**avsp_filter
#>
SmoothLevels(input_low=16, gamma=1.00, input_high=235, output_low=16, output_high=235, TVrange=True, Lmode=0, darkSTR=100, brightSTR=100, debug=False)
#>
#>
ex_contrast(cont=0.00, pivot=128, sat=0.00)
#>
#Sharpen(0.40, MMX=True)
#NonlinUSM(z=3, str=2.0, rad=0.6) #sharpen
#>
NonlinUSM(z=1.0, pow=1.2, str=0.2, rad=120.0) #contrast
#>
#>[NonlinUSM 2>UnsharpMask=0]
NonlinUSM(z=3, pow=1.2, str=0.25, rad=6) #sharp+
#>[/NonlinUSM 2>UnsharpMask]
#>
UnsharpMask(strength=60, radius=3, threshold=8)
#>
#unsharp(strength=0.6, varY=2.5)
#TUnSharp(strength=80, thresholdL=6, thresholdU=40, radius=2, type=0, map=0, lim=2, gui=false)
#BicubicSharp(str=0.5, edges=0.5, r=2.0, g=2.2, wg=5.0, bl=0.0, mode=1)
#SharpenComplex2(str0=2.0, str1=1.125, k0="3 14 3", k1="1 1 1", edgethr=0.2, debug=false)
**/



You just have to use the things.:)

FranceBB
22nd August 2021, 23:57
Ah... Dang it.
What about BT601 and 709?
How are they handled right now?
With just a call to ConverttoRGB(matrix="Rec601") and PC601 according to TV range or PC Range? In that case just do the same for Rec2020 and PC2020 with the only catch that we're gonna have to remember in the future / to the future generations that the display method should be rewritten and that it's not exactly how it should be and also that it's 8bit only and there's no HDR support whatsoever

gispos
23rd August 2021, 19:47
Ah... Dang it.
What about BT601 and 709?
How are they handled right now?
With just a call to ConverttoRGB(matrix="Rec601") and PC601 according to TV range or PC Range? In that case just do the same for Rec2020 and PC2020 with the only catch that we're gonna have to remember in the future / to the future generations that the display method should be rewritten and that it's not exactly how it should be and also that it's 8bit only and there's no HDR support whatsoever
Correctly, avisynth is used to convert the display clip.
How's it going... wait and see and have some tea.:)

gispos
28th August 2021, 17:49
AvsPmod 2.6.9.1 (https://github.com/gispos/AvsPmod/releases)

* Added menus Video > Display > 'Display filter' and 'Configure display filter'
- you can add avisynth code (filters) and it is used as last filter for all scripts.
- this filter affects only the display drawing!
- on changing the display filter the current script does remain the preview filter state if video window visible,
- all other scripts does turn off the preview filter.
- you can use short macro code by adding #> at line begin, e.g. #>avsp.GetWindow().OnMenuVideoZoom(zoomfactor=1)
- Note: The filter requires the same CPU time as if it were written in the script.
- link a shortcut for quick switching, the filter is at program startup always off.
* Added menu Edit > Miscelaneos > 'Set selection as display filter...' see above.
* Under Program Options > Misc2 the default display conversion YUV -> RGB can be set, which is used for a new tab (script)
* Added menu File > 'New tab from template'
- you can create a template for a new tab by adding an entry with an asterisk * in the file extension templates.
* Bugfix writing the matrix into the script led to an error if the matrix was already written into the script.
* Some other changes

Dogway
28th August 2021, 22:26
Thanks a lot, will help on streamlining color management:

ConvertBits(16)
ConvertToPlanarRGB(chromaresample="spline36") # will replace with TransformsPack in the future
Cube("...\DisplayCAL\storage\HDR 4K #1 2021-01-11 06-55 0.3127x 0.329y 2.4 F-S XYZLUT+MTX\HDR 4K 2021-01-11 21-55 0.3127x 0.329y 2.4 F-S XYZLUT+MTX.Rec709.B0.0,2.4eGrn64.cube", 2, true)
ConvertBits(8,dither=1)

StvG
2nd September 2021, 08:17
AvsPmod 2.6.9.1 (https://github.com/gispos/AvsPmod/releases)

* Added menus Video > Display > 'Display filter' and 'Configure display filter'
- you can add avisynth code (filters) and it is used as last filter for all scripts.
- this filter affects only the display drawing!
- on changing the display filter the current script does remain the preview filter state if video window visible,
- all other scripts does turn off the preview filter.
- you can use short macro code by adding #> at line begin, e.g. #>avsp.GetWindow().OnMenuVideoZoom(zoomfactor=1)
- Note: The filter requires the same CPU time as if it were written in the script.
- link a shortcut for quick switching, the filter is at program startup always off.
* Added menu Edit > Miscelaneos > 'Set selection as display filter...' see above.
* Under Program Options > Misc2 the default display conversion YUV -> RGB can be set, which is used for a new tab (script)
* Added menu File > 'New tab from template'
- you can create a template for a new tab by adding an entry with an asterisk * in the file extension templates.
* Bugfix writing the matrix into the script led to an error if the matrix was already written into the script.
* Some other changes


Thanks. "Display filter" is great.

Edit...
For example, when you have only "z_ConvertFormat(pixel_type="RGBP", resample_filter_uv="spline36")" in "Configure display filter" and video has _Matrix frame prop 2 (undef) then conversion is 609->RGB (avsresize defaults to 609 when no frame prop/undef). Is it possible in such case of missing frame prop _Matrix or _Matrix=2 the matrix from "YUV->RGB" to be automatically retrieved and used?

gispos
2nd September 2021, 17:23
Thanks. "Display filter" is great.

Edit...
For example, when you have only "z_ConvertFormat(pixel_type="RGBP", resample_filter_uv="spline36")" in "Configure display filter" and video has _Matrix frame prop 2 (undef) then conversion is 609->RGB (avsresize defaults to 609 when no frame prop/undef). Is it possible in such case of missing frame prop _Matrix or _Matrix=2 the matrix from "YUV->RGB" to be automatically retrieved and used?
It's difficult to do, and too special.
1.) Anything can be written in the display filter, there is no reasonable way to react to it.
2.) The whole functions: script matrix, prop matrix, preview filter, display filter, split view, zoom antialising, threads (prop matrix is also reading in separate thread)... are slowly reaching the limits of transparency, I don’t want to add another unknown.

If the script has already been converted to RGB (in the script or by a preview or display filter), no further conversion is carried out. It has to stay that way.
And if no matrix is found, the set or the last set matrix is used. It has to stay that way too.
The matrix is only changed when it is read from the video, when it is changed manually or when it is read from the script ( And please not another switch to be checked :scared::)).

But it is possible to write a matrix in the script and this matrix is used when the script is initialized. However, I don't know whether this will help you.

Edit: The right way is a default value in the converting function and not in AvsPmod.

StvG
4th September 2021, 10:00
It's difficult to do, and too special.
1.) Anything can be written in the display filter, there is no reasonable way to react to it.
2.) The whole functions: script matrix, prop matrix, preview filter, display filter, split view, zoom antialising, threads (prop matrix is also reading in separate thread)... are slowly reaching the limits of transparency, I donÂ’t want to add another unknown.

If the script has already been converted to RGB (in the script or by a preview or display filter), no further conversion is carried out. It has to stay that way.
And if no matrix is found, the set or the last set matrix is used. It has to stay that way too.
The matrix is only changed when it is read from the video, when it is changed manually or when it is read from the script ( And please not another switch to be checked :scared::)).

But it is possible to write a matrix in the script and this matrix is used when the script is initialized. However, I don't know whether this will help you.

Edit: The right way is a default value in the converting function and not in AvsPmod.

Using "Display filter" makes "YUV->RGB" to not have effect. And vice versa not using "Display filter" "YUV->RGB" takes effect.

When you don't use "Display filter" and you have "Read from source or script" + "BT.709 (tv)" you have 709->RGB when there is no frame property "_Matrix" or this frame property is 2 (undef). But when you use "Display filter" instead "YUV->RGB" you don't have the same behavior in such situations. I expected "Default YUV -> RGB conversion" to be valid for "Display filter" too.

Anyway, I added check for no frame property or frame property 2 in "Configure display filter" before the conversion to RGB.

Thanks for your time.

gispos
4th September 2021, 15:59
Using "Display filter" makes "YUV->RGB" to not have effect. And vice versa not using "Display filter" "YUV->RGB" takes effect.

When you don't use "Display filter" and you have "Read from source or script" + "BT.709 (tv)" you have 709->RGB when there is no frame property "_Matrix" or this frame property is 2 (undef). But when you use "Display filter" instead "YUV->RGB" you don't have the same behavior in such situations. I expected "Default YUV -> RGB conversion" to be valid for "Display filter" too.

Anyway, I added check for no frame property or frame property 2 in "Configure display filter" before the conversion to RGB.

Thanks for your time.
If the clip is already converted to RGB32 in the script, or a conversion to RGB32 takes place in the preview filter or in the display filter, no further conversion will (can) be make.
The way you do it now, 'first check it in the display filter' is probably the only possible (correct) procedure.

gispos
11th September 2021, 15:17
AvsPmod 2.6.9.2 (https://github.com/gispos/AvsPmod/releases)

* Added to the timeline selections context menu 'Apply filter' and to the Options menu 'Apply filters...'
- insert one or more filters in a part of the clip (selected with the Trim Editor), or for other things, think of something.
- templates can be created for this (Options > 'Apply filters...'), which are then inserted into the script
- please read the applyfilters_readme.txt ( Help > 'Apply filters readme' )
* Added Options > 'Display filters...', you can create templates for the display filter
- the templates can be selected from the menu Video > Display > 'Select display filter...'
- if you choose a template, the current display filter will be overwritten!
- renamed 'Configure display filter' to 'Edit current display filter...' (This does not change the template)
* Changed all default options for 'Accessing Avisynth in threads' to True (enabled)
- only noticeable if no options.dat is available


applyfilters_readme (https://github.com/gispos/AvsPmod/blob/GPo/applyfilters_readme.txt)

# GPo, 2021

# 'Apply filters' applies filters to a frame area selected in the timeline.
# First create selections in the timeline with the Trim Editor and click with the right mouse button
# on a selected area and select 'Apply filter' and the desired filter.

###### Parameters for the templates ################
# %start is replaced with selection start #
# %stop is replaced with selection end #
# %* is replaced with the script selected text #
# %join joins the filters from each selected line #
# %copy copies the selection to script end #
# %> copies this line to all timeline selections #
####################################################

## Simple filter example ( You have to put the text cursor at the desired script insert position ):
ApplyRange(%start, %stop, "sharpen", 0.4) or c1=Trim(%start, %stop).sharpen(0.4)

## Example with a single line (filter) selection in the script:
# if a single line is selected, disabled filters # are enabled
ApplyFilter(%start, %stop, """%*""")

## With a single line (filter) selection, but does not override the selection (filter is inserted at script end)
ApplyFilter(%start, %stop, """%*%copy""")

## Below you can see an example with several lines (filters) selected in the script, disabled lines # are ignored
# and comments after filter text e.g. sharpen(0.4) # my sharpener, are removed.

## Method: add preview filter, insert script selections, join the filters and apply the filters from start to stop
# This two examples are included as default in the templates, when you have saved the function 'ApplyFilter' listed below,
# you can run the template in the timeline selections popup menu. You can also change it, e.g. remove 'avsp_filter'
# Script selections are always replaced with the result, but there is the parameter %copy if you use this parameter
# the selected text (filters) are copied to the script end.

## for a single timeline selection
/**avsp_filter
filter = """\
%*%join
\"""
ApplyFilter(%start, %stop, filter)
**/

## for all timeline selections
filter = """\
%*%join
\"""
%>ApplyFilter(%start, %stop, filter) # %> this text is added for all selections

## Manual multiple filter example (you can save it as template, Options > 'Apply filters...'):
filter = """\
SmoothLevels(input_low=16, gamma=1.00, input_high=235, output_low=16, output_high=235, TVrange=True, Lmode=0, darkSTR=100, brightSTR=100, debug=False)
\.SmoothTweak(brightness=0, contrast=1.00, saturation=1.00, hue1=0, hue2=0, TVrange=True, Lmode=0, limitSTR=100, debug=False)
\.NonlinUSM(z=1.0, pow=1.2, str=0.25, rad=120)
\.NonlinUSM(z=3, pow=1.2, str=0.22, rad=6)
\"""
ApplyFilter(%start, %stop, filter)
# or %>ApplyFilter(%start, %stop, filter) for all selections


## ApplyFilter syntax, save it separate in your filters avsi file or as ApplyFilter.avsi
# If you have a better alternative to the function ApplyFilter or a better procedure, please let me know.

function ApplyFilter(clip c, int "start", int "end", string "filter"){
start = default(start, 0)
end = default(end, 0)
c
end = end <= 0 ? FrameCount()-1 : end
seg2 = Trim(start, end)
seg2 = Eval("seg2." + filter)
re = start == 0 ? seg2 : start == 1 ? Trim(0, -1) ++ seg2 : Trim(0, start-1) ++ seg2
re = end < FrameCount-1 ? re ++ Trim(end + 1, 0) : re
return re
}

FranceBB
11th September 2021, 15:50
'Apply filters' applies filters to a frame area selected in the timeline.
First create selections in the timeline with the Trim Editor and click with the right mouse button on a selected area and select 'Apply filter' and the desired filter".

Ok, now... this IS COOL.
This is a pretty neat added feature to have, thanks! :)

"Added Options > 'Display filters...', you can create templates for the display filter"

This is also pretty useful, although I have to test.
Since one of my display is just Linear BT709 SDR 100 nits I wanna try to see if I can create a template to see everything in BT709 regardless of the color transfer as long as I select it.

Looks like I'm gonna have something interesting to do this weekend. :D

Thanks, Gispos, for picking up an apparently dead project like AVSPmod and maintaining it as AVSPmod is still the de facto Avisynth coding IDE, so we would be in trouble without you. ;)

gispos
11th September 2021, 15:56
Nice words, went down like oil :D

gispos
11th September 2021, 16:41
I made a mistake with the 'Apply Filter' templates.
Please remove /**avsp_filter at the beginning of the template and at the end **/

I tested it without a preview filter and only now noticed that the preview filter can only be added later,
otherwise the variable 'filter' is unknown

Fixed, I uploaded a new version, see below

gispos
11th September 2021, 18:41
Today doesn't seem to be my day.
AvsPmod 2.6.9.3 (https://github.com/gispos/AvsPmod/releases/tag/2.6.9.3)

* 'Apply filter' revised. Preview filter is now also possible as a default in the templates.
- /**avsp_filter must be at the beginning of the template.
- the templates for this have been updated.

Emulgator
12th September 2021, 09:38
A small wish, just updating to 2.6.9.3...
How to get the following behaviour of 2.6.6.7 back:
On reloading of a script the video preview used to show the old frame until the new frame was completed.
Nice to compare subtle changes.

From 2.6.6.8.2b on I get the preview window with "Waiting for avisynth clip" overlaid, sometimes preview flipped to blinding white.
With script preview loading times of more than a second (I have scripts that might load minutes):
I have no chance to see subtle changes anymore. I was fine with the hourglass symbol.

Maybe in between a setting has been implemented that accomplishes the old behaviour.

gispos
12th September 2021, 10:56
...From 2.6.6.8.2b on I get the preview window with "Waiting for avisynth clip" overlaid, sometimes preview flipped to blinding white.
With script preview loading times of more than a second (I have scripts that might load minutes):

It shouldn't be like that. It is not the case with me. What kind of Win version do you use?

If you deactivate under Options > 'Accessing Avisynth in threads', there is no longer an overlapping window.
However, the loading in threads is then also switched off, so it is the same as in older versions.

The window 'Waiting for Avisynth ...' should only appear after 10 seconds, you write something of a second, can (should) not actually be, very strange.

Even with the overlapping window, the old frame should be visible until the new one is drawn.
Now turn off the threads and tell me how it behaves then. And don't forget the Win version.

Emulgator
12th September 2021, 11:28
Win7U64 SP1 here, at the moment due to CPU failure fall-back to my spare system CPU i7-940XM, 8GB RAM.
When I can replace the dead CPU I will be back Win7U64 SP1 on i7-4960X, 32GB RAM

Turning threads off as you suggested helped, many thanks !

10 vs. 1 seconds: that was a ambiguity caused by my description.

I did not mean to say the "waiting for avisynth" would appear already after 1 second.
it does not do that here, rather as you said, appearing after 10 s.

I meant to have usual loading times in excess of 1 second,
and a glaring white preview window lasting longer than 1 second burns away my persistent vision,
so I would not really be able to compare with the previous frame.

The progress window being informative for the beginner, but adding to my distraction,
so I wanted to have a way not always having to move or close that window, but to have it disabled from the start...

gispos
12th September 2021, 12:10
... a glaring white preview window lasting longer than 1 second burns away my persistent vision,
so I would not really be able to compare with the previous frame.

As I've already written, it shouldn't be like that. I'll take a closer look at that.
Anyone else with the same problem? If so, please report it, or I will forget it as an individual case.:)


The progress window being informative for the beginner, but adding to my distraction,
so I wanted to have a way not always having to move or close that window, but to have it disabled from the start...
That is not the reason for it!
The program has to wait until the thread is finished, and several functions are done with the window.
Wait, be able to cancel and the information about it.

Emulgator
12th September 2021, 12:52
I see. Many thanks for your continued work !

gispos
12th September 2021, 13:37
I see. Many thanks for your continued work !

Replace the library.zip in the AvsPmod\lib directory with the one in the archive
The delay for the thread dialog can be set under program options misc 2 (10 to 360 seconds)

https://www.sendspace.com/file/7jwr9c

Edit: The delay can double, the first waiting is for the clip and then for the frame

Emulgator
14th September 2021, 06:53
Wow!
Working so smoothly now, no distraction anymore.
Many thanks gispos !
You are a hero.

gispos
14th September 2021, 21:37
You are a hero.
Just don't overdo it. I am frugal, a thank you is enough for me.
It is well known that heroes die early.:)

gispos
18th September 2021, 12:00
AvsPmod 2.6.9.4 (https://github.com/gispos/AvsPmod/releases)

* Added selectable delay for thread progress dialog ( program options Misc 2 )
* Added automatically take snapshot on clip refresh ( Video > Snapshot > 'Auto take snapshot 2' )
- better than staring at the screen for 30 seconds...and then still miss the moment
- also added on slider window Snapshot popup menu 'Auto take snapshot 2'
- preview filters do not trigger a snapshot only when the clip is initialized (refreshed)
- if active, then 'Make 2' is changed to '*Make 2' in the slider window
* Error treatment for the 'Use advanced frame thread' revised

Dogway
24th September 2021, 23:40
gispos, maybe you could add a few things that bothered me recently. First I noticed that the scaling value in the status bar only goes in integers, is it possible to go in at least in decimal? I was puzzled because a 1080p was taking the whole width of my 4K monitor, until I zoomed in a little bit and then it showed 2x.
Also, is there a possibility to allow ctrl+tab to toggle between the two last used tabs (like in Firefox for example)?

gispos
25th September 2021, 09:38
gispos, maybe you could add a few things that bothered me recently. First I noticed that the scaling value in the status bar only goes in integers, is it possible to go in at least in decimal? I was puzzled because a 1080p was taking the whole width of my 4K monitor, until I zoomed in a little bit and then it showed 2x.
Also, is there a possibility to allow ctrl+tab to toggle between the two last used tabs (like in Firefox for example)?
That with the zoom value is not a problem and I do not find bad either.

With the tabs becomes more problematic.
There are already a number of options for that, 'Same group', 'Similar videos', 'Auto preview', Keyboard direct choice (1..9)
and with Tab + Ctrl the tabs are changed normally, then others will complain or an extra option must be combined with the whole other tab functions.

But there is something like that already, just not with Tab + Ctrl but with the mouse browser buttons and 'Groups'.
You just have to put tabs in the same group and deselect 'Apply Offsets'

Settings for this:
Program options > Video > 'Enable scroll wheel through tabs on the same group' and Misc > Mouse browse buttons > 'Tab change'

I know that it is more cumbersome and not exactly what you want, but 'remember' the two last tabs and mix it with the other tab functions, makes no fun.

Edit: It was easier than expected.:)

gispos
25th September 2021, 11:28
AvsPmod 2.6.9.5 (https://github.com/gispos/AvsPmod/releases)

* Added to slider window snapshot popup menu 'Copy snapshot 2 to 1'
* Zoom values in the status bar that are not equal to 1 are now always displayed in decimal
* Added File > 'Toggle last two tabs', toggles between the last two selected tabs (idea by Dogway)
* Fixed 'Auto take snapshot 2', if several tabs were open, the wrong frame number could be used as a snapshot


Edit:
'Toggle last two tabs' the name of the menu is a bit unfortunate.
In the next version it will be renamed to 'Previously selected tab'. But then a new shortcut must also be created for it.
If you want, you can download the modified library here. https://www.sendspace.com/file/qddaeo

Replace the library.zip in the 'program directory\lib' with the one in the archive.

For the German speaking.
Die deutsche Übersetzung wurde auch angepasst und kann im translations Ordner mit der im Archiv ersetzt werden.

Dogway
25th September 2021, 12:58
Wow thank you, I wasn't expecting to be easy to implement as I thought avspmod didn't have "memory". Will check it out (I always fear newer version disrupt my settled workflow lol)

StvG
28th September 2021, 12:25
AvsPmod 2.6.9.5 (https://github.com/gispos/AvsPmod/releases)

* Added to slider window snapshot popup menu 'Copy snapshot 2 to 1'
* Zoom values in the status bar that are not equal to 1 are now always displayed in decimal
* Added File > 'Toggle last two tabs', toggles between the last two selected tabs (idea by Dogway)
* Fixed 'Auto take snapshot 2', if several tabs were open, the wrong frame number could be used as a snapshot


Thanks for the updates.

It seems Numpad +/- for zooming doesn't work at least in the latest two versions.

gispos
28th September 2021, 19:32
Thanks for the updates.

It seems Numpad +/- for zooming doesn't work at least in the latest two versions.
I always use the mouse wheel so I didn't notice it, I will fix it.

rco133
28th September 2021, 20:42
Hi.

For some reason I can't seem to get AvsPmod to remember the last zoom setting.

I want to use "Fit inside window", but after restart of program, the setting is back to "Normal 100%". Even when I change the setting to remember the last zoom setting.

Am I missing something?

rco133

gispos
28th September 2021, 22:37
Hi.

For some reason I can't seem to get AvsPmod to remember the last zoom setting.

I want to use "Fit inside window", but after restart of program, the setting is back to "Normal 100%". Even when I change the setting to remember the last zoom setting.

Am I missing something?

rco133
Is due to the bug that the zoom on the keyboard does not work. Will be fixed in the next version. Sorry.

gispos
29th September 2021, 17:14
AvsPmod 2.6.9.6 (https://github.com/gispos/AvsPmod/releases)

* Change menu naming File > 'Toggle last two tabs' to 'Previously selected tab', you must recreate the shortcut for it.
* Fixed zooming with keyboard and program startup with last zoom settings doesn't work.
- Note: 100%, fill and fit is always restored at program startup.
- only if you want to restore 2x or something similar you must turn on Options > Video > 'Startup with last zoom settings'
* Fixed 'Auto take snapshot 2' doesn't work on frame number 0


Just as a hint to zoom:
press left mouse button and right click zooms 100% or 200%, or press the left mouse button and zoom with the mouse wheel.

stranno
29th September 2021, 21:24
I'm having an issue with the latest versions:

Frame number does not seem to refresh. It doesn't matter if you use the mouse to move the pointer or the keys to go frame by frame. If I move the cursor over the buttons, it gets refreshed.

https://i.imgur.com/aF4VjrQ.gif

Avspmod 2.6.6.9 (old version) proper behavior.

https://i.imgur.com/qbVzKpB.gif

I had the broken zoom value at startup, but I have seen it is fixed already. Thanks.

One question: Is there any performance difference between fill window and fit inside window?

gispos
30th September 2021, 18:47
No Quote button available, then just like that.

" stranno; I'm having an issue with the latest versions: "

Thanks for reporting the bug, it worked halfway for me, that's why I didn't notice it.

The smaller area to be drawn is a little faster.
With HD resolution, 100% is the fastest, with very large formats this may change.
Try it yourself, during playback the fps is displayed below.

Antialiasing is damn slow, so it is disabled on playback. Avisynth's SplineResize is a lot faster, so I added it as a switchable display filter.
( a bit cumbersome for playback, but there is no other way)

Refresh fixed:
https://www.mediafire.com/file/oah29c4vf6f1vx2/AvsPmod_library_2.6.9.6_fixed.7z/file

As always, program directory\lib replace the library.zip with the one in the archive.

stranno
30th September 2021, 22:09
Yes. Working properly now.

Thanks for the explanation about the performance as well 👍

FranceBB
1st October 2021, 09:32
In the convertto function stuff that the AVSPmod intellisense suggests, there seems to be a lack of "Rec2020" and "PC.2020" as well as "top_left" chroma placement (which is the one of 4:2:0 Type 2):

https://i.imgur.com/n3oRLot.png
https://i.imgur.com/6UHAnaC.png

even though it's a perfectly valid option:

https://i.imgur.com/KsBFusX.png

gispos
1st October 2021, 18:04
In the convertto function stuff that the AVSPmod intellisense suggests, there seems to be a lack of "Rec2020" and "PC.2020" as well as "top_left" chroma placement

I take that as an opportunity to explain.

All Avisynth functions and the associated parameters are read. However, only the parameters can be known,
standard values and ranges are not known, these values are only known the executing function.

If the function parameter list is now shown in the script:
All parameters are available, but after all parameters there is a question mark because no values are known.
And no sliders and switches can be created for them. Again, no values are known.

And now the filterdb.dat comes into play.
The values for the parameters of a function are entered there.
If there is not "Rec2020" and "PC.2020" as a value for the parameter, this value cannot be displayed.
The filterdb.dat has to be updated to show these values.

Or the parameters and values for the function must be changed or added under Options > 'Function definitions'. That then has advantages.
The disadvantage is that these changes are saved in the options.dat, if they are lost, these adjustments are also lost.
The advantage is that you can easily undo everything or only use the parameters that you need.

And now we just need someone to update this filterdb.dat.
This is not difficult if you open this file with an editor and look at the existing entries and you will quickly know how it works.

Example for ConvertToYV12, that's how it is written in the filterdb.dat.
( matrix = "Rec709" is the default value, followed by the allowed values )

ConvertToYV12(
clip,
string "matrix"="Rec709" ("Rec601"/ "PC.601"/ "Rec709"/ "PC.709"/ "AVERAGE"),
bool "interlaced"=false,
[string "ChromaInPlacement"="MPEG2" ("MPEG2"/ "MPEG1"/ "DV")],
[string "chromaresample"="bicubic" ("point"/ "bilinear"/ "bicubic"/ "lanczos"/ "lanczos4"/ "blackman"/ "spline16"/ "spline36"/ "spline64"/ "gauss"/ "sinc")],
[string "ChromaOutPlacement"="MPEG2" ("MPEG2"/ "MPEG1"/ "DV")]
)


And so I have now changed it.

ConvertToYV12(
clip,
string "matrix"="Rec709" ("Rec601"/ "PC.601"/ "Rec709"/ "PC.709"/ "Rec2020" / "PC.2020" / "AVERAGE"),
bool "interlaced"=false,
[string "ChromaInPlacement"="MPEG2" ("MPEG2"/ "MPEG1"/ "DV")],
[string "chromaresample"="bicubic" ("point"/ "bilinear"/ "bicubic"/ "lanczos"/ "lanczos4"/ "blackman"/ "spline16"/ "spline36"/ "spline64"/ "gauss"/ "sinc")],
[string "ChromaOutPlacement"="MPEG2" ("MPEG2"/ "MPEG1"/ "DV" / "top_left")]
)


But I won't keep it going, I'm the wrong one for that. Somebody is needed who is more familiar with avisynth.
There are definitely still a number of old functions in the database that may be superfluous and could be removed, as I said, we are looking for an avisynth expert. ;)

I uploaded the changed filterdb.dat here (https://www.mediafire.com/file/k17a3c20ide8c85/filterdb.7z/file), but only changed ConvertToYV12, that's enough for today. :)

https://i.postimg.cc/4dCtd9Dr/parameters.jpg (https://postimages.org/)

FranceBB
1st October 2021, 20:58
Thank you so much for the explanation.
I take this as an invitation on committing updates to the filterdb.dat and opening push request to your GitHub! :D

gispos
2nd October 2021, 08:44
I take this as an invitation on committing updates to the filterdb.dat and opening push request to your GitHub! :D
No chance, everything is locked :D
Does anything have to be changed here? Also Rec2020 and PC.2020

ConvertToRGB(
clip,
string "matrix"="Rec709" ("Rec601"/ "PC.601"/ "Rec709"/ "PC.709"/ "AVERAGE"),
bool "interlaced"=false,
[string "ChromaInPlacement"="MPEG2" ("MPEG2"/ "MPEG1"/ "DV")],
[string "chromaresample"="bicubic" ("point"/ "bilinear"/ "bicubic"/ "lanczos"/ "lanczos4"/ "blackman"/ "spline16"/ "spline36"/ "spline64"/ "gauss"/ "sinc")]
)

ConvertToRGB24(
clip,
string "matrix"="Rec709" ("Rec601"/ "PC.601"/ "Rec709"/ "PC.709"/ "AVERAGE"),
bool "interlaced"=false,
[string "ChromaInPlacement"="MPEG2" ("MPEG2"/ "MPEG1"/ "DV")],
[string "chromaresample"="bicubic" ("point"/ "bilinear"/ "bicubic"/ "lanczos"/ "lanczos4"/ "blackman"/ "spline16"/ "spline36"/ "spline64"/ "gauss"/ "sinc")]
)

ConvertToRGB32(
clip,
string "matrix"="Rec709" ("Rec601"/ "PC.601"/ "Rec709"/ "PC.709"/ "AVERAGE"),
bool "interlaced"=false,
[string "ChromaInPlacement"="MPEG2" ("MPEG2"/ "MPEG1"/ "DV")],
[string "chromaresample"="bicubic" ("point"/ "bilinear"/ "bicubic"/ "lanczos"/ "lanczos4"/ "blackman"/ "spline16"/ "spline36"/ "spline64"/ "gauss"/ "sinc")]
)

ConvertToY8(
clip,
string "matrix"="Rec709" ("Rec601"/ "PC.601"/ "Rec709"/ "PC.709"/ "AVERAGE")
)

ConvertToYUY2(
clip,
string "matrix"="Rec709" ("Rec601"/ "PC.601"/ "Rec709"/ "PC.709"/ "AVERAGE"),
bool "interlaced"=false,
[string "ChromaInPlacement"="MPEG2" ("MPEG2"/ "MPEG1"/ "DV")],
[string "chromaresample"="bicubic" ("point"/ "bilinear"/ "bicubic"/ "lanczos"/ "lanczos4"/ "blackman"/ "spline16"/ "spline36"/ "spline64"/ "gauss"/ "sinc")]
)

ConvertToYV12(
clip,
string "matrix"="Rec709" ("Rec601"/ "PC.601"/ "Rec709"/ "PC.709"/ "Rec2020"/ "PC.2020"/ "AVERAGE"),
bool "interlaced"=false,
[string "ChromaInPlacement"="MPEG2" ("MPEG2"/ "MPEG1"/ "DV")],
[string "chromaresample"="bicubic" ("point"/ "bilinear"/ "bicubic"/ "lanczos"/ "lanczos4"/ "blackman"/ "spline16"/ "spline36"/ "spline64"/ "gauss"/ "sinc")],
[string "ChromaOutPlacement"="MPEG2" ("MPEG2"/ "MPEG1"/ "DV"/ "top_left")]
)

ConvertToYV16(
clip,
string "matrix"="Rec709" ("Rec601"/ "PC.601"/ "Rec709"/ "PC.709"/ "AVERAGE"),
bool "interlaced"=false,
[string "ChromaInPlacement"="MPEG2" ("MPEG2"/ "MPEG1"/ "DV")],
[string "chromaresample"="bicubic" ("point"/ "bilinear"/ "bicubic"/ "lanczos"/ "lanczos4"/ "blackman"/ "spline16"/ "spline36"/ "spline64"/ "gauss"/ "sinc")]
)

ConvertToYV24(
clip,
string "matrix"="Rec709" ("Rec601"/ "PC.601"/ "Rec709"/ "PC.709"/ "AVERAGE"),
bool "interlaced"=false,
[string "ChromaInPlacement"="MPEG2" ("MPEG2"/ "MPEG1"/ "DV")],
[string "chromaresample"="bicubic" ("point"/ "bilinear"/ "bicubic"/ "lanczos"/ "lanczos4"/ "blackman"/ "spline16"/ "spline36"/ "spline64"/ "gauss"/ "sinc")]
)

ConvertToYV411(
clip,
string "matrix"="Rec709" ("Rec601"/ "PC.601"/ "Rec709"/ "PC.709"/ "AVERAGE"),
bool "interlaced"=false,
[string "ChromaInPlacement"="MPEG2" ("MPEG2"/ "MPEG1"/ "DV")],
[string "chromaresample"="bicubic" ("point"/ "bilinear"/ "bicubic"/ "lanczos"/ "lanczos4"/ "blackman"/ "spline16"/ "spline36"/ "spline64"/ "gauss"/ "sinc")]
)

StvG
3rd October 2021, 07:14
AvsPmod 2.6.9.6 (https://github.com/gispos/AvsPmod/releases)

Thanks.

tormento
5th October 2021, 15:58
@tormento please rename the dll, use a normal name 'KNLMeansCL.dll' or 'KNLMeansCL_pfmod.dll'
I have found what caused the issue...

The name was "KNLMeansCL 1.1.1e~pfmod.dll", with a space.

I renamed to "KNLMeansCL-1.1.1e~pfmod.dll" and it works perfectly fine.

gispos
5th October 2021, 20:04
I have found what caused the issue...

The name was "KNLMeansCL 1.1.1e~pfmod.dll", with a space.

I renamed to "KNLMeansCL-1.1.1e~pfmod.dll" and it works perfectly fine.
Ok, thanks for the information. I have never looked at the function names routine exactly, sometime I have to find out how the code works.
Nevertheless, this ~ is a mandrel in my eye. :)

FranceBB
6th October 2021, 08:06
Thanks for the explanation about the filterdb, it really helped! Updated on github, you have a new pull request.
Expect more updates from me in the coming days, this is gonna be fun and it's gonna be my way of contributing to the project, yay ehehehehhehe



p.s for Gispos to work on when he has time: https://forum.doom9.org/showthread.php?p=1954050#post1954050

gispos
6th October 2021, 17:04
Thanks for the explanation about the filterdb, it really helped! Updated on github, you have a new pull request.
Expect more updates from me in the coming days, this is gonna be fun and it's gonna be my way of contributing to the project, yay ehehehehhehe

That is very nice.:):goodpost:

A few more information, if you maybe want to add other functions:

If an entry is found in the database for a function, only the parameters found in the database are used (no further parameters are displayed).
Therefore, all parameters of a function must be available in the database.
If parameters are missing and you write them manually in the script, AvsPmod refuses to create sliders for the function, because the parameters do not match those of the database.

Some functions have parameters for which it is best not to specify a standard value. Since the function sets this value itself depending on other parameters.
Or not all parameters need to be shown.
However, in order to be able to manually add these parameters in the script without that AvsPmod complaining and not creating any sliders, there are square brackets []

Everything that is enclosed in square brackets is not visible later, but it is possible to insert these parameters manually and AvsPmod does not complain.

I wrote everything from memory and hope that I didn't write a mistake and I hope I was understandable.:)



p.s for Gispos to work on when he has time: https://forum.doom9.org/showthread.php?p=1954050#post1954050
What is the exact problem?
AvsPmod shows what Avisynth returns, the color format comes from avisynth and the matrix from the clip properties.

FranceBB
6th October 2021, 17:41
What is the exact problem?


No problem at all, everything works fine, it's just an heads up 'cause they're adding new frame properties and it would be nice to see them too on the bottom right next to the ones that are already there.
But this is for the long distant future. :)

real.finder
8th October 2021, 07:04
I note that if there are frame properties in some source it will used like this

https://i.postimg.cc/766WdWD1/Screenshot-2021-10-08-085734.png (https://postimages.org/)

and that will case problems if I did change to source that has no frame properties, so I think "read from source or script" should just work in silent way and don't change things like this

gispos
8th October 2021, 17:31
I note that if there are frame properties in some source it will used like this

https://i.postimg.cc/766WdWD1/Screenshot-2021-10-08-085734.png (https://postimages.org/)

and that will case problems if I did change to source that has no frame properties, so I think "read from source or script" should just work in silent way and don't change things like this
The option 'read from source or script' is only necessary for the matrix, since the matrix can also be changed manually. It is read and set.
With the frame properties then probably no option is required, I think they will be read if available. But I still have to see how this can best be handled.

Is there already a test version with frame properties?

real.finder
8th October 2021, 19:33
Is there already a test version with frame properties?

any dvd/mpeg2 sample with dgindex and https://github.com/Asd-g/MPEG2DecPlus

gispos
8th October 2021, 20:21
any dvd/mpeg2 sample with dgindex and https://github.com/Asd-g/MPEG2DecPlus

But for now I'm brooding.
In a short test with the example code from the wiki, I get 1.2 fps, I don't know if I want that.

I don't even know where to display it, the whole thing becomes too much.
Maybe a few of them but not all. And if it slows the fps down as the first test showed, then none of it.

Edit: That it was so slow was at the subtitle.

FranceBB
9th October 2021, 13:39
ffms3000 and Avisynth 3.7.1 have frame properties too.
In a nutshell, from the interface version 9 onwards we're gonna have them. :)

Danette
15th October 2021, 22:25
When the crop editor is open and it's window is the active window, are there shortcut keys that will select and/or execute the "Auto-crop" and "Apply" buttons?

gispos
16th October 2021, 00:10
When the crop editor is open and it's window is the active window, are there shortcut keys that will select and/or execute the "Auto-crop" and "Apply" buttons?
With the Tab key the focus can be switched to the control and with Enter it is executed.
By default, Apply is carried out

Danette
16th October 2021, 01:32
With the Tab key the focus can be switched to the control and with Enter it is executed.
By default, Apply is carried out

Yes, thank you, I was aware of that, but that is more of a navigation process. I was looking for a key command or series of keys, that would execute the "Auto-crop" and "Apply" functions, rather than navigating to the button and then pushing "Enter."

The reason is that I have macros that perform many procedures in AvsPmod, and the navigation process in the crop editor, using the Tab function, will result in the highlighted button being different, depending upon which part of the crop editor is last used.

For example; if the Auto-crop button is last used, pressing the Tab key three times gets you to the "Apply" button. However, if I happen to be adjusting the left margin, those same three presses of the Tab button will leave me at the "-bottom" button, not the "Apply" button.

A shortcut key, or series of keys, that executed the "Auto-crop" and "Apply" functions, without having to navigate to them, would allow me to automate the cropping process using the macro.

gispos
17th October 2021, 13:03
Test Version AvsPmod 2.6.9.7.a

--------------------------
Version 2.6.9.7.a [2021-10-17] GPo, for testing only
--------------------------
!! Attention this version is only for test purposes. ( frame properties )
At least avisynth version 3.71 is required (testet with 3.71_test_12)
I tested version 3.62 and it crashes. I don't know how to deal with it yet. (env.check_version(8) both are header version 8 )
As far as I know, previous versions had bugs in the C interface.
The 32bit version should not cause problems when loading the avisynth dll, but it get's errors on open the property window.
With the 64bit version it crashes immediately when the Avisynth version is too small.

* Added reading frame properties. ( lot of work for little use )
In the script 'propShow' it makes more sense because it can be placed where properties can still be read (without crash).
- deactivated during playback
- if the property window is closed, reading is also deactivated
- still problems with flickering of the property window
* Bugfix Statusbar ads are not updated immediately


64bit: https://www.mediafire.com/file/mqtptj54x330poa/AvsPmod_v2.6.9.7.a_(Windows_x86-64).zip/file
32bit: https://www.mediafire.com/file/xb2cda1qd5ga2le/AvsPmod_v2.6.9.7.a_(Windows_x86-32).zip/file

Yes, thank you, I was aware of that, but that is more of a navigation process. I was looking for a key command or series of keys, that would execute the "Auto-crop" and "Apply" functions, rather than navigating to the button and then pushing "Enter."

The reason is that I have macros that perform many procedures in AvsPmod, and the navigation process in the crop editor, using the Tab function, will result in the highlighted button being different, depending upon which part of the crop editor is last used.

For example; if the Auto-crop button is last used, pressing the Tab key three times gets you to the "Apply" button. However, if I happen to be adjusting the left margin, those same three presses of the Tab button will leave me at the "-bottom" button, not the "Apply" button.

A shortcut key, or series of keys, that executed the "Auto-crop" and "Apply" functions, without having to navigate to them, would allow me to automate the cropping process using the macro.
For buttons, checkbox, etc. there are no shortcuts. Only for menus.

You write something about Macros ... You can use the lower code to show the crop editor and trigger 'Auto-crop', 'Apply' or 'Cancel'
Trigger 'Auto-crop' over macro is difficult. A button for the variable 'running' is needed.

# macro test
import wx

self = avsp.GetWindow()
### Show the crop editor or exit the macro
if not self.cropDialog.IsShown():
self.OnMenuVideoCropEditor(None)
#return

### set samples
self.options['autocrop_samples'] = 4

### advanced, I think will not be needed
#self.currentScript.autocrop_values = None

### create the needed button and start autocrop
### Warning! If autocrop is already in the process, problems can come.
button = wx.Button(self)
button.running = True
self.Autocrop(button)

### press Apply or Chancel if crop editor is shown
if self.cropDialog.IsShown():
self.OnCropDialogApply(None)
#self.OnCropDialogCancel(None)

FranceBB
17th October 2021, 15:30
Ah, cool, frame properties! Yay! :D

gispos
17th October 2021, 16:19
Ah, cool, frame properties! Yay! :D
To hell with it :D

real.finder
17th October 2021, 19:41
Test Version AvsPmod 2.6.9.7.a

--------------------------
Version 2.6.9.7.a [2021-10-17] GPo, for testing only
--------------------------



this problem still as it

I note that if there are frame properties in some source it will used like this

https://i.postimg.cc/766WdWD1/Screenshot-2021-10-08-085734.png (https://postimages.org/)

and that will case problems if I did change to source that has no frame properties, so I think "read from source or script" should just work in silent way and don't change things like this

d2vSource("Video.d2v") #DVD
propClearAll

this code will keep it at "Resolution-based" but as soon as I comment/remove "propClearAll" and review it will be "BT.601"

gispos
17th October 2021, 21:54
@real.finder, I don't know exactly what you mean.

I have made it so that the last read matrix is always retained if no matrix can be read from the properties
during the new initialization (filter is set which does not pass the properties e.g. UnsharpMask)
If this had not been done, the matrix would jump back and forth when commenting out the filter.

If 601 is read from the properties, 601 remains until a value can be read from the properties.
And if 709 is now read then 709 is also set, because 'Read from source or script' is switched on.

And if I'm completely wrong now, please explain the problem to me in more detail.
The way you would explain it to a child ... my english:)

real.finder
17th October 2021, 22:07
If 601 is read from the properties, 601 remains until a value can be read from the properties.
And if 709 is now read then 709 is also set, because 'Read from source or script' is switched on.

and that the problem, if I did switched from d2vSource to AVISource with source that is HD but it got no properties then 601 will remain

that why I said 'Read from source or script' should not act like this, it should act silently without change from 'Resolution-based' or whatever to something else

FranceBB
18th October 2021, 11:35
To hell with it :D

but it works ehehehehe

https://i.imgur.com/tfDVuOK.png

But... why is it not displaying the matrix here?
And what about the transfer characteristic?

https://i.imgur.com/FJWw29h.png

gispos
18th October 2021, 16:15
and that the problem, if I did switched from d2vSource to AVISource with source that is HD but it got no properties then 601 will remain

that why I said 'Read from source or script' should not act like this, it should act silently without change from 'Resolution-based' or whatever to something else
There are only two options.
Either as it is, or reset the matrix to the standard values if no properties can be read.

I sat on it for a long time to get it the way it is now, and there is a reason for that.
As I've already written, I don't want the matrix to jump from 601 to 709 when a filter is set.

The normal working process is that a source is opened and the matrix is recognized and set.
Then you add or remove various filters, it would be a disaster if the matrix would change every time I set or remove a filter.

Put a shortcut on 'Read matrix now' so the matrix will also be reset if it cannot be read.

The function Matrix to script is useful if e.g. 601 is read and filters are set that do not pass the properties.
The next time the script is opened, the correct matrix will still be set.


but it works ehehehehe

https://i.imgur.com/tfDVuOK.png

But... why is it not displaying the matrix here?
And what about the transfer characteristic?

https://i.imgur.com/FJWw29h.png
I see 6 of 20 keys, what do you see when you make the window bigger? ;)

FranceBB
18th October 2021, 16:32
I see 6 of 20 keys, what do you see when you make the window bigger? ;)

Ahhhh LOL
Huge face palm xD

https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRKQoJmDsqMEQ2PFn-VxtK6FJRqLlCugoaeOFBOmWCeD_V6q-cHPe6ULbtqH21bEVWPElI&usqp=CAU

gispos
18th October 2021, 17:14
Give me the avisynth code that shows me that.
If there is a source where you can find out what the integer values mean, then I could add some understandable values, e.g. like the matrix.

Edit: Would it be better if the properties window were scrollable?

FranceBB
18th October 2021, 18:56
Give me the avisynth code that shows me that.
If there is a source where you can find out what the integer values mean, then I could add some understandable values, e.g. like the matrix.

Sure, I can send you a sample tomorrow via Aspera, send me your email in PM.


Would it be better if the properties window were scrollable?

Yes.

real.finder
19th October 2021, 15:24
"x264-lossless" encode problem if the name is "AvsPmod_v2.6.9.7.a_(Windows_x86-64)"

https://i.postimg.cc/T1kqVSZB/Untitled.png (https://postimages.org/)

"AvsPmod_v2.6.9.7.a" work fine

kedautinh12
19th October 2021, 15:38
"x264-lossless" encode problem if the name is "AvsPmod_v2.6.9.7.a_(Windows_x86-64)"

https://i.postimg.cc/T1kqVSZB/Untitled.png (https://postimages.org/)

"AvsPmod_v2.6.9.7.a" work fine

Where you got x264-lossless

real.finder
19th October 2021, 17:24
Where you got x264-lossless

https://i.postimg.cc/fyMLZp4V/Screenshot-2021-10-19-192333.png (https://postimages.org/)

gispos
19th October 2021, 22:29
Right now I'm running out of time.
Also to FranceBB, sorry get in touch with you soon.

LigH
19th October 2021, 23:36
Might help to know the complete command line, and whether it is called directly or as a line in a batch file (there may be differences how special characters are interpreted)...

FranceBB
20th October 2021, 09:15
Also to FranceBB, sorry get in touch with you soon.

No worries, no pressure at all.

FranceBB
20th October 2021, 18:09
About frame properties, it works as expected, cool:

HDR PQ:

FFVideoSource("\\mibctvan000\Ingest\MEDIA\temp\trim.m2ts")

https://i.imgur.com/CJcJov7.png

and this is after the conversion to HLG:


FFVideoSource("\\mibctvan000\Ingest\MEDIA\temp\trim.m2ts")


ConvertYUVtoLinearRGB(Color=0,OOTF=false)
ConvertLinearRGBtoYUV(Color=0,HDRMode=1,HLGLw=1200,HLGColor=2,OOTF=false)
propset("_Transfer", 18)
propDelete("ContentLightLevelAverage")
propDelete("MasteringDisplayMaxLuminance")
propDelete("MasteringDisplayMinLuminance")
propDelete("MasteringDisplayPrimariesX")
propDelete("MasteringDisplayPrimariesY")
propDelete("MasteringDisplayWhitePointX")
propDelete("MasteringDisplayWhitePointY")
propDelete("ContentLightLevelMax")


https://i.imgur.com/T20bGUF.png

gispos
23rd October 2021, 14:26
"x264-lossless" encode problem if the name is "AvsPmod_v2.6.9.7.a_(Windows_x86-64)"
"AvsPmod_v2.6.9.7.a" work fine
Is the problem only the .a in the name, or is that the case with all versions?
Take a look at the function 'Reset matrix if not found'

About frame properties, it works as expected, cool:

I am relieved to hear that ;)
That with the avisynth code for the properties is done, only wanted it because there are so many properties displayed.:)

------------------------

I don't know if I should continue the work with the properties.
With the 64bit version, this is a break with older Avisynth versions prior to header version 8

I managed that older H8 versions (before 3.71) read the matrix with 'Eval' and only from 3.71 the properties are fully read.
But I can't get it at the moment that older avisynth versions (H6) don't result in instant chrash.
With the 32bit version that's not a problem, but with the 64bit version I don't know if I can do it.

I would like to hear your opinions on this 'Should AvsPmod x64 only work from Avisynth H8'
So choose either compatibility down to H6 or this diabolical properties window.
I don't care.

Another version to test.
64bit: https://www.mediafire.com/file/n8dl05oo5wiili6/AvsPmod_v2.6.9.7.2_(Windows_x86-64).zip/file
32bit: https://www.mediafire.com/file/3wpa2ycd6srcz9t/AvsPmod_v2.6.9.7.2_(Windows_x86-32).zip/file

** Minimum AviSynth header version 8 is required for the 64bit version! ( for 32bit H6 )
* Fixed chrash on lower AviSynth header 8 versions (Avisynth C Interface bug with the properties)
- from version 3.71 frame properties are read, less than 3.71 with header version 8, only the matrix is read ('Eval')
* Added Options > Font & colors > Advanced 2 'Properties window' set text style for the property window
* Added a context menu for property window. Text warp, horizontale scrollbar (Both still with small quirks)
* Added mouse wheel functionality on the properties window if left is down. Jump's to I Frame.
- for test only, please do not use it with heavy filters it's not running in a thread, you cannot break it (max 350 frames).
* Added Display > YUV -> RGB > 'Reset matrix if not found', real.finder please test it. Nobody else knows what this means. ;)
- disadvantage: the menu now only marks the last selection (no longer the matrix used)


And a note about the properties:
Alternatively, the properties from H8 can also be displayed with the display filters.
Simply create a new display filter with the following content:

if (FunctionExists("propShow")){propShow(18, False)}

FranceBB
23rd October 2021, 15:45
I don't know if I should continue the work with the properties.
With the 64bit version, this is a break with older Avisynth versions prior to header version 8


If you want to support older Avisynth version, why don't you check the version and say like: from header 9 onward, frame properties, from header 8 downwards, no properties, same as before.

If that is not possible, then I would say that this will be a nice incentive on making people update Avisynth more often as there are not just lots of features but also lots of bug fixes as well in newer Avisynth version and there's little to no reason to stay on an old version.




I would like to hear your opinions on this 'Should AvsPmod x64 only work from Avisynth H8'


If there's no way around this, then I don't see the problem with this. Why would people update AVSPmod if they don't update Avisynth too? Nothing would stop them from using an older version of AVSPmod just like they're doing for Avisynth.


So choose either compatibility down to H6 or this diabolical properties window.
I don't care.


Diabolical properties window :devil:


I have another request, though.
Can we have next to the integer in frame properties the string?

For instance: _Transfer(18) should say HLG as well while _Transfer(16) should say PQ

this is a cheat sheet of the most common values:


-color_primaries <int> ED.V.... color primaries (from 1 to 10) (default unspecified)
bt709 ED.V.... BT.709
unspecified ED.V.... Unspecified
bt470m ED.V.... BT.470 M
bt470bg ED.V.... BT.470 BG
smpte170m ED.V.... SMPTE 170 M
smpte240m ED.V.... SMPTE 240 M
film ED.V.... Film
bt2020 ED.V.... BT.2020
smpte428_1 ED.V.... SMPTE ST 428-1
-color_trc <int> ED.V.... color transfer characteristics (from 1 to 18) (default unspecified)
bt709 ED.V.... BT.709
unspecified ED.V.... Unspecified
gamma22 ED.V.... BT.470 M
gamma28 ED.V.... BT.470 BG
smpte170m ED.V.... SMPTE 170 M
smpte240m ED.V.... SMPTE 240 M
linear ED.V.... Linear
log ED.V.... Log
log_sqrt ED.V.... Log square root
iec61966_2_4 ED.V.... IEC 61966-2-4
bt1361 ED.V.... BT.1361
iec61966_2_1 ED.V.... IEC 61966-2-1
bt2020_10bit ED.V.... BT.2020 - 10 bit
bt2020_12bit ED.V.... BT.2020 - 12 bit
smpte2084 ED.V.... SMPTE ST 2084
smpte428_1 ED.V.... SMPTE ST 428-1
-colorspace <int> ED.V.... color space (from 0 to 10) (default unspecified)
rgb ED.V.... RGB
bt709 ED.V.... BT.709
unspecified ED.V.... Unspecified
fcc ED.V.... FCC
bt470bg ED.V.... BT.470 BG
smpte170m ED.V.... SMPTE 170 M
smpte240m ED.V.... SMPTE 240 M
ycocg ED.V.... YCOCG
bt2020_ncl ED.V.... BT.2020 NCL
bt2020_cl ED.V.... BT.2020 CL
-color_range <int> ED.V.... color range (from 0 to 2) (default unspecified)
unspecified ED.V.... Unspecified
mpeg ED.V.... MPEG (219*2^(n-8))
jpeg ED.V.... JPEG (2^n-1)
-chroma_sample_location <int> ED.V.... chroma sample location (from 0 to 6) (default unspecified)
unspecified ED.V.... Unspecified
left ED.V.... Left
center ED.V.... Center
topleft ED.V.... Top-left
top ED.V.... Top
bottomleft ED.V.... Bottom-left
bottom ED.V.... Bottom

real.finder
23rd October 2021, 18:43
Is the problem only the .a in the name, or is that the case with all versions?


I did try rename 2.6.9.6 with "AvsPmod_v2.6.9.7.a_(Windows_x86-64)" and it not work too

Take a look at the function 'Reset matrix if not found'

now with and without it, it stay at "Resolution-based"

Dogway
23rd October 2021, 18:44
I like the properties window, but it's always been a drama for me to update avspmod. If I import the options.dat to the new version avspmod won't open. Maybe the options.dat should be divided into (Program) Settings, Colors and Function Definitions or others, so it's easier to update and debug.
One of the things I long wanted to see was a function definition clean up. So clear all function entries that are not present anymore (Plugin, Internal, User) and haven't been customized. It's very time consuming to do this manually. I and many test plugins and filters that we don't use anymore and remove but the function definition keeps them listed so it grows bigger and bigger.


Error log from loading backup_style:
Traceback (most recent call last):
File "avsp.pyo", line 12850, in OnMenuOptionsFontsAndColorsReadBackup
File "avsp.pyo", line 12949, in OnMenuOptionsFontsAndColors
File "avsp.pyo", line 2389, in __init__
KeyError: 'propwindow'

gispos
23rd October 2021, 19:45
I have another request, though.
Can we have next to the integer in frame properties the string?


If there is a source where you can find out what the integer values mean, then I could add some understandable values, e.g. like the matrix.

I had already asked about it. So thanks for the list.


Diabolical properties window :devil:

:D

I did try rename 2.6.9.6 with "AvsPmod_v2.6.9.7.a_(Windows_x86-64)" and it not work too
now with and without it, it stay at "Resolution-based"
Ok, I'll look at this again.

I and many test plugins and filters that we don't use anymore and remove but the function definition keeps them listed so it grows bigger and bigger.

I have transferred responsibility for this to FranceBB (filterdb.dat). Insult him. :D

Error log from loading backup_style:
Sorry, I'll look into it. Is a new option that is not yet available in the old Fonts Backup.dat.
---------------

And now for the good part.
I managed (however) that the x64bit version can also handle Avisynth H6.

https://i.postimg.cc/G295s6BN/Avs-Pmod-x64.jpg (https://postimages.org/)

x64: https://www.mediafire.com/file/olfyjp28sgfd5sp/AvsPmod_v2.6.9.7.3_(Windows_x86-64).zip/file
x32: https://www.mediafire.com/file/lwmmaaxkt2hw81v/AvsPmod_v2.6.9.7.3_(Windows_x86-32).zip/file

--------------------------
Version 2.6.9.7.3 [2021-10-23] GPo, Test version ( frame properties )
--------------------------
* Fixed: 64bit cannot load AviSnth header version 6, now it can.
- You only have to pay attention to the compatibility with the plugins and avsi loaded functions, e.g. Doggy's ex_functions.avsi

FranceBB
23rd October 2021, 20:18
I have transferred responsibility for this to FranceBB (filterdb.dat). Insult him. :D


hahahahha as soon as I'm gonna have time, I'll update it and get rid of some stuff like bool enable10bithack which doesn't exist anymore in FFVideoSource as it was the old way of displaying 10bit clips as 16bit stacked.
It's been a tough couple of weeks 'cause my energies are going towards encoding the new UHD files we've received from some studios with ad hoc PQ to HLG conversion (in Avisynth of course), testing Iris QC Pro and working on the stories that our scrum master assigns to me on our jira before the end of the sprint.
I wish working on Avisynth counted towards my jira hahahahahahaha

Sangen
23rd October 2021, 20:25
I'm still hopeful that avspmod will one day have a dark theme

Dogway
23rd October 2021, 20:35
This is my dark theme, but it won't work in new versions. link (https://www.mediafire.com/file/0aguzwxz1kpnud7/backup_style.dat/file)

gispos
24th October 2021, 10:03
This is my dark theme, but it won't work in new versions. link (https://www.mediafire.com/file/0aguzwxz1kpnud7/backup_style.dat/file)
I have loaded your Font and Colors backup file.
Are these your settings?
https://i.postimg.cc/Gmqk5wXL/Font-And-Colors.jpg (https://postimages.org/)

gispos
24th October 2021, 10:15
I'm still hopeful that avspmod will one day have a dark theme
Options > Font & Colors > 'Default Dark'
Program Settings > User Slider > 'Enable slider window custom color theme'.

It won't get any darker.

Dogway
24th October 2021, 11:16
I have loaded your Font and Colors backup file.
Are these your settings? [/url]

Not exactly, monospaced should be checked. I spent half an hour rebasing. This is the rebased theme. link (https://www.mediafire.com/file/oab8bhq506clfps/Color_-_Grey.dat/file). I think now I have to rebase options.

Is it ok to delete the lib or src folders?

gispos
24th October 2021, 11:46
Not exactly, monospaced should be checked. I spent half an hour rebasing. This is the rebased theme. link (https://www.mediafire.com/file/oab8bhq506clfps/Color_-_Grey.dat/file). I think now I have to rebase options.

Is it ok to delete the lib or src folders?
Checkbox monospaced is not saved, the colors and fonts are important.
If you delete the 'lib' folder AvsPmod no longer works, you can delete the 'src' folder.

Dogway
24th October 2021, 12:03
Thanks, getting there with the rebase. Only left custom function definitions.

gispos
24th October 2021, 15:41
Last test version
x64: https://www.mediafire.com/file/dw52v1liwi2mowp/AvsPmod_v2.6.9.7.4_(Windows_x86-64).zip/file
x32: https://www.mediafire.com/file/lepkqxmut1cbj5e/AvsPmod_v2.6.9.7.4_(Windows_x86-32).zip/file

* Added to properties some string conversions of integer values
* Fixed: Loading older font & colors backup files
* Fixed 'Reset matrix if not found'


I did try rename 2.6.9.6 with "AvsPmod_v2.6.9.7.a_(Windows_x86-64)" and it not work too
now with and without it, it stay at "Resolution-based"
I haven't looked at the first problem yet. But the matrix should now work as intended.
I choose Matrix 709 in the menu as default, and set Matrix 601 in the script propSetInt("_ Matrix", function[](){return 6})
1.) Matrix 601 is set and displayed
2.) I remove the matrix 601 from the script
3.) It is switched back to Matrix 709

real.finder
24th October 2021, 20:25
But the matrix should now work as intended.
I choose Matrix 709 in the menu as default, and set Matrix 601 in the script propSetInt("_ Matrix", function[](){return 6})
1.) Matrix 601 is set and displayed
2.) I remove the matrix 601 from the script
3.) It is switched back to Matrix 709

still 'with and without "Reset matrix if not found", it stay at "Resolution-based"'

gispos
24th October 2021, 21:57
still 'with and without "Reset matrix if not found", it stay at "Resolution-based"'
It can't be resolution-based, it can only be 709 or 601.
What the menu shows is not decisive, as I have already written, the menu no longer shows the current matrix, only the selected one.
What is displayed in the status bar? That's what matters!


* Added Display > YUV -> RGB > 'Reset matrix if not found', real.finder please test it. Nobody else knows what this means. ;)
- disadvantage: the menu now only marks the last selection (no longer the matrix used)

real.finder
24th October 2021, 22:07
It can't be resolution-based, it can only be 709 or 601.
What the menu shows is not decisive, as I have already written, the menu no longer shows the current matrix, only the selected one.
What is displayed in the status bar? That's what matters!

good to know that, thanks :thanks:

gispos
26th October 2021, 18:36
AvsPmod 2.6.9.8 (https://github.com/gispos/AvsPmod/releases)
Not much changed, only first public version with frame properties

* Added reading frame properties (At least AviSynth+ 3.71 is required for full support).
- deactivated during playback
- if the property window is closed, reading is also deactivated
* Added Options > Font & colors > Advanced 2 'Properties window' set text style for the property window
* Added Display > YUV -> RGB > 'Reset matrix if not found'
- normally the matrix is retained if it could be read once, if this option is selected it is reset to the
- default value if it cannot be read.
* Fixed: Loading older font & colors backup files
* Bugfix Statusbar ads are not updated immediately


good to know that, thanks :thanks:
The menu now shows the current matrix again. Except for resolution based

Danette
26th October 2021, 22:18
For buttons, checkbox, etc. there are no shortcuts. Only for menus.

Circling back with you: thanks. It is as I thought. If you ever do decide to add this capability for "buttons, checkbox, etc.", I'd appreciate an alert.

You've done a lot of good work keeping this software relevant.

real.finder
27th October 2021, 01:05
The menu now shows the current matrix again. Except for resolution based

even better, thanks

gispos
7th November 2021, 15:58
AvsPmod 2.6.6.9 (https://github.com/gispos/AvsPmod/releases)

* Pixel values higher than 8bit can now be displayed (thanks to pinterf (pfmod) for the code)
- Hex values are now also calculated from the returned avisynth YUV / RGB values
- if the value is read from the display, it is preceded by an asterisk
* Fixed slider windows show/hide exclusions filter list

FranceBB
7th November 2021, 18:32
Nice, thanks for the high bit depth Gispos and Ferenc!

Shinkiro
8th November 2021, 21:13
after using macros "Save Image Sequence" After the process takes all the necessary screenshots, the program crashes

StvG
8th November 2021, 22:17
AvsPmod 2.6.6.9 (https://github.com/gispos/AvsPmod/releases)

* Pixel values higher than 8bit can now be displayed (thanks to pinterf (pfmod) for the code)
- Hex values are now also calculated from the returned avisynth YUV / RGB values
- if the value is read from the display, it is preceded by an asterisk
* Fixed slider windows show/hide exclusions filter list


ColorBars(pixel_type="yuv420p10")
There are displayed values > 1023.

gispos
8th November 2021, 23:32
ColorBars(pixel_type="yuv420p10")
There are displayed values > 1023.
You're right. I have to look over it again, something is messed up.

gispos
8th November 2021, 23:57
ColorBars(pixel_type="yuv420p10")
There are displayed values > 1023.
Now that's strange. Try ColorBarsHD (width = 1280, height = 720, pixel_type = "YV24")
ConvertBits(10)
Then correct values are displayed, so I had tested it.

I'll check again tomorrow to see if I've taken something wrong, but I think Ferenc has to look over it again.

Emulgator
10th November 2021, 20:03
HBD values: Big Thanks to pinterf and gispos !

And I guess the reason for 16-bit U,V values popping up in 10-bit YUV while Y stays at 10-bit will be found soon.

gispos
11th November 2021, 17:28
Color values greater than 8bit, please test it.
As usual, replace the library.zip in the archive with the one in the AvsPmod\lib directory. x64 only

https://www.mediafire.com/file/ch3skbiswmdfsem/AvsPmod_library.7z/file

Is there a list where the VUV values of the color bars are listed?

poisondeathray
12th November 2021, 06:02
Thanks. Color picker values > 8bit in avspmod is something I've wanted for a long time. It works well so far

FranceBB
12th November 2021, 09:20
Thanks. Color picker values > 8bit in avspmod is something I've wanted for a long time. It works well so far

+1
This has been a really appreciated feature, thank you all! :D

VoodooFX
12th November 2021, 11:38
@gispos
Yesterday I accidentally broke something in your fine tool. AvsPmod was crashing on start with this exact version: https://raw.githubusercontent.com/Purfview/InpaintDelogo/18341ca8a1250ad7b4f5ab1e4298802ecf2060db/InpaintDelogo.avsi

If I copied it to plugins after AvsPmod started then it worked OK.

AvsPmod v2.6.9.9 Win x86 / AvS+ 3.6.2:
Traceback (most recent call last):
File "run.py", line 49, in <module>
File "avsp.pyo", line 25844, in main
File "wx\_core.pyo", line 8622, in __init__
File "wx\_core.pyo", line 8187, in _BootstrapApp
File "avsp.pyo", line 25832, in OnInit
File "avsp.pyo", line 5514, in __init__
File "avsp.pyo", line 6900, in defineFilterInfo
File "avsp.pyo", line 7257, in getFilterInfoFromAvisynth
IndexError: string index out of range

hello_hello
12th November 2021, 16:08
A feature request:

It's just a little thing, but would it be possible to add "Delete" to the right click menu for scripts. It's been so long since I've used a program with a text input that didn't have "Cut, Copy, Paste, Delete" together under the right click menu I assumed there must be a law. :)
I don't use AvsPmod all that regularly, but I've still right clicked to delete text at least a hundred thousand times. Using "cut" to delete is annoying when there's something in the clipboard you want to keep there.

https://i.postimg.cc/wjmvhmzK/1.jpg

While I'm here...
I've been playing with fmtconv and discovered fmtc_resample doesn't get along with AvsPmod or MeGUI at all (the latter just crashes). I can add fmtc_resample to scripts and they open normally in MPC-HC. None of the other fmtconv functions cause problems.
Admittedly I'm running XP, so it's probably all my fault, but just in case it's not, has anyone else experienced this?

AvsPmod 2.6.0.8 and 2.6.6.4 offer this error message first (when attempting to preview the video)

https://i.postimg.cc/Xv6vxYNr/2.jpg

And if I try again I get this one:

https://i.postimg.cc/0NGy41rc/3.jpg

AvsPmod 2.6.9.9 says this:

https://i.postimg.cc/Fsqzdx2g/4.jpg

The relevant bits from script I was using. It's enough to reproduce the error on my PC (I'm using Avisynth+ 3.7.0).

ColorBars()
ConvertToYV12(matrix="rec601")
KillAudio()
fmtc_resample(720, 504, css="444")
ConvertToYV12()

Thanks.

gispos
12th November 2021, 19:48
@gispos
Yesterday I accidentally broke something in your fine tool. AvsPmod was crashing on start with this exact version: https://raw.githubusercontent.com/Purfview/InpaintDelogo/18341ca8a1250ad7b4f5ab1e4298802ecf2060db/InpaintDelogo.avsi

If I copied it to plugins after AvsPmod started then it worked OK.

AvsPmod v2.6.9.9 Win x86 / AvS+ 3.6.2:
Traceback (most recent call last):
File "run.py", line 49, in <module>
File "avsp.pyo", line 25844, in main
File "wx\_core.pyo", line 8622, in __init__
File "wx\_core.pyo", line 8187, in _BootstrapApp
File "avsp.pyo", line 25832, in OnInit
File "avsp.pyo", line 5514, in __init__
File "avsp.pyo", line 6900, in defineFilterInfo
File "avsp.pyo", line 7257, in getFilterInfoFromAvisynth
IndexError: string index out of range


_VFX1_GScript and function 'Neuron' generate an error.

Error parsing function "_VFX1_GScript"
Error parsing plugin string at function "Neural"

The DLL name should be in front of the function designation and not the other way:
_VFX1_GScript is wrong, GScript_VFX1 would be correct.

What kind of plugin does the 'Neural' function use? Incompatible naming is also used there.

I could suppress the error messages, these functions are not supported in AvsPmod (autocomplete, sliders, etc ..),
but then you don't get any information that incompatible names are used or how in this case the name was simply written around.

I do it so that only an error appears but AvsPmod does not crash because of it.
AvsPmod crashed because an attempt was made to access a null string with an index.
The null string was created by separating with _ for plugin name and function name. If _ is at the beginning there is nothing left.

@hello_hello, I am looking for it.

StainlessS
12th November 2021, 20:04
GP, _VFX1_GScript is the name of a script function, not dll prefixed function name.
(dont know what Neural is)

real.finder
12th November 2021, 20:19
AvsPmod 2.6.6.9 (https://github.com/gispos/AvsPmod/releases)

* Pixel values higher than 8bit can now be displayed (thanks to pinterf (pfmod) for the code)
- Hex values are now also calculated from the returned avisynth YUV / RGB values


YUV240PS (float 420) seems not work, it's show 0,0,0 most of times

https://i.postimg.cc/7PSSfTCr/Untitled.png (https://postimages.org/)

gispos
12th November 2021, 21:09
GP, _VFX1_GScript is the name of a script function, not dll prefixed function name.
(dont know what Neural is)
But it is in the GScript dll
Does a function name in a plugin starting with _ correspond to the standard? I don't think so, if so, AvsPmod can't support something like that. Only PluginName_FunctionName works.

As already written, there will be a switch to suppress the error message, further support of such names is not possible

Edit: The plugin function name assignment is also not correctly recognized by avisynth and the function name is returned without the plugin name.

YUV240PS (float 420) seems not work, it's show 0,0,0 most of times

https://i.postimg.cc/7PSSfTCr/Untitled.png (https://postimages.org/)
https://forum.doom9.org/showthread.php?p=1957208#post1957208

gispos
12th November 2021, 22:10
A feature request:

It's just a little thing, but would it be possible to add "Delete" to the right click menu for scripts. It's been so long since I've used a program with a text input that didn't have "Cut, Copy, Paste, Delete" together under the right click menu I assumed there must be a law. :)
I don't use AvsPmod all that regularly, but I've still right clicked to delete text at least a hundred thousand times. Using "cut" to delete is annoying when there's something in the clipboard you want to keep there.

https://i.postimg.cc/wjmvhmzK/1.jpg

While I'm here...
I've been playing with fmtconv and discovered fmtc_resample doesn't get along with AvsPmod or MeGUI at all (the latter just crashes). I can add fmtc_resample to scripts and they open normally in MPC-HC. None of the other fmtconv functions cause problems.
Admittedly I'm running XP, so it's probably all my fault, but just in case it's not, has anyone else experienced this?

AvsPmod 2.6.0.8 and 2.6.6.4 offer this error message first (when attempting to preview the video)

https://i.postimg.cc/Xv6vxYNr/2.jpg

And if I try again I get this one:

https://i.postimg.cc/0NGy41rc/3.jpg

AvsPmod 2.6.9.9 says this:

https://i.postimg.cc/Fsqzdx2g/4.jpg

The relevant bits from script I was using. It's enough to reproduce the error on my PC (I'm using Avisynth+ 3.7.0).

ColorBars()
ConvertToYV12(matrix="rec601")
KillAudio()
fmtc_resample(720, 504, css="444")
ConvertToYV12()

Thanks.
I don't get an error. However, I use Win10 64bit. It just doesn't work with your example.
Before converting to YV12, you have to convert to 8bit

ColorBars()
ConvertToYV12(matrix="rec601")
KillAudio()
fmtc_resample(720, 504, css="444")
ConvertBits(8)
ConvertToYV12()


But FranceBB should be the specialist for XP questions. Maybe he can say something more.

And for the menu entry 'Delete' a question, why this in the popup menu, why not by pressing the 'return' or 'del' key?

VoodooFX
13th November 2021, 01:30
_VFX1_GScript and function 'Neuron' generate an error.

Error parsing function "_VFX1_GScript"
Error parsing plugin string at function "Neural"

The DLL name should be in front of the function designation and not the other way:
_VFX1_GScript is wrong, GScript_VFX1 would be correct.

What kind of plugin does the 'Neural' function use? Incompatible naming is also used there.

I dunno this stuff, for simplicity sake you can make avsi from that func: https://forum.doom9.org/showthread.php?t=163107

AvsPmod + AvS v2.6: avsi with a func inside GScript("""...""") don't crash.
AvS+ doesn't need GScript("""...""") wraps as it has native implementation, no idea what happens if it encounters GScript wrap. There is no problem for me anymore, so I won't complain if you just ignore this issue.

hello_hello
13th November 2021, 06:12
And for the menu entry 'Delete' a question, why this in the popup menu, why not by pressing the 'return' or 'del' key?

Habit.
Often I have my hand on the mouse already, probably using it to select the text to delete, so I just right click.
I guess you could make the same argument for cut copy and paste, or undo and redo.

The Edit menu is the same. I'd hardly ever use it for that myself, but it's fairly universal to find Delete there too.

https://i.postimg.cc/13dMQSqc/1.jpg

I don't get an error. However, I use Win10 64bit. It just doesn't work with your example.
Before converting to YV12, you have to convert to 8bit

Whoops. I just copied the necessary lines from the script I was messing around with, rather than the whole thing, but I forgot that one.

Thanks for checking. I thought it might be an XP thing. I'll test it on a Win7 laptop later (I didn't have it with me yesterday) and report back if the same thing happens.

gispos
13th November 2021, 08:18
AvsPmod 2.7.0.0 (https://github.com/gispos/AvsPmod/releases)

* Added Program options > Misc > 'Show warning for plugin functions parse errors'
- if it is deactivated, no error message appears with incompatible (wrong) plugin function names.
- the plugin (the function) does not get any support for extended AvsPmod functions.
* User wishes: editor popup menu entry 'Delete'
* Bugfix: display of pixel values higher than 8bit (thanks again to pinterf)
* A nice version number that should stick for a while... I hope.

hello_hello
14th November 2021, 08:07
Thanks!

FranceBB
14th November 2021, 11:17
Well done. :)

Dogway
16th November 2021, 21:35
Thanks for the update, I still have to catch up.
I noticed and use oftenly rectangular selection, cut and delete, is it possible to add as well rectangular paste?

gispos
17th November 2021, 17:15
Thanks for the update, I still have to catch up.
I noticed and use oftenly rectangular selection, cut and delete, is it possible to add as well rectangular paste?
I don't know what that means.
Replace selection with paste already exists.

I don't want to add anything else, the entry 'Delete' disturbs me personally in my usual way of working.
I am use copy, cut and paste with the mouse, but delete with the keyboard.

And now the 'Delete' menu gets in the way every time, because it has taken the place of paste.
I will either remove it or move it to another place.

Dogway
17th November 2021, 18:07
It doesn't have anything to do with that. I mean since rectangular selection/cut/delete is supported, why not support rectangular paste?

Here's an example: https://ufile.io/mp8vrl4n

VoodooFX
17th November 2021, 18:14
AvsPmod v2.6.9.9 Win x86 / AvS v2.6:
Script:
colorbars()

Error:

Traceback (most recent call last):
File "_ctypes/callbacks.c", line 315, in 'calling callback function'
File "avisynth.pyo", line 1296, in internal_fake_num_components
NameError: global name 'avs_is_rgb32' is not defined

gispos
17th November 2021, 19:50
We are at version 2.7.0.0

VoodooFX
17th November 2021, 21:43
We are at version 2.7.0.0
Yeah, right, but error there is exactly same.

gispos
18th November 2021, 16:54
Yeah, right, but error there is exactly same.
32 or 64bit?
what avisynth version?

VoodooFX
18th November 2021, 17:05
x86 / AvS v2.6

gispos
18th November 2021, 17:59
x86 / AvS v2.6
Is no longer supported.
With the 32bit version an attempt was made to create compatibility with the fake_functions for older classic avisynth versions... with the 64bit version this was not even attempted.
Avisynth+ from header version 6 is at least required. I found a volatility bug in the fake_function that I can fix, but still only avs+ is supported.

However, I am surprised that there was no error message before.
It is checked for header version 6, was there also a Classic H6 version?
Can you please upload your avisynth dll.

VoodooFX
18th November 2021, 18:11
I don't use AvS 2.6, just checked some script there. What is last version to support 2.6?

gispos
18th November 2021, 18:49
I don't use AvS 2.6, just checked some script there. What is last version to support 2.6?

As written with 64bit only avs+ is supported from header V6. With 32bit I can't tell you exactly.
Too many functions have been changed and I don't know whether they were already available in older versions.

If you want you can download the fix for avisynth classic 32bit here. Only for AvsPmod 32bit
Replace the library.zip with the one in the AvsPmod\lib directory

https://www.mediafire.com/file/ww4z1uqfqy9sw5t/AvsPmod_2.7.0.0_32bit_avs_classic_2.6_32bit_fix.7z/file

Edit:
If you are currently testing it, you can post the last working classic version here ... then I know it too. :)

VoodooFX
19th November 2021, 22:47
Thanks, no errors with that fix. [tested only colorbars() ]

gispos
20th November 2021, 17:10
Thanks, no errors with that fix. [tested only colorbars() ]
OK, everything else should work, it was only a small mistake in the fake function num_components, the function is only available from Avisynth+ V6

FranceBB
22nd November 2021, 10:23
Another thing about frame properties (sorry xD).
When the source is PQ, it says:

_Transfer (16 [st2084])

Now, I understand that st2084 stands for smpte2084 and that people should be able to recognize it and say: "Oh, of course it's PQ", but I think adding "PQ" next to it wouldn't hurt ehehehehe

Same goes for when the source is HLG:

_Transfer (18 [std-b67])

sure enough we know that std-b67 stands for arib-std-b67 which is HLG, but again adding HLG next to it would be better ehehehehehhehe

gispos
22nd November 2021, 20:58
Another thing about frame properties (sorry xD).
When the source is PQ, it says:



Now, I understand that st2084 stands for smpte2084 and that people should be able to recognize it and say: "Oh, of course it's PQ", but I think adding "PQ" next to it wouldn't hurt ehehehehe

Same goes for when the source is HLG:



sure enough we know that std-b67 stands for arib-std-b67 which is HLG, but again adding HLG next to it would be better ehehehehehhehe

I have to look again.
When I coded it you gave me a link where the conversion from value to string was listed.
Then I found another source (github, Asd-g or real.finder) that stated a lot more. Now Ferenc also has a table and Dogway asked for changes.

According to which table please. ;)

Edit:
We do it differently.
Everyone can change the 'integer, string' pairs here.
I then take over what is in the last posting. ;)

def GetMatrixName(idx):
namedict = {
0: 'RGB',
1: 'BT.709',
2: 'undef',
#3: 'reserved',
4: 'FCC T47',
5: 'BT.470 B/G',
6: 'BT.601',
7: 'SMPTE ST 240',
8: 'YCgCo',
9: 'BT.2020ncl',
10: 'BT.2020cl',
11: 'SMPTE ST 2085',
12: 'Chroma ncl',
13: 'Chroma cl',
14: 'BT.2100'
}
if idx in namedict.keys():
return namedict[idx]
return '..'

def GetColorPrimariesName(idx):
namedict = {
1: 'BT.709',
2: 'undef',
#3: 'undef',
4: 'BT.470 M',
5: 'BT.470 BG',
6: 'SMPTE 170 M',
7: 'SMPTE 240 M',
8: 'Film',
9: 'BT.2020',
10: 'ST 428',
11: 'ST 431-2',
12: 'ST 432-1',
22: 'jedec-p22'
}
if idx in namedict.keys():
return namedict[idx]
return '?'

def GetChromaLocationName(idx):
namedict = {
0: 'left',
1: 'center',
2: 'top-left',
3: 'top',
4: 'bottom-left',
5: 'bottom'
}
if idx in namedict.keys():
return namedict[idx]
return '?'

def GetFieldBasedName(idx):
namedict = {
0:'progressive',
1:'bottom-field',
2:'top-field'
}
if idx in namedict.keys():
return namedict[idx]
return '?'

def GetTransferName(idx):
namedict = {
1:'709',
2:'undef',
4:'470m',
5:'470bg',
6:'601',
7:'240m',
8:'linear',
9:'log100',
10:'log316',
11:'xvycc',
13:'srgb',
14:'2020_10',
15:'2020_12',
16:'st2084',
18:'std-b67'
}
if idx in namedict.keys():
return namedict[idx]
return '?'

Dogway
6th December 2021, 13:35
gispos, I managed to save and load automatically last session, so maybe this will be enough to prevent issues like what happened to me (last session rewritten/cleared when something is typed before full session loading).

http://i.imgur.com/ljSF8xkm.png (https://i.imgur.com/ljSF8xk.png)

gispos
6th December 2021, 21:03
gispos, I managed to save and load automatically last session, so maybe this will be enough to prevent issues like what happened to me (last session rewritten/cleared when something is typed before full session loading).

http://i.imgur.com/ljSF8xkm.png (https://i.imgur.com/ljSF8xk.png)
Nice. In the next version there will still be an extended option to secure the last session.
Then you can save up to 99 last sessions versions automatically when you start the program. ;)

I have never seen the options so beautiful... Win10 theme?

Dogway
6th December 2021, 21:50
Yes, thanks! No, it's an old Win7 theme Adobulated (https://www.deviantart.com/aaron-a-arts/art/ADOBULATED-317882595). Further hacked to modify some dll's to inject XP icons and stuff. Main reason I don't want to switch to Win10 lol. Win11 looks nice, but not compatible with my PC.

gispos
7th December 2021, 00:35
I also only updated to Win10 because some newer programs no longer work under Win7.
That with Win11 and the hardware requirements is already bad, security or not, the user should be able to decide whether he lets the system run in a hardware sandbox and thus is safe but also has an loss of performance.

But there are also tricks with which you can install Win11 on almost any PC.
To do this, the Win11 setup information file must be changed.

Shinkiro
7th December 2021, 10:11
windows 11 looks nice but its taskbar is very uncomfortable and you can't raise it up, that's why I went back to win10.

FranceBB
8th December 2021, 11:41
windows 11 looks nice but its taskbar is very uncomfortable and you can't raise it up, that's why I went back to win10.

The taskbar is a pain in the...
Please comment on Microsoft User Voice (https://techcommunity.microsoft.com/t5/windows-insider-program/how-to-let-windows-11-quot-never-combine-taskbar-buttons-quot/m-p/2513043), so perhaps they'll give a darn about us...

gispos
12th December 2021, 18:18
Is there a color format that a resize filter cannot resize to mod 2.

LigH
13th December 2021, 08:42
DV NTSC has YUV 4:1:1; but I don't think AviSynth supports that?!

gispos
13th December 2021, 18:49
DV NTSC has YUV 4:1:1; but I don't think AviSynth supports that?!
Thanks, if it's only rare formats that's OK.

real.finder
13th December 2021, 23:04
DV NTSC has YUV 4:1:1; but I don't think AviSynth supports that?!

AviSynth already supports yv411 since AviSynth 2.60, but there are no HBD of 4:1:1 in avs+

gispos
19th December 2021, 12:45
Another thing about frame properties (sorry xD).
When the source is PQ, it says:



Now, I understand that st2084 stands for smpte2084 and that people should be able to recognize it and say: "Oh, of course it's PQ", but I think adding "PQ" next to it wouldn't hurt ehehehehe

Same goes for when the source is HLG:



sure enough we know that std-b67 stands for arib-std-b67 which is HLG, but again adding HLG next to it would be better ehehehehehhehe
https://github.com/ilia3101/MLV-App/issues/46
https://forum.doom9.org/showthread.php?p=1927492#post1927492

Is there a reliable source for it?

Everyone says something different, in the ffmpeg source there are contradicting information.

-color_primaries <int> ED.V.... color primaries (from 1 to 10) (default unspecified)
But there are only 9 values

-color_trc <int> ED.V.... color transfer characteristics (from 1 to 18) (default unspecified)
There are only 16 values

-colorspace <int> ED.V.... color space (from 0 to 10) (default unspecified)
That should be 11 values but there are only 9

And BT.601 cannot be found in any table of values!

Your bible is not my bible.

gispos
19th December 2021, 12:51
AvsPmod 2.7.0.1 (https://github.com/gispos/AvsPmod/releases)

--------------------------
Version 2.7.0.1 [2021-12-19] GPo, It's Christmas soon
--------------------------
* Added a preview resize filter, please read the readme_resampleFilter.txt (Help > 'Resample filter readme')
- in order not to overwhelm beginners or people who rarely use AvsPmod, the resample menu is switched off by default.
- the menu (off, as submenu, normal) can be changed under the program options > Misc2 'Show resample zoom menu'
* Added Video > 'Save pos & zoom on tab change'
- if it is activated, the position as well as the zoom settings (zoom, fit, fill) are saved
- and restored (if possible) when changing tabs. It is a supplement to 'Save view pos on tab change'
- which only saves the position.
* The _last_session.ses is saved at program start as '_last_session_backup.ses'
- the next time the program is started, it will be saved with a date name in the 'ProgramDir\SessionBackups' directory.
- the number of backups can be set under program options > Save/Load (default 3)
- Warning! Do not save any sessions yourself in the 'SessionBackups' directory with name begin _session_backup_
- these files can be deleted.
* Added menu File > 'Reload startup session'
- saves the current tabs as session in the 'SessionBackups' folder, closes all tabs
- and opens the _last_session_backup (the backup of the _last_session on startup).
* The video window is no longer automatically resized as often.
* The video slider button changes the color when a video frame is requested or again readed or the button pressed.
* 32bit Version: fix for classic avisynth 32bit versions.
* Some other small fixes.
* Hint: So that the session is saved at the end of the program,
- 'Save session for next launch' must be activated under the program options 'Save \ Load'.


Resample filter readme

Resample (resize) filter:
The resample filter is intended to reduce the video dimensions or, in exceptional cases, to enlarge it in order to be able
to assess the quality better (antialiasing is deactivated when the resize filter is activated).
It can also be used for better visible quality playback if the preview dimension needs to be adjusted.

It behaves in the same way as if a resizer is used in the script, with the difference that the resize factor is changed dynamically.
mod 2 is used, with the exception of the yv411 color format, then mod 4 is used.

The Avisynth resizer can be entered under Options > 'Resample filter...' (only the name, no parameters, default 'Spline36Resize').
The resize factor can be selected in the zoom menu (fit,fill,50%,75%, 200% !) for all scripts (tabs) or
only for the current tab if control is pressed when selecting the menu.
or:
Double click on the top right or bottom right of the video window (50x50 pixels * DPI scaling).
Then the last globally changed value (fit or fill) is used, 'fit' is default at startup.
If you double click above, the change only affects the current script.
If you double click below it affects all scripts (tabs).
or:
In the upper area, press the left mouse button and zoom with the mouse wheel. The zoom changes in 10% steps from 10 to 200%

If fit or fill is selected, a new calculation of the dimension can be brought about by clicking on the script / video window separator.
Normally this is never needed, at the moment only when the size of the program window is changed.

The normal zoom can still be used with the mouse (left down and right click or mouse wheel). But then 'Antialiasing' is active is it enabled.

There are two options for deactivating the resize filter:
1.) double click again on the upper or lower area (if a fixed zoom was set, a double click must follow).
2.) select a normal zoom factor with the keyboard (shortcut) or the video window context menu

If not 'Save view pos on tab change' or 'Save pos & zoom on tab change' enabled then all tabs disables the resize filter.

Certain functions are not possible with the resample filter:
Crop dialog, pixel values read from avisynth, and a few things are not yet running smoothly: Split View and Preview Filter together.

If a resize is active this is indicated in the status bar with an 'r' in front of zoom and dimensions.

And if you don't like it or don't need it, you can deactivate or change the resample menu under program options > Misc2.

GPo, 2021


@FranceBB please have a look here (https://forum.doom9.org/showthread.php?p=1959577#post1959577)

Shinkiro
22nd December 2021, 12:35
The preview window began to behave strangely, at the moment when I try to change the zoom, it falls to the bottom because of this, the frame is not displayed completely, the same when updating the video preview
https://disk.yandex.com/i/yjgtdcJkUHZRbg

gispos
22nd December 2021, 17:21
The preview window began to behave strangely, at the moment when I try to change the zoom, it falls to the bottom because of this, the frame is not displayed completely, the same when updating the video preview
https://disk.yandex.com/i/yjgtdcJkUHZRbg

In the past, the video window adapted to the zoom, i.e. it became larger or smaller.
I and a few other people didn't like it at all. But I was too lazy to change that for a while.
The last time I was so annoyed that I have now changed it.

You have brought a small video 720x480 pixel with 2x zoom to the view.
The video window is set to 480 pixels the first time, regardless of what zoom you have set.

You just have to slide the script / video window separator up to see the full picture at 2x zoom.
Or do a double click on the video window.

If it is different from what I described, then get in touch again.

Edit:
Now you've posted a video, I only saw the pictures. I have to take a closer look at that.

gispos
22nd December 2021, 18:26
The preview window began to behave strangely, at the moment when I try to change the zoom, it falls to the bottom because of this, the frame is not displayed completely, the same when updating the video preview
https://disk.yandex.com/i/yjgtdcJkUHZRbg

Had not thought of the double-clicking on the splitter, which mix up everything.
Test this here. (https://www.mediafire.com/file/i6vxc7bgqvzupcv/AvsPmod_fix_library_2.7.0.1.7z/file)
Replace the 'library.zip' in the 'AvsPmod\lib' directory with the in the archive.

Shinkiro
22nd December 2021, 19:26
Had not thought of the double-clicking on the splitter, which mix up everything.
Test this here. (https://www.mediafire.com/file/i6vxc7bgqvzupcv/AvsPmod_fix_library_2.7.0.1.7z/file)
Replace the 'library.zip' in the 'AvsPmod\lib' directory with the in the archive.
Now it seems to be working correctly, thank you!

gispos
22nd December 2021, 22:31
Now it seems to be working correctly, thank you!
Changed again (https://www.mediafire.com/file/1o48u8tjoa2jjij/AvsPmod_fix2_library_2.7.0.1.7z/file), i hope improved :)
Replace library.zip as usual

Shinkiro
22nd December 2021, 23:24
Changed again (https://www.mediafire.com/file/1o48u8tjoa2jjij/AvsPmod_fix2_library_2.7.0.1.7z/file), i hope improved :)
Replace library.zip as usual
I hope so too, at least nothing has broken, everything is still working correctly.

Sparktank
23rd December 2021, 15:09
Is there a setting I'm missing, because for the Zoom options on the video preview, "fill window" and "fit inside window" seem to do the same thing.

If I set the preview to 100%, it's partially hidden unless I use the scroll bar to move down.
Keeping the window the same, if I set to 25%, the video shrinks to the top left and the window doesn't change at all.

I remember this thing used to snap the window to the video zoom with one of the zoom options. But, now they both just fill window the same way.

gispos
23rd December 2021, 21:47
Is there a setting I'm missing, because for the Zoom options on the video preview, "fill window" and "fit inside window" seem to do the same thing.

If I set the preview to 100%, it's partially hidden unless I use the scroll bar to move down.
Keeping the window the same, if I set to 25%, the video shrinks to the top left and the window doesn't change at all.

I remember this thing used to snap the window to the video zoom with one of the zoom options. But, now they both just fill window the same way.

If the video width is smaller than the video window width there is no difference between fit and fill.
Fit fills the height, whereas fill fills the height or width.

Are you using the separate video window?
If so, I haven't adjusted that yet and will have to look at it.
I would like to remove the separate video window, because it is tedious to have to adapt the code for it.

Sparktank
24th December 2021, 03:39
I'm using the same window.
Can we get an option that snaps the window to the video?

gispos
25th December 2021, 13:17
AvsPmod 2.7.0.2 (https://github.com/gispos/AvsPmod/releases)

* Added Video > 'Resize video window'
- if switched on (default off), the video window is adapted to the size of the video when the tab or
- the zoom factor is changed (exception zooming with the mouse).
- if the resize filter is used, I recommend deactivating this option when there are small and large videos in the tabs.
* Bugfix zoom menu, the values are not displayed visually in the menu.
* Bugfix for double clicking on the script / video window splitter
* Bugfix for menu 'Video information' while resize filter is activated
* Bugfix for avisynth versions smaller then 3.71
- AvsPmod crashes while trying reading the matrix from the properties (the bug was created in 2.6.9.9)
* Some minor changes




Can we get an option that snaps the window to the video?
Video > 'Resize video window'

FranceBB
25th December 2021, 19:09
A release for Christmas Day? Do you ever take a break? Thank you gispos and Merry Christmas!

https://media0.giphy.com/media/euviDNZfscxPOVSkHa/giphy.gif

gispos
25th December 2021, 19:38
Thank you FranceBB. Happy Holidays to you and everyone else.


Do you ever take a break?

Well, I do the coding on the side :)

StvG
27th December 2021, 05:18
if (!IsRGB())
{
if (propGetType("_Matrix") < 1 || propGetInt("_Matrix") == 2)
{
propSet("_Matrix", 1)
}

z_ConvertFormat(pixel_type="RGBP", resample_filter_uv="spline36")
}

Above code is used as current display filter.
When matrix property is unspec or missing, matrix is set to 1. It works ok for versions before 2.7.0.1. The latest two versions ignore the part where the matrix property is set to 1.

Edit: Once "Display filter" is checked, after restart it must be checked again. Is it possible the status be saved permanently?

gispos
28th December 2021, 17:49
if (!IsRGB())
{
if (propGetType("_Matrix") < 1 || propGetInt("_Matrix") == 2)
{
propSet("_Matrix", 1)
}

z_ConvertFormat(pixel_type="RGBP", resample_filter_uv="spline36")
}

Above code is used as current display filter.
When matrix property is unspec or missing, matrix is set to 1. It works ok for versions before 2.7.0.1. The latest two versions ignore the part where the matrix property is set to 1.

Edit: Once "Display filter" is checked, after restart it must be checked again. Is it possible the status be saved permanently?

You must be wrong. I was surprised that it apparently worked in the previous versions.
I tried it with version 2.6.9.9, no function. Although I already knew I looked at the code:

The display filter only affect the display clip, does also not make any changes to the source clip.
But the matrix is only read from the source clip before the display clip is created. Otherwise the matrix would be unknown when the display clip is created.
It is also called Display 'Filter', propSet is not a filter. :)

The status bar also shows that no change has been made.
I think you added a propShow after propSet and a different value was then displayed in the video window. But the matrix was not set, however.
And I discovered a bug that turned "_Matrix" into "_matrix" therefore propShow did not change any values in the newer versions. But it would have been just a mirage.

Now the matrix is also set if it is changed in the display filter. It is also displayed in the status bar, an asterisk is then placed in front of the value.

As usual, replace the library.zip in the ProgramDir\lib folder with the one in the archive (x64 only).
https://www.mediafire.com/file/f3qc54qyo4beh4j/AvsPmod_library_2.7.0.2_x64_update.7z/file


Edit: Once "Display filter" is checked, after restart it must be checked again. Is it possible the status be saved permanently?
I don't want that.

StvG
29th December 2021, 03:00
You must be wrong. I was surprised that it apparently worked in the previous versions.
I tried it with version 2.6.9.9, no function. Although I already knew I looked at the code:

The display filter only affect the display clip, does also not make any changes to the source clip.
But the matrix is only read from the source clip before the display clip is created. Otherwise the matrix would be unknown when the display clip is created.
It is also called Display 'Filter', propSet is not a filter. :)

Script:ffvideosource()
propClearAll()

Add the code from my previous post in "Edit current display fiilter":if (!IsRGB())
{
if (propGetType("_Matrix") < 1 || propGetInt("_Matrix") == 2)
{
propSet("_Matrix", 1) # propSet("_Matrix", 5)
}

z_ConvertFormat(pixel_type="RGBP", resample_filter_uv="spline36")
}

Changing between propSet("_Matrix", 1) and propSet("_Matrix", 5) results to different displayed clip before 2.7.0.1.
It works again (different displayed clip) with the library update in the latest post. Thanks.

I don't want that.
An option could be added like default YUV->RGB for all tabs in Misc 2 for those of us that would like to use Display filter as default.

gispos
29th December 2021, 23:22
Script:ffvideosource()
propClearAll()

Add the code from my previous post in "Edit current display fiilter":if (!IsRGB())
{
if (propGetType("_Matrix") < 1 || propGetInt("_Matrix") == 2)
{
propSet("_Matrix", 1) # propSet("_Matrix", 5)
}

z_ConvertFormat(pixel_type="RGBP", resample_filter_uv="spline36")
}

Changing between propSet("_Matrix", 1) and propSet("_Matrix", 5) results to different displayed clip before 2.7.0.1.
It works again (different displayed clip) with the library update in the latest post. Thanks.

Now I can understand it.
I thought you were complaining that the AvsPmod matrix is not set correctly when you use propSet in the display filter.

It was only because I made this stupid mistake to convert the whole display filter text to lower case.
Then nothing was changed with propset("_ matrix") and your subsequent filter shows always the same.

theworm4002
30th December 2021, 04:38
Hello gispos, Thanks for all your hard work on the new versions. I have been using old Ver. 2.5.1 for some time and was happy to find your x64 version. Not sure if this is related to the matrix bug you had mentioned but I am getting a matrix error when using macros in Ver. 2.7.0.2 (with AviSynth+ 3.7.0).


vidfile = "Z:/VidFile.mkv"
FFVideoSource (vidfile, colorspace="YV12")


This will load the video preview fine.
If I use the Save Image Sequence.py macro, I get the error """ 'MainFrame' object has no attribute 'matrix" (Save Image Sequence.py, line 139) """


self = avsp.GetWindow()
AVS = pyavs.AvsClip(avsp.GetText(clean=True), matrix=self.matrix, interlaced=self.interlaced, swapuv=self.swapuv)


if I use logging in AvsPmod and log FFCOLOR_SPACE I get


INFO: ColorSpace: 2
---------------------------------------------------------------------
ERROR: Error getting frame property "_Matrix": property is not set
([ScriptClip], line 1)


as a current workaround, as I know the color spacing was 2 I just set matrix to 709 in the macro itself


Unrelated, and could be I just didn't understand some of the new mouse settings but I can no longer use the mouse scroll wheel to scroll the script section.

gispos
30th December 2021, 19:50
Hello gispos, Thanks for all your hard work on the new versions. I have been using old Ver. 2.5.1 for some time and was happy to find your x64 version. Not sure if this is related to the matrix bug you had mentioned but I am getting a matrix error when using macros in Ver. 2.7.0.2 (with AviSynth+ 3.7.0).



This will load the video preview fine.
If I use the Save Image Sequence.py macro, I get the error """ 'MainFrame' object has no attribute 'matrix" (Save Image Sequence.py, line 139) """

Why do you use old macros when the same macro is in the new versions.

Save Image Sequence.py
# GPo mod:
# make dir if not exists, add options 'From first to last bookmark', 'Add Image Source to the script'
# 12.08.21 fixed bookmarkDict and matrix


if I use logging in AvsPmod and log FFCOLOR_SPACE I get



as a current workaround, as I know the color spacing was 2 I just set matrix to 709 in the macro itself
I don't understand that, if it relates to 'Save Image Sequence'?
You cannot set the matrix in a marco.


Unrelated, and could be I just didn't understand some of the new mouse settings but I can no longer use the mouse scroll wheel to scroll the script section.
The problem already had a user. Try it:
program options > Misc2 > 'Mouse wheel scroll rate on editor'

theworm4002
31st December 2021, 20:01
Oh my gosh. well, don't I feel silly. I have other macros I copied over and must have copied over the old Save Image Sequence.py at the same time. I feel so silly that I didn't think about it.
thank you for the fast reply