Log in

View Full Version : New Plugins and Utilities


Pages : 1 2 [3] 4 5 6 7 8

pbristow
26th February 2012, 16:18
You probably could have just used:

SelectEvery(clip, 999999, 2, 3, 5, 7, 9, 13)

If your source has more than 999999 frames, then increase the number to suit. It just needs to be bigger than the total number of frames presented. (I wonder if there's a limit on how many frames SelectEvery can handle?)

...but having a separate function for it might be easier for people. :) And it would be interesting to see which version performs better.

Could you provide the source code, too? This would be a good training example for folks starting out on coding their own plug-ins, I think: A nice simple objective, which lets you focus on one aspect of what a typical plug-in needs to do.

Thanks! :)

Gavino
26th February 2012, 17:35
simpleselect(clip, f1 [,f2...,fn])

Return only frames f1, f2,...,fn of the source clip
How does it treat the audio?

wonkey_monkey
27th February 2012, 00:35
You probably could have just used:

SelectEvery(clip, 999999, 2, 3, 5, 7, 9, 13)

Argh, you know what? I actually tried that, and I thought it wasn't working as expected - but that was because I was stacking the result with the original clip, so it appeared that it was returning a clip with the selected frames and then holding the last frame :stupid:.

Source is here (http://horman.net/simpleselect.cpp) (fixed), but I don't know useful it will be, it really was cobbled together - I still only have a vague grasp of how filters come together, I only know just enough to pummel the simplesamples into doing what I want.

How does it treat the audio?

Probably quite badly!

David

StainlessS
27th February 2012, 03:36
David, source; 404.

If you want to handle audio, you need a 'GetAudio' member fn, presume you have not got one.
(otherwise, will get full length audio from source clip)

If you dont want any audio in output clip, set 1st 2 or 3 of below, to 0 in constructor.

vi.audio_samples_per_second=0; // 0 means no audio, type int
vi.num_audio_samples=0; // changed as of 2.5, type __int64
vi.nchannels=0; // as of 2.5, type int


EDIT: Found it, here is David's link to source (used "SimpleSample.cpp" by mistake):-
http://horman.net/simpleselect.cpp
Very succinct, looks ok to me.

EDIT: May want to add below to constructor

frames=(int*)malloc(vi.num_frames*sizeof(int));
if(frames==NULL)
env->ThrowError("SimpleSelect: Cannot allocate memory");

StainlessS
23rd March 2012, 01:29
FrameSelect() v1.0, NEW Plugin for Avisynth v2.5+ by StainlessS.

FrameSelect() is a simple plugin to select individual frames from a clip.

Can select frames numbers by direct arguments to filter, or in a string, or in a command file.

Video:- Planar, YUY2, RGB32, RGB24.

Audio:- Returns NO AUDIO (Does not really make sense for individual frames).

EDIT: For frame range and audio support with fade in/out see trim/splice plugin Prune().
http://forum.doom9.org/showthread.php?t=162446
EDIT: For frame range replacement see ClipClop().
http://forum.doom9.org/showthread.php?t=162266


FrameSelect(Clip, int F1, ... , int Fn, string 'SCmd',string 'Cmd', bool 'Show', bool 'Ver')

http://forum.doom9.org/showthread.php?t=164497

Partly inspired by DavidHorman's SimpleSelect() 2 posts earlier. (Thankyou David).

pbristow
23rd March 2012, 12:34
FrameSelect() v1.0, NEW Plugin for Avisynth v2.5+ by StainlessS.

FrameSelect() is a simple plugin to select individual frames from a clip.

Can select frames numbers by direct arguments to filter, or in a string, or in a command file.


Interesting... With the command string & file options, do you plan to allow ranges (e.g. "1; 15-18; 32-399; 501")? That would be a very nice way of setting up EDLs (Edit Decision Lists). The same format could then be used as efficient output for functions that detect various things happening in the video.

A nice companion function would then be something that, rather than just selecting or ignoring frames from a single source, would actually switch between two sources - i.e. frames listed are taken from source A, but the rest are instead taken from source B. People who are writing functions to detect and fix particular symptoms in video then wouldn't have to worry about implementing their own switching logic: Just have the detecting filter output an EDL listing the frames that need "fixing", then run it with a script such as:


EDL = Q:\project\list_of_bad_frames.txt
FindTheBadness(OriginalVideo, threshold=99, output=EDL)
FixedVideo = FixTheBadness(OriginalVideo)
SelectAlternative(FixedVideo, OriginalVideo, commandfile=EDL)


Or even run FindTheBadness just once, and re-use the same EDL many times as they develop and fine-tune the way FixTheBadness works.

pbristow
23rd March 2012, 12:45
[SLAPS FOREHEAD] Ignore me, I missed the edit where you'd linked to Prune() and ClipClop(). You're clearly way ahead of me. :)

