Log in

View Full Version : AviSynth 2.07 released


sh0dan
22nd November 2002, 16:37
AviSynth 2.07 has been released. This release includes many fixes and also many addiotions to the scripting language:


- Script extensions:
- - LeftStr(string, int size), RightStr(string, int size), MidStr(string, int first, int length), FindStr(string, string), RevStr(string), StrLen(string)
- - Sign(int), sign(float), Nop, Rand([int limit]), Select(index, item0 [,item1...]), Exist(string filename)
- - VersionNumber(), VersionString()
- - IsRGB24(clip), IsRGB32(clip), Int(float), Frac(float), Float(int), Value(string), HexValue(string).
- Strings can be compared using "<" ,">","<=",">=" operators (case insensitive).
- Color option for Fades , Letterbox, and Addborders.
- Subtitle alignment and spacing options, added y=-1 centering support (x=-1 undocumented support remains) and defaults for x,y and align vary depending on each other's settings.
- Optimization for recent BlankClip() RGB24 bug fix.
- Fixed ceil, floor and round functions.
- Fixed BlankClip RGB24 with odd widths.
- Fixed DB scale off by 2x in volume.
- Added FadeIn / FadeIn2 to fade in video and audio.
- Added AssumeSampleRate() to change the samplerate without resampling (yes, this will lead to desync!).
- Fixed one frame wrong offset in trim, when second argument is negative.
- Added abs(integer) and abs(float).
- Fixed '%' (mod) in scripts, so it returns absolute values.
- Added a boolean to DirectShowSource, so seeking can be manually disabled, if it works very slowly.
- Added PointResize() function. Resamples as "Nearest Neighbour" in Virtual Dub.
- Added SetWorkingDir() function.
- Fixed crash in Normalize.
- Added German documentation.


As usual the new version can be downloaded from the Sourceforge project page (https://sourceforge.net/projects/avisynth2/).

And to avoid any confusion. This does NOT include 2.5 functionality, this is a service release for all the users using 2.06!

sillKotscha
22nd November 2002, 18:55
nice, very nice...

just a little marginal note:

beside zoomplayer/ mplayer2 I'm using wmp9 (b_2926) and I wasn't able to open an *.avs not even 'version.avs' with it (only strange artefacts) - but now, with AviSynth 2.07 it is possible to open *.avs with wmp9 - at least for me ;)

cheers Sill

CHAOSMAN33
23rd November 2002, 03:45
where would any of us be without avisynth? thanks ;)

baz00ie
23rd November 2002, 04:07
Thank you Sh0dan and everyone else involved. I like the new, easy to use Fade-In feature, plus the choice of colours.

And what CHAOSMAN33 said,... amen to that!! this little program has increased the quality of my videos ten-fold, while at the same time making my workload lighter.

thanks again for the update and take care
baz

Leuf
23rd November 2002, 06:39
Two issues:

There is a minor problem loading vdub multisegment capture files. Vdub creates a 12kb dummy file at the end of the file sequence. As of 2.0.5 these opened fine with SegmentedAviSource, but in either 0.6 or 0.7 this changed to an "Unrecognized exception" error. If you rename/delete the last file it opens fine.


The second issue is source files aren't released when the avs is closed, only once the application that opened the avs is closed. This is on win98, with vdub and tmpgenc. I can't remember whether it's always been like this or not. This will really drive you crazy when you're doing intermediate huffyuv->huffyuv encoding and you don't have enough space for 2 copies of everything.

-Leuf

WarpEnterprises
24th November 2002, 00:02
Yes, you're right there's a lock when using SegmentedAviSource (not with AviSource !)

There also is a crash (bluescreen) when I use ResampleAudio and no audio is present (e.g. with mpeg2source)

Both bugs are present in 2.06 , too.

WarpEnterprises
24th November 2002, 22:52
Another error: Exist("filename") does not work ("There is no function...")

poopity poop
25th November 2002, 09:16
System Shock 2 was one of the best games I've ever played :)

sh0dan
25th November 2002, 11:18
Originally posted by WarpEnterprises
Another error: Exist("filename") does not work ("There is no function...")
Confirmed!

There also is a crash (bluescreen) when I use ResampleAudio and no audio is present (e.g. with mpeg2source)
Wow - this is really an old bug!
Does it also do this if you use killaudio()? It shouldn't!

I'll upload a CVS binary later today!

I forgot a new fix: Fixed crash in Normalize!

WarpEnterprises
25th November 2002, 21:51
Threetimes OK now.

WarpEnterprises
25th November 2002, 23:36
What about an AviSynth icon?
IceCork sent me one (with permission to use) which I uploaded to CVS.
Would this be possible to integrate?

http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/*checkout*/avisynth2/avisynth/distrib/AviSynth.ico

Guest
26th November 2002, 00:48
Your BMP file would not open in IE 6 or any graphic editor I had, so I deleted it. Please try again, perhaps with a JPG.

