Log in

View Full Version : New AviSynth tool - AvsP v1.4.0 (6/5/07)


Pages : 1 2 3 4 5 6 7 8 [9] 10 11 12 13 14 15 16 17

Fizick
4th November 2006, 08:39
qwerpoi,
I have the same opinion, that it is no reasons to go to sourceforge immediately.

foxyshadis
4th November 2006, 08:58
2.5, actually. Had no problem running it so far.

The only multimonitor issue seems to be that stuff still restarts on the primary monitor, no matter which it was on before. It's not hard to move, though.

zemog
4th November 2006, 10:54
Qwerpoi: Thanks again, great work!.

Here is the Spanish translation for v1.3.2

krisq
4th November 2006, 13:29
The only multimonitor issue seems to be that stuff still restarts on the primary monitor, no matter which it was on before. It's not hard to move, though.

I confirm that :).

qwerpoi
5th November 2006, 00:47
2.5, actually. Had no problem running it so far.

The only multimonitor issue seems to be that stuff still restarts on the primary monitor, no matter which it was on before. It's not hard to move, though.

I confirm that :).
D'oh, either I did something wrong or the multi-monitor related commands in wxpython don't work properly. If you're willing foxyshadis, I'll put together some diagnostic code for you to run (since you've already got all the python stuff installed :) ), to see some position outputs and find the cause of the issue.

Qwerpoi: Thanks again, great work!.

Here is the Spanish translation for v1.3.2
Thanks for the updated translation! I've updated the links on the first post and the AvsP download page for the Spanish and Portuguese translations accordingly.

foxyshadis
5th November 2006, 01:16
Sure, I'd have no problem with that. It also raised a wxerror when the resolution changed while it was open, and wouldn't close after that, but I kinda forgot to get the line numbers down. >.> That was just me testing the stupid ati drivers, plugging and unplugging the monitor, probably not too important.

Oh, you know how you have the autosize to video routine? That's really cool, but would it be possible to make it work going down, as well? Currently it only autosizes if it's too small.

I think you might also want to expose GetCurrentPos() in AvsP_functions, it's handy to insert macro text in at the cursor, instead of always at the end.

Alain2
5th November 2006, 16:06
Apparently AvsP refresh the preview window on exit (or takes a long time to close), which is not necessary. Not very important though ^^

I also catched an error message:
http://img132.imageshack.us/img132/2192/tempit2.jpg
But was after making mistakes and using directshowsource, AvsP apparently was not properly closing haali splitter when errors in the avs were there. Again I don't think this isimportant, I mention it just in case

qwerpoi
5th November 2006, 19:48
Sure, I'd have no problem with that. It also raised a wxerror when the resolution changed while it was open, and wouldn't close after that, but I kinda forgot to get the line numbers down. >.> That was just me testing the stupid ati drivers, plugging and unplugging the monitor, probably not too important.
I'll look into it, if it happens again let me know the error message.

Oh, you know how you have the autosize to video routine? That's really cool, but would it be possible to make it work going down, as well? Currently it only autosizes if it's too small.
I take it you're referring to the separate video window. I tried to keep the autosizing to a minimum with the separate window, since your controls would keep changing position, but certainly I can change the behavior if that's more intuitive to you.

I think you might also want to expose GetCurrentPos() in AvsP_functions, it's handy to insert macro text in at the cursor, instead of always at the end.
You can use InsertText("Hello", pos=None) to insert "Hello" at the current position (strange notation, I know). If there's another reason to get the current position, let me know and I'll add the function to the macros.

Apparently AvsP refresh the preview window on exit (or takes a long time to close), which is not necessary. Not very important though ^^
Okay, I'll check it out, thanks.

I also catched an error message:

But was after making mistakes and using directshowsource, AvsP apparently was not properly closing haali splitter when errors in the avs were there. Again I don't think this isimportant, I mention it just in case
Thanks for the error output, I'll figure out what's going on and fix it for the next release.

foxyshadis
6th November 2006, 01:29
You can use InsertText("Hello", pos=None) to insert "Hello" at the current position (strange notation, I know). If there's another reason to get the current position, let me know and I'll add the function to the macros.

Thanks, I didn't know there was a magic syntax.

Maybe you can use the lower left corner as the anchor, if control jumpiness is a problem?

btw, I found the reason why it doesn't save position on second screen: You don't need an offset for it, it's already offset correctly. :p

self.options['dimensions2'] = (x, y, w, h)

Will correctly display it on the second monitor, it must be overflowing and resetting when adding the offset (I bet if I had a third it would snap over to it). Which is really good to know, because I switch from one to two monitors all the time, and it's nice that it won't show up "nowhere" when going back to a single screen.

qwerpoi
6th November 2006, 05:35
btw, I found the reason why it doesn't save position on second screen: You don't need an offset for it, it's already offset correctly. :p

self.options['dimensions2'] = (x, y, w, h)

Will correctly display it on the second monitor, it must be overflowing and resetting when adding the offset (I bet if I had a third it would snap over to it). Which is really good to know, because I switch from one to two monitors all the time, and it's nice that it won't show up "nowhere" when going back to a single screen.
Okay, so you're saying that the dimensions do not span multi-monitors, good to know. But if that's true then how is it possible to store and restore the window position on a secondary monitor? Ie, I don't see the way to programmatically send a window from monitor A to monitor B if the offsets don't work. If I'm misunderstanding something, let me know, otherwise I'll try and do some research into the subject.

foxyshadis
6th November 2006, 06:04
The coordinates are just extended across the second screen. 0-1279 are screen one, 1280-2560 are screen two, and self.videoDialog.GetRect() will correctly return the coordinates starting from the top-left of the first monitor, not the second. By removing all of the per-display offset code from dimensions and dimensions2, it always saves and restart correctly.

Per-display would be useful if you needed to auto-center or maximize across windows though.

qwerpoi
6th November 2006, 06:13
The coordinates are just extended across the second screen. 0-1279 are screen one, 1280-2560 are screen two, and self.videoDialog.GetRect() will correctly return the coordinates starting from the top-left of the first monitor, not the second. By removing all of the per-display offset code from dimensions and dimensions2, it always saves and restart correctly.

Per-display would be useful if you needed to auto-center or maximize across windows though.
Ah, gotcha. This of course leaves the question as to why it didn't work originally (I added the offsets later in an attempt to correct the problem). Oh well, I'll remove the per-display offsets, if you say it works fine then I won't give it further thought :) .

Alain2
7th November 2006, 03:48
A small bug: doing a CTRL+SPACE on a number (where-ever positionned) will show a python error message, whereas doing so on names not recognized won't show anything

Naito
7th November 2006, 15:50
At first, a great thanks for your powerful tool.

I have a Mistake:
In the Attachment you will find the "wrong_format.txt". If I wrote this skript with AvsP 1.3.2 (german translation) and save as AVS, it will be wrong formatted (no line breaks by the comments). Maybe just an error of my windows system. Because of the sliders, I added the SES-File too. (Maybe the error is there)

Some proposals:
#Zoom:
* Can you add "Zoom: 75%" and "Zoom: 150%", please.
* It would be nice, if I can select "Custom-Zoom", to enter a Number, wich adjust I like.
* Great It would be an "Auto-Zoom". The Preview will be fit to the Preview-Window and the Zoom-Adjust is be shown on the row at the bottem.
#Slider
* Please, can you add a warning if the value of the slider is not between min and max. For example: [<"Test", 0, 10, 20>] or [<"Test", 0, 10, -20>].

_____

I apologise for my bad englisch.

qwerpoi
7th November 2006, 20:41
A small bug: doing a CTRL+SPACE on a number (where-ever positionned) will show a python error message, whereas doing so on names not recognized won't show anything
You're right, thanks for finding the bug. I'll have it fixed in the next release.

At first, a great thanks for your powerful tool.

I have a Mistake:
In the Attachment you will find the "wrong_format.txt". If I wrote this skript with AvsP 1.3.2 (german translation) and save as AVS, it will be wrong formatted (no line breaks by the comments). Maybe just an error of my windows system. Because of the sliders, I added the SES-File too. (Maybe the error is there)

Some proposals:
#Zoom:
* Can you add "Zoom: 75%" and "Zoom: 150%", please.
* It would be nice, if I can select "Custom-Zoom", to enter a Number, wich adjust I like.
* Great It would be an "Auto-Zoom". The Preview will be fit to the Preview-Window and the Zoom-Adjust is be shown on the row at the bottem.
#Slider
* Please, can you add a warning if the value of the slider is not between min and max. For example: [<"Test", 0, 10, 20>] or [<"Test", 0, 10, -20>].
I'm glad you like the program! I'll try and see what's going on with the line breaks when I can download the attachment. As far as extra zoom options are concerned, hopefully the next release will have a "zoom to fit" option, I'm still working out the details. And for slider warnings, you can define sliders using the dialog box from the right click menu "Insert user slider..." (translated to german), default keyboard shortcut F12. By making sliders with the dialog box, AvsP will make sure you enter appropriate values for the min, max, and default, it will even check to make sure that no slider with the same label already exists.

Alain2
8th November 2006, 00:46
- File>Save as.. often leads me to the following error message:
Traceback (most recent call last):
File "AvsP.py", line 3332, in OnMenuFileSaveScriptAs
File "AvsP.py", line 4765, in SaveScript
File "AvsP.py", line 4632, in UpdateRecentFilesList
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 75: ordinal not in range(128)

- Do you think you could add an intermediate seek step of 10sec between the 1sec and 1min ones ? Activated with CTRL+UP/DOWN for instance :)

