Old 11-14-2018, 02:51 PM   #1
Human being with feelings
Join Date: Oct 2009
Posts: 115
Default "Stacking" video processors

Originally Posted by Justin View Post
The way video processors deal with tracks/items/etc might be causing you some problems. You might need to review the help text about how to enumerate/navigate the list of video inputs, but here's a quick explanation:
  • You can't get the name of a track unless it has a video processor on it at the track level.
  • Input 0 is the first input available to the processor. This could be the previous FX in the chain, or if a track FX, it could be the previous track, or an item on the track (or a take FX on the item on the track, etc).
  • If you want to get the output of the previous track that contains a video item/processor/etc, you should query input_track(0). If you want the second track that contains one of those, use input_track(1).
  • There are other functions to navigate the inputs.
  • Remember, any item/track that doesn't have any video processors/video files is effectively ignored (except when using input_track_exact() etc).

Here's a little demo project I made for you:


You can load whatever movie you want in replace of the .MOV file to test.

Track 1 "describe what is seen" has a processor which takes the first input (wherever it is), draws it, then draws the text that it gets from it over it.

At the start of the project, it reads from "item that is red", which is a MIDI item that has a video processor on it that generates red.

Then in the empty space between 2 and 3 seconds, there's no video processor on an item or the track, so instead it displays "green track", which has a video processor at the track level.

When it gets to the second item, which is a .MOV, it displays that, and uses the take name (since that take was renamed). Then between 4.5 and 5 seconds it goes back to green..

And the third item is just the same as the second item, only it has the filename of the .MOV in it (I didn't bother renaming that one). There's no way to actually get the filename, it just uses the take names.

Hope that helps!

Thank you so much Justin for taking some of your time to answer in such detail and even sharing an example project. That's very kind of you.

You can't get the name of a track unless it has a video processor on it at the track level.
Thanks a lot for this.
The part I'm feeling really bad about is that I mostly figured all the other stuff out already. I'm gonna share your post in my signature though as it's a really great starter!

The reason for my question was that I'd like to "stack" video processors of the same kind, i.e. using the output of one video processor as the input of another instance.
This works fine as long as this FX only needs 1 input, but is afaik not possible with FX' that need multiple inputs without requiring the user to manually assign inputs.

Imagine this folder structure (I know folders don't mean anything with video but they are handy to stow away media anyway).
[1]  parent
[2]  ---parent
[3]  ------child with media item
[4]  ------child with media item
[5]  ---child with media item

Both parents have this pointless FX added which is meant to process its immediate child tracks.
in1 = input_track(0));
in2 = input_track(1));
It will work no problem for the inner parent but the FX on the outer parent will have a wrong second input in2 (track [3] instead of track [5]).

Do you see any way to solve this currently?
wwwmaze is offline   Reply With Quote

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

All times are GMT -7. The time now is 11:40 AM.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2020, vBulletin Solutions Inc.