WarpEnterprises
26th November 2002, 08:54
(attachement) - 2nd try

sh0dan
26th November 2002, 09:49
Originally posted by WarpEnterprises
Would this be possible to integrate?

I integreated it into the installer, so that it will be used instead of the default NSIS one.

Wilbert
26th November 2002, 16:02
btw, could you change "download: Avisynth 2.06+ (November 25. 2002)" into "download: Avisynth 2.07+ (November 25. 2002)" on your page.

Leuf
27th November 2002, 12:17
Also calling AviSource on a non-existent file results in a page fault.


-Leuf

sh0dan
27th November 2002, 13:11
Instead of complaining about "this XXXXX bug is still present", file a report at Sourceforge - this makes it much easier for us to keep track of the bugs, and you can follow the development, and when it is fixed.

If it's not in the changelog, it probably hasn't been fixed.

rhombus
8th February 2003, 00:16
Originally posted by Leuf
Also calling AviSource on a non-existent file results in a page fault.


-Leuf

The problem's a little more subtle than that. What's happening is that the stack is being corrupted by the piece of code that constructs the error message on lines 221 through 224 of source.cpp. Only 50 characters are reserved for the array foo on line 221, and 41 characters (including the trailing null) are immediately stored there. This is followed by a call to strcat on line 222 that adds another 13 characters to the end of this string, and the call to strcat on line 224 adds at least one more character. In the release build, this apparently overwrites an important piece of information on the stack that's used during stack unwinding after the exception is subsequently thrown. (In the debug build, it appears that there's enough slop in the stack that nothing important is lost there.)

For the folks who have the setup to rebuild the project, there are two possible solutions:
1 - Quick and dirty. Just increase the space allocated to foo on line 221 to a suitably larger number: 100 for example. I.e., replace line 221 with

char foo[100] = "AVISource autodetect: couldn't open file";

2 - More elegant. Recognize that the formating done on lines 221 through 224 just duplicates functionality contained in ScriptEnvironment::ThrowError, and replace lines 221-225 with

env->ThrowError("AVISource autodetect: couldn't open file\nError code: %d",
GetLastError());

I'm posting a copy of this bug report over on SourceForge, as well.

-Ron

Richard Berg
8th February 2003, 03:29
Rhombus -- are you sure you're looking at the latest source? I fixed that bug months ago (though I'll never figure out what the heck prompted me to return a pointer to a stack variable :rolleyes: -- BTW your #1 fix would fail for the same reason...)

rhombus
8th February 2003, 08:10
Originally posted by Richard Berg
Rhombus -- are you sure you're looking at the latest source? I fixed that bug months ago ...

I just downloaded a fresh copy of AviSynth_207_src.zip from Sourceforge, and the bug is certainly there on lines 221-224 of source.cpp. You may have fixed it in the 2.5 version fork?

...(though I'll never figure out what the heck prompted me to return a pointer to a stack variable :rolleyes: -- BTW your #1 fix would fail for the same reason...)

I worried about that when I started digging through the code in the debugger. However, you didn't return a pointer to a stack variable. You passed it to a function that you called on line 225. It is still valid when it is used (as the arguement fmt) on line 881 of avisynth.cpp. So my #1 hack is certainly safe, as long as the buffer is "big enough".

-Ron

sh0dan
8th February 2003, 13:10
Originally posted by rhombus
I just downloaded a fresh copy of AviSynth_207_src.zip from Sourceforge, and the bug is certainly there on lines 221-224 of source.cpp. You may have fixed it in the 2.5 version fork?


The latest source is only in CVS - the 2.07 is not the latest. Perhaps we should for old times sake do an 2.08 with the last fixes not present in 2.07

rhombus
8th February 2003, 23:21
Originally posted by sh0dan
The latest source is only in CVS - the 2.07 is not the latest. Perhaps we should for old times sake do an 2.08 with the last fixes not present in 2.07

I'd strongly urge a 2.08 version for users who are nervous about using a beta release (2.50) for production purposes. I suspect that most users (as oposed to developers) would have been scared off by the problem with 2.07 as it first showed itself to me. And users of this type won't even look in the CVS for fixes.

I've been busy with other projects for the last few months, and so am a little out of date wrt 2.50. Is it the development team's feeling that it is yet stable enough to encourage users to migrate to it from 2.0x?

-Ron

Richard Berg
9th February 2003, 04:24
Originally posted by sh0dan
The latest source is only in CVS - the 2.07 is not the latest. Perhaps we should for old times sake do an 2.08 with the last fixes not present in 2.07
Agreed, we should be sure to release an "official" 2.08 before moving the 2.5 stuff in CVS to MAIN.

Richard Berg
9th February 2003, 04:53
Ok, I've committed the necessary changes to CVS. I don't have the tools needed to release (UPX, the installer) so the posting to SourceForge will have to wait for sh0dan or someone.