#include <epoxy/gl.h>
#include <stdbool.h>
#include <stddef.h>
+#include <stdint.h>
+#include <map>
#include <memory>
#include <mutex>
+#include <string>
#include <queue>
+#include <movit/effect.h>
#include <movit/ycbcr.h>
#include "bmusb/bmusb.h"
#include "mjpeg_encoder.h"
+#include "shared/va_resource_pool.h"
class MJPEGEncoder;
// from there into VA-API buffers (by MJPEGEncoder) if needed.
enum { FROM_MALLOC, FROM_VA_API } data_copy_current_src;
uint8_t *data_copy_malloc;
- MJPEGEncoder::VAResources va_resources;
- MJPEGEncoder::ReleaseVAResources va_resources_release;
+ VAResourcePool::VAResources va_resources;
+ ReleaseVAResources va_resources_release;
int generation;
};
private:
- void init_frame(size_t frame_idx, size_t frame_size, GLuint width, GLuint height, GLenum permissions, GLenum map_bits, int generation);
+ static void init_frame(Frame &frame, Userdata *ud, PBOFrameAllocator *owner, bmusb::PixelFormat pixel_format, size_t frame_size, GLuint width, GLuint height, GLenum permissions, GLenum map_bits, GLenum buffer, int generation);
void destroy_frame(Frame *frame);
unsigned card_index;