}
private:
+ void register_constants();
void register_class(const char *class_name, const luaL_Reg *funcs);
std::mutex m;
// the mixer, and communicates that state over to the actual YCbCrInput.
class LiveInputWrapper {
public:
- // Note: <override_bounce> is irrelevant for PixelFormat_8BitRGBA.
+ // Note: <override_bounce> is irrelevant for PixelFormat_8BitBGRA.
LiveInputWrapper(Theme *theme, movit::EffectChain *chain, bmusb::PixelFormat pixel_format, bool override_bounce, bool deinterlace);
void connect_signal(int signal_num);
{
if (deinterlace) {
return deinterlace_effect;
- } else if (pixel_format == bmusb::PixelFormat_8BitRGBA) {
+ } else if (pixel_format == bmusb::PixelFormat_8BitBGRA) {
return rgba_inputs[0];
} else {
return ycbcr_inputs[0];
private:
Theme *theme; // Not owned by us.
bmusb::PixelFormat pixel_format;
+ movit::YCbCrFormat input_ycbcr_format;
std::vector<movit::YCbCrInput *> ycbcr_inputs; // Multiple ones if deinterlacing. Owned by the chain.
std::vector<movit::FlatInput *> rgba_inputs; // Multiple ones if deinterlacing. Owned by the chain.
movit::Effect *deinterlace_effect = nullptr; // Owned by the chain.