Thread: Avisynth+
View Single Post
Old 19th January 2018, 02:13   #3876  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
Yep, that is a bug, B not truncated. (ornamental trim EndFrame/Framecount/Length, leastwise when in stack)

Code:
A=Colorbars.KillAudio.Trim(0,-10).ShowFrameNumber   # 10 frames
B=A.Trim(0,-1)                                      # 1 Frame

StackHorizontal(A,B)                                # Comment one of these out
#Stackvertical(A,B)
EDIT: This gives an even more interesting result (Start trimmed but end not).
Code:
B=A.Trim(5,-1)                                      # 1 Frame
EDIT: Makes no difference if specifying End Frame (+ve end) or FrameCount (-ve end), or length (Length=n).

Quote:
Originally Posted by pinterf View Post
Trim (at least in Avs+) does not check the requested frame number, it passes over the task to its child filter:
In this case Trim() is the child/source filter that StackXXX expects to check for valid frames.
Current standard AVS method must remain the default, if changing as per DavidHorman, then would require additional
args to both StackXXX and trim, methinks (or passed by StackXXX to trim child).

EDIT: It always confused me as to why child clip is source to a filter, I'm assuming that child filter is also the source filter to current filter.
[It always seemed a bit more sensible to me if it were the other way around].

EDIT: OK, think I figured it out, child is the child of the previous filter, but to current filter it is the parent, or maybe not, who knows.
__________________
I sometimes post sober.
StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace

"Some infinities are bigger than other infinities", but how many of them are infinitely bigger ???

Last edited by StainlessS; 19th January 2018 at 14:00.
StainlessS is offline