void start();
void quit();
- enum Source {
- SOURCE_INPUT1,
- SOURCE_INPUT2,
- SOURCE_SBS,
- };
- void cut(Source source);
+ void transition_clicked(int transition_num);
enum Output {
OUTPUT_LIVE = 0,
OUTPUT_PREVIEW,
OUTPUT_INPUT0,
OUTPUT_INPUT1,
+ OUTPUT_INPUT2,
+ OUTPUT_INPUT3,
NUM_OUTPUTS
};
std::unique_ptr<movit::ResourcePool> resource_pool;
std::unique_ptr<Theme> theme;
std::unique_ptr<movit::EffectChain> display_chain;
- std::unique_ptr<movit::EffectChain> preview0_chain;
- std::unique_ptr<movit::EffectChain> preview1_chain;
GLuint cbcr_program_num; // Owned by <resource_pool>.
std::unique_ptr<H264Encoder> h264_encoder;
// Effects part of <display_chain>. Owned by <display_chain>.
movit::FlatInput *display_input;
- // Effects part of <preview0_chain>. Owned by <preview0_chain>.
- movit::YCbCrInput *preview0_input;
-
- // Effects part of <preview1_chain>. Owned by <preview1_chain>.
- movit::YCbCrInput *preview1_input;
-
- Source current_source = SOURCE_INPUT1;
int frame = 0;
std::mutex bmusb_mutex;
BMUSBCapture *usb;
std::unique_ptr<PBOFrameAllocator> frame_allocator;
- // Threading stuff
- bool thread_initialized = false;
+ // Stuff for the OpenGL context (for texture uploading).
QSurface *surface;
QOpenGLContext *context;
class OutputChannel {
public:
+ ~OutputChannel();
void output_frame(DisplayFrame frame);
bool get_display_frame(DisplayFrame *frame);
void set_frame_ready_callback(new_frame_ready_callback_t callback);