StainlessS
25th March 2012, 03:50
ClipClop() v1.10, Range/Frame Replacement Plugin for Avisynth v2.5+ by StainlessS.

New Version v1.10, Major improvement.

http://forum.doom9.org/showthread.php?t=162266

Planar, YUY2, RGB32, RGB24.

Does NOT affect Audio (as source clip).


ClipClop() v1.10, Range/Frame Replacement Plugin for Avisynth v2.5+ by StainlessS.

Planar, YUY2, RGB32, RGB24.

Does NOT affect Audio (as source clip).

Clipclop is a simple plugin to replace ranges in a source clip with the same range, from a replacement clip.
Supports up to 255 replacement clips, with unlimited number of replacements into output clip.


If you wanted to do 1000 single frame replacements in script, that would require 3 trims and 2 splices for each
replaced frame, ie 3000 trims and 2000 splices. This would involve 5000 'zero cost' filters which together will
cost a little more than zero. With ClipClop(), this is reduced to 1 single filter with an overhead of approx
1 trim or splice filter. There is a small overhead setting up the filter (before the very 1st frame is fetched)
while parsing the file/string commands, but then parsing and setting up 5000 trim/splice filters in a script
would not be without cost either. Clipclop can parse in the region of 40000 commands (from file) in about 1 second
[guessed, based on timing the sister plugin Prune(), a trim/splice plugin].

