27 #include <theora/theoraenc.h>
49 virtual bool setSize(uint16_t width, uint16_t height);
50 virtual bool open(
const char *filename,
char *errmsg);
52 virtual bool writeFrame(
const uint8_t *frame, uint32_t nbytes, uint64_t timestamp);
67 bool allocateBuffers();
69 int theora_write_frame(
int last);
70 bool frac(
double fps, uint32_t &num, uint32_t &den);
72 th_ycbcr_buffer ycbcr;
73 ogg_uint32_t video_fps_numerator = 24;
74 ogg_uint32_t video_fps_denominator = 1;
75 ogg_uint32_t video_aspect_numerator = 0;
76 ogg_uint32_t video_aspect_denominator = 0;
78 int video_quality = -1;
80 ogg_uint32_t keyframe_frequency = 0;
82 int vp3_compatible = 0;
83 int chroma_format = TH_PF_420;
85 FILE *twopass_file =
nullptr;
89 FILE *ogg_fp =
nullptr;
90 ogg_stream_state ogg_os;
94 th_enc_ctx *td =
nullptr;
The RecorderInterface class is the base class for recorders.
The TheoraRecorder class implemented recording of video streaming data in a libtheora OGV file.
virtual ~TheoraRecorder()
virtual bool setPixelFormat(INDI_PIXEL_FORMAT pixelFormat, uint8_t pixelDepth)
std::vector< uint64_t > frameStamps
virtual bool writeFrame(const uint8_t *frame, uint32_t nbytes, uint64_t timestamp)
virtual const char * getExtension()
uint32_t number_of_planes
virtual bool open(const char *filename, char *errmsg)
virtual void setStreamEnabled(bool enable)
INDI_PIXEL_FORMAT m_PixelFormat
virtual bool setSize(uint16_t width, uint16_t height)
Namespace to encapsulate INDI client, drivers, and mediator classes.