krisq
8th November 2006, 12:06
Bug:
I've set 'Tab' as my shortcut to switch focus between windows. It works only from script to preview, from preview to script window it does not.
And 'ctrl+s' doesn't work when I'm in the undocked preview window.

zemog
8th November 2006, 16:23
Qwerpoi:

For all, like me, who love right-clicking and use context menus, would it possible to add to your to-do list these option for right-click on the tab title?. For me: Close tab, Save script, Save script as… and Select All options would be enough. Thanks

qwerpoi
8th November 2006, 18:51
- File>Save as.. often leads me to the following error message:


- Do you think you could add an intermediate seek step of 10sec between the 1sec and 1min ones ? Activated with CTRL+UP/DOWN for instance :)
I'll check out that error, thanks. As far as a 10 sec jump, we'll see, perhaps I'll add a custom jump size command which you can specify the size in seconds or frames from the options dialog.

Bug:
I've set 'Tab' as my shortcut to switch focus between windows. It works only from script to preview, from preview to script window it does not.
And 'ctrl+s' doesn't work when I'm in the undocked preview window.
You're right, the video preview window captures tab like a normal window (cycles focus within its controls), I'll try and change its behavior accordingly. (Out of curiosity, how to you plan on 'tabbing' text? I suppose it's not used very often in Avisynth such that you could use menu commands...) Also, the video window only registers video-related keyboard shortcuts (ie, all the shortcuts in the video right-click menu). I think I can change this behavior as well, but it might lead to some undesirable focus issues, I'll check it out.

Qwerpoi:

For all, like me, who love right-clicking and use context menus, would it possible to add to your to-do list these option for right-click on the tab title?. For me: Close tab, Save script, Save script as… and Select All options would be enough. Thanks
Should be doable, I'll add it to my todo list. One question - when you right-click an unselected tab, do you expect the tab to become selected or not?

Naito
8th November 2006, 19:01
And for slider warnings, you can define sliders using the dialog box from the right click menu "Insert user slider..." (translated to german), default keyboard shortcut F12. By making sliders with the dialog box, AvsP will make sure you enter appropriate values for the min, max, and default, it will even check to make sure that no slider with the same label already exists.
In my workflow, at first I do this. But many times I decrease max-value and overlook, that the default value ist not between min and max. :o It's not realy necessary, but it will take the job easier. I realy like the sliders :D

Just another Bug:
If I use "Backup current session" [Alt+B] in a current session, close AvsP, open AvsP and use "Load session" [Alt+O] on the session, I get this error:

Traceback (most recent call last):
File "AvsP.py", line 3335, in OnMenuFileLoadSession
File "AvsP.py", line 4835, in LoadSession
UnicodeDecodeError: 'ascii' codec can't decode byte 0xf6 in position 391: ordinal not in range(128)


But if I use "Safe session" [Alt+S], close AvsP, open AvsP and use "Load session" [Alt+O], it still works. Maybe AvsP didn't safed correct the current session.

EDIT1: Sorry, I mistake "Backup current session" and "Safe session". Now it ist right. (Translation problem)

EDIT2: It works, if there is no AVS-File with the same name as the SES-File (and I don't save as AVS).

zemog
8th November 2006, 20:30
Originally Posted by qwerpoi
Should be doable, I'll add it to my todo list. One question - when you right-click an unselected tab, do you expect the tab to become selected or not?

Yes I think unselected tab should become selected if it is possible. If not, right-click context menu only for active tab would be enough

krisq
8th November 2006, 21:21
(Out of curiosity, how to you plan on 'tabbing' text?)

I don't use 'Tab' in scripts at all. They are pretty simple so I don't need to indent the lines. I prefer fast focus switch and it's a perfect key for me to do that :). :thanks:

Yes I think unselected tab should become selected if it is possible. If not, right-click context menu only for active tab would be enough

Are you sure it's supposed to become selected? In any tabbed software I use (Maxthon, Total Commander) the tab after right-click doesn't get selected, only the context menu is displayed for that tab. Or am I missing something?
This behavior should be consistent with other apps IMHO...

Alain2
8th November 2006, 21:42
As far as a 10 sec jump, we'll see, perhaps I'll add a custom jump size command which you can specify the size in seconds or frames from the options dialog.Personnaly I like aving different seek speeds available at the same time, I use the 1frame/1sec/1min speeds all the time, it's just that between 1 sec and 1min it is a big différential step, which shows up more for me than between 1frame/1sec. I actually really like to have these different speeds all at hand, I think it's better than having a setting to keep changing if we want to change seek speed ;) (could even do with 15 mins / 1 hour step sizes ^^)

(Out of curiosity, how to you plan on 'tabbing' text? I suppose it's not used very often in Avisynth such that you could use menu commands...)Tab is quite useful for me actually in some of my avisynth scripts, or look at Didée's scripts, readability is really improved with proper tabbing :) (Of course I also use all the time the constant width font option)

jmac698
9th November 2006, 16:25
Urgent bug: can't run my avsp anymore.
I ran a script that causes avisynth to crash, and left the preview window on. Now if I load avsp, it instantly exits.
The script in virtualdubmod also makes that app exit. This shouldn't be happening in any of those programs.
Another bug is that I saved my script and it always came back with the old one. Saving a script should always write the file. I had to paste it to notepad in order to save it. Is there a bug in saving the preview.avs and reusing it?

ncatt
9th November 2006, 18:02
Hi, is not "bug" in AvsP, is (most presumable) incompatible or bug plugins in your avisynth plugins folder. Troubleshoot this problem first. Otherwise, kudos to the AvsP author!!! Is one wonderful little piece of software, very very useful. PS: I had many problems with sse3 plugins, try replace to sse2 versions (My cpu is C2C E6600)

foxyshadis
9th November 2006, 22:05
You can delete _last_session.ses in the avsp folder, or modify it to remove/change the offending script, if it really happens to be a script problem. Does sound like a plugin problem though.

qwerpoi
9th November 2006, 22:07
Yes I think unselected tab should become selected if it is possible. If not, right-click context menu only for active tab would be enough

Are you sure it's supposed to become selected? In any tabbed software I use (Maxthon, Total Commander) the tab after right-click doesn't get selected, only the context menu is displayed for that tab. Or am I missing something?
This behavior should be consistent with other apps IMHO...
The reason I ask is because I've seen it both ways (Firefox and other web browsers don't select, MS Excel and some text editors do select). In AvsP selecting the tab would cause the video preview to refresh, which can be a good or bad thing when right-clicking a tab. I guess I'll make it an option just to be sure.