v1.10, Implements 'Nickname's, Pseudonyms for the replacement clips, ie instead of '17 100,200' you could use eg 'dn 100,200',
in this case it might be to replace frames 100 to 200 of the source clip with the same frames of a denoised clip (clip 17).
OR, 'cp 345' to replace frame 345 with a clip where frame n was copied from frame n-1 of the source clip, ie CopyFromPrevious
[this could be generated via 'SelectEvery(1,-1)', or 'CopyFromNext' clip by 'SelectEvery(1,1)].
Supports Nicknames of up to 31 characters in length so you could use eg 'PredictFromPrevious 1234', or 'FlippedVertical 666,999'.
Nicknames allow you to think in terms of functionality rather than to keep looking up which clip index holds a modified clip
and you could actually write your command file/string before you even know how many clips you need, what clip index they will be,
or even how you will actually create/process the clip.

Once you've tried ClipClop(), you will wonder why you spent all those years doing it the hard way.
(Repeat after me, "I dooo believe in Fairies!".)

Hakker
26th March 2012, 19:27
This place could use a place where authors can host their files. sometimes you need to search a while to get a certain plugin due to host of it being dead and all.

StainlessS
23rd April 2012, 01:09
New Script filter.

MatchFrames v1.02 - 23 April 2012

Function MatchFrames(clip c, clip f, bool "Show", Float "Thresh",Float "Thresh2",string "FileName",string "LogFile")
# MatchFrames v1.02, by StainlessS:
# Find And return frames in c clip that are best matched to frames in f clip.
# Requires YV12, as uses LumaDifference(). Null Audio returned.
# ##########
# Args:
# c = clip, Source clip.
# f = clip, Consisting of frames that you wish to find in the c clip.
# Show = bool[true], Returns both find and found frames using StackHorizontal.
# Thresh = float[0.0 == Search for best match], Threshold for declaring match.
# Thresh2 = float[0.0 == NOT time ordered], If (Thresh < Thresh2) Then clip f is time ordered (in c).
# This arg can significantly cut down on the time taken to search for frames.
# Assuming time ordered f clip (Thresh < Thresh2),
# Where:-
# A match found where diff of find to found frames <= Thresh,
# Next search will start from found frame + 1.
# Else if diff of find to BEST found frame < Thresh2,
# Next search will start from BEST found frame + 1.
# Else
# Next search will start from current start position.
# End if
#
# FileName= string["MatchFramesCmd.txt"], Output Frames command file (For FrameSelect plugin).
# LogFile = string["MatchFrames.Log"], Output Log file.
# ##########

A mod of Gavino's FindFrame()

Advantages:-

Deals with a clip of frames to find rather than a single frame.
Can find best match or 1st match below or equal to a threshold.
Float Threshold.
Can show StackHorizontal required 'find' frame alongside source clip 'found' frames.
Can output a command file consisting of frame numbers found.
Command file can be used with FrameSelect() Plugin to select all found frames (useful if viewing StackHorizontal frames without 2nd SLOW run for extraction).
Outputs LogFile
Can cut down on search times if clip f is known to be time ordered (in c).

Find it here:
http://forum.doom9.org/showthread.php?t=164766

jmac698
9th July 2012, 05:37
New Avisynth filter
taverage 0.1 by jmac698
Jul 8, 2012

A filter to average all frames, pixel-by-pixel. YUV formats only. Designed for Avisynth 2.58.
Usage: taverage(clip clip)

Source is GPL

Note, it's very slow.

http://www.sendspace.com/filegroup/9Jp55ub7vo%2BWcMacRzuyCQ

jmac698
11th July 2012, 04:24
New Avisynth plugin
findpos 0.2 by jmac698
Jul 11, 2012

A filter to find pixels on each line. YUV only. Avisynth 2.58+
Usage: findpos(clip clip, int x1, int x2, int thresh)

Search from x1 to x2 on each line for a pixel >=thresh, return a clip where luma of each line is the position found.
If not found, luma will be x2.

defaults:
x1 0
x2 7
thresh 22

http://www.sendspace.com/file/x5abs3

Version History

0.2: Release build. Ensure you have the vc2008 runtime installed.

jmac698
11th July 2012, 11:25
New Avisynth filter
dejitter 0.3 by jmac698
Jul 11, 2012

A filter to resize each line of the source by a different amount. YUV only. Avisynth 2.58+
Usage: dejitter(clip src, clip offsets)

For each line, read the luma of the first two pixels of offsets. Call these x1 and x2. Resize the source
from pixels x1 to x2 inclusive to be the full width of the source.
Uses bilinear filtering.

http://www.sendspace.com/file/8imj3k

0.3: Made release build. Make sure to install the vc2008 runtime as well.
0.2: fix problem with x1
0.1: first release

jmac698
11th July 2012, 12:49
New Avisynth script
TBC 0.61 by jmac698
Jul 11, 2012

A script to resize each line of the source by a different amount, by searching for black borders. YUV only. Avisynth 2.58+
Usage: see tbc.avs demo
Requirements: dejitter 0.2, findpos 0.1 (included)

0.6: first plugin version

http://www.sendspace.com/file/s78pp4

Installation note:
Please extract the included plugins and place into your plugins directory.
jitter03.zip -> jitter.dll -> plugins\jitter.dll
findpos02.zip -> findpos.dll -> plugins\findpos.dll
The VC2008 runtime is required. Download at:
http://www.microsoft.com/en-us/download/details.aspx?id=5582

Version History

0.61: Included updated plugins.

jmac698
12th July 2012, 10:38
New Avisynth runtime plugin
jcorr 0.3 by jmac698
Jul 25, 2012

A plugin to calculate the correlation between two frames. YV12 only. Avisynth 2.58+

Usage: jcorr(clip clip1, clip clip2)#returns float, can be used as runtime value

http://www.sendspace.com/file/5ke3a7

Note:
Do not confuse with corr2d, at http://avisynth.org/vcmohan/Corr2D/Corr2D.html ,
which calculates many correlations per frame to let you find the movement between frames in a panning scene.

Version History

0.3
-Fixed small numerical inaccuracy
-Made new test file to find inaccuracy
-Changed to a faster algorithm
-Static, SSE build
July 25

0.2
Fixed bug where one of the calculations used a chroma plane.
Updated demo script with better tests.
July 12

0.1
first release.

jmac698
12th July 2012, 12:46
New Avisynth plugin
corrbyline 0.1 by jmac698
Jul 12, 2012

A plugin to calculate the correlation between two frames, a line at a time. YUV only. Avisynth 2.58+

Usage: corrbyline(clip clip1, clip clip2)
Returns a clip of the same properties and the correlation as the luma per line, *255, if positive, 0 otherwise.

Note: to be published later

Wilbert
12th July 2012, 19:04
You gave both plugins the same name?

jmac698
12th July 2012, 19:14
oops typo, and in fact don't have time to post it...

jmac698
13th July 2012, 09:58
New Avisynth plugin
slicer 0.3 by jmac698
Jul 16, 2012

A plugin to extract raw VBI data. YV12 only. Avisynth 2.58+
Planar only.

Usage: slicer(clip clip, int line, int x, int width, int bits, int order, int slicelevel, int n)#returns int, can be used as runtime value

clip - a video with some white lines in it, such as EIA608, Teletext, Timecode, etc.
line - the line to extract
x - the starting x coordinate to look for the code. Should set to the mid-point of the first bit.
width - the width of the bits
bits - the number of bits (<32)
order - 0 means lsb first, 1 means msb first
slicelevel - anything above this is a "1". In an ideal video, this would be set to 126.
n - optional frame number to use, otherwise current_frame

http://www.sendspace.com/file/b0798i

Note:
There is also a similar plugin, DumpPixelValues
http://www.theneitherworld.com/mcpoodle/Tools/DumpPixelValues.html

Version History

0.3
Changed width to float, as long codes need more precision.
Jul 16

0.2
New demo with a real code. Updated docs.
Jul 16

0.1
first release.
Jul 13

jmac698
13th July 2012, 21:40
New Avisynth filter
addcode 0.2
Jul 16, 2012 by jmac

An Avisynth plugin to add codes (like timecodes) as white lines to a video.

Usage:
addcode(clip clip, int line, int x, float width, int height, int bits, int order, int luma0, int luma1, int word)

clip - video to add code to
line - line to start code on
x - starting position of code
width - width of each bit
height - height of each bit
bits - number of bits to draw
order - 0 means draw lsb first, 1 means msb first
luma0 - luma to draw for 0 bit
luma1 - luma to draw for 1 bit
word - a number representing the bits to draw

This will only draw the bits as a block, overwriting the specified area of the video. Some parts of the video may still show at the sides. If you want a completely black background, either make sure the bits take the full width of the video, or draw a black line by using a full width code of 0 bits first. You can also create settings to draw arbitrary white or black lines anywhere on the video. It's even possible to turn this into a plot function with foreground and background pens. It could plot single pixels in YV12 which is normally quite difficult. It could also draw checkerboards.

To add a timecode, use something like this in a scriptclip:

addcode(last,last.height-4,0,last.width/18,2,18,0,16,235,current_frame)#good for at least 145 minutes
http://www.sendspace.com/file/udsu6h

Version History

0.2
Changed width to float, added timecode example and drawing rectangles to demo.
Jul 16

0.1
First release. There is very little checking, please use reasonable values.
The x, width, and height should not exceed the video size
Jul 13

jmac698
14th July 2012, 10:45
New Avisynth filter
mandelbrot 0.2
Jul 18, 2012 by jmac

An Avisynth plugin to animate fractals.

Usage:
mandelbrot(clip clip, float cr_center, float ci_center, float zoom,
float aspect, int startcolor, int endcolor, int maxiter)

clip - video as template to plot on
cr_center pans the image left/right (use -2.5 to +1.5, start at -1.5)
ci_center pans the image up/down (use +-1, start at 0)
zoom - initial zoom, where 1=the full mandelbrot set
aspect - set the PAR. Use 1 for computer, 10/11 for NTSC.
startcolor - the lowest color
endcolor - the highest color, the colors vary between start and end based on iterations to reach bailout
maxiter - maximum iterations, this has the largest effect on speed but needs to be increased for higher zooms

The Mandelbrot set is moved/zoomed based on current frame. The colors are not animated, they are based
on iterations reached.

http://www.sendspace.com/file/qxxijz

Version History

0.2
remove extra parameters and just use Avisynth's animate, fix parameters bug, change parameters, new demo.
Jul 18

0.1a
static build release

0.1
First release - buggy. There is a problem in passing any parameters, so they've been pre-programmed.
Jul 14

jmac698
16th July 2012, 05:32
Old Avisynth filter
Decomet 0.4
Nov 10, 2011 by jmac

Usage: decomet(clip1, clip2)

clips - separate recordings of the same video. The videos must be edited to the same start point and stay in sync.
Works by selecting the clean pixels from two separate recordings of the video.

http://www.sendspace.com/file/ker4to

Note: the original link died, so I'm posting in a more appropriate thread.

William.Lemos.BR
18th July 2012, 15:26
Hi!

I´m trying to use Decomet in Avisynth 2.6 but I get the error message:

"LoadPlugin: unable to load "C:\Program Files\AviSynth 2.6\plugins\avisynth_c.dll", error=0x7 e"

Does Decomet work with Avisynth 2.6? (in Win7 64, but using AviSynth 2.6 32 bits)

Thanks in advance!

IanB
19th July 2012, 01:26
0x7E is ERROR_MOD_NOT_FOUND

Install all the modules (libraries) that "C:\Program Files\AviSynth 2.6\plugins\avisynth_c.dll" depends upon.

Also not sure what still needs avisynth_c.dll these days, avisynth has included the C interface for a very long time.

jmac698
19th July 2012, 06:06
Hello,
I've created a page to discuss such issues here:
http://forum.doom9.org/showthread.php?t=165386

It appears to me that this thread was created mainly for announcements, so I'd like to keep it clean.

William.Lemos.BR
19th July 2012, 15:30
Thanks, IanB and jmac698!

I´ll try your sugestion and post the results at the other thread..

jmac698
23rd July 2012, 12:10
Composite Artefacts Filter Package 0.1
A collection of dot crawl and rainbow filters, with a script illustrating their use.

http://www.sendspace.com/file/ja3u2u

StainlessS
24th July 2012, 20:35
New set of compile-time/run-time functions RT_Stats.
Similar to eg AverageLuma but more programmable.

http://forum.doom9.org/showthread.php?t=165479

jmac698
25th July 2012, 20:13
New Avisynth plugin
findampbyline 0.1
Jul 25, 2012 by jmac

A plugin to find the amplitude of a waveform on each line.

Usage:
findampbyline(clip clip, float scale, int mode)

clip - the clip to measure. Should crop out all but waveform.
scale - scale factor, for example sqrt(2) to find peak when
measuring sinewaves
mode -
0: result is luma value
1: result is normalized to luma255=(rms*scale)/110
2: 20*log10(norm)-20*log(1/110)=luma255

http://www.sendspace.com/file/tft7j5

Version History

0.1
First release.

0.2
Fix some scaling issues. Still not completely accurate.

sirt
25th July 2012, 20:20
Thanks jmac698. To be honest I have no idea what this filter is intended for ! Could you explain why somebody would likely to use it and when ?

jmac698
25th July 2012, 21:01
It can measure the amplitude of a waveform. For example, let's say you draw a sinewave on each line, but a different frequency. The amplitude is 110 (the maximum possible). You can record this signal, and play it back. Now run the filter. The result is the amplitude on each line. Instead of the ideal luma=110 for each line, you start bright at the top and get darker on the way down. This means the sharpness is being reduced as you record higher frequencies.
In other words, this is a precise test of frequency response of a VCR. The official tvlines number is where it reaches half the amplitude, or -6dB. You can use this to test the difference between normal and edit mode, or how a TBC reduces sharpness.

Eventually I can create a script to precisely measure any recording/playback/passthrough system, and give a report on various things like noise, linearity, jitter, resolution, bandwidth, frequency response, differential gain and phase, brightness, contrast, tint, saturation, and so on, like an expensive test instrument does.

sirt
26th July 2012, 18:58
Thanks for the explanations but it looks quite complicated. In other words, I think your filter is intended to measure some specifical frequencies as you did to measure those refering to dot crawl but I guess it won't delete anything in practice, just underscore a category of frequencies. If I am correct, It's still unclear why somebody would be required to resort to it. In my opinion, somebody who wants to delete some video artifact will try to use a dedicated filter. Or do you plan to mix your new functions in future scripts ?

jmac698
26th July 2012, 20:22
Sirt,
It has no relation to general video filtering. It is only for interest of experts and for learning. However, based on the learning, in the future I think I can make better quality of video captures, because I can precisely calibrate the VCR and remove it's distortion effects. Also distortion effects from TBC or other pass-through devices.

pbristow
26th July 2012, 21:14
To Sirt: What jmac is opening up here is a whole new dimension to working with AviSynth.

Traditionally, what we do is work with an existing digitised video file, captured either by ourselves or somebody else. We look at it, analyse it, try to figure out what's gone wrong with it (or at least not gone wonderfully), and thus how best to clean it up and/or enhance it... And then we develop the AviSynth scripts (and sometimes whole new plug-ins) to do that.

In that approach, we're very often working "blind". We don't *know* what errors were introduced into the video, or how or when or why, so we have to try to figure all that out from looking at the end results of the capture process. Or sometimes, we *do* know what happened, and we wish it hadn't happened and that we'd been able to get involved in the process of analog to digital transfer sooner to stop it happening... But it's too late, so we just have to clean up the mess that we find, as best we can.

But in some cases... *We* have the analog source. We ourselves are doing the transfer from analog to digital. Thus, we have access to the hardware that's involved in that transfer, and we thus we have a chance to figure out what it's doing "wrong" (or at least, sub-optimally), that might be spoiling our results and need correcting (or at least reducing) via AviSynth.

With tools like the ones jmac is offering/hinting at here, and direct access to the hardware involved in our transfers, we can discover more about what our hardware is doing to the analog sources it gets. That in turn can help us to devise the best kind of filtering to apply after a video has been captured, to correct whatever the hardware is doing "wrong"/sub-optimally.

To jmac698: I salute you, sir. :) More power to your elbow, as we say around here.

