local neutral_colors = {
{0.5, 0.5, 0.5}, -- Input 0.
{0.5, 0.5, 0.5}, -- Input 1.
- {0.5, 0.5, 0.5} -- Input 2.
+ {0.5, 0.5, 0.5}, -- Input 2.
+ {0.5, 0.5, 0.5}, -- Input 3.
+ {0.5, 0.5, 0.5} -- Input 4.
}
local overlay_transition_start = -2.0
local live_signal_num = 0
local preview_signal_num = 1
+local NUM_CAMERAS = 5 -- Remember to update neutral_colors, too.
-- Valid values for live_signal_num and preview_signal_num.
local INPUT0_SIGNAL_NUM = 0
local INPUT1_SIGNAL_NUM = 1
local INPUT2_SIGNAL_NUM = 2
-local STATIC_SIGNAL_NUM = 3
+local INPUT3_SIGNAL_NUM = 3
+local INPUT4_SIGNAL_NUM = 4
+local STATIC_SIGNAL_NUM = NUM_CAMERAS
-- Preview-only signal showing the current signal with the overlay.
-- Not valid for live_signal_num!
-local OVERLAY_SIGNAL_NUM = 4
+local OVERLAY_SIGNAL_NUM = NUM_CAMERAS + 1
-- Valid values for transition_type. (Cuts are done directly, so they need no entry.)
local NO_TRANSITION = 0
-- Returns the number of outputs in addition to the live (0) and preview (1).
-- Called only once, at the start of the program.
function num_channels()
- return 5
+ return NUM_CAMERAS + 2 -- static picture and overlay
end
function is_plain_signal(num)
- return num >= INPUT0_SIGNAL_NUM and num <= INPUT2_SIGNAL_NUM
+ return num >= INPUT0_SIGNAL_NUM and num <= INPUT4_SIGNAL_NUM
end
-- Helper function to write e.g. “720p60”. The difference between this
-- channels in case they change resolution.
function channel_name(channel)
local signal_num = channel - 2
- if signal_num == 0 then
+ if signal_num == INPUT0_SIGNAL_NUM then
return "Main (" .. get_channel_resolution(signal_num) .. ")"
- elseif signal_num == 1 then
- return "Goal 1 (" .. get_channel_resolution(signal_num) .. ")"
- elseif signal_num == 2 then
- return "Goal 2 (" .. get_channel_resolution(signal_num) .. ")"
+ elseif signal_num == INPUT1_SIGNAL_NUM then
+ return "Secondary (" .. get_channel_resolution(signal_num) .. ")"
+ elseif signal_num == INPUT2_SIGNAL_NUM then
+ return "Goal L (" .. get_channel_resolution(signal_num) .. ")"
+ elseif signal_num == INPUT3_SIGNAL_NUM then
+ return "Goal R (" .. get_channel_resolution(signal_num) .. ")"
+ elseif signal_num == INPUT4_SIGNAL_NUM then
+ return "Ambience (" .. get_channel_resolution(signal_num) .. ")"
elseif signal_num == STATIC_SIGNAL_NUM then
return "Static picture"
elseif signal_num == OVERLAY_SIGNAL_NUM then
-- Called once for each channel, at the start of the program.
-- Will never be called for live (0) or preview (1).
function channel_signal(channel)
- if channel == 2 then
- return 0
- elseif channel == 3 then
- return 1
+ if is_plain_signal(channel) then
+ return channel - 2
else
return -1
end
return channel == (signal_num + 2)
end
if signal_num == STATIC_SIGNAL_NUM then
- return (channel == 5)
+ return (channel == NUM_CAMERAS)
end
return false
end
-- if and only if num==0.
function get_chain(num, t, width, height, signals)
local input_resolution = {}
- for signal_num=0,2 do
+ for signal_num=0,(NUM_CAMERAS-1) do
local res = {
width = signals:get_width(signal_num),
height = signals:get_height(signal_num),