Personnaly I like aving different seek speeds available at the same time, I use the 1frame/1sec/1min speeds all the time, it's just that between 1 sec and 1min it is a big différential step, which shows up more for me than between 1frame/1sec. I actually really like to have these different speeds all at hand, I think it's better than having a setting to keep changing if we want to change seek speed ;) (could even do with 15 mins / 1 hour step sizes ^^)
Yep, I like the second and minute jumping myself, it's a lot more meaningful than jumping by a certain number of frames, I'm not sure how unique it is but I think it's one of the more important aspects of AvsP. What I'll do is add two more jump commands, "Forward x seconds" and "Backward x seconds", where x will be set from the options dialog, in units of either frames or seconds.

Urgent bug: can't run my avsp anymore.
I ran a script that causes avisynth to crash, and left the preview window on. Now if I load avsp, it instantly exits.
The script in virtualdubmod also makes that app exit. This shouldn't be happening in any of those programs.
Another bug is that I saved my script and it always came back with the old one. Saving a script should always write the file. I had to paste it to notepad in order to save it. Is there a bug in saving the preview.avs and reusing it?

Hi, is not "bug" in AvsP, is (most presumable) incompatible or bug plugins in your avisynth plugins folder. Troubleshoot this problem first. Otherwise, kudos to the AvsP author!!! Is one wonderful little piece of software, very very useful. PS: I had many problems with sse3 plugins, try replace to sse2 versions (My cpu is C2C E6600)
ncatt is right, if virtualdub is crashing as well then it's most likely a bad plugin in your script. In order to run AvsP without crashing, delete the "_last_session_.ses" file in the AvsP directory (this session stored the fact that the video preview should be viewed on startup). Oh, and thanks for the kudos ncatt, glad you find the program to be useful.

