return 0;
}
+int VideoInput_get_signal_num(lua_State* L)
+{
+ assert(lua_gettop(L) == 1);
+ FFmpegCapture **video_input = (FFmpegCapture **)luaL_checkudata(L, 1, "VideoInput");
+ lua_pushnumber(L, -1 - (*video_input)->get_card_index());
+ return 1;
+}
+
int WhiteBalanceEffect_new(lua_State* L)
{
assert(lua_gettop(L) == 0);
{ "new", VideoInput_new },
{ "rewind", VideoInput_rewind },
{ "change_rate", VideoInput_change_rate },
+ { "get_signal_num", VideoInput_get_signal_num },
{ NULL, NULL }
};
case bmusb::PixelFormat_8BitYCbCr:
ycbcr_inputs[i]->set_texture_num(0, userdata->tex_y[frame.field_number]);
ycbcr_inputs[i]->set_texture_num(1, userdata->tex_cbcr[frame.field_number]);
- ycbcr_inputs[i]->set_width(this_width);
- ycbcr_inputs[i]->set_height(this_height);
+ ycbcr_inputs[i]->set_width(width);
+ ycbcr_inputs[i]->set_height(height);
break;
case bmusb::PixelFormat_10BitYCbCr:
ycbcr_inputs[i]->set_texture_num(0, userdata->tex_444[frame.field_number]);
- ycbcr_inputs[i]->set_width(this_width);
- ycbcr_inputs[i]->set_height(this_height);
+ ycbcr_inputs[i]->set_width(width);
+ ycbcr_inputs[i]->set_height(height);
break;
case bmusb::PixelFormat_8BitBGRA:
rgba_inputs[i]->set_texture_num(userdata->tex_rgba[frame.field_number]);
- rgba_inputs[i]->set_width(this_width);
- rgba_inputs[i]->set_height(this_height);
+ rgba_inputs[i]->set_width(width);
+ rgba_inputs[i]->set_height(height);
break;
default:
assert(false);
int Theme::map_signal(int signal_num)
{
+ // Negative numbers map to raw signals.
+ if (signal_num < 0) {
+ return -1 - signal_num;
+ }
+
unique_lock<mutex> lock(map_m);
if (signal_to_card_mapping.count(signal_num)) {
return signal_to_card_mapping[signal_num];