#include "bmusb/bmusb.h"
#include "alsa_output.h"
#include "ebu_r128_proc.h"
-#include "h264encode.h"
+#include "video_encoder.h"
#include "httpd.h"
#include "pbo_frame_allocator.h"
#include "ref_counted_frame.h"
#include "input_state.h"
#include "correlation_measurer.h"
-class H264Encoder;
+class QuickSyncEncoder;
class QSurface;
namespace movit {
class Effect;
GLuint cbcr_program_num; // Owned by <resource_pool>.
GLuint cbcr_vbo; // Holds position and texcoord data.
GLuint cbcr_position_attribute_index, cbcr_texcoord_attribute_index;
- std::unique_ptr<H264Encoder> h264_encoder;
+ std::unique_ptr<VideoEncoder> video_encoder;
// Effects part of <display_chain>. Owned by <display_chain>.
movit::FlatInput *display_input;
int64_t length; // In TIMEBASE units.
bool interlaced;
unsigned field; // Which field (0 or 1) of the frame to use. Always 0 for progressive.
- RefCountedGLsync ready_fence; // Whether frame is ready for rendering.
+ std::function<void()> upload_func; // Needs to be called to actually upload the texture to OpenGL.
unsigned dropped_frames = 0; // Number of dropped frames before this one.
};
std::queue<NewFrame> new_frames;