Edit: foxyshadis beat me to it :)

qwerpoi
9th November 2006, 22:22
In my workflow, at first I do this. But many times I decrease max-value and overlook, that the default value ist not between min and max. :o It's not realy necessary, but it will take the job easier. I realy like the sliders :D
Ah, I see what you mean, I didn't consider the fact that you would go back and redefine the min/max values. I'll see what I can do.

Just another Bug:
If I use "Backup current session" [Alt+B] in a current session, close AvsP, open AvsP and use "Load session" [Alt+O] on the session, I get this error:


But if I use "Safe session" [Alt+S], close AvsP, open AvsP and use "Load session" [Alt+O], it still works. Maybe AvsP didn't safed correct the current session.

EDIT1: Sorry, I mistake "Backup current session" and "Safe session". Now it ist right. (Translation problem)

EDIT2: It works, if there is no AVS-File with the same name as the SES-File (and I don't save as AVS).
Interesting, thanks for the bug report, I'll try and figure out what's going on.

Zarxrax
9th November 2006, 23:01
I have a suggestion that I think would be really useful. I don't think I see this kind of functionality present in AvsP yet, but let me know if I have just missed it.

It would be really nice if there was an easy way to select frame ranges for trim, applyrange, etc. My suggestion to handle it is like this: Allow users to specify an in-point by pressing something like alt+[, and then an out-point by pressing alt+]. Once both an in and out point are selected, have a little popup for the user to choose from things to do with that selection of frames. One such option would be a regular Trim, to leave only the section between the frames you selected. Another option could be an inverse trim--it would REMOVE the frames you selected, leaving the sections around it (by adding 2 trim commands). There could also be options for applyrange, and other commands that use a range of frames. This would allow to quickly and easily make simple edits to the video.

And additionally, one other minor thing: when you create a new script, then go to save it the first time, would it be possible to fill in the default filename to be the same as the first input source in your script, except with an avs extension?

jmac698
10th November 2006, 00:51
ncatt: thanks for the tip, that cured it. It was logotools.dll, an avisynth 2.0 plugin, loaded with loadpluginex(), the crash is caused by not using yuy2.
You could help by noting a crash and automatically disabling preview on the next session, this would be very easy.
All: I second the suggestion, I would find it acceptable to save scripts according to the source name, as that is a frequent use. I would also like a save script icon for quick saving, I tend to debug and save at every working step.

Alain2
10th November 2006, 01:21
I would also like a save script icon for quick saving, I tend to debug and save at every working step.
:confused: CTRL+S... much faster than pointing on an icon...

qwerpoi
10th November 2006, 05:22
It would be really nice if there was an easy way to select frame ranges for trim, applyrange, etc. My suggestion to handle it is like this: Allow users to specify an in-point by pressing something like alt+[, and then an out-point by pressing alt+]. Once both an in and out point are selected, have a little popup for the user to choose from things to do with that selection of frames. One such option would be a regular Trim, to leave only the section between the frames you selected. Another option could be an inverse trim--it would REMOVE the frames you selected, leaving the sections around it (by adding 2 trim commands). There could also be options for applyrange, and other commands that use a range of frames. This would allow to quickly and easily make simple edits to the video.
The inverse trim functionality is already there (works with multiple range selections), in the right-click menu "Insert bookmark trims", using any bookmarks you have set (read more about it here (http://www.avisynth.org/qwerpoi/Text.html#insert-bookmark-trims)). But this is more or less a hack I put together by request to provide similar functionality with vdubmod's script editor. I agree that a more general framework with frame selections would be useful, I'll add it to my todo list and give it some thought.

And additionally, one other minor thing: when you create a new script, then go to save it the first time, would it be possible to fill in the default filename to be the same as the first input source in your script, except with an avs extension?
Should be doable, I'll try to have it in the next release.

ncatt: thanks for the tip, that cured it. It was logotools.dll, an avisynth 2.0 plugin, loaded with loadpluginex(), the crash is caused by not using yuy2.
You could help by noting a crash and automatically disabling preview on the next session, this would be very easy.
It's not necessarily "very easy", if the program could detect the hard crash it would be possible to prevent closing it in the first place. But you do bring up a good point, and there should be a workaround, so I'll see what I can do.

I would also like a save script icon for quick saving, I tend to debug and save at every working step.

:confused: CTRL+S... much faster than pointing on an icon...
I agree with Alain2, mostly because I don't like toolbars :) . You can customize the save keyboard shortcut to whatever you please, so I imagine that's the fastest way.

@krisq
I tested using 'Tab' as the shortcut to switch between the windows, and I noticed that hitting 'Tab' in the script window switches to the video window, but adds a tab into the text first. I'll try and find a way around this, but I was just curious if this was happening to you as well.

krisq
10th November 2006, 10:24
@krisq
I tested using 'Tab' as the shortcut to switch between the windows, and I noticed that hitting 'Tab' in the script window switches to the video window, but adds a tab into the text first. I'll try and find a way around this, but I was just curious if this was happening to you as well.

Yep, same here. :) I didn't mentioned it because...well... because I didn't :o .

jmac698
11th November 2006, 03:59
qwerpoi: ok, ctrl-s is acceptable, though I have to get in the habit of this. Doing something about the crash would be great.
Requests: Select, Region, select rectangular region, Copy, Paste Special, Region as Crop command, as letterbox command.
Select, Pixel, primary-click pixel,Copy, Paste Special, Pixel as RGB Hex, as YUV
also, change Select to Select Source, and Select destination, then add paste as Tweak(), as Resize().

I recommend these, as they are very visual operations, and certainly no program allows you to visually measure or tweak colors (as YUV at least). Read the colors from the codec output colorspace and convert to the other colorspace, could even be lazy and insert script to do this.

jmac698
11th November 2006, 04:20
as far as GUI operation questions, there are two standards for this, gnome user interface, http://developer.gnome.org/projects/gup/hig/
windows interface, http://msdn.microsoft.com/ui/, or just look at how Office reacts. Don't worry, there is room for custom operation, but new users are best served by a set of standard GUI controls.

foxyshadis
11th November 2006, 11:38
qwerpoi: ok, ctrl-s is acceptable, though I have to get in the habit of this. Doing something about the crash would be great.
Requests: Select, Region, select rectangular region, Copy, Paste Special, Region as Crop command, as letterbox command.
Select, Pixel, primary-click pixel,Copy, Paste Special, Pixel as RGB Hex, as YUV
also, change Select to Select Source, and Select destination, then add paste as Tweak(), as Resize().

I recommend these, as they are very visual operations, and certainly no program allows you to visually measure or tweak colors (as YUV at least). Read the colors from the codec output colorspace and convert to the other colorspace, could even be lazy and insert script to do this.

qwerpoi, I had a thought on one way of doing this. If you wanted to be able to "instantly" view any changes in sliders, without the long delay of reloading avisynth when one changes, you could behind the scenes save off a temp snapshot of the output, load into into a new script with only the current operation(s) using imagesource. That way it'd be nearly instantaneous, I assume (or is there significant overhead just from loading avisynth?). I guess I could test this out myself.

It'd only work for testing the final operation(s), at least without even more magic, though.

There might be a way to do this entirely in script, I'll look into it.

qwerpoi
11th November 2006, 21:39
qwerpoi: ok, ctrl-s is acceptable, though I have to get in the habit of this. Doing something about the crash would be great.
I implemented a workaround for the crash on startup, it will be in the next release (which will hopefully be out sometime after the weekend).

Requests: Select, Region, select rectangular region, Copy, Paste Special, Region as Crop command, as letterbox command.
Select, Pixel, primary-click pixel,Copy, Paste Special, Pixel as RGB Hex, as YUV
also, change Select to Select Source, and Select destination, then add paste as Tweak(), as Resize().

I recommend these, as they are very visual operations, and certainly no program allows you to visually measure or tweak colors (as YUV at least). Read the colors from the codec output colorspace and convert to the other colorspace, could even be lazy and insert script to do this.
I guess I don't fully understand your request. There already exists a crop editor to paste a Crop() command based on a selected area. I don't follow exactly what you mean by copying pixels and tweaking colors. It sounds like you want a color picker that works in RGB or YUV, but I'm not sure how you can use that info in avisynth. You can already tweak colors using a script with Tweak() and user sliders, if you want to tweak individual pixels or regions that would be a bit more involved. Again, if I'm misunderstanding something, let me know.

as far as GUI operation questions, there are two standards for this, gnome user interface, http://developer.gnome.org/projects/gup/hig/
windows interface, http://msdn.microsoft.com/ui/, or just look at how Office reacts. Don't worry, there is room for custom operation, but new users are best served by a set of standard GUI controls.
Thanks for the links, I didn't know there were documented guidelines, could be useful. Actually, I'm not terribly fond of current day user interfaces (read: I hate them :) ), so my design philosophy with AvsP has been to keep things as minimalistic as possible, to the point where if you know how to use notepad with AviSynth, you already know how to use AvsP.

qwerpoi, I had a thought on one way of doing this. If you wanted to be able to "instantly" view any changes in sliders, without the long delay of reloading avisynth when one changes, you could behind the scenes save off a temp snapshot of the output, load into into a new script with only the current operation(s) using imagesource. That way it'd be nearly instantaneous, I assume (or is there significant overhead just from loading avisynth?). I guess I could test this out myself.

It'd only work for testing the final operation(s), at least without even more magic, though.

There might be a way to do this entirely in script, I'll look into it.
A long time ago I did similar tests (I trimmed the video to a single frame instead of using imagesource), and didn't find any speed increase. They were really informal tests, your method could be faster, but I get the impression that the overhead comes from loading the avisynth script (and dumping the text file to the hard drive) as you mention. I'll look into the matter when I get the time, if you find anything interesting let me know.

jmac698
11th November 2006, 23:36
Single frame preview: avisynth is smart enough to request just enough data to preform it's operations. It may be possible that forcing a single frame is unnecessary.

Crop: oops, got me there. I didn't know there was a built in crop editor.

Color picker: yes, that's what I want, to do spot checks of colors. The idea of measuring two pixels is that, I pick a pixel in one source and a pixel in another source, and compute a tweak command to match colors.
But what's more important to me is simply to be able to read YUV colors, especially of colorbar patterns and other spot checks.

GUI: I've tutored people in basic computer operations, trust me it helps to have something familiar. There is actually good reasoning behind it, and it all started with research at the Palo Alto research centre a long time ago. E.g., if a button doesn't give visual or audio feedback, people will naturally keep pressing it until it "does something".
As for shortcuts, they are just there for keyboardists - disabled persons use serial key devices which operate naturally with shortcuts. There are various disabled on this board but you wouldn't know it!

Richard Berg
12th November 2006, 00:05
Trimming to a single frame won't speed anything up.

Loading an ImageSource script should be very fast so long as everything in your plugin dir is in Windows' disk cache.

qwerpoi
14th November 2006, 13:42
As promised, new version 1.3.3, download here (http://www.avisynth.org/qwerpoi/Download.html) or use the mirror on the first post. Here's the changelog:

* added video preview zoom to fit window (suggested by Alain2)

* remember last zoom setting on startup

* added small indicator when zoom not at 100%

* added right-click menu to script tabs (suggested by zemog)

* added video custom jump size (suggested by Alain2)

* register all keyboard shortcuts with separate video window (suggested by krisq)

* improved auto-fit for separate video window (suggested by foxyshadis)

* updated about box with website info (suggested by krisq)

* added extra validation for user sliders (suggested by Naito)

* prevent showing preview on startup if script causes hard crash (suggested by jmac698)

> fixed positioning issues for multi-monitor setup (thanks foxyshadis)

> fixed bug with manual autocomplete on number (thanks Alain2)

> fixed small bug with offscreen window layout code (thanks Alain2)

> fixed issue with saving files with unicode text and line breaks (thanks Naito)

> allow tab as keyboard shortcut for separate video window (thanks krisq)

The biggest new feature is the ability for the video preview to fit the window, the option is located in the zoom menu "Video -> Zoom -> Fit to window" (currently only works when the preview is attached). The algorithm utilizes an Avisynth BicubicResize, you can customize this resize to any valid Avisynth resize in the "Options -> Program settings..." dialog under the "Video" tab. AvsP now remembers the last zoom setting, so you can have the "fit to window" zoom on all the time if you want. You'll notice a little triangle in the upper corner of the video window whenever the zoom is set to something other than 100%, this is just a visual reminder since it may become easy to forget that the zoom fit option is on (also indicated on the status bar).

You may find that when you are resizing the video window like crazy :), you get an error like "Failed to retrieve AVI frame". It seems this can occur when the program tries to create/load avs files too quickly. If this error occurs, you'll see a gray video window, simply refresh with F5 to fix the problem.

Other than that, there are some various bugfixes in this release. I tried to fix the multi-monitor issues and some unicode decoding problems, but since I'm not able to recreate them on my computer I wouldn't be surprised if some issues lingered. So be sure to report back with any problems as always.

krisq
14th November 2006, 14:46
Thanks qwerpoi, looking good so far. 'Tab' is working as supposed to now :)

