input:connect_signal(0) -- First input card. Can be changed whenever you want.
local resample_effect, resize_effect
- if scale then
+ if input_scale then
if hq then
resample_effect = chain:add_effect(ResampleEffect.new())
else
-- and get_channel_resolution_raw() is that this one also can say that
-- there's no signal.
function get_channel_resolution(signal_num)
- res = last_resolution[signal_num]
- if (not res) or res.height <= 0 then
+ local res = last_resolution[signal_num]
+ if (not res) or not res.is_connected then
+ return "disconnected"
+ end
+ if res.height <= 0 then
return "no signal"
end
if not res.has_signal then
-- API ENTRY POINT
-- Returns, given a channel number, which signal it corresponds to (starting from 0).
--- Should return -1 if the channel does not correspond to a simple signal.
--- (The information is used for whether right-click on the channel should bring up
--- an input selector or not.)
+-- Should return -1 if the channel does not correspond to a simple signal
+-- (one connected to a capture card, or a video input). The information is used for
+-- whether right-click on the channel should bring up a context menu or not,
+-- typically containing an input selector, resolution menu etc.
+--
-- 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)
local input1_type = get_input_type(signals, transition_dst_signal)
local input1_scale = needs_scale(signals, transition_dst_signal, width, height)
local chain = fade_chains[input0_type][input0_scale][input1_type][input1_scale][true]
- prepare = function()
+ local prepare = function()
if input0_type == "live" or input0_type == "livedeint" then
chain.input0.input:connect_signal(transition_src_signal)
set_neutral_color_from_signal(chain.input0.wb_effect, transition_src_signal)
width = signals:get_width(signal_num),
height = signals:get_height(signal_num),
interlaced = signals:get_interlaced(signal_num),
+ is_connected = signals:get_is_connected(signal_num),
has_signal = signals:get_has_signal(signal_num),
frame_rate_nom = signals:get_frame_rate_nom(signal_num),
frame_rate_den = signals:get_frame_rate_den(signal_num)
if transition_type == ZOOM_TRANSITION then
-- Transition in or out of SBS.
local chain = get_sbs_chain(signals, t, width, height, input_resolution)
- prepare = function()
+ local prepare = function()
prepare_sbs_chain(chain, calc_zoom_progress(t), transition_type, transition_src_signal, transition_dst_signal, width, height, input_resolution)
end
return chain.chain, prepare
elseif transition_type == NO_TRANSITION and live_signal_num == SBS_SIGNAL_NUM then
-- Static SBS view.
local chain = get_sbs_chain(signals, t, width, height, input_resolution)
- prepare = function()
+ local prepare = function()
prepare_sbs_chain(chain, 0.0, NO_TRANSITION, 0, SBS_SIGNAL_NUM, width, height, input_resolution)
end
return chain.chain, prepare
local input_type = get_input_type(signals, live_signal_num)
local input_scale = needs_scale(signals, live_signal_num, width, height)
local chain = simple_chains[input_type][input_scale][true]
- prepare = function()
+ local prepare = function()
chain.input:connect_signal(live_signal_num)
set_scale_parameters_if_needed(chain, width, height)
set_neutral_color_from_signal(chain.wb_effect, live_signal_num)
end
return chain.chain, prepare
elseif live_signal_num == STATIC_SIGNAL_NUM then -- Static picture.
- prepare = function()
+ local prepare = function()
end
return static_chain_hq, prepare
else
local input_type = get_input_type(signals, signal_num)
local input_scale = needs_scale(signals, signal_num, width, height)
local chain = simple_chains[input_type][input_scale][false]
- prepare = function()
+ local prepare = function()
chain.input:connect_signal(signal_num)
set_scale_parameters_if_needed(chain, width, height)
set_neutral_color(chain.wb_effect, neutral_colors[signal_num + 1])
local input0_type = get_input_type(signals, INPUT0_SIGNAL_NUM)
local input1_type = get_input_type(signals, INPUT1_SIGNAL_NUM)
local chain = sbs_chains[input0_type][input1_type][false]
- prepare = function()
+ local prepare = function()
prepare_sbs_chain(chain, 0.0, NO_TRANSITION, 0, SBS_SIGNAL_NUM, width, height, input_resolution)
end
return chain.chain, prepare
end
if num == STATIC_SIGNAL_NUM + 2 then
- prepare = function()
+ local prepare = function()
end
return static_chain_lq, prepare
end