jmac698
26th July 2012, 22:41
Couldn't have explained it better myself :)
My elbow needs more power for sitting on this hard desk :)
And you *get* it.. great!

theluckyman
6th August 2012, 05:31
I am trying to make a script with Megui for Staxrip so I have scripts in avisynth_plugin folder but when i click Preview or Save button then i received error about 'RepairSSE2.dll' or 'RepairSSE3.dll' but it is work on home pc with 4 GB RAM memory but i prefer to do it on my kimisufi box with 24 GB RAM memory. maybe dll need is outdated or something. it happened to all kind of box with Windows 2008 R2 but work at home pc which is Windows 7 work as well as older like Vista or XP.

Answer replies would be nice.

IanB
6th August 2012, 06:50
The RepairSSE2.dll or RepairSSE3.dll error sounds like missing runtime support. Install the MSVC runtimes appropriate for the plugins you have.


Can a Mod please strip out to a new thread(s) all of the the recent posts that are not actually announcing a new plugin or utility.
E.g #123 to #126, #130 to #135, #136+#137(this post)

wonkey_monkey
30th August 2012, 20:19
preroll.zip (http://horman.net/preroll.zip)

This plugin attempts to solve issues caused with certain audio sources (such as nicac3source), that being that if a video frame's worth of audio is requested when the previous video frame's audio has not been decoded, then the decoder may not produce the expected audio (it may fade in from silence for example, which could become an audible glitch if a video is trimmed and re-spliced).

All the filter does is fetch the previous frame's audio if it wasn't the last frame requested, before then fetching the current frame's audio and returning it. Usage is just:

clip=clip.preroll

Stainless wrote a more flexible version (http://forum.doom9.org/showthread.php?p=1587343#post1587343) but stated that it wasn't tested.

David

tebasuna51
30th August 2012, 22:01
This plugin attempts to solve issues caused with certain audio sources (such as nicac3source), ...

Solved issues with new NicAudio.dll v2.0.6 release (http://forum.doom9.org/showthread.php?p=1587337#post1587337).

wonkey_monkey
31st August 2012, 09:09
Solved issues with new NicAudio.dll v2.0.6 release (http://forum.doom9.org/showthread.php?p=1587337#post1587337).

Ohh, thanks tebasuna51 - I did look yesterday before I posted but it wasn't up yet :) Still, preroll may help with other audio sources.

David

wonkey_monkey
23rd September 2012, 16:36
Download: quad.zip (http://horman.net/quad.zip)

quad is a quadrilateral transformation filter similar to vcmohan's reform, although (so far) quad doesn't crash ;) and does a true quadrilateral transformation. It uses spline16 interpolation (can be switched off for speed purposes) and is multi-threaded.

Minimum parameter requirements are 4 x,y pairs defining the corners of the target quadrilateral. The source quadrilateral can also be specified, if required.

No source, sorry - it makes use of too many half-written libraries scattered around my hard drive.

quad
====

An Avisynth plugin to perform quadrilateral transformations.

Usage
=====

quad(clip, tx0,ty0, tx1,tx1, tx2,ty2, tx3,ty3, [sx0,sy0, sx1,sy1, tx2,ty2, tx3,ty3, bool invert, bool normal, bool draft])

Parameters:
-----------

tx0,ty0-tx3,ty3: the four corners of the target quadrilateral.
sx0,sy0-sx3,sy3: the four corners of the source quadrilateral (default: clip's corners, clockwise from top left)
invert: invert the transformation (transpose t and s)
normal: specify that the coordinates are normalised to the range 0-1.
draft: don't use spline16 interpolation

wonkey_monkey
23rd September 2012, 22:54
The example works (with AvsPmod & VirtualDub), but there is some unreproduceable flickering of black rectangles in the top right after clip start.

Not something I've seen... is the black rectangle always the same height? Is it 1/4 or 1/8 of the clip height? Is it full width or just partial width?

Can you post a screenshot?

David

vcmohan
24th September 2012, 11:51
Good to note that a better plugin is now available. Incidentally the crashes of my "Reform" plugin was traced to an inappropriate default parameter and has been corrected. Hopefully it will not crash.

I suggest to please create a new thread wherein all comments be posted and not clutter this main annoncement thread. The comment thread may be provided a link here.

StainlessS
8th October 2012, 23:39
CallCmd v1.00, Execute command - 8 Oct 2012
New Plugin to execute command on selectable frames or at script startup or closedown.

http://forum.doom9.org/showthread.php?t=166063

wonkey_monkey
14th October 2012, 00:37
xyremap v0.1 (http://horman.net/xyremap.zip)

An RPN-based pixel remapper.

http://forum.doom9.org/showthread.php?p=1595742

StainlessS
17th November 2012, 18:45
New LocateFrames script, to find frames in c clip that match frames in f clip.
Sister script to MatchFrames which is intended for matched frames extraction,
LocateFrames is intended to be usable by other scripts to identify matches.
LocateFrames given a version number of v1.06 despite being new script, as it
uses identical logic to MatchFrames.

http://forum.doom9.org/showthread.php?p=1600961#post160096

panzerboy
1st December 2012, 00:04
Bug fix release for my Gimp-style Merge filters. Colour, Hue and Saturation filters fixed.
same URL as before http://sourceforge.net/projects/avisynthgmplyr/files/?
The filters are really slow as they are just c++ code.
So I tend to run the gimp filters with a 'direct stream copy' in Virtualdub for uncompressed output then run the two passes of x264 encoding using the uncompressed (merged) avi.
There is SSE2 code supplied for GIMP but I've done little x86 assembler and never GNU format assembler, so much googling and reading to do.

StainlessS
5th December 2012, 09:36
Update for, ShowChannels() v0.6 - 05 Dec 2012, Plugin for Avisynth 2.5+

Planar, YUY2 and RGB.

Simple plugin whose only function is to display the average Y,U and V
values for a YUV frame or R,G, and B for an RGB frame.
Also shows accumulated average for all frames visited so far.

v0.5, 31 Oct 2012, Added x,y,w,h coords, not colorspace restricted (real pain in the bum to implement).
Can use odd coords for eg YV12, and even sample a single pixel.

v0.6, 05 Dec 2012. Added Interlaced arg for Planar only. Now gets correct chroma for planar interlaced , even down to single pixel.

See Here: http://forum.doom9.org/showthread.php?t=163829

fvisagie
7th December 2012, 09:13
I take it that the intention is not to clutter this thread with inanities while it strives to benefit the community by sharing potentially useful new functionality, but I'm unsure where that distinction might be drawn. Is the thread necessarily restricted to what could be termed computer science, or does it extend to, say, handy utilities I wrote in the course of my work that others may potentially find useful?

jmac698
7th December 2012, 12:08
It says plugins and utilities. Are they related to avisynth or at least video?