Henrikx
14th November 2006, 17:05
Update German Translation to AvsP 1.3.3

Great New Version qwerpoi. THX
You also had the right music for work ......;) (private joke)

Alain2
14th November 2006, 22:07
Fr translation will be uploaded tomorrow (my isp is doing some maintenance so I can't ftp-access my account)

Thanks for the new version qwerpoi! I tried the zoom auto and it works great! I hope you'll be able to port it to the separate window as well :) Apparently it takes only the height of the preview window into account, not the position of the cursors window; this behaviour is actually what I want, so everything is perfect for me :)

This editor keeps getting better! Thank you qwerpoi for all the work you put in it :)

zemog
15th November 2006, 00:06
Qwerpoi. Thanks for the new version. I tested right-clic context menu in tab titles and it work fine. Thanks, thanks …

I also tested the new warning messages for sliders text and I have found that mini bug you can see in attached image (highlight “r” in slider label instead “r” in minimum value)

I also attach Spanish translation for v1.3.3

foxyshadis
15th November 2006, 11:38
in createWindowElements,

wC, hC = wx.ScreenDC().GetSize()
#~ if (pos[0]+size[0]>wC) or (pos[1]+size[1]>hC):
if (pos[0]+50>wC) or (pos[1]+50>hC):
self.videoDialog.Center()

