Hi Kessler! How are you?
I don’t know if this an option for you, but adjusting the EDL of the sequence node should work.
The source node will by default repeat its last frame when fetched passed it. In this case, it is not the source that extends itself, but the sequence node that reveals (untrim) 10 frames passed the end of the 1st clip.
In this example, I assume I already have 2 clips loaded in RV. Both clips are 50 frames long. I want to extend the 1st clip by 10 extra frame so frame 51 to 60 are actually frame 50 repeated 10 times.
Let me know is this is helpful or not.
Note : Stack node also has a mode.strictFrameRanges
option which I think is off by default. When turned on it will stop repeating frames outside the sources’ range. But, since I think it is off by default, it probably does not to what you are looking for.
Eric
seqNode = rv.commands.nodesOfType("RVSequence")[0]
print "BEFORE"
print rv.commands.getIntProperty("%s.edl.frame" % seqNode)
print rv.commands.getIntProperty("%s.edl.source" % seqNode)
print rv.commands.getIntProperty("%s.edl.in" % seqNode)
print rv.commands.getIntProperty("%s.edl.out" % seqNode)
#BEFORE
#[1, 51, 101]
#[0, 1, 0]
#[1, 1, 0]
#[50, 50, 0]
frameArray = rv.commands.getIntProperty("%s.edl.frame" % seqNode)
frameArray[1] = 61
frameArray[2] = 111
rv.commands.setIntProperty("%s.edl.frame" % seqNode, frameArray)
outArray= rv.commands.getIntProperty("%s.edl.out" % seqNode)
outArray[0] = 60
rv.commands.setIntProperty("%s.edl.out" % seqNode, outArray)
print "AFTER"
print rv.commands.getIntProperty("%s.edl.frame" % seqNode)
print rv.commands.getIntProperty("%s.edl.source" % seqNode)
print rv.commands.getIntProperty("%s.edl.in" % seqNode)
print rv.commands.getIntProperty("%s.edl.out" % seqNode)
#AFTER
#[1, 61, 111]
#[0, 1, 0]
#[1, 1, 0]
#[60, 50, 0]
Note : I had to toggle view (leave sequence view and come back to it) for the full range to update from 100 to 110.