2018-11-09 12:21:17 +01:00
|
|
|
#ifndef RECORDER_H
|
|
|
|
#define RECORDER_H
|
|
|
|
|
|
|
|
#include <libavformat/avformat.h>
|
|
|
|
#include <SDL2/SDL_stdinc.h>
|
|
|
|
|
|
|
|
#include "common.h"
|
|
|
|
|
2019-02-09 15:20:07 +01:00
|
|
|
enum recorder_format {
|
|
|
|
RECORDER_FORMAT_MP4 = 1,
|
|
|
|
RECORDER_FORMAT_MKV,
|
|
|
|
};
|
|
|
|
|
2018-11-09 12:21:17 +01:00
|
|
|
struct recorder {
|
|
|
|
char *filename;
|
2019-02-09 15:20:07 +01:00
|
|
|
enum recorder_format format;
|
2018-11-09 12:21:17 +01:00
|
|
|
AVFormatContext *ctx;
|
|
|
|
struct size declared_frame_size;
|
2019-02-09 12:54:12 +01:00
|
|
|
SDL_bool header_written;
|
2018-11-09 12:21:17 +01:00
|
|
|
};
|
|
|
|
|
2019-03-02 20:09:56 +01:00
|
|
|
SDL_bool
|
|
|
|
recorder_init(struct recorder *recoder, const char *filename,
|
|
|
|
enum recorder_format format, struct size declared_frame_size);
|
2019-02-09 15:20:07 +01:00
|
|
|
|
2019-03-02 20:09:56 +01:00
|
|
|
void
|
|
|
|
recorder_destroy(struct recorder *recorder);
|
2018-11-09 12:21:17 +01:00
|
|
|
|
2019-03-02 20:09:56 +01:00
|
|
|
SDL_bool
|
|
|
|
recorder_open(struct recorder *recorder, AVCodec *input_codec);
|
2018-11-09 12:21:17 +01:00
|
|
|
|
2019-03-02 20:09:56 +01:00
|
|
|
void
|
|
|
|
recorder_close(struct recorder *recorder);
|
|
|
|
|
|
|
|
SDL_bool
|
|
|
|
recorder_write(struct recorder *recorder, AVPacket *packet);
|
2018-11-09 12:21:17 +01:00
|
|
|
|
|
|
|
#endif
|