is throwing off the multimonitor code now. Unfortunately, GetSize seems to only be returning the coords for the first window, so it gets autocentered across the full field (which ends up being on the second windows anyway, since it's centered by the upper left corner). Unfortunately, it looks like supporting MM means carving your own wheel, starting from the basics (http://66.102.7.104/search?q=cache:NVhpA0j0PQYJ:mail.python.org/pipermail/python-list/2006-May/339392.html+wx+multimonitor&hl=en&gl=us&ct=clnk&cd=3&client=firefox-a). The pitfall of a canvas not necessarily being rectangular. :( Short of that, you could simply add wx.Displays.GetCount() == 1 as a condition, skipping it for MM entirely. :p

Otherwise, it's pretty hot. Not many suggestions left, though I think a "register avisynth extensions in explorer" might be useful.

qwerpoi
15th November 2006, 12:41
Thanks qwerpoi, looking good so far. 'Tab' is working as supposed to now :)
Excellent. In actuality, I wouldn't recommend setting any keyboard shortcuts which can confuse text entry (like Enter or Backspace without any ctrl/shift/alt modifiers). I put in some special case code to make sure Tab by itself works okay.

Update German Translation to AvsP 1.3.3

Great New Version qwerpoi. THX
You also had the right music for work ......;) (private joke)
Thanks for the updated translation! And yes, having the right music helps my productivity tremendously, thanks :) .

Fr translation will be uploaded tomorrow (my isp is doing some maintenance so I can't ftp-access my account)

Thanks for the new version qwerpoi! I tried the zoom auto and it works great! I hope you'll be able to port it to the separate window as well :) Apparently it takes only the height of the preview window into account, not the position of the cursors window; this behaviour is actually what I want, so everything is perfect for me :)

This editor keeps getting better! Thank you qwerpoi for all the work you put in it :)
Glad you like the new version! I will indeed make the zoom fit feature for the separate window, just wanted to get this release out first.

Qwerpoi. Thanks for the new version. I tested right-clic context menu in tab titles and it work fine. Thanks, thanks …

I also tested the new warning messages for sliders text and I have found that mini bug you can see in attached image (highlight “r” in slider label instead “r” in minimum value)

I also attach Spanish translation for v1.3.3
Thanks for the update! I'll take a look at the screenshot and figure out what's going on when the attachment is approved.

in createWindowElements,

wC, hC = wx.ScreenDC().GetSize()
#~ if (pos[0]+size[0]>wC) or (pos[1]+size[1]>hC):
if (pos[0]+50>wC) or (pos[1]+50>hC):
self.videoDialog.Center()

is throwing off the multimonitor code now. Unfortunately, GetSize seems to only be returning the coords for the first window, so it gets autocentered across the full field (which ends up being on the second windows anyway, since it's centered by the upper left corner). Unfortunately, it looks like supporting MM means carving your own wheel, starting from the basics (http://66.102.7.104/search?q=cache:NVhpA0j0PQYJ:mail.python.org/pipermail/python-list/2006-May/339392.html+wx+multimonitor&hl=en&gl=us&ct=clnk&cd=3&client=firefox-a). The pitfall of a canvas not necessarily being rectangular. :( Short of that, you could simply add wx.Displays.GetCount() == 1 as a condition, skipping it for MM entirely. :p
Hmm, so if I'm understanding right I think I could replace wx.ScreenDC().GetSize() with something like wx.Display(wx.Display.GetFromWindow(self)).GetGeometry().GetSize(). It might be better to just get rid of the Center() code, it's only there as a failsafe to prevent the window from showing up offscreen if your resolution changes, but if what you say is true then wxPython will automatically wrap window coordinates when this happens.

Otherwise, it's pretty hot. Not many suggestions left, though I think a "register avisynth extensions in explorer" might be useful.
You're right, having a register option would be handy, the only reason I didn't do it is because I don't like mucking around in the registry in general :), and with windows xp it's easy to associate any extension with any program (right click, open with >, choose program..., and check always use selected program...), unless perhaps there's a downside to this method.

And don't worry about lacking suggestions, still got a ton left on my todo list :) . With this release I've finally finished what I wanted to do with the window layout code (resizable subwindows, separate video preview, zoom fit), so unless there are any major problems I'll start going back to some other requests that have been sitting on the backburner. The biggest area to tackle on the list is adding more customizability and refinement to the syntax highlighting, there are a lot of other various requests to do as well, it's likely that most of them are painful since I skipped them the first time around :( .

foxyshadis
15th November 2006, 13:02
I was wrong before, it was your failsafe code keeping it working. I just tested without, and it shows up offscreen after the change, at which point python gets rather unhappy (can't close properly, other goofiness).

I'll experiment with a few ideas, if one works well I'll send it off to you.

Alain2
15th November 2006, 14:09
I will indeed make the zoom fit feature for the separate window, just wanted to get this release out first.
Btw, about this, maybe you could implement an option for the auto fit so that it checks for both width and height of the preview window instead of just height.. This is particularly interesting for the separate window : I always leave it maximised behing the editor window, so if it was just taking into account the height, the picture would always become too wide..

Or better : do you think that instead of an auto fit you could create a manual fit, where the user could for instance drag the bottom or the right side of the picture, this would show scaled black borders of the picture in real time (growing/shrinking from the bottom and right sides), and you would perform the custom fit upon release of the mouse button ? Final dimensions could be not exactely as dragged (as default bicubicresize is working on mod8 numbers), but that woiuldn't really matter

Oh and a question : what is the small triangle at the top left corner of the preview window for ?

Terranigma
15th November 2006, 16:32
qwerpoi, not a big deal, but could you perhaps add the info/changes that's been implemented in newer versions somewhere at your website?

Anyways, thanks for another stellar update. :)

Veiga
15th November 2006, 18:34
Qwerpoi. Thanks for vrs1.3.3.

attached a Portugues translation for this vrs